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
  • Наблюдения издателей и подписчиков
  • Совместимость между запрашивающим и предоставляющим
  • Взаимодействие, устойчивое к сетевым задержкам
  • Множество тем и примеров тем
  • Исключительные права на темы
  • Сортировка тематических данных, включая время и местоположение.

Примечания

[править | править код]
  1. 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