SOA za 12 měsíců
Vyhlásit projekt na zavedení SOA a snažit se spočítat jeho návratnost, nejlépe do 12 měsíců, je zaručená cesta jak neuspět. Celý nápad totiž nedává moc smysl. SOA je koncept, ne technologie. Nelze ji zavést projektem. Navíc se netýká jen IT (a technologií) ale má významný přesah do organizační roviny a způsobu jakým je vedena celá společnost. SOA říká, jak má být postaveno celé IT a dotýká se všech jeho aspektů. Různé metodiky a studie (např.: Saugatuck Technology: SOA Reality Check: Three Waves of Adoption Through 2012) uvádějí, že celý transformační proces probíhá ve fázích, kde každá fáze trvá roky (tři, pět, šest let, ...) a nelze jej příliš uspěchat. Stejně jako nenaučíte malé dítě chodit týden po narození. Je potřeba postupovat pomalu a učit se za pochodu.
Nicméně to neznamená, že nemá cenu začít. Začít je potřeba co nejrychleji, ale jak?
Vyčíslení nákladů, návratnost investic
Ještě než si řekneme, jak se SOA začít, řekneme si jak nezačít. Určitě nepovede k cíli, když se začne management ptát, kolik SOA stojí a kdy se investice vrátí. Návratnost (ale ani náklady!) nelze přesně vypočítat. Nicméně i tak lze SOA zavést "ziskově".
Zavedení SOA je kompletní rekonstrukce IT. Je to podobné, jako když se management rozhodne reorganizovat strukturu společnosti. Management tak dělá podle své intuice a zkušeností, ne tak, že by si spočítal kdy se mu to vrátí - SOA je to samé v IT světě.
SOA má totiž velkou dlouhodobou přidanou hodnotu především v oblastech, jako je: zvýšená flexibilita společnosti, vyšší schopnost inovace, lepší efektivita společnosti, snížené operační riziko a v neposlední řadě lepší pochopení IT u obchodních lidí.
Návratnost těchto přidaných hodnot se špatně vyčísluje, protože nejsou měřeny nebo je nelze měřit a tudíž ani vyčíslit zlepšení. Navíc první SOA projekty mají tendenci tyto atributy spíše zhoršit - společnost se totiž musí naučit se SOA pracovat. Protože se jedná o úplně nový způsob práce, který vyžaduje změny i v řídících strukturách, nejsou její výhody zpočátku tolik zřejmé.
Obecně lze říci, že společnosti, které SOA zavedli jako první a které dneska SOA rutinně využívají, si při jejím zavádění návratnost nepočítali. Pochopily totiž, že nová architektura přináší tolik výhod, že její návratnost nemá smysl vyčíslovat pomocí standardních metod a spíše se pro ni rozhodli na základě manažerské intuice.
Nicméně ne všechny společnosti mají osvícený management, který dokáže učinit takové rozhodnutí (a nejen učinit, ale i jej realizovat). Pro ty ostatní přesto existují způsoby, jak nastartovat SOA transformační proces. Tento článek neumožňuje rozepsat všechny způsoby, proto prezentuje pouze jeden způsob, který je v českých podmínkách v praxi vyzkoušený a který funguje.
Kde začít
Jedna z věcí, která lze snadno vyčíslit jsou náklady na integraci systémů (jak vývoj, tak provoz integračního řešení). Proto je rozumné jako první impuls pro zavedení SOA využít projekty, které vyžadují velké množství integrace.
U těchto projektů lze již při jejich analýze (ještě před vlastním návrhem) spočítat, kolik jsou odhadované náklady na integraci pomocí původních (většinou ad-hoc) mechanismů a kolik jsou náklady na integraci pomocí služeb (vysvětlení „integrace pomocí služeb" je uvedeno dále v článku).
Ačkoliv integrace je pouze malá část SOA a ačkoliv se nedá říct, že pouhá integrace dvou a více systémů pomocí služeb znamená servisně orientovanou architekturu, tak je to významný odrazový můstek. Další projekty totiž mohou začít používat již připravených rozhraní, a pokud důsledně dodržují nastolený integrační standard, začne se brzo projevovat potenciál pro stavbu skutečné SOA.
Jakmile vznikne dostatečný počet služeb, lze (a je potřeba) začít budovat další části SOA skládanky, jako je registr služeb, proces řízení vzniklých služeb, SOA kompetenční centrum a další.
Teprve v této chvíli lze začít přestavovat celou architekturu na komponenty a kompozitní aplikace. Důvodem je vznik vyspělé integrační vrstvy, která je flexibilní a dokáže realizovat nové integrační scénáře s minimem úsilí. Lze tak začít přesouvat funkcionalitu mezi aplikacemi, konsolidovat ji do komponent a zavádět komponenty s jasně vymezeným účelem. Na rozdíl od původních aplikací tyto nové komponenty samy o sobě nemají smysl, jsou však součástí většího řešení, které poskytuje požadovanou obchodní funkcionalitu.
Zároveň tento postupný a pomalý přechod umožňuje, aby se společnost za běhu učila a transformovala tak, aby byla schopná nový SOA princip použít. S tím jak přibývají služby a některé začínají být sdílené, se společnost pomalu mění. Mění se principy myšlení, řízení projektů, organizační struktura v IT a další, protože nový způsob práce to vyžaduje. Společnost si tak buduje půdu pro skutečně servisně orientovaný přístup ke komponentní architektuře a ve výsledku i k modulární společnosti.
Příklady vhodných projektů
Projekty, při jejichž realizaci je vhodné uvažovat SOA principy, a začít je naplňovat, jsou například následující:
- Vytvoření jednotného front-end systému (například pobočkový systém banky, informační portál), který funguje jako jediné rozhraní k velkému množství systémů
- Implementace CRM, ERP, DMS a jiných podobných systémů, které vyžadují propojení s řadou dalších aplikací
- Fůze a akvizice a následné slučování a integrace IT systémů obou společností
- Implementace BPM (Business Process Management) nástroje a automatizace procesů
- Nahrazení klíčového, těsně integrovaného systému.
Integrace pomocí služeb
Při zavádění SOA tedy doporučujeme začít integrací aplikací mechanismem „integrace pomocí služeb". Tato integrace se od klasické ad-hoc integrace liší důrazem na koncepčnost integrace. Hlavní rozdíl, proč se integrace pomocí služeb vyplatí již v prvním projekt, je důraz na maximální univerzalitu vytvářených rozhraní a na maximální opakovanou použitelnost integračních modulů. Jednotlivé integrované systémy musí nabízet standardizované, metadaty popsané rozhraní, jehož rozšiřování je rychlé (ideálně pouze konfiguračně orientované). Musí být standardizována transportní vrstva, komunikační formát, audit, zabezpečení, ošetření chyb, dohled atd. Pokud mluvíme o standardizaci, není nutné implementovat velkou řadu komerčních či otevřených standardů, stačí si vybrat jeden co nejjednodušší standard a ten použít (například webservices je pouze jedna, navíc komplikovanější volba). Tento jednoduchý standard může být speciální pro danou organizaci - stačí, aby byl standardem v dané organizaci.
Typicky může v tuto fázi velmi pomoci použití již hotového produktu typu Enterprise Service Bus (ESB). Je dobré si uvědomit, že z počátku je potřeba řešit především konektivitu systémů, kdežto koncepty jako mediace, orchestrace, routing a další pokročilé funkce, které typické ESB produkty nabízí, nejsou z počátku nutné, spíše naopak.
Pár slov závěrem
SOA je nastartovaný trend, kterému se většina společností nevyhne. Není ale dobré snažit se uměle transformovat IT architekturu na servisně orientovanou pokud to obchodní strategie společnosti a obchodní projekty nevyžadují. SOA nelze zavést velkým třeskem, je potřeba ji budovat postupně, odzdola a pomalu. Vhodným vstupním bodem tak je začít s integrační platformou velkých projektů.