Služba distribuce dat - Data Distribution Service

Data Distribution Service ( DDS ) pro real-time systémů je Object Management Group (OMG) machine-to-machine (někdy nazývaný middleware nebo rámec připojení) standard, který si klade za cíl umožnit spolehlivé , vysoce výkonné , interoperabilní , v reálném čase , škálovatelné výměny dat pomocí vzoru publikování a přihlášení k odběru .

DDS řeší potřeby aplikací, jako je letectví a obrana, řízení letového provozu , autonomní vozidla , zdravotnická zařízení, robotika, výroba energie, simulace a testování, inteligentní správa sítě , dopravní systémy a další aplikace, které vyžadují výměnu dat v reálném čase.

Architektura

Modelka

DDS je síťový middleware, který zjednodušuje složité programování sítě . Implementuje vzor publikování a odběru pro odesílání a přijímání dat, událostí a příkazů mezi uzly . Uzly, které produkují informace (vydavatelé), vytvářejí „témata“ (např. Teplota, umístění, tlak) a publikují „ukázky“. DDS doručuje vzorky předplatitelům, kteří deklarují zájem o toto téma.

DDS zpracovává přenosové práce: adresování zpráv, zařazování dat a odřazování (takže předplatitelé mohou být na různých platformách od vydavatele), doručování, řízení toku, opakování atd. Jakýkoli uzel může být vydavatel, předplatitel nebo obojí současně.

Model publikování a přihlášení k odběru DDS prakticky eliminuje složité síťové programování distribuovaných aplikací.

DDS podporuje mechanismy, které jdou nad rámec základního modelu publikování a odběru. Klíčovou výhodou je, že aplikace využívající ke komunikaci DDS jsou oddělené. Na řešení jejich vzájemných interakcí je třeba vynaložit málo času. Zejména aplikace nikdy nepotřebují informace o ostatních zúčastněných aplikacích, včetně jejich existence nebo umístění. DDS transparentně zpracovává doručování zpráv bez nutnosti zásahu od uživatelských aplikací, včetně:

  • určení, kdo by měl zprávy dostávat
  • kde se nacházejí příjemci
  • co se stane, když zprávy nelze doručit

DDS umožňuje uživateli specifikovat parametry kvality služby (QoS) pro konfiguraci mechanismů zjišťování a chování předem. Anonymní výměnou zpráv DDS zjednodušuje distribuované aplikace a podporuje modulární a dobře strukturované programy. Pokud primární selže, DDS také automaticky zpracovává nadbytečné vydavatele vyměnitelné za běhu. Předplatitelé vždy získají ukázku s nejvyšší prioritou, jejíž data jsou stále platná (to znamená, že doba platnosti určená vydavatelem nevypršela). Když se také obnoví, automaticky se přepne zpět na primární.

Interoperabilita

K dispozici jsou proprietární i open-source softwarové implementace DDS. Patří mezi ně aplikační programovací rozhraní (API) a knihovny implementací v Ada , C , C ++ , C# , Java , Python , Scala , Lua , Pharo a Ruby .

Prodejci DDS se účastnili demonstrací interoperability na technických schůzkách OMG Spring v letech 2009 až 2013.

Během ukázek každý prodejce publikoval a odebíral témata toho druhého pomocí testovací sady zvané tvary demo. Například jeden dodavatel zveřejňuje informace o tvaru a ostatní prodejci se mohou přihlásit k odběru tématu a zobrazit výsledky na svém vlastním zobrazení tvarů. Každý prodejce se střídá ve zveřejňování informací a druhý se přihlašuje k odběru. Demonstrace umožnily dvě věci: protokol DDS-I nebo Real-Time Publish-Subscribe (RTPS) a dohoda o používání společného modelu.

Image
Interoperabilita služby OMG Data Distribution Service

V březnu 2009 tři prodejci předvedli interoperabilitu mezi jednotlivými nezávislými produkty, které implementovaly protokol OMG Real-time Publish-Subscribe protokol verze 2.1 od ledna 2009. Demonstrace zahrnovala zjišťování vydavatelů a předplatitelů toho druhého na různých platformách OS ( Microsoft Windows a Linux ) a podporovanou multicastovou a unicastovou síťovou komunikaci.

Demonstrace interoperability DDS používala scénáře jako:

  • Základní připojení k síti pomocí internetového protokolu (IP)
  • Zjišťování vydavatelů a předplatitelů
  • Quality of service (QoS) Kompatibilita mezi žadatelem a nabízejícím
  • Sítě tolerující zpoždění
  • Více témat a instancí témat
  • Výhradní vlastnictví témat
  • Filtrování obsahu dat témat včetně času a geografie

