сайт в архиве
    ... переходите на новый сайт компании

Исследование интерфейсов управления сервисами


Исследование интерфейсов управления сервисами

     В предыдущей статье Вы познакомились с виртуальным миром, частью продукта Microsoft Robotics Developer Studio, которая называется Visual Simulation Environment. Наша цель сегодня: выяснить, как можно управлять нашей средой через Web интерфейс.

    И снова новинка!
     Совсем недавно, на портале компании Майкрософт стал доступен для скачивания новый бесплатный выпуск Microsoft Robotics Developer Studio. Полное название продукта Microsoft Robotics Developer Studio 2008 Express Edition. В данной статье я не буду описывать изменения, которые вошли в новую версию. Скажу только то, что при написании статьи я использовал именно эту версию продукта, поэтому внешний вид некоторых элементов, которые возможно встречались в прошлых статьях, может быть иным.

    Немного теории.
     Вы уже знаете, что приложение, построенное в среде Robotics Studio, представлено в виде набора сервисов, которые взаимодействуют друг с другом. Сам сервис – это некий интерфейс аппаратной (или программной) части робота, в свою очередь также имеющий интерфейс. Сервисы совершают обмен данными в виде сообщений.
После того как мы запустим наше приложение, мы сможем просматривать состояния наших работающих сервисов через Web интерфейс. Многие сервисы в Robotics Studio имеют графический Web интерфейс с элементами управления. В качестве примера такого сервиса далее будут рассмотрены сервисы «Security Manager» и «Simulation Webcam Service». Другая же часть сервисов возвращает пользователю некие страницы состояния в виде XML файлов, это так же является Web интерфейсом сервиса.
Сама концепция взаимодействующих сервисов дает нам фантастическую возможность, а именно управлять средой удаленно, находясь в любой точке мира. Подключившись к тому или иному сервису, мы можем, как снимать значения состояний сервисов, так и передавать новые значения, тем самым влиять на его состояния.

    Исследование
     Для изучения интерфейсов управления сервисов не нужно создавать сложную программу в VPL. Нам понадобится один-два элемента (сервиса) в VPL , чтобы погрузится в процесс исследований.
Запустим приложение Visual Programming Language и воспользуемся двумя сервисами

     Запустив нашу программу, мы увидим диалоговое окно Run. Именно это окно станет нашей отправной точкой в исследовании. Диалоговое окно содержит перечень запустившихся служб и сервисов.
Самая первая ссылка http://localhost:50000/Model/Application перебрасывает нас на страницу управления нашей программой. При открытии страницы необходимо пройти процесс аутентификации. После успешной авторизации загружается страница «Microsoft Visual Progamming Language Debug View». Основное назначение этого интерфейса – базовое управление текущего приложения.

     В данном случае эта возможность не представляет для нас интереса, по сути, она бесполезна для нашей программы. Но данный сервис очень важен для отладки программ со сложной структурой. Ниже на странице есть область «Breakpoints» – незаменимый инструмент при отладке.
Для более глубоко изучения процесса отладки и трассировки сообщений нашего приложения существует сервис «Debug and Trace Messages», который доступен по ссылке http://localhost:50000/console/output


    Основные разделы:

    Ссылки на основные разделы представлены в виде элементов меню

     Control Panel: содержит список всех имеющихся сервисов (http://localhost:50000/controlpanel), которые в свою очередь можно связать с манифестами. Каждый сервис имеет название и ссылку перехода на страницу, на которой этот сервис более подробно описан. Используя «Поиск» в окне можно отфильтровать список сервисов.
С помощью кнопки «Create», Вы можете создать и запустить новый экземпляр сервиса. Если кнопка «Create» отображается серым цветом, то дополнительные сервисы недоступны для создания.
С помощью кнопки «Drop», Вы можете удалить сервис. Нужно помнить, что при удалении сервиса, результат может повлиять на общее приложение, в случае если удаленный сервис был связан с другим(и) сервисом.


Список сервисов Control Panel

    Найдите в списке сервисов сервис «Generic Differential Drive», и перейдите по ссылке, которая представлена в описании. В результате перехода должен открыться XML файл. Перед Вами текущее состояние сервиса в тот момент времени, когда Вы обратились к сервису. К примеру, тег «WheelSpeed»:

<WheelSpeed xmlns="http://schemas.microsoft.com/robotics/2006/05/motor.html">0</WheelSpeed>
где значение 0 – мощность колеса. Если помните, в предыдущих статьях был пример с сервисом «Generic Differential Drive». В качестве манифеста сервиса мы использовали LEGO.NXT.Tribot.Simulation.manifest.xml. Тип переменной мощности этого манифеста определялся как double, единица являлась 100% значением мощности.
    Итак, XML файл это некое представления интерфейса сервиса, параметры которого определены в виде значений, которые в свою очередь хранятся в специальных «смысловых» тегах. Поэтому, что Вам мешает разработать свою собственную программу, которая бы обращалась к интерфейсу сервиса? :)
    Service Directory: это каталог (список) сервисов, которые работают в данный момент. Так как Control Panel – это тоже сервис, то в каталоге сервисов он также присутствует, он представлен в виде ссылки с названием «/controlpanel».
    Security Manager: этот сервис дает нам колоссальную возможность определять безопасность всех наших сервисов. В Service Directory этот сервис представлен в виде«/security/manager». Но проще воспользоваться основным меню.


    Перейдя в интерфейс сервиса, нажмите на кнопку «Edit Mode». Откроется форма сервисов, для которых можно определить уровень безопасности.


     Определите, у какого из сервисов вы хотите изменить уровень безопасности и нажмите кнопку «Edit».


