RE: On WSDL "operation"


> OK, what exactly are we trying to model/describe in WSDL?

I personally see WSDL as a way to describe a contract between a consumer
and a service about the exchange of messages between them. XML Schema
(or any other schema) is used to describe the structure of those
messages. That's it. Nothing else is modelled and definitely not any
semantics are implied.


> If my understanding is correct, as a consumer of a WSDL description I
> expect that one what we now call operation, identified by its name,
> basically the same thing when invoked on any instance of the

What is an instance of an interface in this context? That's the
terminology used in situations where we have a shared type system (like
it is the case with Object-Oriented environments like CORBA and J2EE).
There, the common type system is used as the integration mechanism. With
Web Services the only thing we have in common is a way to validate the
structure of messages (XML Schema). No semantics are attached to names.
Services are definitely not objects (instances of a globally agreed

(Please note that I am not suggesting anything about the implementation
platforms or technologies. I am talking about the conceptual model.)

Also, I don't see WSDL as yet another interface description language. We
have IDL for that. Why invent another one? WSDL is about describing
message exchanges.

> I'd have no such guarantee if we really only described and identified
> the message structure contract; again I present the example of
> int sum(int, int)  and  int multiply(int, int). Without the
> semantics, these operations would become one. Do we want that?

That's a big assumption to make. I don't think that WSDL adds or should
add any semantics to web services. The example you give above is one of
the reasons we suggested that "operation" be changed to
"messageExchange" or "interaction" or something similar.

So what if two services have an "operation" called "sum". You have no
guarantee about the application semantics. You don't share a type
system. You don't share implementation. You don't share anything. You
don't have control of what is going to happen when the message to this
"operation" is received. The only thing you know is that you are going
to receive as a result a message with a specific structure as defined by
the WSDL document for that service.

I think your message demonstrates the need for the element "operation"
to be renamed. A big part of the community perceives Web Services as
objects with methods or as components with a collection of operations,
procedures. Also, WSDL is seen as an interface description language
rather than as a contract between a web service and its consumers. My
understanding about web services is different. I may be wrong but
various others agree with the above arguments [1-3].

Best regards,

[1] Web Services are not Distributed Objects (by Werner Vogels):

[2] Secure, Reliable, Transacted Web Services: Architecture and
Composition. Donald F. Ferguson (IBM), Tony Storey (IBM), Brad Lovering
(Microsoft), John Shewchuk (Microsoft). :

[3] Don Box's Service-Oriented Architecture and Programming (SOAP) talk
Part 1 & Part 2:

Received on Sunday, 28 September 2003 16:08:07 UTC