Data Distribution Service (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