Document 5028581

advertisement
Евгений Марченков
Эксперт по технологиями разработки ПО
Microsoft
Microsoft TechDays
http://www.techdays.ru
Это набор продуктов и сервисов для
простого создания приложений для
роботов на большом кол-ве
разнообразных устройств
Microsoft Robotics Developer Studio 2008
RoboChamps
www.robochamps.com
Microsoft TechDays
http://www.techdays.ru
Runtime environment
Выполнение приложений для роботов,
отслеживание и взаимодействие с другими
приложениями для роботов
Visual Programming Language (VPL)
Язык визуального программирования для
написания приложений для роботов
Simulation environment
Выполнение приложения для роботов в
симулируемых условиях
Microsoft TechDays
http://www.techdays.ru
Decentralized System Services (DSS)
Модель распределенного приложения
Простая, гибкая и сервис-ориентированная
Совместима с существующей Web
инфраструктурой
Concurrency & Coordination Runtime (CCR)
Библиотека для работы с параллельными и
асинхронными потоками данных
Фокус на координацию сообщений
Скрывает традиционные потоки и примитивы
блокировки
Microsoft TechDays
http://www.techdays.ru
Bumper 2
(Sensor)
Motor
Message
Box
(Actuator)
Orchestrator
Infrared
detector
(Sensor)
Bumper 1
(Sensor)
Motor
Приложение – это композиция слабосвязанных
параллельно выполняющихся компонент
Microsoft TechDays
http://www.techdays.ru
Асинхронная модель программирования
Модель параллельного программирования
без ручного управления потоками,
блокировками, семафорами и т.д.
Основана на асинхронных сообщениях
Фокус на координации примитивов
Последовательное выполнение, но без
блокировки потоков, без нужды в callback-ах
Контекст исполнения для сервисов
Изоляция от инфраструктуры
Изоляция от других сервисов
Microsoft TechDays
http://www.techdays.ru
Port
FIFO
Service
Handlers
Port содержит:
State
Очередь (FIFO) содержащую значения определенного типа
Может иметь до 16 очередей различных типов данных
Очередь получателей, которые могут быть запущены по
прибытии сообщения и выполнении определенных условий
Получатель представлен в виде C# делегата
Делегат может быть как именованным, так и анонимным
Сообщения
Сообщения посылаются на определенный порт сервиса
Port<int> myPort = new Port<int>() ;
myPort.Post (42) ;
Arbiter
Реализует общие конструкции параллелизма, такие как join,
choice, interleave
Простыми словами: «По нашим указаниям решает, что где и
как должно обрабатываться»
Microsoft TechDays
http://www.techdays.ru
Dispatcher
Это пул потоков
Можно иметь в своем приложении несколько Dispatcher'ов
Если не иметь вообще ни одного, тогда будет автоматически
задействован "встроенный" ThreadPool (Default pool).
DispatcherQueue
Это просто очередь
«Привязывается» к пулу потоков ("встроенному" или
созданному).
Можно иметь несколько таких очередей
Microsoft TechDays
http://www.techdays.ru
Handler 1
Port1
Arbiter
Port2
Handler 2
Handler 3
Receive (Arbiter.Receive)
Все приходящие в порт данные вызывают заданный
обработчик
Choice (Arbiter.Choice)
В зависимости от типа данных в порту вызывается тот или
иной обработчик
Join (Arbiter.JoinedReceive)
Обработчик вызывается только когда одновременно есть
данные в обоих портах
Dynamic Join (Arbiter.MultipleItemReceive)
Обработчик вызывается тогда, когда в порту скапливается
заданное количество данных
Microsoft TechDays
http://www.techdays.ru
Описание:
Есть метод UpdateUserStatistics, который часто вызывается в
цикле и долго выполняется.
Необходимо распараллелить цикл.
Решение:
static void Main(string[] args) {
using (Dispatcher disp = new Dispatcher(2, "Main Pool")) {
DispatcherQueue queue = new DispatcherQueue("Main Queue", disp);
Port<User> userPort = new Port<User>();
Arbiter.Activate(queue, Arbiter.Receive<User>(true, userPort,
UpdateUserStatistics));
foreach (User user in GetUsersForUpdate()) {
userPort.Post(user);
}
}
}
Microsoft TechDays
http://www.techdays.ru
Выполняется на двухядерном
компьютере
Microsoft TechDays
http://www.techdays.ru
Написание программ для роботов
Для синхронизации параллельных и
асинхронных потоков данных
MySpaces
Часть BackEnd инфраструктуры
Microsoft TechDays
http://www.techdays.ru
Сайт
http://www.microsoft.com/robotics
Newsgroup
http://msdn.microsoft.com/robotics/
Wiki
http://channel9.msdn.com/wiki/default.aspx/Ch
annel9.MSRoboticsStudio
Microsoft TechDays
http://www.techdays.ru
© 2007 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.
Microsoft TechDays
http://www.techdays.ru
Download