Web services: Is it CORBA redux. Reasonable article covering some similar issues as one fell swoop. Though for me this article confuses 2 ideas a little but I guess thats for brevity.
Whether a web service client or server views SOAP messages as an XML document, or whether it uses the WSDL definition to auto-bind it to objects, is up to it. Its one of the great things about SOAP, on the wire its just XML and its up to you how you deal with it.
This article really seems to be claiming that RPC is not that scalable and that asynchronous web services is the way to go. I agree with this. The current batch of SOAP tools that auto-generate SOAP bindings from interfaces or EJBs or whatnot, typicaly make synchronous RPC web services and clients.
Though there are times when RPC is necessary. Also an RPC can still use asynchronous processing.
e.g. I may use a synchronous RPC web service to perform some banking operation, like transfer money. A good web service implementation would do as little work as possible synchronously, then do the rest asychronously, such as by sending a JMS message to an internal server to instruct more work to take place later on.
So by using messaging, you can often make synchronous things more scalable and more asynchronous despite the RPC protocol. This trick usually works for writes or submitting operations and really doesn't work for queries if the client is synchronous.
Finally going back to the paper one fell swoop, minimising the number of networking interactions is always a good thing. So sending things in one fell swoop, rather than than over lots of little conversations, can help greatly. Typically this kind of course grained messaging doesn't fit automatically with typical distributed object approaches which are based on fine grained (method call level) interactions.
So I do favour taking a document centric approach to web services, and binding the documents to your objects, rather than just turning your objects, auto-magically, into web services.
6:44:05 PM
|