Компоненты DSS сервиса
Приложение в Microsoft Robotic Studio это композиция слабосвязанных параллельно выполняющихся сервисов.
Decentralized System Services (DSS) - это модель распределенного приложения, Dss сервисы- строительные блоки приложения.
Сервис может быть использован для отображения чего угодно: сенсоры, двигатели, графические интерфейсы и т.д. короче все с чего можно считать данные.
Для работы сервисов нужен хостинг в качестве него выступает DSS node - создает и уничтожает сервисы, предоставляет окружение в котором они выполняются.
Service Identifier
При создании сервиса присваивается URI.
Этот идентификатор представляет уникальный образец сервиса запущенный в данный момент.
Он не несет информации о состоянии сервиса, его поведении и т.д.
Contract Identifier
Это краткое описание сервиса.
Контракт также используется для генерации DSS proxy dll с помощью которых сервисы соединяются при общении.
Contract Identifier - URI который уникально идентифицирует данный сервис.
Service State
Это описание сервиса в определенный момент времени.
Например, если этот сервис представляет двигатель то его состоянием может быть скорость, температура, количество топлива, его расход и т.д.
Service Partners
Сервисы партнеры работа которых может повлиять на данный сервис.
Мы можем сообщить, что при нашем старте должен стартовать и партнер или если тот не запущен наш сервис не должен начинать работу.
Main Port
Главный порт, на который приходят сообщения от остальных сервисов.
Поскольку сервисы не связаны напрямую они могут общаться, только посылая сообщения друг другу.
Главный порт имеет список сообщений которые он обрабатывает.
Service Handlers
Для каждого сообщения, которое приходит на главный порт сервиса нужно сделать обработчик.
Event Notifications
Сервис генерирует сообщение в соответствии с его внутренними изменениями и это сообщение получают все подписчики на данное сообщение (что то вроде паттерна observer).
Автор: Дмитрий Охрименко