MRDS Framework
MRDS provides a framework for developing robotic applications. At the lowes level it is conceptually similar to the device drivers or BIOS(Basic input/output system) on a PC that provide the interface to the computer hardware. As part of MRDS, Microsoft supplies a variety of different samples that support readily available robots, but it is up to the robot manufaturers to develop and support their own code. However, MRDS provides more than just the equivalent of device drivers.
At higher level, MRDS is similar to an operating system for robots. It is not a true operating system because MRDS services must be hosted on a Windows platform with .NET installed. In many cases this means that MRDS runs on a PC and communicates with the robot via a wireless communication. Alternatively, and embedded PC ,laptop or PDA can be mounted on the robot to run MRDS. This is an important oint: You do not compile MRDS code and load it directly into a robot- there must be a Windows device somewhere, either on the robot or connected to it through a communication link.
MRDS is built on two basic componenets: The Concurrency and Coordination Runtime(CCR) and the Decentralized Software Services(DSS). So, now what is CCR? CCR is a programming model for handling multi-threading and inter-task synchronization, whereas DSS is used for building applications based on a loosely coupled service model. Services can run anywhere on the network, so DSS provides a communications infrastructure that enables services to transparently run on different nodes using all of the same CCR constructs that they would use if they were running locally.
Services--the basic building blocks
The CCR supplies the underlying infrastructure that enables multiple tasks to execute concurrently on a single computer. DSS adds another layer for combining CCR applications, called Services, and at the same time it enables these services to run on completely separate computers and communicate via network.
Microsoft has defined a set of generic contracts that describe commonly used robotics services. These contracts specify the APIs that must be used to communicate with robot components such as motors, sonar sensors, and even webcams. By standardizing these interfaces, the robotics community can share code more easily.
Orchestration
Every MRDS application that you build will contain one or more services. Combining these services and passing messages between them, whether they are located on the same or different computers, is one of the tasks of DSS.Combining services, is a process called partnering, is the job of orchestration services to implement high-level behaviours, such as following a line or solving a maze.