Archive for December, 2008|Monthly archive page

Unnecessary ghosts from the past

I have recently read a book about the last big cholera epidemic in London which leads to one of the first great data visualisations, Snow’s Map. He counted the number of deaths at every location so this is how he found the center of the epidemic at the Broad Street pump and discovered that the contaminated water was responsible. Currently cholera is back in Zimbabwe on large scale. The most important thing of the treatment is simply clean water, which seems not to be available any more in a country which was one of the highest developed ones before 1980 and destroyed by the criminal regime of Robert Mugabe. It is time that the neighbour countries take care of this mess.

How silly can they be?

The french presidency seems not to have understand that they put with their decision (see also this blog entry) in favour of the old car industry not only the environment targets at stake but also the industry by itself. The old car industry is dieing, certainly not all as fast as GM, and has to reinvent itself, which is possible, for providing electric or hybrid cars as well as using the chance to be in a leading role in this new market. Yes, the old management is sponsoring, aka lobbing, the current decision makers, but at least the EU parliament should be aware that by voting against this agreement they will safe a lot more jobs in the near future. 
Changing old industries needs the force by public or goverment otherwise they will overlook the point of no return and die.

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.