SOA umožňuje flexibilní propojení aplikací

DEFINICE SOA (Service Oriented Architecture) je výpočetní architektura, při jejímž využití softwarové aplikace obsah...


DEFINICE
SOA (Service Oriented Architecture) je výpočetní architektura, při jejímž
využití softwarové aplikace obsahují pouze logiku specifickou pro jejich
vlastní úkol a pro obecnější činnosti využívají služeb dostupných na síti.
Vzhledem k tomu, že témata týkající se nejrůznějších druhů architektur
orientovaných na služby jsou v současnosti velmi populární, měli bychom hned v
úvodu uvést několik důležitých faktů; tak tedy: Koncept SOA není nový, nejde o
technologii samu o sobě, nejedná se o pouhé využití XML a webových služeb a jde
o mnohem více než o pouhou vývojářskou technologii.
SOA vychází z velmi jednoduché myšlenky: Standardizujme ony obecné funkce,
široce využívané mnoha aplikacemi, do opětovně využitelných komponent (služeb),
přístupných přes síť, a do vlastní aplikace zakódujme jen uspokojování
specifičtějších potřeb uživatelů. A pro příklad není třeba chodit daleko každý
operační systém muže být příkladem SOA v akci.

Dávná historie
IT organizace úspěšně vytvářely a nasazovaly SOA aplikace již léta předtím, než
vůbec existovaly standardy XML a webové služby. Pouze o daném procesu hovořily
v termínech, jako je modularita, opětovně využitelné komponenty, objektově
orientované programování nebo aplikační programová rozhraní. Ačkoliv žádný z
uvedených konceptů nelze ztotožňovat se SOA, všechny její aspekty zahrnují.
SOA je pouze nejnovější zkratkou pro metody návrhu, vývoje, nasazení a správy
různých částí počítačové logiky (rozuměj "služeb") v rámci počítačové sítě.
Jedná se o způsob strukturování aplikací, organizování IT infrastruktury a
standardizování provozních funkcí. Ačkoliv je pojem SOA často spojován s
využitím XML a webových služeb, zmíněné dvě záležitosti jsou pouze nejnovější
implementací principu SOA.

Principy
SOA od vývojářů vyžaduje, aby navrhovali aplikace jako kolekci služeb, dokonce
i pokud z toho nevyplývá žádný okamžitě zjevný přínos. SOA od nich vyžaduje
rovněž to, aby přemýšleli nad rámec své stávající aplikace, zvážili opětovné
využití stávajících služeb a prozkoumali, jakým způsobem by jiní vývojáři mohli
znovu využít služby, které sami vytvářejí. A SOA také vývojáře vyzývá k využití
alternativních přístupů a technologií, jako je například messaging, a k
vytváření aplikací formou propojování služeb namísto psaní nového kódu. Takový
typ aplikační struktury dovoluje firmám rychle reagovat na změnu tržních
podmínek; namísto vývoje nového aplikačního kódu lze jednoduše změnit způsob
výměny zpráv.
Koncentrací na podnikové procesy a využití standardních rozhraní může SOA
pomoci skrýt implicitní technickou složitost prostředí IT. Analýza vzájemných
interakcí služeb v rámci SOA dovoluje firmám pochopit, kdy a proč dochází k
vykonání určité logiky, což usnadňuje optimalizaci podnikových procesů.

Párování
Jednou z klíčových funkcí SOA je využití volně spárovaných propojení. Tradičně
byla propojení mezi aplikacemi a službami spárována pevně, jako například u
CORBA (Common Object Request Broker Architecture). Tato odlišnost SOA je velmi
významná, jak ukážeme dále.
Eric Van der Vlist, autor knihy XML Schema: The W3Cs Object-Oriented
Descriptions for XML (OReilly, 2002), popisuje rozdíly mezi zmíněnými dvěma
typy párování pomocí následující analogie: V pevně spárovaném systému máte
přímou kontrolu nad jeho fungováním. Například přepnutí vypínače při rozsvícení
světel představuje pevně spárovaný systém. Oproti tomu telefonická objednávka
knihy je volně spárovaným systémem. Mohla by být pevně spárovaným systémem
pouze tehdy, pokud byste měli přístup k tlačítku, které ovládá tiskárnu, jež
objednanou knihu vytiskne.
Pevně spárované systémy jsou obvykle rychlé a bezpečné, přičemž riziko
informačních chyb je velmi nízké. Na druhé straně jsou volně spárované systémy
zpravidla náchylnější k chybám, ale také pružnější. Pracovník na telefonu, u
nějž knihu objednáváte, by mohl špatně rozumět ISBN kódu knihy, kterou chcete
objednat, nebo by mohl udělat chybu při jeho zadávání. Ale pokud si ISBN kód
nepamatujete, můžete přesto danému pracovníkovi říci, že chcete nejnovější
vydání knihy o XML schématu, kterou napsal kdosi s holandsky znějícím jménem a
vydal někdo, kdo na obálky knih dává obrázky zvířat a pokud to takto uděláte,
máte dobrou šanci, že budete pochopeni.
Pevné spárování obvykle podstatným způsobem znesnadňuje údržbu a opětovné
využití komponent, jelikož změna jedné komponenty automaticky znamená nutnost
změny komponent dalších. Obdobně pevné spárování vyžaduje další práci, pokud je
třeba aplikaci přizpůsobit měnícím se firemním požadavkům, neboť změna jedné
aplikace může donutit vývojáře provést změny i v dalších propojených aplikacích.
Obecně řečeno, webová služba je typem SOA, u něhož jsou rozhraní založena na
standardizovaných internetových protokolech. Navíc, s výjimkou binárních
příloh, si musí webové služby vyměňovat zprávy ve formě XML. Webová služba je
tedy o něco více než SOA, která využívá SOAP (Simple Object Access Protocol) a
WSDL (Web Services Description Language). Avšak SOA nevyžaduje využití webových
služeb tak, jak je chápeme, a některé druhy webových služeb nelze realizovat
bez pomoci SOA.

Slovník pojmů vztahujících se k SOA
Enterprise Service Bus: Softwarová infrastruktura, která využívá standardního
rozhraní a výměny zpráv k integraci aplikací; jeden ze způsobů implementace SOA.
Granularita: Jednotlivé pracovní objekty lze definovat na úrovni zaměstnance
nebo zákaznické objednávky. U SOA jsou však služby definovány na širší,
abstraktnější úrovni například obchodní proces, jakým je generování
zákaznického účtu. Tomu říkáme hrubá granularita.
Message-Oriented Middleware (MOA): Mechanismus propojování aplikací, někdy i
napříč platformami. Data jsou umístěna ve frontách zpráv, odkud si je cílové
programy mohou stáhnout (nebo si jejich zasílání objednat). Pokud dojde ke
změně publikovaných informací, obdrží služby, které si jejich odběr objednaly,
automaticky aktualizované údaje.
SOAP (Simple Object Access Protocol): Protokol na bázi XML, který definuje
rámec pro výměnu zpráv mezi systémy po internetu.
UDDI (Universal Description, Discovery and Integration): Standardizovaná metoda
pro registraci webových služeb.
WSDL (Web Services Description Language): Jazyk na bázi XML, který je využíván
pro popis služeb v rámci UDDI.









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.