W3C home > Mailing lists > Public > www-ws-arch@w3.org > January 2004

RE: Proposed replacement text for Section 1.6

From: Champion, Mike <Mike.Champion@SoftwareAG-USA.com>
Date: Mon, 12 Jan 2004 22:22:56 -0500
Message-ID: <BDD579D96530CA4BAAAD5D9549BDE77901457CD6@resmsg01.sagus.com>
To: www-ws-arch@w3.org

 

> -----Original Message-----
> From: Cutler, Roger (RogerCutler) 
> [mailto:RogerCutler@chevrontexaco.com] 
> Sent: Monday, January 12, 2004 9:45 PM
> To: Champion, Mike; www-ws-arch@w3.org
> Subject: RE: Proposed replacement text for Section 1.6

> Sure, the grid connection is a little worrying, but surely 
> there is a way to put this that one can see the difference 
> between big honkin objects that are throwing events all over 
> the place -- and a little innocent grid?

My main objection here is that the well-known limitations of distributed
object systems apply whether they are implemented with proprietary RPC,
CORBA, or SOAP/WSDL -- it's not the web service technologies that make
distributed OO less appropriate for SOA for many scenarios, it's the
fundamental criteria for successful distobj systems not being met.

So, I'd be happy to say something like:  

Distributed object systems have a number of architectural challenges [the
Waldo et al paper is the canonical reference -
http://research.sun.com/techrep/1994/smli_tr-94-29.pdf].  These include:

- Problems introduced by latency and unreliability of the underlying
transport
- The lack of shared memory between the caller and object
- The numerous problems introduced by partial failure scenarios
- The challenges of concurrent access to remote resources
- The fragility of distributed systems if incompatible updates are
introduced to one side or the other (this article doesn't discuss that)

These challenges apply irrespective of whether the system is implemented
using COM/CORBA or Web services technologies.  Web services are no less
appropriate than the alternatives if the fundamental criteria for successful
distributed object architectures are met.  If these criteria are met, Web
services technologies may be appropriate if the benefits they offer in terms
of platform/vendor neutrality offset the performance and implementation
immaturity issues they may introduce.

Conversely, using Web services technologies to implement a distributed
system doesn't magically turn a distributed object architecture into an SOA.
Nor are Web services technologies *necessarily* the best choice for
implementing SOAs -- if the necessary infrastructure and expertise are in
place to use COM or CORBA as the implementation technology and there is no
requirement for platform neutrality, using SOAP/WSDL may not add enough
benefits to justify their costs in peformance, instability due to the
immaturity of implementations, etc.

The bottom line is that the choices of SOA vs distributed object
architectures and COM/CORBA vs web services implementation strategies are
somewhat orthogonal, and the right choice for a specific application depends
on a variety of factors that must be judged on a case by case basis.  We can
say that in general SOA and Web services are most appropriate for
applications a) that must operate over the Internet where reliability and
speed cannot be guaranteed; b) where there is no ability to manage
deployment so that all requesters and providers are upgraded at once; c)
components of the distributed system run on different platforms and vendor
products; and d) there is an ability to build from the ground up using an
SOA-aware architectural style or an ability to incrementally rebuild
components using SOA principles and WS technologies.

[There's a guy on java.net who pretty vigorously disagrees with this last
paragraph, I believe.  See the lengthy comments/response/counter-response
threads on the article at http://weblogs.java.net/pub/wlg/891 ] 

- 
> 
Received on Monday, 12 January 2004 22:22:57 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 3 July 2007 12:25:24 GMT