Форма назначения прав безопасности на конкретный сервис

     Debug and Trace Messages: демонстрирует общую картину того, что произошло в фазе запуска нашего приложения. Механизм фильтров является простой выборкой, того что мы хотим видеть на странице. Для более подробного просмотра сообщения просто нажмите на него. Чтобы посмотреть самые последние сообщения, обновите страницу в браузере.

     Simulation Webcam Service: я бы хотел затронуть работу одного из сервисов «Webcam», поэтому давайте рассмотрим другой пример. Запустите ярлык «Pioneer 3DX Simulation» из раздела «Visual Simulation Environment 2008 Express» - «Пуск –> Программы –> Microsoft Robotics Developer Studio 2008 Express».
Модель робота Pioneer 3DX является более сложным представлением симуляции, нежели LEGO NXT Tribot.
После запуска примера «Pioneer 3DX Simulation» нас будет интересовать сервис «Simulation Webcam Service». Перейдите в раздел «Service Instance Directory» и найдите там сервис, который содержит в названии следующее описание: «/simulatedwebcam/…». Затем перейдите по ссылке сервиса.

     Перед Вами интерфейс сервиса «Simulation Webcam Service». В данный момент основной алгоритм сервиса не запущен. Перед запуском, Вы можете настроить его. Определить частоту обновления и формат файла.
После запуска сервиса кнопкой «Start», откройте панель управления «Dashboard». Подключите панель «Dashboard» к сервису управления роботом. Об этом Вы читали в прошлых статьях.
Перемещая робота, Вы увидите, как картинка сервиса Webcam изменяется. Это потому, что камера находится на роботе в виртуальном мире, и она запущена, точнее, запущен сервис, который управляет камерой.

Таким образом, если данный процесс применить к реальному роботу, на котором будет установлена камера, то Вы сможете управлять роботом удаленно, и при этом видеть все что окружает робота в пределах видимости камеры.

    Несколько шагов на пути к созданию своих сервисов
     Для этого нам понадобится Microsoft Visual Studio. При создании проекта в Visual Studio, после установки Microsoft Robotics Developer Studio 2008 Express, появился новый раздел Microsoft Robotics Express, в котором есть шаблон «DSS Service» для создания сервисов.

     В первой закладке «Service» мы должны назвать наш сервис, определить пространство имен, указать, если это необходимо, домен организации и дату создания. В закладке «Partners» можно добавить в качестве «партнера» уже существующий сервис, например «LegoNxtComm». И расширить наш сервис поможет третья закладка «Alternate contracts». Ниже на картинках отображены формы, определяющие основные этапы создания сервиса.



Итак, мы создали «голый сервис», который ничего не делает. Но уже сейчас мы можем его запустить, и проверить в каком состоянии находятся сервисы, для этого достаточно нажать F5. Процесс запуска практически ничем не отличается от того, что мы рассматривали ранее в предыдущих статьях.
После запуска проекта откройте браузер и введите адрес http://localhost:50000/



01.12.2008
Серенко Максим
Simplect™ - Simple intellect




Главная  |  Услуги  |  Опыт работы  |  Проектная кухня  |  Контакты  |  Команда  |  О компании  |  Партнеры  |  Вакансии  |  Новости  |  Статьи  |  Блог
© 2008-2010 Simplect™. Все права защищены