Orchestrace a choreografie služeb Pavel Knap katedra informačních technologií VŠE xknap02@vse.cz Abstrakt: Účelem článku je na základě dostupné literatury vymezit pojmy orchestrace a choreografie v kontextu kompozitních služeb. Dalším cílem je analyzovat tyto pojmy (v čem se liší, co je pro ně společné) a vymezit jejich podporu v BPEL. Článek se věnuje definování pojmu kompozitní služba, následně pojmů orchestrace a choreografie dle různých autorů. Zaměřuje se i na to, jak jednotliví autoři srovnávají orchestraci a choreografii. Daná srovnání umožní lepší pochopení významu obou pojmů. Článek pak obsahuje i zhodnocení podpory orchestrace a choreografie v jazyku BPEL. Klíčová slova: služba, kompozitní služba, orchestrace, choreografie, BPEL, SOA, Service Oriented Architecture. Otázky služeb a jejich řízení a skládání je problematika velmi aktuální. Vymezení pojmů, které s nimi souvisí je však, jako obvykle velmi různorodé. Pohled a tyto pojmy v jejich základním kontextu presentuje následující text. 1. Kompozice služeb K vymezení pojmů orchestrace a choreografie v rámci kompozitních služeb si musíme nejprve ujasnit, co chápeme pod pojmem kompozitní služba. Na kompozitní službu se můžeme dívat jako na sadu služeb, které spolu spolupracují za účelem vykonání určitého procesu, který definuje interakční workflow. SOA poskytuje nezbytnou podporu pro konsolidaci různých služeb do jedné kompozitní služby odpovídající souhrnnému procesu. V literatuře se zmiňuje několik termínů pro popis různých stylů spolupráce mezi službami, nejvýznamnější jsou orchestrace a choreografie. Tyto dva termíny představují rozdílné vzory interakce mezi službami. (D Ambrogio & Bocciarelli 2007) 1.1 Orchestrace Wikipedia (Wikipedia 2007) definuje pojem orchestrace následovně. Orchestrace popisuje automatickou koordinaci a řízení komplexních počítačových systémů, middleware a služeb. Orchestrace zabezpečuje koordinaci procesů a výměnu informací pomocí webových služeb. Tato definice se zaměřuje hlavně na technologický pohled, ale je málo zaměřená na vymezení pojmu orchestrace v rámci webových služeb. Šafář (Šafář 2007) již vymezuje tento pojem podrobněji. Orchestrace je centrální proces (může se jednat o další webovou službu) přebírající kontrolu nad službami, které jsou do procesu zapojeny, a koordinuje spouštění jednotlivých operací. Zúčastněné služby nevědí, a ani nemusí vědět, že jsou účastníky nějakého vyššího procesu. Dle Peltze (Peltz 2003b) orchestrace zahrnuje pořadí vykonávání interakcí webových služeb, popisuje tok vykonatelného procesu a může zahrnovat jak SYSTÉMOVÁ INTEGRACE 4/2007 117
Pavel Knap interní, tak externí webové služby. Při orchestraci je proces vždy řízen jednou stranou. Interakce při orchestraci nastávají na úrovni zpráv. Zahrnují byznys logiku, pořadí vykonávání úkolů a mohou pokrýt aplikace a organizování k definování dlouhotrvajícího, transakčního a vícestupňového procesního modelu. Dle (Quartel, Dijkman & van Sinderen 2004) orchestrace popisuje interakce, které má poskytovatel jedné služby s ostatními poskytovateli při poskytování své vlastní služby. Z tohoto důvodu se interakce v orchestraci zaměřuje na jednoho poskytovatele. Interakce mohou být přímo vykonávány tímto poskytovatelem. Typickým příkladem orchestration description language je BPEL4WS a BPML. Orchestrace může být vykonávána tzv. orchestračním enginem, stejně jako byznys procesy mohou být vykonávány ve workflow enginech. Oracle (Oracle n.d.) ve svých materiálech popisuje orchestraci následovně. Samotná koordinace volání webových služeb (tzv. WS Orchestration) se skládá z několika základních operací, jako jsou například synchronní nebo asynchronní volání webových služeb, XML data transformace, řízení běhu procesu (podmínky, cykly, výjimky) nebo notifikační události. Nejvíce se zřejmě ztotožníme s definicí Peltze, kterou by bylo možné ještě rozšířit o informaci, že zúčastněné služby nevědí, a ani nemusí vědět, že jsou účastníky nějakého vyššího procesu, jak uvádí Šafář. 1.2 Orchestrace Choreografie popisuje interakce, které mají mezi sebou navzájem dvě a více aplikací při dosahování společného cíle a vztahy mezi těmito interakcemi. Proto musí být logika, která vykonává choreografii distribuována poskytovatelem aplikačních služeb. Typickým příkladem choreography description language je web-services choreography model 1. Popisy choreografie mohou sloužit k rozdílným cílům. Mohou být použity jako standard byznys procesu, ve kterém mohou poskytovatelé aplikační služby označit části, které mohou vyplnit. Potom mohou poskytovatelé tyto popisy použít jako základ ke startu implementace jejich služeb. Alternativně, popisy choreografie mohou být vykonávány choreografistickými enginy. (Quartel, Dijkman & Sinderen 2004). Peltz (Peltz 2003b) uvádí, že choreografie sleduje sekvenci zpráv zahrnující několik účastníků a zdrojů, dále je spojena s veřejnou výměnou zpráv a ne se specifickými vykonavatelnými procesy. Choreografie je ve skutečnosti více spolupracující, každý účastník zahrnutý do procesu popisuje svojí úlohu, kterou hraje v interakci (nejedná se o řízení z pohledu jedné strany). Šafář (Šafář 2007) zmiňuje, že choreografie nevyužívá centrálního koordinátora. Každá zúčastněná služba přesně ví, kdy se má spustit a s kým má komunikovat. Všichni účastníci choreografie musí vědět o procesu, jeho operacích, zprávách a na časování výměn zpráv. 1 Podrobnou specifikaci web-services choreography modelu naleznete na adrese http://www.w3.org/tr/2004/wd-ws-chor-model-20040324/ 118 SYSTÉMOVÁ INTEGRACE 4/2007
Orchestrace a choreografie služeb 2. Společné a odlišné rysy Obrázek č. 1 a obrázek č. 2 ilustrují rozdíl mezi orchestrací a choreografií. Oba obrázky pocházejí od stejného autora (Peltze). Obrázky vyjadřují skutečnost, že se orchestrace zaměřuje na vykonatelný proces, který může spolupracovat s externími a interními službami. Orchestrace reprezentuje řízení z pohledu jedné strany (služby), zatímco choreografie je více spolupracující, umožňuje každé straně (služby) popsat její úlohu v interakci. Choreografie se zaměřuje na vztahy (spolupráci) mezi službami. Obrázek č.1 Orchestrace vs Choreografie (Peltz 2003a) Obrázek č. 2 Orchestrace vs Choreografie (Pelz 2003b) Obrázek č. 3 ilustruje orchestraci, jež je vyjádřena tokem procesu v BPELu. Specifikace umožňuje podporu strukturovaných aktivit určených k podpoře celého toku procesu, stejně tak jako základní aktivity, které zahrnují vazby s externími službami na daný proces. (Peltz 2003b) SYSTÉMOVÁ INTEGRACE 4/2007 119
Pavel Knap Obrázek č.3 (Peltz 2003b) Obrázek č. 4 vyjadřuje schéma choreografie. Specifikace se zaměřuje jenom na pozorovatelné chování mezi webovými službami, nikoli však definicí vykonatelného byznys procesu. (Peltz 2003b) Obrázek č.4 (Peltz 2003b) Šafář (Šafář 2007) vnímá z hlediska skládání webových služeb orchestraci jako flexibilnější přístup než choreografii. Orchestrace dle něj nabízí následující výhody: přesně víme, kdo je zodpovědný za celý byznys proces, můžeme spojovat služby, aniž by věděly, že jsou součástí procesu, v případě chyb můžeme vybrat jiný scénář procesu. 120 SYSTÉMOVÁ INTEGRACE 4/2007
Orchestrace a choreografie služeb Talbot (Talbot 2007) vidí odlišnosti orchestrace a choreografie v tom, že termín orchestrace se obecně používá v situaci, kde je centralizovaná kontrola procesů na makro úrovni, zatímco na mikro úrovni je ponechaný určitý stupeň volnosti (stejně jako dirigent řídí orchestr, ale nechává muzikantům určitý stupeň volnosti v tom, jak zahrají na jejich nástroje). Naproti tomu choreografie vysvětluje jako sled kroků tance a choreograf je jako plánovač. V orchestračních systémech je stále centrální řídící bod, zatímco v choreografovaných systémech centrální řídící bod není. Orchestrace dle D Ambrogiho a Bocciarelliho (D Ambrogio & Bocciarelli 2007) reprezentuje řízení z pohledu jedné strany, která je centrální autoritou, jež řídí vykonávání komponentních webových služeb. Orchestrace odkazuje na vykonatelný proces, zde je koordinátor pověřen řízením provedení toku procesu prostřednictvím explicitního vyvolání komponentové služby, která odpovídá pouze požadavkům koordinátora. Choreografie je místo toho více spolupracující a nezávisí na centrálním koordinátorovi, který řídí provedení celkového procesu. Podobně vnímají rozdíl v uvedených pojmech Hillegersberg, Boeke a Heuvel (Hillegersberg, Boeke & Heuvel 2004). Orchestrace se vztahuje k vykonatelným podnikovým procesům, které mohou vzájemně působit jak na externí, tak na interní webové služby. Při orchestraci je proces vždy řízen z pohledu jednoho obchodního účastníka. Choreografie je naproti tomu ve skutečnosti více spolupracující, každý účastník zahrnutý do procesu má popsanou svou roli, kterou hraje v rámci interakce. Jing, Huibiao a Geguang (Jing, Huibiao & Geguang 2007) zmiňují i další odlišnosti orchestrace a choreografie. Choreografie definuje globální pohled na to, jak služby spolu interagují. Zatímco orchestrace je lokální pohled zaměřující se na chování jedné služby. Choreografie definuje pravidla uspořádání interakcí mezi sadou spolupracujících služeb, aby prosadila všeobecné pochopení, jak dosáhnout byznys cílu. Naproti tomu orchestrace poskytuje lokální pohled zaměřující se na designové a implementační fáze jednoho vývoje služby. Obrázek č. 5 Souvislost mezi WS-CDL a WS-BPEL (D iaz et al. 2006) SYSTÉMOVÁ INTEGRACE 4/2007 121
Pavel Knap Obrázek č. 5 ilustruje vztah mezi vrstvou choreografie (reprezentující standardem WS-CDL) a vrstvou orchestrace (reprezentující standardem WS-BPEL), zahrnující orchestr jako metaforu této vazby. Klíčovým dokumentem jsou noty dirigenta, což představuje WS-CDL dokument, ve kterém je zahrnut každý účastník a čas kdy vstupuje do hry. Kromě toho noty pro skupinu čela, bicí a smyčcové nástroje korespondují s WS-BPEL dokumentem, který předepisuje chování každé jednotlivé skupiny. (D iaz et al. 2006) Shrneme-li informace uvedené v této kapitole, pak lze konstatovat, že mezi společné rysy orchestrace a choreografie patří skutečnost, že oba pojmy vyjadřují řízení interakce mezi službami, tím však společné rysy končí. Každý pojem přistupuje k řízení z odlišného pohledu. Orchestrace představuje řízení z centrálního místa, zaměřuje se na vykonatelné procesy, jedná se spíše o lokální pohled na řízení interakce a je reprezentována jazykem BPEL. Choreografie se zaměřuje na interakce mezi službami (neexistuje centrální řídící autorita), představuje globální pohled na řízení interakce a je reprezentována jazykem WS- CDL. 3. Podpora zmíněných přístupů v implementacích BPEL Na základě spolupráce firem IBM, BEA Systems a Microsoft vznikl standardizovaný jazyk Business Process Execution Language (BPEL), kterým je nyní pod kontrolou Organizace pro pokrok ve standardizaci strukturovaných informací (OASIS). OASIS a jazyk BPEL jsou podporovány širokým spektrem komerčních subjektů. Dle Šafáře (Šafář, 2007) můžeme pomocí jazyka BPEL definovat jednoduché i velmi složité procesy. BPEL je výrazně podobný tradičním programovacím jazykům, obsahuje smyčky, větvení, proměnné, přiřazení atd. Tyto konstrukty nám dovolují namodelovat prakticky libovolný proces. Ovšem nejdůležitější vlastnosti jsou spojené s voláním webových služeb. Ty můžeme volat dvojím způsobem, synchronně a asynchronně. Můžeme spouštět operace jak sekvenčně, tak paralelně. Po asynchronním volání máme možnost čekat na tzv. callback (zpětné volání). BPEL také disponuje bohatou výbavou v oblasti obsluhy chyb, což je velmi důležité při vytváření robustních byznys procesů, a poskytuje podporu pro dlouho trvající procesy. Pomocí BPEL tedy můžeme: popisovat byznys procesy pomocí skládání služeb, skládat větší procesy ze služeb a již vytvořených procesů, pracovat se synchronními a asynchronními operacemi a přijímat tzv. callbacks, spouštět služby sekvenčně či paralelně, kompenzovat služby v případě chyby, přesměrovat příchozí zprávu patřičnému procesu, pracovat s událostmi, spouštět aktivity v určitém pořadí či za určitý čas, strukturovat byznys procesy. Oracle (Oracle n.d.) dokonce uvádí, že se BPEL stává standardem v oblasti obchodních procesů stejně jako se stal jazyk SQL standardem pro databáze. Dle Peltze (Peltz 2003a) BPEL4WS poskytuje podporu pro vykonatelné i abstraktní byznys procesy. Vykonatelné procesy modelují chování účastníků v určité byznys 122 SYSTÉMOVÁ INTEGRACE 4/2007
Orchestrace a choreografie služeb interakci, v podstatě se jedná o soukromé workflow. Abstraktní procesy, modelované jako byznys protokoly v BPEL4WS, specifikují výměnu veřejných zpráv mezi účastníky. Byznys protokoly nejsou vykonavatelné a nepřenáší vnitřní detaily toku procesu. V zásadě vykonatelné procesy poskytují orchestrační podporu, naopak byznys protokoly se zaměřují na choreografii služby. V průběhu času byly přijaty následující verze BPEL: 2002 - BPEL4WS 1.0 - IBM, Microsoft, BEA 2003 - BPEL4WS 1.1 - OASIS 2004 - WS-CDL - W3C (Kandidát) 2007 - WSBPEL 2.0 - OASIS (Gála 2007) Obrázek č. 6 ilustruje jeden ze způsobů kategorizace uvedených specifikací a standardů 2. Osa y rozlišuje mezi spolupracujícími protokoly a vykonavatelnými byznys procesy. Spolupracující protokol odkazuje na choreografované výměny zpráv mezi různými byznys účastníky, zatímco vykonatelné byznys procesy jsou soukromé workflow řízené jednou entitou. Osa x ukazuje dvě iniciativy BPEL a WSCI/BPML. BPEL podporuje jak vykonatelné tak spolupracující procesy, naproti tomu BPML a WSCI mohou pracovat dohromady, tak že BPML modeluje vykonání byznys procesů a WSCI modeluje choreografii webových služeb. (Peltz 2003b). Obrázek č. 6 Vztahy mezi standardy pro choreografii a orchestraci (Peltz 2003b) 2 Business Process Execution Language for Web Services (BPEL4WS), Web Services Choreography Interface (WSCI), and Business Process Management Language (BPML). SYSTÉMOVÁ INTEGRACE 4/2007 123
Pavel Knap D Ambrogio a Bocciarelli (D Ambrogio & Bocciarelli 2007) uvádí, že proces v BPELu je XML dokument, typicky generovaný z grafických designových nástrojů spíše byznys analytiky než programátory. BPEL proces je vykonatelný orchestračním nástrojem, který koordinuje všechny aktivity a publikuje proces prostřednictvím standardního webového rozhraní. BPEL je určený pro modelování dvou kategorií procesů: abstraktní a vykonatelné procesy. Abstraktní procesy specifikují vzájemně viditelný režim výměny zpráv, jenž každá z účastněných stran zahrne do protokolu, aniž by odhalily jejich vnitřní implementaci. Vykonatelný proces modeluje aktuální chování každého účastníka interakce specifikováním pořadí vykonávání mezi množstvím konzistentních aktivit, jenž partneři vyžadují, zprávy vyměněné mezi takovými partnery a ostatními zařízeními, jako obsluha chyb a výjimek. Dle Jing, Huibiao a Geguang (Jing, Huibiao & Geguang 2007) se WS-CDL zaměřuje na poskytnutí globálního obrazu celého systému pro počáteční fázi designu, kdežto BPEL se zaměřuje na popis jednotlivé služby pro pozdější fázi implementace. Bharti a Talbot (Bharti & Talbot 2005) ve svém článku uvádí, že zatímco BPEL umožňuje orchestrovat stávající služby do kompozitních služeb, Web Service Choreography Language (WS-CDL) jde o krok dál a popisuje vztahy mezi službami navzájem. Hlavní motivace za vznikem WS-CDL je snaha zajistit součinnost mezi sadou propojených služeb. Choreografie říká "Mám skupinu služeb. Jak mám napsat, co by měly služby dělat, aby pracovaly jedna s druhou?". Nezajímá nás pohled kupujícího, prodávajícího nebo dovozce. To, co chci, je napsat na horní úrovni jaká je výměna zpráv, která vedla ke koupi zboží. Každá skutečná byznys transakce není jen jedno volání funkce, je to sekvence volání funkcí a může se vyskytnout mnoho věcí paralelně mezi různými službami. BPEL je o tom, jak máme konstruovat webové služby ze stávajících webových služeb. V jiném významu je BPEL o orchestraci existujících služeb za účelem jiné služby. WS-CDL je jednoznačný způsob popsání vztahů mezi propojenými službami bez vyžadování jakékoliv orchestrace. To je velmi důležité, protože pokud spolupracují dva podniky dohromady, je jisté, že ani jeden z nich by neakceptoval orchestraci služby toho druhého. WS-CDL může spolupracovat s BPELem, ale nevyžaduje ho pro spolupráci byznys partnerů. Vyžaduje jakýkoliv koncový jazyk BPEL, Java, C# atd. Jelikož se BPEL zaměřuje na orchestraci (pro choreografii bylo třeba využít jazyk WS-CDL), bylo uvedeno rozšíření BPEL4Chor, jako alternativa k WS-CDL. Dle Deckera a kol. (Decker et al. 2007) BPEL4Chor poskytuje přímou podporu pro všechny vzory interakce služeb (Service Interaction Patterns), mimo Atomic Multicast Notification. WS-CDL se zaměřuje na přístup vzájemného působení modelování, zatímco BPEL4Chor vyjadřuje popis chování vzájemně spojených účastníků. Proto jsou nevykonatelné procesy možné s WS-CDL a BPEL4Chor umožňuje definovat vzájemně se vylučující popisy chování. Neznámý počet účastníků je nativně podporován v BPEL4Chor prostřednictvím notace sady účastníka. WS-CDL přímo nepodporuje paralelní konverzaci s neznámým počtem účastníků, ačkoli jsou tyto multi-laterální scénáře dosti běžné, jak je uvedeno ve vzorech interakce služeb (Service Interaction Patterns). Jelikož je BPEL4Chor 124 SYSTÉMOVÁ INTEGRACE 4/2007
Orchestrace a choreografie služeb založen na jazyku BPEL, můžeme počítat s hladkou integrací mezi choreografií a orchestrací. Naproti tomu WS-CDL přichází s odlišnou sadou pojmů pro řízení toku. U BPEL a BPEL4Chor jsou použity stejné pojmy. Všechny pojmy uvedené v topologiích a základech mohou být namapovány do BPELu. 4. Závěr V současné době dochází k čím dál častějšímu využívání kompozitních služeb, s čímž souvisí pojmy jako orchestrace a choreografie. Tyto pojmy vyjadřují odlišný přístup k interakci služeb a primárně je zastupují odlišné jazyky (BPEL x WS-CDL) a zájmové skupiny (OASIS x W3C). Ideálním řešením by byla existence jednoho obecného jazyka, který by umožnil specifikaci orchestrace i choregrafie. Talbot (Bharti & Talbot 2005) však říká, že to není reálné, protože orchestrace se více zaměřuje na rekurzivní skládání služeb a realizuje se jako vykonavatelná. Choreografie je čistě popis, ale je to popis, který může být použit k vytvoření chování účastníka, ale není vykonatelná. Implementace jazyka WS-CDL do nástrojů určených pro BPEL není podle Talbota také reálná, dokonce ji označuje za nemožnou, proto předpokládá nutnou existenci speciálního nástroje určeného pro WS-CDL. Tento názor koresponduje s již existujícím rozšířením pro podporu choreografie BPEL4Chor. Jelikož je publikace Deckera a kol. o dva roky novější, než publikace Talbota, lze usoudit, že se situace na trhu změnila a již existuje díky rozšíření BPEL4Chor podpora orchestrace i choreografie v jazyku BPEL. Vzhledem k tomu, že je jazyk WS-CDL primárně určen pro choreografii, lze předpokládat jeho vyšší propracovanost oproti BPEL4Chor. Literatura 1. Nitin Bharti, Steve Ross Talbot, březen 2005, Dancing with Web services: W3C chair talks choreography, SearchWebServices.com. Dostupné z: <http://searchsoa.techtarget.com/qna/0,289202,sid26_gci1066118,00.html> [26.11.2007] 2. Andrea D Ambrogio, Paolo Bocciarelli 2007, A Model-driven Approach to Describe and Predict theperformance of Composite Services, ACM. Dostupné z: <http://delivery.acm.org/10.1145/1220000/1217008/p78- dambrogio.pdf?key1=1217008&key2=5299995911&coll=acm&dl=acm&cfid =44573566&CFTOKEN=50008911> [25.11.2006] 3. Gero Decker, Oliver Kopp, Frank Leymann, Mathias Weske, červenec 2007, BPEL4Chor: Extending BPEL for Modeling Choreographies, IEEE International Conference on Web Services (ICWS 2007). Dostupné z: <http://csdl.computer.org/dl/proceedings/icws/2007/2924/00/29240296.pdf> [28.11.2007] 4. Gregorio D ıaz, M. Emilia Cambronero, Juan J. Pardo, Valent ın Valero and Fernando Cuartero únor 2006, Automatic generation of Correct Web Services Choreographies and Orchestrations with Model Checking Techniques, Univ. of Castilla La Mancha. Dostupné z: <http://csdl.computer.org/dl/proceedings/aicticiw/2006/2522/00/25220186.pdf> [28.11.2007] 5. Gála Libor 2007, Web Service. [25.11.2007] SYSTÉMOVÁ INTEGRACE 4/2007 125
Pavel Knap 6. Jing Li, Huibiao Zhu, Geguang Pu červen 2007, Conformance Validation between Choreography and Orchestration, East China Normal University. Dostupné z: <http://csdl.computer.org/dl/proceedings/tase/2007/2856/00/28560473.pdf > [28.11.2007] 7. Oracle Czech s.r.o., n.d., Oracle BPEL Proces Manager Technický pohled - jak realizovat, Oracle Czech s.r.o. Dostupné z: <http://www.oracle.com/global/cz/collateral/oraclebpel_processmanager_letak. pdf> [7.11.2007] 8. Chris Peltz březen 2003a, An overview of web services orchestration standards, HP. Dostupné z: <http://devresource.hp.com/drc/resources/wsorchestration/index.jsp> [26.11.2007] 9. Chris Peltz září 2003b, Web Services Orchestration and Choreography, IEEE Computer Society. Dostupné z: <http://csdl.computer.org/dl/mags/co/2003/10/rx046.pdf> [28.11.2007] 10. Dick Quartel, Remco Dijkman, Marten van Sinderen 2004, Methodological Support for Service-oriented Design with ISDL, ACM. Dostupné z: <http://delivery.acm.org/10.1145/1040000/1035169/p1- quartel.pdf?key1=1035169&key2=7209995911&coll=acm&dl=acm&cfid=44 573566&CFTOKEN=50008911> [25.11.2007] 11. Pavel Šafář červen 2007, DP Využití BPEL v servisně-orientovaných architekturách, Masarykova univerzita fakulta informatiky. Dostupné z: <http://is.muni.cz/th/73395/fi_m/thesis.pdf > [11.11. 2007] 12. Steve Ross Talbot únor 2007, Orchestration vs Choreography, Talbot Banking Technology London. Dostupné z: <http://proquest.umi.com/pqdweb?index=13&did=1217506031&srchmode=1& sid=3&fmt=2&vinst=prod&vtype=pqd&rqt=309&vname=pqd&ts=119 4805364&clientId=45149> [11.11.2007] 13. Jos van Hillegersberg, Ruurd Boeke, Willem-Jan van den Heuvel, prosinec 2004, Potential of Webservices to enable smart business networks, Journal of Information Technology London. Dostupné z: <http://proquest.umi.com/pqdweb?index=10&did=763762911&srchmode= 1&sid=1&Fmt=3&VInst=PROD&VType=PQD&RQT=309&VName=PQD&TS=1 194797292&clientId=45149> [11.11.2007] 14. Wikipedia cs květen 2007, Orchestrace. Dostupné z: <http://cs.wikipedia.org/wiki/orchestrace_(po%c4%8d%c3%adta%c4%8d)> [8.11.2007] 126 SYSTÉMOVÁ INTEGRACE 4/2007