Fast Takes - Web Services
-thoughts on service orientated architectures


Thursday, October 02, 2003

Headers, bodies and namespaces  

In More on REST vs. SOA; who's more loosely coupled? Mark makes some interesting arguments. The key difference I have with REST versus SOAP is in the headers. Turning the WSDL for the body of SOAP into "" allows very loosely coupled messaging with SOAP. SOAP and WSDL sometimes get tangled together into the mythical publish-find-bind trinity. WSDL is a common language for describing the interface to a service but does it need to constrain the implementation? The advantage of using messaging or data passing interfaces based on XML Schema is that they are evolvable i.e. loosely coupled. WSDL should not be considered a tightly coupled straight jacket rather a common language for describing interfaces. How we use the interfaces determines the degree of loose coupling.

The major advantage that SOAP has over REST is namespaced headers. To do truly loosely coupled and sophisticated messaging you need complex namespaced metadata. This is what enables loose coupling in a complex SOA architecture used by many different organizations. If you have a single organization using an SOA it is possible to get by with a single flat namespace. Implementing complex features between several organizations such as guaranteed messaging, business policy, and compensation transactions requires more sophistication than a flat namespace can provide.

While headers can be implemented in REST the key is reducing friction by getting agreement between implementations. We have managed to reduce the Tower of Babel to 2-3 implementations at the higher end of the stack. While this is not perfect it is better than a large n and being namespaced they will not collide. I will take that anytime over making it up as I go along.

Comments []

posted by John McDowall | 6:32 PM


Enterprise Architect - 10 Rules for Services Design  

Just published a more refined version of the Rules.Enterprise Architect - 10 Rules for Services Design (registration required).

Comments []

posted by John McDowall | 5:52 PM


links
archives