Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Microsoft Robotics Studio

????????????????????????????
Disponible hoy…
Robotic Studio
 CCR
  Concurrency and Coordination Runtime
 DSS
  Decentralized Software Services
 VPL
  Visual Programmin...
Que es una aplicación de
Robótica?


                                        Bumper 2
                 Motor              ...
Coordination and Concurrency Runtime

CCR
CCR = 3 en 1
var portInt = new Port<int>();

portInt.Post(10);
Console.WriteLine(portInt.ItemCount);

Dispatcher dispatche...
Performance ?
 Service-to-Service message throughput:
   Same process (with full cloning): 50,000
   msgs/second
   Cross ...
CCR Primitives
 Single item receiver
    Executes code when a message arrives
 Choice arbiter
    Chooses one receiver (jo...
Choice
PortSet<int, string> port = new PortSet<int, string>();

Activate(
   Arbiter.Choice(port, MyIntHandler, MyStringHa...
Join
Port<double> balancePort = new Port<double>();
Port<int> depositPort = new Port<int>();

Activate(
   Arbiter.JoinedR...
Declarative Coordination for
 Services
[ServiceHandler(ServiceHandlerBehavior.Concurrent)]
public IEnumerator<ITask> GetHa...
© 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be...
Upcoming SlideShare
Loading in …5
×

(18.03.2009) Cumuy Invita - Iniciando el año conociendo nuevas tecnologías - PPT 1

1,936 views

Published on

(18.03.2009) Cumuy Invita - Iniciando el año conociendo nuevas tecnologías - PPT 1

  • Be the first to like this

(18.03.2009) Cumuy Invita - Iniciando el año conociendo nuevas tecnologías - PPT 1

  1. 1. Microsoft Robotics Studio ????????????????????????????
  2. 2. Disponible hoy…
  3. 3. Robotic Studio CCR Concurrency and Coordination Runtime DSS Decentralized Software Services VPL Visual Programming Language VSE Visual Simulation Environment
  4. 4. Que es una aplicación de Robótica? Bumper 2 Motor (Sensor) Message Infrared Box Orchestrator detector (Actuator) (Sensor) Bumper 1 Motor (Sensor)
  5. 5. Coordination and Concurrency Runtime CCR
  6. 6. CCR = 3 en 1 var portInt = new Port<int>(); portInt.Post(10); Console.WriteLine(portInt.ItemCount); Dispatcher dispatcher = new Dispatcher(); DispatcherQueue taskQueue = new DispatcherQueue(“cola", dispatcher); Arbiter.Activate( taskQueue, portInt.Receive(delegate (int item) { Console.WriteLine("Received item:" + item); } )); // Continúa la ejecución en paralelo
  7. 7. Performance ? Service-to-Service message throughput: Same process (with full cloning): 50,000 msgs/second Cross node, cross machine: 3,000 msgs/sec Numbers from dual core 1.8GHz, 2GB RAM
  8. 8. CCR Primitives Single item receiver Executes code when a message arrives Choice arbiter Chooses one receiver (join or single item) from many, across different ports, executes only first one with conditions met, discarding others Join expressions Static join expressions Dynamic over a runtime specified number of ports and messages Interleave arbiter Teardown group, Concurrent Group, Exclusive Group
  9. 9. Choice PortSet<int, string> port = new PortSet<int, string>(); Activate( Arbiter.Choice(port, MyIntHandler, MyStringHandler) ); void MyIntHandler(int i) { Console.WriteLine("Received: " + i); } void MyStringHandler(string s) { Console.WriteLine("Received: " + s); }
  10. 10. Join Port<double> balancePort = new Port<double>(); Port<int> depositPort = new Port<int>(); Activate( Arbiter.JoinedReceive<int,double>(true, depositPort, balancePort, delegate(int b, double d) { balance.post(b + d); }) );
  11. 11. Declarative Coordination for Services [ServiceHandler(ServiceHandlerBehavior.Concurrent)] public IEnumerator<ITask> GetHandler(Get get) { get.ResponsePort.Post(_state); yield break; } [ServiceHandler(ServiceHandlerBehavior.Exclusive)] public IEnumerator<ITask> UpdateHandler(Update update) { _state.CurrentResult += update.Body.Value; update.ResponsePort.Post(new UpdateResponse()); yield break; }
  12. 12. © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

×