Microsoft CCR and DDS, Part 2

Using the CCR Toolkit Microsoft also presented a new framework for distributed service environment, Decentralized Software Services (DSS). The framework provides the hosting environment for services, a new REST-oriented, SOAP based communication protocol and contract based programming model not dissimilar to the WCF framework. Services basically have a unique service- and contract identifier, multiple instances of a specific service will be identified by an additional UUID. Both descriptions are directly accessible via HTTP. Every service defines exactly one main CCR port which is responsible to handle the DDS protocol commands as well as the standard HTTP commands. The state holder of the service is explicitly defined and can be also accessed via HTTP which allows it to provide a web based interface to any service instance. DSS also provides a publish/subscribe service which can be used to communicate state changes between services. DSS also provides distributed queries based on LINQ for accessing the state as well as the actual message information of an particular service or contract. DSS also can use UPnP for discovering services.

I have only played a little with the tutorial examples and what these are my impressions:

  • Using CCR ports as accessors of the service the handling of the protocol is very simple also in the case of concurrent access. And debugging is actually a lot easier as in traditional concurrency structures …
  • Because services can provide their contract and description as plain HTML page as well as their state, it is a very convenient way to have a human readable monitoring interface available
  • Similar to WCF the contract definition for data and the service conversation is very simple as is the rest of the service implementation
  • Hosting of services is very simple and can be easily embedded
  • Working with the CCR is a new experience, without events or callback delegates

Because DSS is used for nearly all functionality provided by the Robotics Developer Studio, there a lot of examples how to interact with unmanaged code, GUI application as well as complex service choreography and the Visual Programming Language (VPL), which allows it to build really complex applications based on the DSS infrastructure.

So the only downside is that the CCR and DSS libraries can only be distributed if you by the separate license, which is not really expensive, and the feature to build actual distributable assemblies out of a VPL application is only available in the Standard Edition of the Robotics Studio. Either way, this is a very elegant and impressive new toolkit which is maybe the better the best solution for SOA architectures on the .Net platform today, at least better suited as Remoting or WCF.


No comments yet

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: