I read in Arvindra Sehmi’s blog that Tyco Software House implemented a system using CCR (Concurrent and Coordination Runtime), the library inside Microsoft Robotics. In his article ARCast.TV – Nice Example of CCR Adoption in the Enterprise, Arvindra shows the video where Tyco dev explain how they can process a big load of messages, using asynchronous processing.
I would like something more specific about the implementation of their system, but it’s interesting to see that Microsoft Robotics is used in enterprise applications.
Recently, Arvindra have commented about using DSS/CCR beyond robotics:
I don’t have more info about those use cases, I hope there will be soon more details on those works.
Last year, I wrote and publish an example, AjMessage, that interchanges async messages, using WCF as the communication between two nodes in a grid:
At the same time, I wrote a version that uses CCR and DSS, that I’ve never published. I plan to polish and publish the code, to show that we can use CCR internally, to enqueue messages in process, and DSS to send message to other nodes. The core of the system could be hosted in a WCF application or in a DSS hosts. If we have more nodes in the grid, the application should run without recoding. I could write the web crawler, as a proof of concept app; currently it is using DSS/CCR/VPL:
But VPL is limited to distribute jobs to previously known machine. But let imagine we have more available machines at any moment. We could discover the new machines, and send the messages with job information to any node in the grid, so the message would be processed by any machine that accepts it. I wrote new examples, managing multiple machines in runtime:
Now, in the latests bits of Microsoft Robotics (July CTP of Microsoft Robotics Developer Studio 2008), there is support to DSS Node discovery using UPnP (Universal Plug and Play).
In my opinion, the async messaging model in a grid implementation can be used in many creative ways. It’s an interesting field to explore.
Angel “Java” Lopez