Soya: An SSDL Framework implementation

A tear almost went down my face. I am so happy to see Patric‘s work finally out there. Patric says:

After almost 4 months of development I’ve uploaded the first release of Soya yesterday night =)

Please feel free to browse through the

web site

, download the

latest release

, check out the

source repository

, join the

mailing list

, report


, request

new features

, …

Soya is an SSDL engine implementation. It currently only supports the MEP SSDL Protocol Framework (the alternative to the WSDL 2.0 MEPs) but I hope the open source community will be interested in making one of the other protocols frameworks a reality. Imagine the possibilities… full support for capturing message-oriented conversations through a SOAP-focused, message-focused description language. No more verbs/methods/procedures/etc., no more leaks of programming abstractions through a service’s boundaries.

Patric built Soya around WCF and he has done a great job at providing an attribute-driven, message-oriented programming model.* Have a look at the “Getting Started” guide to get an idea. Here’s a list of Soya features from sourceFORGE:

  • Based on the Windows Communication Foundation (WCF)
  • Straightforward C# attribute-oriented programming model:
    • less code and hence less scope for error introduction
    • more easily maintainable due to single source location
    • seamless integration with WCF’s programming model and provision of familiar idioms to existing C# programmers
  • Programming abstractions that foster SSDL’s underlying message-oriented model
  • Deployment-time generation and validation of SSDL contracts from C# attribute meta-data
  • Run-time validation of SOAP messages according to SSDL contract (XML schema, message structure, message position in conversation)
  • Message correlation and conversation state maintenance purely based on WS-Addressing standard headers (i.e. MessageId, RelatesTo)
  • Intelligent message dispatching to service methods based on conversation state
  • Public API for sending messages makes Soya suitable to be used by both clients and servers
  • HTTP GET meta-data retrieval using ?ssdl convention
  • Implementation of the MEP protocol framework (programming model and runtime)
  • Extensible architecture that allows further protocol frameworks to be plugged in

Well done to Patric. He has done an excellent job and he has kept the small momentum around SSDL going.

 I forgot to mention the potential relationship between a description language like SSDL, Soya, and workflow technologies like Windows Workflow, as we discussed in our chapter in the recently released book on “Workflows for e-Science: Scientific Workflows for Grids”.


* I wish the book chapter


and I wrote on message-oriented programming abstractions for an upcoming SOA book in 2004 was published at the time we were told it would. We now hear that it will appear this year in 2008 but I think it’s too late as it’s going to be stating the obvious; not to mention the fact that the world has moved on beyond the SOA hype.