From the Web Service Description Requirements Document[*]:
A Web Service is:This is paraphrased from the section 2.1, Non-normative definitions. As far as working definitions go, it's at least as good as any other I've seen so far.
- a software application,
- identified by a URI,
- capable of being defined using XML,
- capable of being described using XML,
- capable of being discovered using XML.
- an application that supports interactions with other applications using XML messages.
- an application that uses internet-based protocols to send XML messages to other applications.
[*] This is the requirements document issued by the Web Services Description Working Group at the W3C. Their charter isn't to describe what web services are all about (although that was my first impression), but rather to develop a W3C version of WSDL.
Re:discovery
ziggy on 2002-05-01T23:05:01
This is where the smoke is really thick around the mirrors. (start the hand waving)Let us assume that there is be some way, to ask for a service that performs «stock quotes». Discovery is the process where a piece of software finds out it needs a stock quote, asks for a service that provides stock quotes (whereby a ticker symbol is transmitted, and a stock price is received in a synchronous transaction, using some common protocol, such as HTTP), and then proceeds to magically connect to this service providing stock quotes.
So there's a centralized database somewhere (a la DNS root name servers), a way of querying that database (DNS lookup requests) to find web services. Once you've found a list of possible matches services, there is an opportunity to apply some heuristics of your own devising to choose which service is a best match for you.
(hand waving becomes more frantic)
UDDI is the protocol/message format/hyped buzzword that's supposed to handle the registry of services and querying of that registry.
(hand flailing and lots of jumping up and down)
All that's left is a simple ontology describing what's a «stock quote», possible attributes to use when heuristically choosing a service your software has never seen before (including such things as cost-per-transaction, latency, parameter typing, wire protocol, security, etc.).
Once that's done, it's a very simple matter to create a web service "browser" that receives input from a Voice-to-XML gateway and magically translates a request ("Find me the market cap for the leading vendor of transparent aluminum") and magically turn that into the information you want! (If that company happens to offer a full suite of web services, you could even tender an acquisition offer and buy the company without so much as a mouse click! Isn't the web wonderful???!)
Re:discovery
pudge on 2002-05-04T02:03:06
Uh... so what does it mean to discover a web service, and how is this supposed to happen? :) Re:discovery
ziggy on 2002-05-04T02:31:13
It means about the same thing as discovering the New World or discovering a new species of pistachio.Uh... so what does it mean to discover a web service Start with lots of frantic handwaiving. And jumping up and down. Insert some magic pixie dust in an unused USB port and wait for a great big beanstalk to sprout out of your PCMCIA slot. While you're waiting for the beanstalk to sprout up from beneath the keyboard, magic stuff happens. (But that beanstalk doesn't come out of your keyboard though. You need magic beans for that.)and how is this supposed to happen?See, that's not so difficult, is it?