Typy integrace
Integrace není homogenní disciplína - existují různé druhy integrace, které se použijí v různých případech a jež je nutné řešit jinými návrhovými vzory a jinými technologiemi - viz obrázek 1 a následující popis vybraných typů.
Integrace v servisně-orientovaných architekturách (SOA)
Integrace pomocí služeb slouží nejčastěji pro integraci systémů s uživatelským rozhraním nebo pro integraci procesů běžících v reálném čase. Typický scénář je synchronní volání s odpovědí. Interakce dvou systémů se děje v reálném čase s důrazem na rychlost odpovědi.
Integrace v událostmi řízených architekturách (Event Driven Architecture, EDA)
Pomocí přenosu událostí se nejčastěji řeší úlohy synchronizace dat v reálném čase, monitorování obchodních procesů, vyhodnocování zvláštních událostí (tzv. Complex Event Processing) apod. Typická interakce je jednosměrný přenos zpráv mezi systémy (často aniž by publikující systém znal seznam příjemců události). Klíčové je doručení událostí i systémům, které nejsou v danou chvíli on-line.
Dávková integrace, někdy též Extract-Transform-Load (ETL) integrace
Dávková integrace realizuje nejčastěji úlohu pravidelné synchronizace dat mezi systémy nebo export dat z primárních systémů do datových skladů. Typická interakce je přenos velkého množství dat v pravidelných dávkách (např. 1x denně). Důraz je kladen na efektivitu transformace dat a sledování průběhu.
Integrace s partnery (Business-to-Business, B2B)
Integraci mezi různými společnostmi používá mechanismů SOA, EDA či ETL se zdůrazněním některých aspektů komunikace (zabezpečení, identita komunikujících stran, audit, dohled). Integrace je rovněž specifická tím, že každá obchodní strana je zodpovědná pouze za svou část komunikace.
Integrace každý-s-každým
Historicky nejrozšířenější topologií integrační architektury je propojování systémů na ad-hoc bázi podle okamžité potřeby projektů. Toto propojení se nazývá peer-to-peer (P2P), nebo také integrační špagety, protože systémy jsou propojeny napřímo a naprosto libovolně. Výhodou této topologie je, že jej není nutné nijak plánovat či řídit. Integrace se děje flexibilně podle okamžité potřeby a lze tak rychle kombinovat funkčnosti a data jednotlivých systémů. Náklady na integraci jsou rozpuštěny do jednotlivých projektů, ale cena jednoho propojení je závislá na složitosti konkrétních rozhraní a jejich vzájemné kompatibilitě, takže může být neadekvátní rozsahu projektu.
Obrovskou nevýhodou ale je, že tento systém je udržitelný pouze při relativně malém počtu systémů. Při rostoucím počtu systémů roste počet propojení kvadraticky - O(n2) - a výsledek se stává nepřehledným, špatně provozovatelným a náchylným k chybám. Integrační úlohy se navíc neefektivně řeší opakovaně uvnitř každé aplikace. Nevhodné je i míchání obchodní a integrační logiky v jednom kódu.
Oddělená integrační vrstva
Pro střední a velké společnosti se již několik let prosazují topologie, kde integrační vrstva je oddělená od vlastních aplikací. Hlavní motivací je zpřehlednění integrace a odstínění aplikací od komplexních aspektů integrace.
Zpřehlednění je dosaženo tím, že každá aplikace je připojena pouze jedním rozhraním do integrační vrstvy a veškerá komunikace se děje přes toto rozhraní. Počet propojení v celé IT infrastruktuře je pak roven počtu aplikací.
Aplikace komunikují přes relativně jednoduché rozhraní pouze s integrační vrstvou a jsou tak efektivně odstíněny od komplexnosti integrační logiky. Ta je vyčleněna do specializovaných konektorů a různých centrálních či distribuovaných prvků, které dohromady tvoří integrační vrstvu. Takto lze opakovaně používat již připravené integrační komponenty a tím šetřit náklady.
Specializované nástroje integrační vrstvy dokáží navíc řešit úlohy, které při integraci každý-s-každým nejsou možné nebo jsou příliš náročné (viz obrázek 2).
Velká výhoda dedikované integrační vrstvy je rovněž standardizace (rozhraní, služeb, technologií, nástrojů, postupů, dat, ...) která významně zvyšuje flexibilitu organizace, protože zrychluje projekty, zlevňuje provoz a zvyšuje spolehlivost (použitím malého počtu ozkoušených technologií). Jednotná vrstva se rovněž snadněji spravuje a řídí než neuspořádaná propojení každý-s-každým.
Naopak velkou nevýhodou dedikované integrační vrstvy jsou vyšší pořizovací náklady, vyšší složitost řešení a nutnost plánování a řízení.
Jednoznačným trendem se dnes stává implementace integrační vrstvy ve formě servisně- a událostně-orientované sběrnice (ESB) založené na robustním systému pro přenos zpráv (MOM) v kombinaci s pokročilým nástrojem pro dávkové přenosy (ETL) a systémem pro řízení metadat (Master Data Management - MDM). Dále uvádíme nejběžnější topologie s oddělenou integrační vrstvou.
Centrální hub
Aplikace jsou propojeny do hvězdy s centrálním prvkem, přes který prochází veškerá komunikace. Výhodou je snížení počtu připojení oproti P2P a snadný monitoring komunikace. Nevýhodou je, že hub je nejkritičtějším místem celé infrastruktury jak z pohledu výkonu, tak i spolehlivosti. Jednotlivé aplikace se k hubu připojují svým vlastním protokolem (za předpokladu, že jej hub podporuje).
Sběrnice
Sběrnice je distribuované řešení, které má více přípojných bodů. Komunikace mezi systémy je standardizovaná a proto aplikace může přes jediné rozhraní komunikovat se všemi systémy připojenými ke sběrnici. Aby nebylo nutno standardy implementovat opakovaně v každé aplikaci, používají se předpřipravené konektory.
Výhodou je možnost sestavit sběrnici z více technologií (tzv. federované sběrnice). Sběrnice jsou velmi často založeny na systému pro předávání zpráv (message-oriented middlewere, MOM), který umožňuje volnější vazbu mezi systémy. Komunikující systémy tak např. nemusí být funkční ve stejnou dobu. Sběrnice většinou umožňuje i přenos událostí a publish & subscribe mechanismy.
Centrální ETL řešení
Aplikace mají jediné, datově-orientované rozhraní vystavené směrem k centrálním ETL nástroji. Jeho výhodou je správa datových transformací, sledování závislostí, plánování přenosů a dohled jejich provádění na jediném místě.
Data Hub
Varianta centrální hubu pro provádění ETL přenosů je Data Hub, tedy centrální prvek, který slouží jako mezisklad dat během jejich dávkového přenosu. Výhodou je větší nezávislost systémů (export z jednoho systému a import do jiného nemusí proběhnout ve stejnou dobu) a možnost již vyexportovaná data použít pro import do více systémů.
Jak vybudovat unifikovanou integrační vrstvu?
Ačkoliv je pro střední a velké společnosti unifikovaná integrační vrstva jednoznačně výhodnější, tak ze zkušeností společnosti Trask solutions vyplývá, že dnes je spíše raritou než pravidlem. Důvodem je malý nebo žádný důraz na plánování integrační architektury. Bez jasné definice integrační architektury, aktivního plánování, řízení jejího rozvoje a striktním dodržování standardů vznikne totiž vždy topologie typu „špagety".
Vybudování integrační vrstvy je dlouhodobý úkol, k jehož realizaci je potřeba přistoupit v několika krocích:
1. Získání detailního přehledu o stavu současné integrace v organizaci.
2. Definice požadavků na integrační vrstvu. Požadavky se liší pro různá odvětví, různé způsoby organizace IT a pro různé kultury společnosti.
3. Výběr cílové architektury, výběr technologií, definice standardů a především metodologie, jak cílovou integrační vrstvu používat.
4. Výběr pilotního projektu/projektů.
5. Ustavení integračního kompetenčního centra (ICC) a vlastní nasazení integrační vrstvy.
6. Aktivní řízení použití integrační vrstvy a strategické plánování dalšího rozvoje.
Speciálně definice požadavků a vytvoření odpovídající metodologie je často podceňováno. Nejen pro tyto fáze, ale i pro vlastní návrh architektury je vhodné najmout odborníky, kteří se integraci dlouhodobě věnují a mají tak dostatečný rozhled nejen o existujících technologiích, ale i specifikách integrace v konkrétním odvětví. Navíc se na trhu objevují konzultační nástroje pro definici integrační strategie, jejímž příkladem může být Trask Integration Assessment. Vybudování unifikované integrační vrstvy je na začátku vždy dražší než realizovat projekt s P2P propojením, ale v dlouhodobém pohledu je to mnohemlevnější. Vhodné je proto začít nalezením dostatečně velkého projektu, kde výhody integrační vrstvy převáží její počáteční náklady, nebo spojit několik projektů dohromady pro získání potřebné návratnosti investic.
Z minulých projektů Trask solutions rovněž plyne, že vedle architektonického týmu je vhodné vybudovat i tzv. integrační kompetenční centrum (ICC), které je výkonným orgánem a které:
- definuje a udržuje architekturu integrační vrstvy,
- definuje a kontroluje integrační standardy,
- definuje a kontroluje integrační metodiku,
- provádí vlastní integrační úlohy jako službu jednotlivým projektům.
Výhodou existence ICC je soustředění integračních zkušeností v jednom týmu, lepší využití potenciálu technologie a rutinní provádění integrace.