RE: Web Service Definition [Was "Some Thoughts ..."]

Starting with the strawman proposal, and then applying some comments that
came up in email and the teleconference.

> "A web service is is  a software application or component that can be
> accessed over the Internet using  a vendor/platform/language-neutral data
> interchange format to invoke the service  and supply the
> response, using a rigorously defined message exchange pattern,  and
producing a
> result that is sufficiently well-defined to be processed by a  software
> application."

Comments (sorry, I'm in brain dump mode and won't cross-reference the
archives):

First, how do we distinguish Web services from "the web" itself?  A
sufficiently generic definition would imply that an arbirtrary web page is a
"web service" that supplies an HTML document.  That is too broad to be
useful, IMHO.  I just noticed that Microsoft has a "Global XML Web Services
Architecture" that they refer to.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dngxa/html/
gloxmlws500.asp
I'm not sure that this is meant as a definition, but this says "XML Web
services are built on XML, ... (SOAP),... (WSDL), and ...(UDDI)
specifications."  We should probably discuss each point individually.  I'm
willing to say that we are talking about *XML* web services in which the
service is identified by some combination of URIs and XML, and the result is
an XML instance.  On the other hand, I'm reluctant to say that "web services
*require* SOAP, WSDL, or UDDI, although each obviously is an *example* of
role that might be critical to our definition.

Is SOAP critical to the definition of a Web Service?  There are two very
distinct positions on this question, as far as I know.  One is the SOAP-RPC
approach, which says that a URI identifies a fairly generic "endpoint"
(sortof like a function library) and the contents of the SOAP envelope
identify the specific function to be invoked and the parameters to be
passed. The other is the REST approach, which says that the web service is a
"resource" as understood in the Web Architecture and the URI should
completely identify the service, the function, and the parameters. SOAP
might be useful in a REST-ful web service (especially since it is defined on
the InfoSet and not XML syntax, so could be encoded in URI syntax ... and
could obviously be used to package up the result, but it is not critical to
the *identification* of a REST web service.  Do we want to take sides in
this? I hope not ... we'll lose the W3C Director if we insist on one, and
half the vendors if we insist on the other! <grin>  So, I'd say that a web
service is "unambiguously identified using Web technologies, including a URI
and optionally an XML description such as a SOAP message". 

Next, WSDL is integral to IBM's definition, and an official W3C WG now, so
some imply we should explicitly reference it.  This is a show-stopper
politically, in my humble opinion.  The scripting people, most notably Dave
Winer [a co-author of the original SOAP spec] are adamant that an informal
document describing how to access a web service is sufficient.  I'd amend
the strawman to say that a web service must have a "clear description of the
data required to invoke the service, such as a WSDL document."

Someone mentioned that a machine-processable result (as opposed to a human
or an artificial intelligence) is integral to the definition.  The strawman
says "producing a result that is sufficiently well-defined to be processed
by a  software application."  How about saying that a web service must, by
definition, "produce a result that can be processed by  conventional
software without human intervention."

We talked about "orchestration" on the call.  I got distracted for a couple
of minutes, but it appeared that we think this is not integral to the
definition of a web service, although potentially a topic that the
architecture should cover.

So, here's the "son of strawman" definition (stickman?):

"A web service is is  a software application or component that:

Is accessed over the Web (broadly defined) using  HTTP or another standard
messaging protocol;

Is identified and invoked using using Web technologies, including a URI and
optionally an XML description such as a SOAP messagem, via a well-defined
message exchange pattern; 

Is defined by an unambiguous description of the data required to invoke the
service, such as a WSDL document;

and Produces an XML result that can be usefully processed by  conventional
software without human intervention."




 

Received on Thursday, 21 February 2002 17:09:12 UTC