Velmi často dochází k podcenění role návrhu architektury systému (přestože slovo architektura je obsaženo v samotné zkratce) a oblíbeným mýtem je tvrzení, že používání webových služeb je rovno zavedení SOA.
Abychom získali společný rámec pro popis praktických úskalí zavádění SOA do organizace a do informačních systémů, zmiňme její základní teze. Hlavním bodem je bezesporu služba, tedy autonomní jednotka realizující určitou vhodně zapouzdřenou činnost, kterou dává k dispozici pomocí definovaného rozhraní ostatním službám. Pro komunikaci mezi službami slouží zpráva, představovaná souborem dat. Mezi službami požadujeme volnou vazbu a jejich vzájemné ovlivňování jinak než zasláním zprávy je v rozporu s tímto požadavkem. Logika pro šíření zprávy systémem přitom není součástí služby – ta o zprávu ztrácí zájem v okamžiku jejího odeslání – ale váže se na zprávu jako takovou.
V ideálním světě by pak vytvoření komplexního systému probíhalo shora dolů, od rozkrývání konkrétní potřeby přes její analýzu, dekompozici, návrh architektury včetně integrace s okolím až po fyzickou implementaci atomické služby na konkrétní technologii. Bylo by možné standardizovat libovolná rozhraní a dále nerozvíjené programové moduly buď nahradit zcela, nebo vhodně překrýt technologicky kompatibilní vrstvou. Dodrželi-li bychom od začátku do konce servisně orientovaný pohled, za odměnu bychom se mohli těšit ze všech benefitů, které jsou v souvislosti se SOA obvykle zmiňovány (efektivnost, spolehlivost, spravovatelnost, rozšiřitelnost…). Zasazením do kontextu reálného života je ale SOA konfrontována se spoustou omezení, která nutně vedou ke kompromisům.
Rozpočtové omezení
Je přirozené, že každý zadavatel si přeje získat maximální užitek s minimem vložených prostředků. Zavedení servisního přístupu si ale žádá investice rozsáhlejšího charakteru, protože jeho přínosy výrazně rostou až s uplatňováním napříč infrastrukturou. Klíčovou roli zde hrají analytické, architektonické a procesně modelovací práce, jejichž nezbytnost není na první prohled zřetelně vidět. Často se lze setkat s přístupem, kdy je zavedení SOA redukováno na zakoupení licencí integračního nástroje typu „middleware“ a na provedení jeho konfigurace.
Technologie nejdříve
Nový systém se nestaví na zelené louce, ale je ho nutné zasadit do existujícího prostředí. Nicméně i zde je zapotřebí určitý odstup. Marketingové úsilí velkých softwarových výrobců totiž často vede k tomu, že konkrétní technologie pro budoucí řešení jsou vybrány ještě před zahájením jakýchkoliv prací. To se může ukázat jako nevhodné zejména v okamžiku, kdy v pozdější fázi tato technologie nesplní očekávání plynoucí z našeho SOA návrhu.
Předejít tomu lze aplikací implementačních omezení do samotné analýzy, což ale poruší eleganci řešení. SOA je platformově a implementačně nezávislá.
Krátkodobé plánování
V málokteré organizaci se nalezne dostatek vůle k radikální změně celé infrastruktury IT. Nové systémy jsou zaváděny postupně jako výsledek konkrétní potřeby a ty staré – prověřené provozem – není ochota jakkoliv měnit. Jedná se o přístup zcela pochopitelný a logický.
Problém nastává tehdy, když každý nový systém vzniká (třeba i v důsledku různých dodavatelů) se svojí vlastní sadou pravidel a bez širších souvislostí, třebaže deklaruje SOA kompatibilitu. Bez dlouhodobé SOA vize ale její lokální použití přinese pouze krátkodobý efekt.
Realizovat dle SOA?
Z výše uvedeného by se mohlo zdát, že existují pouze dva stavy. Buď SOA implementovat v plném rozsahu s vědomím souvisejících nákladů, nebo raději zůstat při starém. Přestože první varianta je určitě správná, praxe ukazuje, že i pokus o zavedení SOA principů s výše uvedenými omezeními je přínosný. Patří sem zavádění standardů či doporučení, které SOA obvykle doprovázejí (XML, XML schéma, webové služby), zmapování prostředí organizace z globálního pohledu, optimalizace vnitřních procesů, centralizace komunikační infrastruktury a mnoho dalších. A v neposlední řadě k dosažitelnému ideálu se můžeme místo jedním velkým krokem dostat i sérií malých, které ovšem nesmějí postrádat správnou koncepci a směr.