Why Architects should care about Robots...
Friday, April 25, 2008 12:22 AM
Today, Marc Mercuri, an architect in my team, launched one of the most exciting things I've seen for sometime: RoboChamps
RoboChamps is an online, virtual robotics competition that makes use of Microsoft Robotics Developer Studio 2008 and Microsoft Visual Studio 2008. The concept of the competition is to program a series of robots to complete a number of challenges, which include a maze, the surface of Mars, and an urban environment - all of which set in a virtual environment so that you don't need specialized robotics hardware. When you've completed the challenge, you can upload your solution to the RoboChamps site - and the winners of the leagues will face a showdown at PDC in October.
So, I can hear the question now - "Sounds good, but why should architects care about robots?" On the surface, it's difficult to make the connection, but I would encourage you to dig deeper into some of the components included with MRDS 2008, namely the Concurrency and Coordination Runtime (CCR) and the Decentralized Software Services (DSS). CCR provides multicore, concurrent programming support for the .NET Framework, and DSS enables you to take these concurrent components and offer them as lightweight services in a decentralized environment. If you have chance to download the MRDS examples you'll see how they make use of both technologies.
The answer to the question therefore is how we can make use of these technologies and new concepts in software architecture - how can we use CCR to distribute workload across multiple cores, and what is possible with DSS across services on multiple machines? I believe that these new tools will ultimately lead to several new patterns, especially in front end web farm scenarios. In the meantime however, I look forward to seeing if you can get your robot out of that maze :)