Feature Summary

Soya is still at a relatively early development stage. Consequently, not the full spectrum of the SSDL specification has been implemented.

The following are the key features of Soya to date:

  • 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 WCFs 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

Limitations

A lot of SSDL features are still missing in Soya. For a list of limitations that we are currently aware of, please check out the project's issue tracker.