World Wide Webber


My Books
REST in Practice: Hypermedia and Systems Architecture
Amazon:
US, UK
Developing Enterprise Web Services by Sandeep Chatterjee and Jim Webber
Amazon:
US, UK,
Now available: Korean Edition

My Bookshelf
Programming Clojure by Stuart Halloway

RESTful Web Services by Leonard Richardson and Sam Ruby
How SSDL Stacks up against the W3C/OASIS Contract Metadata Stack
Posted: 25 January 2006 @ 03:56 UT from Brisbane, Australia
Last updated: 15 February 2006 @ 01:22 UT

Since our recent IEEE Internet Computing article on SSDL, there's been renewed interest from the community in the ideas. One thing that I've found helps folks to understand SSDL is to couch it in terms of things with which they're already familiar, which in this case is the contract metadata stack of the familiar WS-* standards from W3C and OASIS: WSDL, WS-BPEL, and WS-CDL. The following diagram illustrates (somewhat crudely) where the various SSDL components are aligned with the technologies from the OASIS/W3C initiatives.

The bottom-most layer of the stack is the same for both SSDL and the W3C/OASIS stack - typically TCP/IP, queues and so forth. SSDL is unconcerned about such details providing there is a SOAP and WS- Addressing binding to the chosen transport. Things change the next layer up the stack however. While WSDL is agnostic about the application protocols it can describe (providing there is a WSDL binding for a given application protocol over a given transport such as SOAP over HTTP), SSDL unashamedly exclusively meant for SOAP (on the sound assumption that SOAP is the defining characteristic of any Web Service).

The Core SSDL layer is where SSDL describes schemas, messages, and endpoints which is broadly similar to the WSDL types, message, (SOAP) bindings, and service abstractions. If we consider the MEP framework (which is one of the four possible frameworks that has been created so far for SSDL) as well, then the result is a SOAP-only equivalent of WSDL since that framework mirrors the operation and MEP abstractions from WSDL 2.0.

However SSDL doesn't necessarily stop at being a simpler, SOAP-centric replacement for WSDL. One of the things that WSDL doesn't do is describe the protocol state machine that a Web Service supports. That is, WSDL doesn't provide any metadata for the ordering of operations (leaving aside for the moment that the operation abstraction is deeply flawed in our message-oriented view of service interaction). Instead that role is left to higher-level specifications like the (deprecated) WS-Conversation Language and (abstract) WS-BPEL, where the higher-level framework can be used to show ordering between operations, decision points in the protocol state machine, optional exchanges and so forth. Therefore (abstract) WS-BPEL can be used to describe how a particular interaction must proceed from the point of view of an individual service.

Correspondingly, SSDL provides two equivalent mechanisms for describing Web Service orchestration: Rules Framework and CSP Framework. The Rules Framework is based on the notion of preconditions which guard the sending and receiving of messages by a Web Service. That is, the orchestration is defined in terms of what a Web Service must have sent and/or received before it can legally send/receive a given message. The CSP Framework defines a Web Service in terms of one or more sequential processes which may communicate with each other. Messages which are sent or received represent the events in CSP processes which can be ordered by choice, sequence, parallel, etc operators which is very much akin to the WS-BPEL model, but based on the message rather than operation abstraction.

The uppermost layer is probably the most interesting of the entire stack. It shows WS-CDL on the W3C/OASIS side and the Sequential Constraints (SC) Framework on the SSDL side. Choreography is concerned with multi-party protocols, and both WS-CDL and SSDL-SC are no exceptions. What this means is they are able to describe not only the interactions that a single Web Service supports, but the interactions that are expected for all Web Services in a composite application - that is, a complete multiparty description of the end-to-end protocol that supports a given process. The key differentiator between the two approaches is simply that WS-CDL builds on WSDL 1.1 and 2.0 whereas SSDL-SC builds on core SSDL.

So, given that tooling could well abstract out the complexity in the W3C/OASIS stack - a key point in favour of the simpler SSDL model - it begs the question why would one bother with SSDL at all? The reasons, I believe, are threefold:

  1. Simplicity - SSDL is arguably far simpler and more cohesive than the W3C/OASIS stack;
  2. Extensibility - SSDL can be extended to create arbitrary protocol framework descriptions to suit a given domain. For instance WS-BPEL and WS-CDL could both be easily re-codified as SSDL Protocol Frameworks;
  3. Provability - CSP, Rules, and SC are abstractions of underlying formal methods. That is, a contract described in any of these frameworks can be reduced to a formal model and checked for undesirable properties like deadlock and starvation. The Pi-Calculus based SC framework is worthy of a special mention here since it makes entire business processes amenable to formal verification - a critical point where value transactions are to be processed!

