"Service Oriented Architecture" neboli SOA, je architektonický princip budování podnikové infrastruktury. Tento pojem je v současnosti používán velmi často, ne vždy však ve správném kontextu. Je běžné slyšet "Ano, máme nasazenou SOA - máme tu WebServices, pomocí kterých propojujeme věci mezi sebou". To je ale chybná záměna pojmu architektury za standard pro integraci aplikací.
SOA ve svém plném významu představuje způsob, jak vybudovat flexibilní infrastrukturu společnosti, která umožní společnosti rychle, pružně a levně reagovat na měnící se obchodní potřeby.
SOA znamená vybudovat IT infrastrukturu z jasně definovaných komponent, která umožní sdílet nejen služby, ale i data a celé procesy. Rovněž je nutné změnit chápání informačních systémů a jejich využití, definovat obchodní, provozní a vývojové procesy napříč organizačními jednotkami a zavést nové způsoby řízení a organizace projektů.Praxe ukazuje, že zavedení SOA není zdaleka jednoduché a že většina společností je pouze na začátku celého procesu, který trvá léta (studie uvádějí 6 až 12 let).
Překážky implementace
Širšímu rozvoji SOA brání několik celkem závažných překážek, jejichž řešení je vzhledem k povaze zaváděných změn nevyhnutelné. Je nutné si uvědomit, že na rozdíl od dřívějších revolucí (client-server architektury, objektové programování, a pod.) zasahuje SOA nejen IT, ale i zbytek podniku.
Hlavní překážky rozvoje SOA ve velkých společnostech jsou tři:
- nutnost velkých počátečních investic
- nedostatečně vyspělá technologie a standardy a složitost implementace
- nedostatečné řízení
Nutnost velkých počátečních investic
SOA vyžaduje velké investice do SW vybavení, včetně kompletní výměny celých systémů, ale rovněž zvýšené náklady na realizaci prvních projektů. Ukazuje se, že než společnost zvládne potřebné know-how a plně přijme základní principy SOA, ústí pokusy o jejich aplikaci až ve dvojnásobné prodloužení a prodražení projektů. Navíc návratnost takových investic je v řádu mnoha let a nikoli měsíců. První nasazení SOA a úspěšná integrace aplikací mezi sebou sice přináší benefity celkem rychle, avšak cenou za tuto integraci je komplikované prostředí IT, které v dalších fázích generuje významné náklady navíc. Teprve při pochopení a zohlednění principů SOA na všech úrovních společnosti se plně projeví snížení nákladů na vývoj nových řešení, zrychlení vývoje a významné zvýšení flexibility.
Nedostatečně vyspělá technologie a standardy a složitost implementace
Implementace SOA vyžaduje velké množství nových technologií. Tyto technologie musí být standardizovány pro podnikové nasazení aby byla zaručena jejich vzájemná kompatibilita a interoperabilita. Jak standardizace, tak i vývoj SOA nástrojů však teprve probíhá. Standardy dosud nejsou ve finální podobě a přitom jsou již implementovány v aplikacích. Velké množství standardů je definováno paralelně, což vede ke vzájemné nekompatibilitě. Trend dostupných SOA standardů je navíc činí všeobjímajícími, čím se stávají zbytečně složitými. A potřebné podpůrné nástroje pro jejich správu často neexistují. Výsledná komplexnost celé technologie a její prudký vývoj brání v dlouhodobém plánování a přijetí technologie jako takové. Jak IT tak i management je k této technologii nedůvěřivý a rozhodnutí o její implementaci je proto odkládáno.
Nedostatečné řízení
Při vývoji klient-server aplikací a soustředění se na aplikační sila byly nutné jiné dovednosti, než při návrhu a vývoji SOA aplikací. Aplikační sila musí být restrukturalizována a organizaci vývojových týmů je nutno změnit z vertikální na horizontální, protože nové procesy procházejí napříč celou organizací. Jednotlivá oddělení musí kooperovat ve všech fázích vývojového cyklu. Rovněž zodpovědnost za klíčové oblasti se začíná rozprostírat horizontálně a je tudíž jen těžko přenositelná na vertikální týmy. Nová organizace vývojového cyklu a nové technologie tak vyžadují nové dovednosti. Než organizace získá tyto nové dovednosti a provede reorganizaci, jsou všechny pokusy o vývoj nových procesů nad SOA architekturou zdlouhavé, neefektivní a tím také drahé. Situaci navíc komplikuje fakt, že řízení postupného přechodu na SOA nelze dělat skrze jednotlivé projekty. Projekty jsou řízené krátkodobými cíli a rychlou návratností investic, zatímco SOA v prvních fázích implementace projekty brzdí a návratnost oddaluje. Přechod na SOA je nutné plánovat a řídit projektově nezávislým útvarem s vizí dlouhodobé strategie, který má široké pravomoce. Pokud takový útvar ani vize neexistuje, je celkový přechod na SOA v podstatě nemožný.
Technologická rizika
WebServices a SOA
WebServices jsou zajímavé hlavně pro popis rozhraní jednotlivých služeb a jako na platformě nezávislý přenosový protokol. Jejich implementací a použitím pro integraci dvou či více aplikací ještě nevzniká servisní architektura. Nakonec, SOA protokol lze použít pro jakákoliv vzdálená volání, i pro taková, která bychom jen těžko nazývali službami. Navíc platí, že WebServices zdaleka nejsou pro SOA povinné, protože důležité není používat WebServices, ale mít služby!
Špatný výchozí bod
Častým omylem je předpoklad, že WebServices jsou integrační platformou. WebServices je pouze sada standardů, které je potřeba naplnit nějakou technologií (což se děje velmi často pomocí proprietárních nástrojů). Výsledkem takové implementace je propojení všech aplikací mezi sebou, čímž se integrace považuje za ukončenou. Bohužel se často ukáže, že výsledné řešení je z dlouhodobého hlediska neprovozovatelné. Technologický nástroj pro podporu přechodu na SOA ale existuje - jedná se o produkty z kategorie Enterprise Service Bus (ESB). SOA bez ESB implementovat v podstatě nelze a každá velká společnost se nakonec k řešení typu ESB dopracuje. Smutnou pravdou je, že většinou celý proces probíhá stylem pokus-omyl, začíná implementací webových služeb a následuje rozvojem platformy vlastními silami. Je velmi pravděpodobné, že výsledný proprietální ESB není příliš vhodný. Celý proces jeho vývoje navíc spolyká velké množství peněz a času a stane se brzdou rozvoje celé společnosti.
Enterprise Service Bus
ESB je typ produktu realizující integrační platformu. Původně bylo ESB jen architektonický koncept, ale nyní se již na trhu objevují ucelené produkty naplňující tuto vizi. ESB nemusí být použit pouze pro SOA architektury, ale je ideální platformou pro jejich realizaci. Základním konceptem ESB je snížení počtu propojení mezi jednotlivými aplikacemi a zavedení přidaných hodnot do této komunikace. Na rozdíl od jednoduchých „hub-and-spoke" architektur se ESB vyznačuje těsnou integrací s aplikacemi. Jednotlivé funkční bloky jsou distribuovány podle potřeby tak, aby spolupracovaly v harmonii a vytvářely tak celkový uživatelský obraz z jediné sběrnice. Pokud totiž umístíme vstupní body ESB blízko jednotlivým aplikacím, získáme homogenní prostředí, které zajišťuje jednotným způsobem bezpečnost, audit, dohled, řešení chybových stavů a další. Typický ESB je postaven na robustní messagingové platformě, která umožňuje podporu synchronní i asynchronní komunikace, zaručeného doručení zpráv, publish & subscribe mechanismů apod. Velmi významnou oblastí je robustnost celého řešení, tedy nativní podpora schémat high-availibility, load-balancing, fail-over a disaster recovery. Dále je důležitá možnost nastavení QoS komunikace pro různé konzumenty či pro různé služby například s cílem řízení objemu komunikace pro ochranu jednotlivých komponent před nadměrným přetížením. Protože se ESB po překonání stádia konceptu do úrovně reálné implementace stává produktem, je jeho součástí i široká paleta nástrojů pro monitoring, nazasení, bezpečnost, řízení a pro podporu vývojového cyklu.
... ale máme pro Vás řešení!
Na základě zkušeností z rozsáhlé řady realizovaných projektů, Trask vyvinul vlastní Enterprise Service Bus produkt - Trask Integration Framework (dále jen TIF ESB), který je v současné době nasazen jako pilíř SOA architektury v několika velkých organizacích. Vybrané moduly TIF ESB Trask běžně využívá i v menších integračních projektech jako „akcelerátory" řešení.
TIF ESB
TIF ESB představuje plnohodnotnou implementaci ESB konceptu. TIF ESB je řešení, které umožňuje postavit velmi rychle solidní základnu pro servisně orientovanou architekturu. Produkt TIF ESB navíc obsahuje i přidané moduly zasahující do oblasti SOA Governance, čímž umožňuje dále podpořit snadné přijetí SOA ve společnosti.
Zmírnění překážek rychlého rozvoje SOA
Celková koncepce produktu TIF ESB umožňuje zrychlit proces rozvoje SOA. Při uvážení složitosti a zdlouhavosti procesu nasazení může být jeho zkrácení pomocí TIFu významnou konkurenční výhodou.
Počáteční investice
TIF je vysoce modulární. Umožňuje nasadit jen ty částí, které jsou nutné pro konkrétní řešení. Tím lze hned v počátcích dosáhnout významných úspor na SW vybavení. Nasazením hotové platformy se významně zkrátí úvodní fáze nasazování SOA (tj. nasazení integračního řešení a unifikovaný přístup ke všem službám). Na tomto základě pak lze využívat návazné části TIFu pro budování skutečné SOA infrastruktury.
Vyspělost technologie a standardy
TIF používá jen prověřené a dlouhodobě stabilní standardy a SW nástroje. Další standardy jsou do TIFu implementovány až když prokáží svoji životaschopnost v reálném provozu. Výsledkem je stabilita řešení, která není závislá na momentálních výkyvech trhu. Přijetí TIFu se tak stává mnohem snadnějším.
Složitost implementace
Nasazení TIFu je velmi přímočaré. Není potřeba studovat stovky zpráv standardizačních komisí či nepřeberné stohy dokumentace. Zpřístupnění nových aplikací do SOA světa je otázkou minut. Komunikační a jiné standardy jsou před uživateli skryté uvnitř produktu a vše, na co je potřeba se zaměřit je sada jednoduchých rozhraní. Dodavatelé integrovaných aplikací se tak mohou soustředit na vývoj v jazyce a prostředí, na které jsou zvyklí a nemusí se zabývat specifickými problémy integrace.
Nedostatky řízení
TIF obsahuje nástroje pro podporu SOA Governance procesu. To však pro řízení SOA nestačí. Je nutné získat nové dovednosti, reorganizovat společnost a změnit vnímání IT systémů. Celému obtížnému procesu přechodu na SOA se nelze vyhnout, ale je výhodou opřít se o experty se zkušenostmi z jiných realizací a tím se vyvarovat slepých uliček.