Tento třídílný seriál je zaměřen na vybrané části SOA, které jsou důležité pro vytvoření kvalitní architektury. První díl stručně shrnuje principy SOA a jak poznat, zdali je SOA vhodná právě pro vaši organizaci. Existují totiž výjimky, kdy pro firmu mohou být vhodnější právě jiné typy architektur. Druhý díl bude věnován tzv. best practices a řízení celého procesu neboli governance.
Tomáš Kadlec
Součástí druhého dílu bude i několik principů kolem definování služeb, co je a není dobrá služba, základní funkce registru a co plyne z toho být vlastníkem dané služby,
Nedílnou součástí každé architektury je uživatelské rozhraní. Ve třetím, závěrečném díle se proto podíváme, jak by se dali použít některé technologie a principy posledního IT trendu známého pod zkratkou Web2.0.
Co je to vlastně SOA?
Zkratka SOA (Service Oriented Architecture) jako moderní přístup k budování IT systému je v poslední době jednou z nejpoužívanějších a všem určitě dobře známá. Jak ale vlastně postupovat v případě, že sedíte na židli CIO nebo CTO?
V první řadě je důležité nezapomenout, že SOA je především o architektonickém přístupu k budování IT. Obecná definice architektury podle IEEE 1471 zní: „SOA je základní organizace systému vyjádřená v jeho komponentech, jejich vzájemných vazeb a vazeb na okolní prostředí, principů řídící design a vývoje tohoto systému.“ Z toho plyne, že nasazení webových služeb a dalších technologií architekturou SOA není.
SOA je pak dále podmnožinou této vyšší „Enterprise architektury“. Jednoduchou, přitom však stále použitelnou definicí může být: „SOA je rámec pro integraci obchodních procesů a podpůrné IT infrastruktury ve formě bezpečných, standardizovaných komponent – služeb, které mohou být znovupoužitelné a komponované tak, aby adresovaly měnící se obchodní priority a požadavky.“
Z toho pak již přímo plynou hlavní důvody, proč uvažovat o tomto typu architektury. I když je jich celá řada, mezi ty nejdůležitější patří:
A) Levnější a rychlejší realizace obchodních požadavků – možnost využití existujících „sdílených“ komponent.
B) Levnější provoz – odstraňování duplicit v datech, aplikacích a integracích, snižování vzájemných závislostí.
C)Lepší prokazatelnost nákladů na IT – služby, resp. IT projekty, jsou minimálně na logické úrovni vztaženy k obchodním činnostem.
Je nesporné, že IT průmysl masivně investuje do technologií, standardů a metodik. SOA je životaschopný a potřebný koncept a v zásadě neexistuje jiná srovnatelná varianta (až na velmi specifické případy, viz. níže v textu). Posledním a velmi dobře známým důvodem, proč zvažovat SOA, je samozřejmě větší B2B integrace. Zde se již dnes bez servisní orientace nebo technologie jednoduše neobejdete.
Otázka nákladů a návratnosti investic
Při implementaci SOA mějte na paměti, že doba návratnosti je zde delší. To ale platí obecně pro jakoukoliv architektonickou iniciativu ve větší organizaci. Rovněž nezapomínejte na neustálý vývoj služeb a jejich údržbu. Vytvoření opravdu „dobré“ služby je časově náročné a vyžaduje vaši plnou pozornost.
Dále je nutné architekturu postupně doplnit o některé nové komponenty jako např. ESB, registr služeb či procesní integrace. Počítejte s náklady na vzdělávání, sofistikovanější správu požadavků, analytické činnosti a mnoho dalších činností, které udržují architekturu při životě. V technické oblasti dejte pozor na volbu těch správných standardů, resp. jejich pouhých návrhů. Technologie se v této oblasti velmi rychle vyvíjejí a nezřídka existuje i několik soutěžících návrhů. Je nutné pečlivě zvážit, které použít a které naopak ne.
Kritická otázka nákladů a návratnosti investic
Co se týče provozních aspektů, vysoká míra distribuovanosti spolu se změnou přístupu k SLA pro sdílené služby vyžaduje změny v koncepci service managementu. Kritickou částí může být bezpečnost, resp. čím více komponent propojíte, tím větší jsou zde nároky na bezpečnost.
Z toho všeho plyne, že je nutné již od začátku kombinovat taktickou implementaci se strategickým přístupem. Počítejte však s tím, že v celkovém kontextu společnosti se tyto výhody začnou projevovat postupně.
Existují i případy, kdy SOA nemusí být vaší prvotní volbou. Jedná se spíše o výjimky typu:
A) IT prostředí uvnitř vaší firmy je homogenní (SOA však můžete potřebovat v tom případě, pokud plánujete B2B integrace s vašimi obchodními partnery).
B) Výkonnost a zaručená doba odezvy u real-time aplikace jsou klíčovým a hlavním požadavkem.
C) Flexibilita pro vás není prioritou (jde o případy, kdy procesy jsou jednoduché nebo se jedná o komoditní procesy, které jsou v každé společnosti stejné).
D) Potřebujete těsnou vazbu mezi systémy, optimalizovanou na výkonnost a kompaktnost.
E) Vaše společnost ještě není plně připravena. SOA je „týmový sport“ a vyžaduje vyspělou, disciplinovanou organizaci ochotnou ke změně.
Všude jinde ale prostor a možnosti pro nasazení SOA jsou. Obvyklý a vyzkoušený postup je postupné nasazování. V první fázi se většinou jedná o jedno oddělení/projekt, kde je cílem sbírání praktických zkušeností. Typické projekty jsou portály nebo aplikační a datová integrace. Pokud vše probíhá bez výrazných potíží, v další fázi se může zapojit již více oddělení.
Častým případem je procesní integrace s cílem automatizovat vybrané obchodní procesy nebo realizace prvních sdílených služeb. Nejvyšším stupněm nasazování SOA je přechod k sérii navazujících projektů, tzv. programu. Jedná se o realizaci rozsáhlého obchodního procesu a využití tzv. kompozitních služeb, tedy služeb složených z dalších služeb nižší úrovně nebo technických služeb.
Každá úspěšná architektura potřebuje kromě dobré technologie také dobrý interní marketing a každodenní praktickou práci, tzv. „Governance“. A právě SOA governance společně s několika best practices budou tématem druhého dílu.
Profil
Autor v roce 1994 ukončil jadernou fakultu ČVUT. Od roku 1996 je zaměstnán v různých technických pozicích ve společnosti IBM. Od roku 2004 pracuje jako IT architekt v IBM Software Group se zaměřením na finanční a průmyslové podniky. V roce 2006 získal Open Group ITAC certifikaci v oblasti IT Architektury.