Of course the practicalities of the situation with huge existing investments in the W3C/OASIS stack means that SSDL will most likely remain nothing more than a toolkit for academics and geeks.  Nonetheless SSDL has shown that it is possible to derive additional value from the contract metadata stack without having to add complexity. If future version of the orthodox contract metadata languages espouse at least some of those same values, then our work will not have been in vain.

Thanks to Josh and Dilip for the feedback

Update: Steve Ross-Talbot pitches in with some useful commentary from the WS-CDL perspective on the comments page.

Comments:
#

Shifting from operation-oriented (i.e. oo-oriented or service oriented) software engineering to message- (i.e. event-) oriented software engineering is the key to enable the construction of simpler, more reliable, more robust and automatically verifiable software systems. SSDL is an example of the powers and strengths of this "new" paradigm.

#

It is perhaps overstating the case that WS-CDL is dependent on WSDL. It is not. If you check how roles are described the bit that points to a WSDL is in fact optional. Therefore WS-CDL is applicable in a wider context than just WSDL. 

Also WS-CDL provides all of the formalism for model checking and liveness properties and this work has been done in the public eye and is available. 

Tools are now available for WS-CDL so that you can start using it (www.pi4soa.org). I'm unsure at this stage as to what value the SC framework has over and above what WS-CDL and tools provide. Perhaps the author can explain and give some sort of use case to support such an explanation.  

The Choreography WG would be most happy to collaborate in some form as it has always been. 

Best regards 

Steve Ross-Talbot

#

Hello Steve, 

If you look at the problem domain that SSDL is trying to solve (SOAP Web Services) then the logical equivalent stack is as I described above (WS-CDL->WSDL) so I'd stand by this arrangement. I make no comments about the utility of WS-CDL outside of Web Services - that is outside the scope of SSDL. 

We're not trying to upset the WS-Chor group with SSDL, and indeed if you look to the other 3 frameworks we released you'll see that they are (more or less) aimed at the WSDL rather than CDL space, though clearly both CDL and SC have similarities being based on the same underlying Pi calculus :-) In fact it has been noted previously that CDL could readily become an SSDL protocol framework in a very similar way to how it integrates with WSDL today. 

What SSDL provides which is different to WS-CDL is: 

1. SOAP specific (by design, since SOAP is the message transfer mechanism for Web Services); 

2. Single framework for all messaging metadata (no need to pull in other moving parts like WSDL); 

3. Formal underpinnings of 3/4 of the available frameworks (including SC of course), to enable formal reasoning about protocol correctness (if that is your thing). 

SSDL is also in the open (albeit as a research project) and the mailing list (and its archive) is public. It is not however underpinned by a standards body as is WS-CDL. Furthermore there is no-one that I am aware of who has any commercial interests (or conflicts thereof) with SSDL so it really is an open and friendly community of people exploring interesting and potentially useful ideas in the contract metadata space. 

In terms of the value of SSDL, I think the simplicity and SOAP-centricity are key, thought clearly WS-CDL and SSDL SC are equivalent insofar as they have the same formal underpinnings (ignoring the other protocol frameworks for now). 

I think I can safely say that the small sleepy SSDL community would be very happy to collaborate with the CDL community - it has certainly been happy to collaborate with others in the wider Web Services community in the past. What kind of collaboration might you suggest as a mutally beneficial first step? 

Jim

#

The best form of collaboration would be to look for a common point between the communities. If WSCDL sits higher then we could look at generating from WSCDL to SSDL. Or of course the other way around. Best way to kick something off is with a real use case and ideally with a willing user. 

Let's take this offline and do stuff by direct email and see where we end up. 

Cheers 

Steve T 

p.s. Sorry for the very long delay. Just busy and hectic.

Trackbacks:
-
A great post by Jim summarizing SSDL.
Author Name:
Email:
Author URL:
Comment:
Antispam:
Please type the following string (note that if the strings don't match, your comment will be lost... sorry!): 'GHVI'.
 
Recent entries

Recent comments

Feeds:
RSS 2.0 Atom