Dějiny

Vývoj specifikace DDS byl zahájen v roce 2001. Byl vyvinut společností Real-Time Innovations (RTI), softwarovou rámcovou společností, a Thales Group , francouzskou obrannou společností. V roce 2004 publikovala skupina Object Management Group (OMG) DDS verze 1.0. Verze 1.1 byla vydána v prosinci 2005, 1.2 v lednu 2007 a 1.4 v dubnu 2015. Na DDS se vztahuje mimo jiné několik amerických patentů.

Specifikace DDS popisuje dvě úrovně rozhraní:

  • Nižší úroveň publikování-odběru (DCPS) zaměřená na data, která je zaměřena na efektivní doručování správných informací správným příjemcům.
  • Volitelná vyšší lokální rekonstrukční vrstva (DLRL), která umožňuje jednoduchou integraci DDS do aplikační vrstvy .

Na původní základní dokument navazovaly další související standardy. Specifikace DOP interoperability DDS Interoperability Wire Protocol protokolu Real-time Publish-Subscribe zajistila, že informace publikované na téma pomocí implementace DDS jednoho dodavatele budou spotřebovatelné jedním nebo více předplatiteli využívajícími stejné nebo jiné implementace DDS dodavatele. Ačkoli je specifikace zaměřena na komunitu DDS, její použití není omezeno. Verze 2.0 byla vydána v dubnu 2008, verze 2.1 v listopadu 2010, 2.2 v září 2014 a 2.3 v květnu 2019.

DDS for Lightweight CCM (dds4ccm) nabízí architektonický vzor, ​​který odděluje obchodní logiku od nefunkčních vlastností. Rozšíření z roku 2012 přidalo podporu streamů. Jazyk PSM jazyka Java 5 pro DDS definoval vazbu jazyka Java 5, označovanou jako platformově specifický model (PSM) pro DDS. Specifikovala pouze část specifikace DCS (Data-Centric Publish-Subscribe); Navíc zahrnuje rozhraní DDS API zavedená DDS-XTypes a DDS-CCM. DDS-PSM-Cxx definuje ISO/IEC C ++ PSM jazykovou vazbu, označovanou jako Platform Specific Model (PSM) pro DDS. Poskytuje nové C ++ API pro programování DDS, které je pro C ++ programátora přirozenější. Specifikace poskytuje mapování pro rozhraní API (Application Programming Interface ) uvedené v DDS-XTypes a přístup k profilům kvality služby (QoS) uvedeným v DDS-CCM.

Rozšiřitelné a dynamické typy témat pro DDS (DDS-XTypes) poskytovaly podporu komunikace zaměřené na publikování a přihlášení k odběru dat, kde jsou témata definována pomocí konkrétních datových struktur. Aby byla témata DDS rozšiřitelná , používají datové typy definované před časem kompilace a používané v celém globálním datovém prostoru DDS. Tento model je žádoucí, když je užitečná kontrola statického typu. Unified Modeling Language (UML) profilu uvedeno DDS domén a tématech, která budou součástí analýzy a designu modelování. Tato specifikace také definovala, jak publikovat a odebírat objekty bez předchozího popisu typů v jiném jazyce, jako je XML nebo OMG IDL. Jazyk definice rozhraní (IDL) byl uveden v roce 2014 nezávisle na společném Request Object Broker Architecture (CORBA) specifikace v kapitole 3. Tato IDL 3.5 byl kompatibilní s specifikace CORBA 3, ale extrahoval jako vlastní specifikaci, která jí umožní vyvíjet nezávisle na CORBA .

Mezi další protokoly, které je třeba zmínit, patří: DDS-XRCE (DDS pro eXtremely Resource Constrained Environments), tento specifikační protokol umožňuje komunikaci mezi zařízeními s omezenými zdroji, jako je například mikrokontrolér, například a sítí DDS. Umožňuje publikování a předplatné témat prostřednictvím zprostředkující služby v doméně DDS a DDS-RPC (RPC Over DDS), které definuje vzdálená volání procedur. Ty poskytují obousměrnou komunikaci požadavek/odpověď a určují distribuované služby a jsou podrobně popsány pomocí rozhraní služby. Podporuje také synchronní i asynchronní vyvolání metody.

Počínaje verzí DDS 1.4 v roce 2015 byla volitelná vrstva DLRL přesunuta do samostatné specifikace.

Viz také

Reference