Microsoft TechDays Евгений Марченков Эксперт по технологиями разработки ПО Microsoft.

Презентация:



Advertisements
Похожие презентации
Microsoft TechDays Евгений Марченков Эксперт по технологиям разработки ПО Microsoft.
Advertisements

Microsoft TechDays Евгений Марченков Эксперт по технологиям разработки ПО Microsoft.
Microsoft TechDays Людмила Шайкина Quarta Consulting
Microsoft TechDays Павел Маслов MVP, Directory Services.
Microsoft TechDays Евгений Марченков Эксперт по технологиям разработки ПО Microsoft.
Microsoft TechDays Николай Миляев консультант Microsoft.
Microsoft TechDays Леонид Шапиро MCT ЦКО «Специалист»
Microsoft TechDayshttp:// Коршиков Андрей Фёдорович ведущий инженер-программист ЗАО «НИПИ «ИнжГео» MCT, MCITP, MCPD.
Microsoft TechDays Константин Трещев MCITP: Enterprise Administrator
Microsoft TechDays Золотовицкий Аркадий Директор по производству «Интеллектуальные системы»
Новые продукты Microsoft для повышения качества и эффективности образования Амит Миталь Старший вице-президент Microsoft по развитию социальных проектов.
Microsoft TechDays Марат Бакиров Эксперт по разработке ПО Microsoft
Microsoft TechDays Заграничнов Александр Microsoft.
Microsoft TechDays Павел Дугаев Руководитель проектов Вебзавод
Microsoft TechDays Богомолов Алексей MCP
Ромуальд Здебский Microsoft.
Microsoft TechDays Виталий Дильмухаметов
Microsoft TechDays Ксения Хмелёва Специалист по технологиям Microsoft.
Microsoft TechDays Никоноров Евгений разработчик EPAM Systems.
Microsoft TechDays Панов Никита Технический инженер Microsoft.
Транксрипт:

Microsoft TechDayshttp:// Евгений Марченков Эксперт по технологиями разработки ПО Microsoft

Microsoft TechDayshttp:// Это набор продуктов и сервисов для простого создания приложений для роботов на большом кол-ве разнообразных устройств Microsoft Robotics Developer Studio 2008 RoboChamps

Microsoft TechDayshttp:// Runtime environment Выполнение приложений для роботов, отслеживание и взаимодействие с другими приложениями для роботов Visual Programming Language (VPL) Язык визуального программирования для написания приложений для роботов Simulation environment Выполнение приложения для роботов в симулируемых условиях

Microsoft TechDayshttp:// Decentralized System Services (DSS) Модель распределенного приложения Простая, гибкая и сервис-ориентированная Совместима с существующей Web инфраструктурой Concurrency & Coordination Runtime (CCR) Библиотека для работы с параллельными и асинхронными потоками данных Фокус на координацию сообщений Скрывает традиционные потоки и примитивы блокировки

Microsoft TechDayshttp:// Приложение – это композиция слабосвязанных параллельно выполняющихся компонент

Microsoft TechDayshttp:// Асинхронная модель программирования Модель параллельного программирования без ручного управления потоками, блокировками, семафорами и т.д. Основана на асинхронных сообщениях Фокус на координации примитивов Последовательное выполнение, но без блокировки потоков, без нужды в callback-ах Контекст исполнения для сервисов Изоляция от инфраструктуры Изоляция от других сервисов

Microsoft TechDayshttp:// Port содержит: Очередь (FIFO) содержащую значения определенного типа Может иметь до 16 очередей различных типов данных Очередь получателей, которые могут быть запущены по прибытии сообщения и выполнении определенных условий Получатель представлен в виде C# делегата Делегат может быть как именованным, так и анонимным Сообщения Сообщения посылаются на определенный порт сервиса Port myPort = new Port () ; myPort.Post (42) ; Arbiter Реализует общие конструкции параллелизма, такие как join, choice, interleave Простыми словами: «По нашим указаниям решает, что где и как должно обрабатываться» Port State Handlers Service FIFO

Microsoft TechDayshttp:// Dispatcher Это пул потоков Можно иметь в своем приложении несколько Dispatcher'ов Если не иметь вообще ни одного, тогда будет автоматически задействован "встроенный" ThreadPool (Default pool). DispatcherQueue Это просто очередь «Привязывается» к пулу потоков ("встроенному" или созданному). Можно иметь несколько таких очередей

Microsoft TechDayshttp:// Receive (Arbiter.Receive) Все приходящие в порт данные вызывают заданный обработчик Choice (Arbiter.Choice) В зависимости от типа данных в порту вызывается тот или иной обработчик Join (Arbiter.JoinedReceive) Обработчик вызывается только когда одновременно есть данные в обоих портах Dynamic Join ( Arbiter.MultipleItemReceive ) Обработчик вызывается тогда, когда в порту скапливается заданное количество данных Port1 Arbiter Handler 1 Handler 2 Handler 3 Port2

Microsoft TechDayshttp:// Описание : Есть метод UpdateUserStatistics, который часто вызывается в цикле и долго выполняется. Необходимо распараллелить цикл. Решение: static void Main(string[] args) { using (Dispatcher disp = new Dispatcher(2, "Main Pool")) { DispatcherQueue queue = new DispatcherQueue("Main Queue", disp); Port userPort = new Port (); Arbiter.Activate(queue, Arbiter.Receive (true, userPort, UpdateUserStatistics)); foreach (User user in GetUsersForUpdate()) { userPort.Post(user);}}}

Microsoft TechDayshttp:// Выполняется на двухядерном компьютере

Microsoft TechDayshttp:// Написание программ для роботов Для синхронизации параллельных и асинхронных потоков данных MySpaces Часть BackEnd инфраструктуры

Microsoft TechDayshttp:// Сайт Newsgroup Wiki annel9.MSRoboticsStudio

Microsoft TechDayshttp:// © 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.