|
|
![]() |
Microsoft Robotics Studio |
|
Microsoft Robotics Studio es un entorno de desarrollo orientado a la creación de aplicaciones de robótica, diseñado en un modelo de programación grafico basado en flujo de datos.
Las funcionalidades de Microsoft Robotics Studio son:
Los principales componentes de Robotics Studio son:
Microsoft Robotics Studio está diseñado para ser una plataforma de desarrollo genérica que pueda emplearse con gran diversidad de hardware y fabricantes de robots. Existen multiples servicios de Robotics Studio que funcionan directamente con los modelos de robots más populares.
Una aplicación en Robotics Studio es una coordinación de diversos servicios distribuidos y asíncronos, la coordinación se produce en la comunicación asíncrona entre todos estos servicios, por ejemplo:
Por ejemplo, si el servicio de parachoques detecta un impacto, éste envía un mensaje al servicio controlador, que a su vez decidirá qué mensaje enviar al servicio de control de ruedas para realizar la maniobra oportuna.
Este escenario se complica cuando el número de sensores y de actuadores aumenta. La operación de los servicios asociados a los sensores y actuadores sigue siendo similar al ejemplo puesto anteriormente, sin embargo, el servicio coordinador (o servicios coordinadores) debe manejar mucha información en tiempo real y aplicar complejas políticas de control.
El soporte de tiempo de ejecución o Runtime de Robotics Studio consta de dos componentes principales que hacen posible la construcción, supervisión, despliegue y funcionamiento de un gran rango de aplicaciones. Estos dos componentes son el CCR (Concurrency and Coordination Runtime) y el DSS (Decentralized Software Services).
El CCR permite la coordinación concurrente y asíncrona del flujo de ejecución abstrayendo al programador del uso de hilos, semáforos y otras técnicas de más bajo nivel para el aseguramiento de la exclusión mútua o la prevención del interbloqueo. Además plantea un modelo de programación asíncrona que facilita y optimiza la explotación de un entorno de ejecución paralelo o multihilo. El CCR es un componente DLL que se ejecuta en el entorno .NET y accesible desde cualquiera de los lenguajes de programación disponibles en .NET.
El DSS combina la arquitectura tradicional Web (HTTP) con elementos de las nuevas arquitecturas orientadas a servicios Web (SOAP). La arquitectura resultante está completamente basada en servicios que se coordinan entre sí para crear aplicaciones distribuidas. Por lo tanto, una aplicación desarrollada en Robotics Studio es un conjunto de servicios que se coordinan entre sí. El objetivo es promover la simplicidad, transparencia y la interoperabilidad. Las composiciones de servicios se pueden usar sin importar si estos servicios están funcionando dentro del mismo nodo o a través de la red. El resultado es una plataforma flexible capaz de soportar un amplio rango de aplicaciones. El DSS utiliza los protocolos HTTP y DSSP.
DSSP es un protocolo propio que ofrece DSS y se encarga de la mensajería entre servicios. Los servicios mantienen un estado durante el periodo de vida de la aplicación y se ejecutan en nodos DSS, que son los encargados de posibilitar la comunicación entre todos los servicios.
Introducción a C.C.R.: Concurrency and Coordination Runtime Introducción a DSS: Decentralized Software Services Información general:
|
Microsoft Visual Programming Language (VPL) is an application development environment designed on a graphical dataflow-based programming model rather than control flow typically found in conventional programming. Rather than series of imperative commands sequentially executed, a dataflow program is more like a series of workers on an assembly line, who do their assigned task as the materials arrive. As a result VPL is well suited to programming a variety of concurrent or distributed processing scenarios.
Concurrency and Coordination Runtime (CCR) is a lightweight runtime (and a key component of Microsoft Robotics Studio) that provides message oriented programming model enabling fine grained concurrency and complex coordination of messages without the programmer having to deal with the overhead of traditional asynchronous programming.
Decentralized Software Services (DSS) sits on top of CCR and provides a lightweight, REST oriented application model that is particularly suited for creating Web-style applications as compositions of services running in a distributed environment. Services are isolated from each other, even when running within the same node and are only exposed through their state and a uniform set of operations over that state. |
|
|