Microsoft BizTalk Server 2004 – orchestrace a práce s adaptéry
V tomto článku o BizTalku si budeme hrát na dirigenty a vyzkoušíme si, jak se v prostředí Visual Studia .NET tvoří orchestrace. Probereme sadu nejzákladnějších nástrojů a podíváme se, jak sestavit aplikaci, umístit ji na server a spustit. Článek je plný obrázků přímo z vývojového prostředí…
Založení nového projektu
BizTalk obsahuje celou řadu modulů, které jsou integrovány přímo do vývojového prostředí Visual Studio .NET. První viditelnou změnou je dialog New Project, který nyní obsahuje složku se čtyřmi typy BizTalk projektů. Po vytvoření prázdného projektu obvykle ihned vedou kroky vývojáře do dialogu Add New Item, který obsahuje jednotlivé typy souborů, které může projekt obsahovat. Středobodem BizTalku jsou zajisté orchestrace, nebudeme se tedy zdržovat a vrhněme se na ně.
Spuštění a zastavení aplikace
BizTalk je (jak lze vytušit) vlastně služba systému, běžící na pozadí a vykonávající svou úlohu. Při instalaci BizTalku se vám nainstalují také patřičné moduly do Visual Studia, ve kterém vyvíjíte své aplikace. Každý BizTalk projekt se (stejně jako jiné projekty) zkompiluje do .NET assembly. Zkompilovanou aplikaci je třeba umístit na server (deploy). Při tomto procesu se vytvoří patřičné záznamy v databázi a kompiláty se umístí do GAC (Global Assembly Cache). Proto je požadováno, aby byl každý projekt podepsán (strong-named). Posléze se musí jednotlivé orchestrace přenést na hostitelský stroj, na kterém ve finále poběží (enlist), a spustit (start). Přitom se vygenerují také porty, které jsme si dříve nakonfigurovali, a spojí se s danými orchestracemi. Všechny tyto úlohy lze provádět pomocí nového okna ve Visual Studiu, které se nazývá BizTalk Explorer.
Toto malé okénko je vlastně hlavním řídícím panelem, díky němuž můžeme mimo jiné také pracovat s porty přímo na serverech – vytvářet a rušit je, povolit či zakázat, měnit jejich parametry a přiřazovat je orchestracím.
Pokud chceme některou aplikaci aktualizovat, nebo prostě smazat, musíme zastavit všechny její orchestrace (stop) a odstranit je z hostitelských počítačů (un-enlist). Pak teprve můžeme celou aplikaci úplně odstranit (undeploy).
Životní cyklus orchestrace
Jak již bylo řečeno, nová instance orchestrace vzniká buď voláním z jiné orchestrace, nebo aktivací jejího vstupního portu. V každé případě by orchestrace měla přijmout nějakou vstupní zprávu, kterou pak zpracovává. Během zpracování může spustit další synchronní či asynchronní proces, na jehož výsledek může či nemusí počkat, a pokračovat dále. Jakmile orchestrace doběhne na konec, je její instance ukončena a uvolněna z paměti (a z databáze).
Orchestrace se může také při některých chybách zmrazit (suspend) a v tomto stavu čekat, než bude problém vyřešen. Díky použité architektuře může být zmrazených a čekajících orchestrací velké množství, aniž by okupovaly operační paměť, protože jsou odkládány do databáze a paměť je využívána pouze běžícími procesy.
Orchestration Designer
Každý proces někdy začíná a někdy taky končí a stejně tak to platí i pro orchestrace. Začátek je v designeru znázorněn nahoře, konec dole a mezi ně lze umisťovat jednotlivé moduly (shape). Po obou stranách je prostor pro umisťování portů, které se pak mohou linkami spojovat s přijímacími a odesílacími moduly.
Moduly se vzájemně seřazují automaticky, nelze ovlivnit přesnou pozici jejich symbolů, ta je totiž dána pouze jejich sledem, vlastně celkovým uspořádáním orchestrace. Toto chování designéru lze přirovnal k flow layoutu, jehož protikladem je grid layout, ve kterém můžeme myší komponenty posunout libovolně tam, kam chceme. Tímto způsobem se naopak chovají porty, jejichž vertikální polohu lze upravit přesně dle našich potřeb.
Kromě samotné pracovní plochy orchestrace budeme velmi často používat také další okénka, která jsou zobrazena na dalším obrázku. Orchestration View je vlastně zobrazení některých objektů orchestrace ve stromové struktuře a Properties (ve VS.NET toto okno není žádnou novinkou) nám umožní upravovat vlastnosti těchto objektů.
Jaké moduly vlastně může orchestrace obsahovat? Představu vám poskytne následující obrázek, který zobrazuje všechny komponenty z Toolboxu.
Popišme si funkci některých nejdůležitějších modulů. Ze všeho nejdříve si ukážeme práci s porty, příjímání a vysílání zpráv. K sestavení následující orchestrace je nutné vytvořit a nastavit několik dalších entit, které zde nejsou vidět. Jde hlavně o zprávu, se kterou orchestrace pracuje. Tu musíme vytvořit v okně Orchestration View a přiřadit jí nějaké schéma.
Vlevo jsem umístil vstupní port, vpravo výstupní a uprostřed je vlastní tělo orchestrace, obsahující samotnou logiku. V našem případě vlastně žádná logika není, je zde pouze přijetí zprávy ze vstupního portu a její odeslání na výstupní port. Aby tato orchestrace mohla samostatně fungovat, musí být přijímací modul (Receive) nastaven jako aktivní, což znamená, že přijetí zprávy způsobí vytvoření nové instance orchestrace, která pak danou zprávu zpracuje.
Občas potřebujeme mít více možností, jak do orchestrace přijmout zprávu. Tedy je nutné mít více portů, které bude orchestrace sledovat. K tomu můžeme využít modul Listen, který obsahuje několik větví, z nichž každá zpracovává jeden vstup. BizTalk vybere a vykoná tu větev, jejíž první krok se podaří uskutečnit nejdříve. Tento první krok však může obsahovat pouze dva typy modulů, Receive nebo Delay. Jejich kombinací ve dvou větvích lze například vytvořit logiku, která čeká na doručení zprávy určitou dobu, a pokud zpráva není doručena, pokračuje se větví obsahující modul Delay – ten je totiž po vypršení nastavené doby považován za dokončený.
Když v BizTalku vytváříme webovou službu, nejspíše si s jednosměrným portem nevystačíme. Webová služba nejen přijme požadavek, ale rovněž by na něj měla odpovědět. Proto existují také request-response porty, které obsahují obě operace zároveň. S těmito operacemi pak propojíme příslušné Receive a Send moduly. Porty mohou být dokonce ještě složitější a obsahovat ještě více operací.
Sekce ConstructMessage obsahuje moduly, které vytvářejí novou zprávu, a to přiřazením z nějakého ručně zapsaného výrazu (MessageAssignment) nebo transformací z jiné zprávy (Transform).
Orchestrace lze různě větvit. Modul Decide umožňuje BizTalku rozhodnout se pro tu větev, jejíž podmínka byla v daném kontextu vyhodnocena jako pravdivá. Modul ParallelActions naopak rozdělí běh orchestrace do několika vláken, přičemž všechna vlákna mohou pracovat souběžně. Celá sekce je pak považována za ukončenou až tehdy, když se ukončí všechna její vlákna.
Scope definuje uvnitř orchestrace vnořenou transakci (transakcí může přitom být i celá orchestrace). Problematiku transakcí v BizTalku zde nehodlám více rozvádět. Modul Loop je již na první pohled samopopisný – umožňuje, aby se určitá část orchestrace opakovala, dokud bude dodržena určitá podmínka. Tu je třeba zapsat ručně.
Práce s adaptéry
Pro některé porty stačí port prostě nakonfigurovat a spustit, u některých adaptérů je ale situace trochu složitější. Například pro SOAP adaptér (webové služby) je nutné každý port vygenerovat pomocí Web Service Publishing Wizzardu, který vlastně pro daný port vygeneruje VS.NET solution s projektem, obsahujícím danou webovou službu. Jejím vyvoláním se pak port aktivuje. Vygenerovaný projekt je fyzicky umístěn do kořenového adresáře webového serveru a je ihned zkompilován, takže o tento krok se starat nemusíte.
Pro příjem MSMQ (message queue) zpráv se nevyužívá standardní Windows služba, ale speciální implementace tohoto protokolu, která je součástí BizTalk adaptéru. Pokud potřebujete na jednom počítači provozovat jak standardní MSMQ službu, tak i přijímat MSMQ zprávy do BizTalku, je nutné, aby tyto služby byly nakonfigurovány na jiné IP adrese, aby nedošlo ke kolizi. Jak toho docílit? BizTalk přemluvíte jeho Configuration Wizzardem, ve kterém lze tuto „drobnost“ nastavit, včetně registrace nové IP adresy do DNS a zařazení do Active Directory. Windows službu nakonfigurujete tak, že v registrech vytvoříte v klíči HKLMSOFTWAREMicrosoftMSMQParameters
řetězcovou hodnotu BindInterfaceIP
, které nastavíte příslušnou IP adresu.
Mohlo by vás také zajímat
-
Vaše pošta může být špatně nastavena – svěřte ji profesionálům
13. července 2023 -
Thunderbolt 4 vs. OCuLink: Přišel čas na upgrade?
27. května 2024 -
Globální výpadek IT systémů: Může za to jediná aktualizace
19. července 2024 -
10 nejpopulárnějších programovacích jazyků a jejich využití
9. listopadu 2023
Nejnovější
-
Jak rozšířit úložiště Macu za pětinovou cenu?
16. prosince 2024 -
Nové trendy v doménách pro osobní projekty – DIY, LIVING a LIFESTYLE
9. prosince 2024 -
Jak chránit webové stránky před Web/AI Scrapingem
27. listopadu 2024 -
Jaký monitor je nejlepší k novému Macu Mini?
25. listopadu 2024