Data Distribution Service
DDS (Data Distribution Service, Служба распространения данных) для систем реального времени является стандартом межмашинного взаимодействия Object Managment Group, целью которого является обеспечение масштабируемых, оперативных, надежных, высокопроизводительных и совместимых обменов данными с использованием шаблона «издатель — подписчик». DDS удовлетворяет потребности приложений, связанных с управлением воздушным движением, умных сетей энергоснабжения, автономных средств передвижения, робототехники, логистики, энергоснабжения, медицинского оборудования, симуляции и тестирования, космонавтики и обороны, Интернета вещей[1], а также других приложений, требующих обмена данных в реальном времени.
История
[править | править код]Малое количество патентованных DDS систем было доступно в течение некоторого времени. Начиная с 2001 года, две кампании, американский государственный поставщик Real-Time Innovations и французская Thales Group объединились, чтобы создать требования для DDS, которая была в последующем одобрена Object Managment Group(OMG), что в результате привело к публикации версии 1.0 в декабре 2004. Версия 1.1 была опубликована в декабре 2005, 1.2 в январе 2007 и 1.4 в апреле 2015. DDS был также дополнительно защищен несколькими американскими патентами, помимо остальных. Требования к DDS описывает следующие два уровня интерфейсов:
- Низкий уровень, работающий с большим объёмом данных на основе издатель — подписчик, задачей которого является эффективная доставка достоверной информации нужному получателю.
- Необязательный более высокий слой локального преобразования данных, который позволяет простое встраивание DDS в прикладной уровень
Из основного документа следуют и остальные зависимые стандарты. Спецификация оперативного проводного совместимого подписчик-издатель DDS протокола гарантирует, что информация, опубликованная по теме при помощи реализованного DDS какого-либо поставщика может быть применима одним или более подписчиком использующих реализацию DDS того же поставщика или совершенно различного. Хотя спецификация и нацелена на DDS сообщество, её использование не ограничено. Версия 2.0 была опубликована в апреле 2008 года, версия 2.1 в ноябре 2010 и 2.2 в сентябре 2014. DDS для упрощенного CCM предлагает архитектурный шаблон, который разделяет бизнес логику от не функциональных свойств. Расширение 2012 года ввело поддержку потоков. PSM языка JAVA 5 для DDS определило привязку языка Java 5, ссылаясь как модель для конкретной платформы(DDS) для DDS. Она строго обусловлена только для той части DDS спецификации, которая соответствующей шаблону, издатель — подписчик и ориентированной на данные.
DDS-TSN определяет набор механизмов, позволяющих развертывать DDS и использовать их в чувствительных ко времени сетях (TSN).
Архитектура
[править | править код]Модель
[править | править код]DDS взаимодействует со связующим программным обеспечением, что упрощает программирование сетевых задач. Оно внедряет шаблон издатель — подписчик в отправку и получение данных, события и команды в узлах. Узлы, что выдают информацию, создают темы публикуют примеры. DDS доставляет примеры до подписчиков, которые проявляют интерес в данном топике. DDS выполняет рутинную работу: адресацию сообщений, сериализацию и десериализацию(поэтому подписчики могут иметь отличную от издателя платформу), доставку, контроль потока, повторение. Каждый узел может быть издателем, подписчиком или сразу двумя в зависимости от ситуации. Модель DDS издатель — подписчик фактически устраняет сложную систему сетевых задач для распространяемых приложений. DDS поддерживает также и те механизмы, что выходят за пределы стандартной модели подписчик-издатель. Основное преимущество заключается в том, что приложения, использующее DDS для передачи данных, разъединены друг от друга. Лишь небольшое время на дизайн требуется на управление их взаимодействий. В частности, приложения никогда не нуждаются в информации об остальных участвующих приложениях, включая информацию об их существовании или местонахождении. DDS незаметно управляет доставкой сообщений без нужды во вмешательство в приложения пользователя, включая:
- Уточнения, кто должен получить сообщение
- Где располагается получатель
- Что произойдет в случае, если сообщение не доставлено
DDS позволяет пользователю определить параметры QoS для настройки механизмов обнаружения и поведения заранее. Благодаря анонимному обмену сообщений, DDS упрощает распространение приложений и поощряет модульные, структурированные программы. DDS также автоматически управляет мгновенной заменой узла-публикатора в случае, если основной не выполнил задачи. Подписчики всегда получают пример с высокой степенью приоритета в случае, если данные верны. Оно автоматически возвращается к основным узлам, в том случае, если они восстанавливаются.
Взаимодействие
[править | править код]Предоставляются как и коммерческие, так и в открытом доступе реализации DDS. Они включают в себя графические пользовательские инферфейсы и встраиваемые библиотеки для ADA, C, C++, C#, Java, Scala, Lua, Pharo и Ruby. Некоторые из реализации указаны в таблицы в конце статьи. DDS поставщики участвовали в межоперационных показах на весенней встрече техники OMG с 2009 по 2013. Во время демонстрации, каждый из поставщиков выставили свой продукт и подписались к тематикам друг друга, при помощи тестовых образцов. Например один из поставщиков предоставляет информацию о фигуре и другой поставщик может быть подписан на тему и отображает результаты их собственных фигур. Каждый из поставщиков вносит свой вклад в публикации информации, а остальные — подписываются. Наличие двух вещей привело к возможности существования демо-версий: DDS-I или же оперативный протокол издатель — подписчик, и соглашение об использовании единой модели. В марте 2009 три поставщика продемонстрировали взаимодействие между автономными, независимыми продуктами, которые были реализованы оперативным OMG протоколом шаблона издатель — подписчик версии 2.1 от января 2009. Демонстрация включала в себя наблюдения каждого из издателя и подписчика на различных платформах операционных систем и поддерживала мульти и одностороннее сетевое взаимодействие. К марту 2013 присоединилось 6 компаний к демонстрации взаимодействия между операционными системами:
DDS демонстрация межоперационного взаимодействия включала в себя следующие сценарии:
- Простейшую связь к сети при помощи IP
- Наблюдения издателей и подписчиков
- Совместимость между запрашивающим и предоставляющим
- Взаимодействие, устойчивое к сетевым задержкам
- Множество тем и примеров тем
- Исключительные права на темы
- Сортировка тематических данных, включая время и местоположение.
См. также
[править | править код]Примечания
[править | править код]- ↑ David Barnett. Comparison of MQTT and DDS as M2M Protocols for the Internet of Things. Published on May 29, 2013. - [1] Архивная копия от 29 сентября 2020 на Wayback Machine