Je naučení technologie DDS složité?
Možná se vám někdy stalo, že jste použili technologii a ta nefungovala podle očekávání? To se může stát například v případě, kdy technologie není použita způsobem, pro který byla primárně navržena.
Ale co když není v týmu nikdo, kdo technologii DDS zná?
Jak složité je naučení technologie?
Použit technologii, kterou tým dobře nezná, a kterou se teprve učí, může představovat pro projekt riziko. Proto je důležité, aby tým znal technologie použité pro vytvoření systému.
Možná si říkáte. “Technologii DDS bych v systému využil, ale zdá se mi složitá.”
Jestli si myslíte, že použít DDS je jako jít s kanónem na vrabce, tak vám řeknu, že…
…technologie DDS v základu složitá na používání není
Poslat si data mezi aplikacemi je stejně jednoduché, jako použití jakékoliv jiné technologie založené na modelu komunikace publish-subscribe, např. MQTT nebo AMQP.
Nicméně, protože je technologie připravena pro řešení nejrůznějších požadavků, které mohou postupně vznikat, tak se neznalému člověku může zdát technologie složitá.
Je to jako používat fotoaparát s automatickým i manuálním režimem. Když jsou dobré světelné podmínky, tak klidně použijete automatický režim a hned fotíte.
Když se však světelné podmínky zhorší, nebo jsou velmi specifické, tak využijete manuální režim. Pro neznalé může být manuální režim složitý (clona objektivu, čas závěrky a citlivost ISO). Ale odborník již nad tím tolik přemýšlet nemusí a přizpůsobí nastavení konkrétní situaci. A tím získá požadovanou kvalitu fotografie.
Podobné je to i s technologií DDS. Je vytvořena tak, aby se dokázala přizpůsobit velmi specifickým podmínkám.
V možnosti přizpůsobit se a ovlivnit charakter přenosu jednotlivých toků dat technologie DDS exceluje a nemá konkurenci.
To je velmi užitečné, protože v rozsáhlých systémech je potřeba řešit stovky výzev. Zde uvedu „jen“ několik příkladů:
- Jak se propojím nebo vyhledám ostatní aplikace/zařízení?
- Jak zjistím, zdali jsou ostatní aplikace/zařízení stále dostupné?
- Jak zjistím, zdali se do systému připojila aplikace nebo zařízení poskytující data, která potřebuji?
- Jak zajistím zaslání posledního stavu nebo konfigurace?
- Jak zajistím zaslání dat, i v případě kdy dojde k přerušení spojení nebo výpadku aplikace?
- Jak přenášet různé typy dat jako jsou: události, stavy, alarmy, příkazy, streamy, s ohledem na výkon, spolehlivost a využití dostupných zdrojů?
- Jak nezahlcovat přenosové linky v případě, kdy počet aplikací roste?
- Jak detekovat výpadky v komunikaci?
- Jak detekovat zpoždění zpráv?
- Jak při výpadku aplikace převzít její funkce náhradní aplikací?
- Jak nezahltit příjemce, který data nepotřebuje přijímat tak často?
- Jak zajistit, aby data nebyla zbytečně zasílána všem zařízením/aplikacím, ale jen těm přiřazeným do dané logické skupiny (např. na základě místa, účelu, apod.).
Možná některé tyto výzvy potřebujete řešit ve svém systému pro přenos dat v reálném čase.
Budete-li je řešit na aplikační úrovní, tak vám vznikne něco takového…
Tedy aplikace, které obsahují více kódu pro sdílení a správu dat než vlastní logiku.
Přitom snaha je vytvořit něco takového…
Tedy přenést kód pro sdílení a správu dat na komunikační technologii, aby aplikace
- byly jednodušší a tak obsahovaly méně chyb.
- mohly se plně věnovat potřebným funkčnostem a byly jednoduše nahraditelné.
DDS je tedy používána převážně tam, kde je software systému složitější a kde máte tým, který se stará o konektivitu. V týmu potřebujete softwarové a systémové architekty, kteří vytvoří návrh systému a aplikací, které pak vývojáři naprogramují. A je to většinou tak, že technologii použijete při vytváření nového systému, nebo redesignu starého systému, protože technologie přináší aspekty, které s žádnou jinou technologií neřešíte. Potřebujete tak čas na jejich zvládnutí. Jako třeba nastavování QoS parametrů. Těm se vývojáři neradi věnují.
V případě, že potřebujete vytvořit větší nebo speciální distribuovaný systém se sdílením dat mezi zařízeními v reálném čase a s možností ovlivnit parametry přenosu, tak…
byste měli o technologii DDS vážně uvažovat.
Ale než ji nasadíte, tak je vhodné napřed zjistit její silné a slabé stránky. A zdali vám přínosy použití technologie DDS vyváží celkové náklady na její nasazení.
Jestli je technologie DDS pro váš systém vůbec vhodná.
Proto připravuji trénink, kde popisuji technologii DDS® z nadhledu. Na stránce www.pavelpohanka.cz/technologie, kde se dozvíte, v jakých případech byste měli o technologii DDS vážně uvažovat. A budete-li se chtít o technologii dozvědět vše podstatné, tak si trénink budete moci pořídit.