W3C home > Mailing lists > Public > www-ws-desc@w3.org > July 2004

RE: Action Item 2004-07-01 Solution to 168/R114

From: Jim Webber <Jim.Webber@newcastle.ac.uk>
Date: Thu, 15 Jul 2004 02:18:19 +0100
Message-ID: <37E80E80B681A24B8F768D607373CA800103DC03@largo.campus.ncl.ac.uk>
To: <www-ws-desc@w3.org>

Hello Prasad:

> Operations are imaginary? Why even have an interface then? 
> Operations help describe the specific function offered by an 
> interface and group requests and responses per the MEPs. Why 
> does it violate encapsulation? How is this different in 
> concept to method in a class (e.g. java)?  That is well 
> accepted encapsulation. 

Perhaps my wording was wrong, I'll use Gudge's version: operations are
at the *WSDL level* and the existence of such at that level is not
indicative of something with the same name that gets invoked at a higher
level.

You also ask how is this different from encapsulating fields in Java? It
doesn't unless you let the information on the back-end class that
processes these message exchanges "leak" into the WSDL contract. That's
my worry (and it may be a best practice worry more than anything) that
you don't let the details of your implementation pollute your WSDL
contract.
 
> Yes, you can also do everything in assembly language(or 
> binary for that matter) then why have anything else at a 
> higher abstraction. You need to put the messages in context 
> so that you are not required to design your messages in unique way.
> This is simply making the life hard for everyone.

Business forms and messages are designed in a way to make them unique
anyway. I tend to put things like date, customer reference, national
insurance number, etc in forms for this reason. 

It would be quite unusual to mark the message with an operation name to
achieve the same thing in the real world, would it not?

> If this really the way you design and maintain things, you 
> are right it does not matter if you had operations or not. 

I design Web Services to be loosely coupled and not expose any of their
internal details to any consumers. I enable loose coupling through
sensibly designed message exchanges and advertise and enforce those
contracts through WSDL.

Given that neither service nor consumer knows anything about the other
apart from the message exchanges in which they will participate they are
free to evolve their implementations without breaking the other. 

Had I chosen to advertise, for example, the name of the dispatcher for
my service then that is one aspect that I am no longer free to evolve.
This is the thin end of the wedge.

> Glad I don't buy software from you :)

Oh well, good job I don't sell any then :-)

Jim
--
http://jim.webber.name 
Received on Wednesday, 14 July 2004 21:16:46 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:58:32 GMT