Clemens Vasters has a post that touches on something I've been thinking about for some time. Basically, he shows 2 examples of messages representing a transfer of funds. In one, the account identifier is in the body of the message. In the other, it's in a header that's part of an endpoint reference. His point is that, in the latter case, the account identifier is like an the implicit this pointer used in an OO system. This isn't surprising. At the last PDC, someone asked Don whether an EPR could be used like a CORBA IOR. The answer was yes, that was part of the design. It wouldn't surprise me at all to see this same mechanism used for Indigo/COM+ integration, though I don't know any of the details.
The much debated WS-Transfer spec really brings this point into sharp relief. The WS-Transfer Get request message has an empty body, an wsa:Action header containing the Get URI, and a wsa:To header that identifiers the target resource. Up to now, most people have thought of the To header as identifying a service, so really what WS-Transfer says is every resource is a service. But doesn't that conflict with the notion that services are relatively coarse-grained?
Putting that theoretical argument aside, there is a very practical issue here. If you expect a WSDL to tell you the (logical or physical) address of a service, what happens if you have literally thousands of services in a process? How do you know what all the legal To values are? If you make a request for a list of valid To URIs, how do you know which ones can be used with which portTypes?
In short, while I agree that you can make services look like objects, is that really where we want to go? No.
Posted
Oct 27 2004, 07:36 PM
by
tim-ewald