Служба распространения данных
Эта статья содержит контент, написанный как реклама . ( Июль 2020 г. ) |
Эта статья может чрезмерно полагаться на источники, слишком тесно связанные с предметом , что потенциально препятствует тому, чтобы статья была проверяемой и нейтральной . ( Июль 2014 г. ) |
Служба распространения данных ( DDS ) для систем реального времени представляет собой группы управления объектами (OMG) стандарт межмашинного взаимодействия (иногда называемый промежуточным программным обеспечением или платформой подключения), целью которого является обеспечение , высокопроизводительных , совместимых систем надежных реального времени , масштабируемый обмен данными с использованием шаблона публикации-подписки .
DDS удовлетворяет потребности приложений в области обмена данными в реальном времени в аэрокосмической отрасли, обороне, управлении воздушным движением , автономных транспортных средствах , медицинских приборах, робототехнике, производстве электроэнергии, моделировании и тестировании, управлении интеллектуальными сетями , транспортных системах и других приложениях.
Архитектура
[ редактировать ]Модель
[ редактировать ]DDS — это сетевое промежуточное программное обеспечение , которое упрощает сложное сетевое программирование . Он реализует шаблон публикации-подписки для отправки и получения данных, событий и команд между узлами . Узлы, производящие информацию (издатели), создают «темы» (например, температура, местоположение, давление) и публикуют «образцы». DDS доставляет образцы подписчикам, заявившим об интересе к этой теме.
DDS выполняет работу по передаче: адресацию сообщений, маршалинг и демаршалинг данных (поэтому подписчики могут находиться на разных платформах от издателя), доставку, управление потоком, повторные попытки и т. д. Любой узел может быть издателем, подписчиком или тем и другим одновременно.
Модель публикации-подписки DDS практически исключает сложное сетевое программирование для распределенных приложений. [ нужна ссылка ]
DDS поддерживает механизмы, выходящие за рамки базовой модели публикации-подписки. [ нужна ссылка ] Ключевое преимущество заключается в том, что приложения, использующие DDS для связи, отделены друг от друга. На обработку их взаимных взаимодействий требуется потратить мало времени. В частности, приложениям никогда не нужна информация о других участвующих приложениях, включая их существование или местоположение. DDS прозрачно обрабатывает доставку сообщений, не требуя вмешательства пользовательских приложений, в том числе:
- определение того, кто должен получать сообщения
- где находятся получатели
- что произойдет, если сообщения не могут быть доставлены
DDS позволяет пользователю указать параметры качества обслуживания (QoS) для предварительной настройки механизмов обнаружения и поведения. Обмениваясь анонимными сообщениями, DDS упрощает распределенные приложения и поощряет модульные, хорошо структурированные программы. [ нужна ссылка ] DDS также автоматически выполняет горячую замену резервных издателей в случае сбоя основного. [ нужна ссылка ] Подписчики всегда получают образец с наивысшим приоритетом, данные которого все еще действительны (т. е. срок действия которого, указанный издателем, не истек). [ нужна ссылка ] . Он также автоматически переключается обратно на основной, когда восстанавливается. [ нужна ссылка ] .
Совместимость
[ редактировать ]как проприетарные, так и открытые программные Доступны реализации DDS. К ним относятся интерфейсы прикладного программирования (API) и библиотеки реализаций на Ada , C , C++ , C# , Java , Python , Scala , Lua , Pharo , Ruby и Rust .
Поставщики DDS участвовали в демонстрациях совместимости на технических встречах OMG Spring с 2009 по 2013 год. [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ]
Во время демонстраций каждый поставщик публиковал темы друг друга и подписывался на них, используя набор тестов, который называется демо-версией фигур. Например, один поставщик публикует информацию о фигуре, а другие поставщики могут подписаться на эту тему и отображать результаты на своем собственном дисплее фигур. Каждый поставщик по очереди публикует информацию, а другой подписывается. Две вещи сделали возможным создание демо: протокол DDS-I, или протокол публикации-подписки в реальном времени (RTPS), [ 7 ] и соглашение об использовании общей модели.
В марте 2009 года три поставщика продемонстрировали совместимость между отдельными независимыми продуктами, в которых с января 2009 года реализован протокол публикации-подписки OMG в реальном времени версии 2.1. Демонстрация включала обнаружение издателей и подписчиков друг друга на разных платформах ОС ( Microsoft Windows и Linux ) и поддерживал многоадресную и одноадресную сетевую связь. [ 1 ]
В демонстрации совместимости DDS использовались такие сценарии, как:
- Базовое подключение к сети с использованием интернет-протокола (IP)
- Открытие издателей и подписчиков
- Качество обслуживания (QoS). Совместимость между запрашивающим и предлагающим.
- Устойчивая к задержкам сеть
- Несколько тем и экземпляров тем
- Эксклюзивное владение темами
- Контентная фильтрация тематических данных, включая временные и географические
История
[ редактировать ]Разработка спецификации DDS началась в 2001 году. В 2004 году Object Management Group (OMG) опубликовала версию DDS 1.0. [ 8 ] Версия 1.1 была опубликована в декабре 2005 г. [ 9 ] 1,2 в январе 2007 г., [ 10 ] и 1,4 в апреле 2015 г. [ 11 ] DDS защищен несколькими патентами США. [ 12 ] [ 13 ] [ 14 ] [ 15 ] среди других.
Спецификация DDS описывает два уровня интерфейсов:
- Более низкий уровень публикации-подписки (DCPS), ориентированный на данные, который нацелен на эффективную доставку нужной информации нужным получателям.
- Дополнительный уровень локальной реконструкции данных более высокого уровня (DLRL), который обеспечивает простую интеграцию DDS в прикладной уровень .
Другие соответствующие стандарты последовали за первоначальным базовым документом. Спецификация проводного протокола публикации и подписки в режиме реального времени Спецификация проводного протокола DDS гарантировала, что информация, опубликованная по теме с использованием реализации DDS одного поставщика, может быть использована одним или несколькими подписчиками, использующими реализации DDS того же или другого поставщика. Хотя спецификация ориентирована на сообщество DDS, ее использование не ограничено. Версии 2.0 были опубликованы в апреле 2008 г., версия 2.1 — в ноябре 2010 г., 2.2 — в сентябре 2014 г. и 2.3 — в мае 2019 г. [ 7 ]
DDS для облегченного CCM (dds4ccm) предлагает архитектурный шаблон, который отделяет бизнес-логику от нефункциональных свойств. Расширение 2012 года добавило поддержку потоков. [ 16 ] PSM языка Java 5 для DDS определял привязку языка Java 5, называемую моделью, специфичной для платформы (PSM) для DDS. В нем указана только часть спецификации DDS, посвященная публикации и подписке на данные (DCPS); Кроме того, он включает API-интерфейсы DDS, представленные DDS-XTypes и DDS-CCM. DDS-PSM-Cxx определяет ISO/IEC C++. [ 17 ] Языковая привязка PSM, называемая моделью, специфичной для платформы (PSM) для DDS. Он предоставляет новый API C++ для программирования DDS, который более естественен для программиста C++. [ 18 ] Спецификация предоставляет сопоставления для интерфейса прикладного программирования (API), указанного в DDS-XTypes, и качества обслуживания профилей (QoS), указанных в DDS-CCM.
Расширяемые и динамические типы тем для DDS (DDS-XTypes) обеспечивают поддержку ориентированной на данные связи публикации и подписки, где темы определяются с помощью определенных структур данных. Чтобы быть расширяемыми , темы DDS используют типы данных, определенные до времени компиляции и используемые во всем глобальном пространстве данных DDS. Эта модель желательна, когда полезна статическая проверка типов. [ 19 ] В профиле унифицированного языка моделирования (UML) указаны домены и темы DDS, которые будут частью анализа и моделирования проектирования. [ 20 ] Эта спецификация также определила, как публиковать и подписываться на объекты без предварительного описания типов на другом языке, например XML или OMG IDL. [ 21 ] Язык определения интерфейса (IDL) был определен в 2014 году независимо от главы 3 спецификации Common Object Request Broker Architecture (CORBA). Этот IDL 3.5 был совместим со спецификацией CORBA 3, но был выделен как отдельная спецификация, позволяющая ему развиваться независимо от CORBA. . [ 22 ]
Другие протоколы, которые следует упомянуть: DDS-XRCE (DDS для сред с крайне ограниченными ресурсами), этот протокол спецификации обеспечивает связь между устройствами с ограниченными ресурсами, такими как, например, микроконтроллер и сеть DDS. Это делает возможной публикацию и подписку на темы через промежуточный сервис в домене DDS. [ 23 ] и DDS-RPC (RPC Over DDS), который определяет вызовы удаленных процедур. Они обеспечивают двунаправленную связь запрос/ответ и определяют распределенные услуги и детализируются с использованием интерфейса службы. Он также поддерживает как синхронный, так и асинхронный вызов методов. [ 24 ]
Начиная с версии DDS 1.4 в 2015 году дополнительный уровень DLRL был вынесен в отдельную спецификацию. [ 25 ]
См. также
[ редактировать ]- Промежуточное ПО
- Вычислительная среда с открытой архитектурой
- Object Management Group (OMG), орган по стандартизации, разработавший спецификацию.
Ссылки
[ редактировать ]- ^ Перейти обратно: а б Анджело Корсаро, Херардо Пардо-Кастеллоте и Кларк Такер (12 августа 2009 г.). «Демонстрация совместимости DDS» (PDF) . Группа управления объектом. Архивировано из оригинала (PDF) 15 сентября 2011 года . Проверено 9 ноября 2016 г.
- ^ «Демоверсия совместимости DDS, декабрь 2010 г.» (PDF) . Real-Time Innovations, Inc. 11 декабря 2010 г. Проверено 9 ноября 2016 г.
- ^ 2011 г., март 2011 г., https://community.rti.com/content/presentation/omg-dds-interoperability-demo-2011.
- ^ 2012 г., март 2012 г., https://community.rti.com/content/presentation/omg-dds-interoperability-demo-2012.
- ^ 2013 г., март 2013 г., http://www.slideshare.net/GerardoPardo/dds-interoperability-demo-2013-washington-dc.
- ^ «Демонстрация совместимости DDS» . видео . Инновации в реальном времени. 14 декабря 2010 г. Архивировано из оригинала 7 января 2014 г. Проверено 9 ноября 2016 г.
- ^ Перейти обратно: а б «Спецификация проводного протокола взаимодействия DDS в режиме реального времени (DDSI-RTPS)» . Май 2019 года . Проверено 28 октября 2019 г.
- ^ «Служба распространения данных (DDS), версия 1.0» . Группа управления объектом. 2 декабря 2004 года . Проверено 9 ноября 2016 г.
- ^ «Служба распространения данных (DDS), версия 1.1» . 4 декабря 2005 года . Проверено 9 ноября 2016 г.
- ^ «Служба распространения данных (DDS), версия 1.2» . 1 января 2007 года . Проверено 9 ноября 2016 г.
- ^ «Служба распространения данных (DDS), версия 1.4» . 10 апреля 2015 г. Проверено 9 ноября 2016 г.
- ^ Патент США US8874686.
- ^ Патент США US8671135.
- ^ Патент США US8150988.
- ^ Патент США US9015672.
- ^ DDS для облегченного CCM (dds4ccm), версия 1.1, формальный/2012-02-01, февраль 2012 г., http://www.omg.org/spec/dds4ccm/1.1/PDF/
- ^ Языки программирования — C++, 15 октября 2003 г., ISO/IEC 14882, http://www.iso.org/iso/catalogue_detail.htm?csnumber=38110.
- ^ DDS-PSM-Cxx: язык ISO/IEC C++ 2003 DDS PSM, версия ptc/2011-01-02, январь 2011 г., http://www.omg.org/spec/DDS-PSM-Cxx/1.0/Beta1/ PDF
- ^ Расширяемые и динамические типы тем для DDS (DDS-XTypes), 1.0, формальный/2012-11-10, ноябрь 2012 г., http://www.omg.org/spec/DDS-XTypes/1.0/PDF
- ^ Профиль UML для распространения данных, версия: 1.0, http://www.omg.org/cgi-bin/doc?ptc/10-05-17.pdf.
- ^ DDS-Java: PSM языка Java 5 для DDSVersion 1.0, ptc/2012-12-01, март 2013 г. http://www.omg.org/spec/DDS-Java/1.0/Beta3/PDF
- ^ «Язык определения интерфейса (IDL), версия 3.5» . МОЙ БОГ. 1 марта 2014. Архивировано из оригинала 21 января 2017 года . Проверено 9 ноября 2016 г.
- ^ «О спецификации DDS для сред с крайне ограниченными ресурсами, версия 1.0» . www.omg.org . Проверено 12 марта 2021 г.
- ^ «О спецификации RPC Over DDS версии 1.0» . www.omg.org . Проверено 12 марта 2021 г.
- ^ «Уровень локальной реконструкции данных DDS (DDS-DLRL)» . Апрель 2015 года . Проверено 9 ноября 2016 г.