Co DDS usnadňuje? Část 1: Návrh
Rozhodnutí o použití technologie v architektuře vašeho systému je potřeba dobře rozmyslet.
Budete zvažovat, co vám technologie v systému umožní a na druhé straně, co vás bude její nasazení stát.
Špatně zvolená technologie vám totiž z dlouhodobého hlediska může velmi prodražit cenu celého systému v průběhu jeho životního cyklu.
Data Distribution Service™ (DDS) usnadňuje vytvoření distribuovaného systému pro sdílení dat mezi zařízeními a aplikacemi v reálném čase a to ve všech fázích životního cyklu systému, tedy v návrhu, vývoji, nasazení, údržbě, rozšiřování a rozvoji.
A tedy ve výsledku může šetřit celkové náklady na systém.
V tomto videu se dozvíte jakým způsobem usnadňuje technologie DDS návrh.
Co nás při návrhu systému zajímá jsou komponenty systému a jejich rozhraní. Tedy, co která aplikace poskytuje, co přijímá a jakým způsobem to přijímá.
Co aplikace poskytuje a přijímá je u publish-subscribe modelu komunikace definováno topiky (kanál) a daty (datovým modelem, který je daným datovým kanálem přenášen.
U DDS je nutné definovat datový model (definujeme pouze CO se má sdílet), kterým spolu budou komponenty v systému komunikovat, před tím, nežli jsou vytvářeny aplikace. To by se mohlo zdát jako svazující. Nicméně na tom, jaká data si budete mezi aplikacemi přenášet, se tak jako tak musíte domluvit a DDS poskytuje rozšiřitelný typový systém, který vám umožní nad datovým modelem provádět kompatibilní změny. A věřte, že ke změnám v systému docházet bude. Na druhou stranu jsou data více stabilní nežli aplikace, takže z dlouhodobého pohledu jde o velký přínos.
DDS jde v datovém modelu ještě dál protože umožňuje určit k datům klíč nebo klíče, stejně jako u databází. Jsme tak schopni identifikovat jednotlivé datové objekty v rámci datových toků už na úrovni DDS middlewaru.
DDS však pro zaručení včasného doručení poskytuje také možnost ovlivnit jakým způsobem budou data v systému doručována nebo přijímána – pomocí QoS.
Možnost externě definovat parametry a ovlivnit tak vlastnosti systému usnadňuje návrh systému.
Pomocí QoS je tak možné specifikovat jak má být přenos spolehlivý, nebo zda-li stačí nespolehlivý, jaké jsou požadavky na rychlost přenosu, jak se má systém chovat při ztrátě paketu nebo spojení, zdali-li zaslat data automaticky nově připojeným aplikacím a kolik, jak můžu poslat data pouze vybraným aplikacím v dané skupině, atp.
Datový model společně s definováním parametrů přenosu pomocí QoS vám zaručí také zároveň dokumentaci datových toků v systému.
Důležitým konceptem, který souvisí s tímto standardem je globální datový prostor:
• V rámci tohoto logického prostoru jsou data sdílená mezi aplikacemi.
• V rámci tohoto virtuálního prostoru není žádný centrální uzel, takže zde není žádný bod selhání a účastníci jsou vyhledáváni. Jak je to možné? Představte si to jako distribuovanou sdílenou cache, ve které má každá aplikace svou cache a DDS middleware zajišťuje, že když nějaká aplikace změní stav této cache, tak se tato změna projeví všem, kteří na tyto změny čekají.
• Pro aplikace se tento virtuální prostor jeví jako jejich lokální paměť, ke které přistupují pomocí API – používají se read/take pro čtení, write a dispose (něco jako CRUD).
• Tento prostor lze také dále logicky dělit pomocí QoS (Partitions).
Pro návrh systému má tento globální datový prostor výhodu v tom, že aplikace v něm jsou volně vázány – tedy mají mezi sebou minimum závislostí. A to jak z pohledu:
• Prostoru: Aplikace mohou být automaticky vyhledány (pomocí UDP multicastu). Tak není distribuovaný systém závislý na topologii sítě. V případě, kdy se topologie změní, není nutné provádět změny v aplikacích.
• Času: Poskytovatel dat (publisher) může zasílat data naprosto asynchronně. DDS aplikace zašlou data později připojeným aplikacím v případě, kdy jsou tak nakonfigurovány. Poskytovatelé a příjemci dat, tak nemusí být spuštěny ve stejný čas.
• Frekvence: Rychlost poskytovaných dat se může lišit od rychlosti přijímání dat (nastavitelné pomocí QoS)
To jsou tedy zásadní koncepty, které usnadňují návrh systému.
* Systémový datový model – data jsou rozhraní,
* plně decentralizovaný globální datový prostor,
* v rámci celého systému definovaná kvalita služeb – QoS.
Zajímá-li vás technologie Data Distribution Service™ (DDS) 🌀, tak se podívejte na stránku www.pavelpohanka.cz/dds kde uvádím 10 věcí, které byste měli vědět o DDS dříve, než ji použijete ve svém projektu.