Proč si programy posílají zprávy?Softwarové noviny, 10/2001
Kdysi dávno, v dobách veleještěrů zhluboka oddychujících
v obrovských sálech to bylo jednoduché. Na jednom velepočítači
byla spuštěna jedna veleaplikace, k níž se připojovali její
uživatelé. Počítače byly izolované, aplikace spolu proto příliš
nespolupracovaly. Jak klesala cena počítačů i náročnost aplikací,
začaly se firmy vybavovat stále větším počtem počítačů s různými
aplikacemi usnadňujícími chod firmy. Jakmile se všechny počítače
mezi sebou propojily sítí, ukázalo se, že by bylo nesmírně vhodné
propojit nějak i vlastní aplikace, protože se tak zvýší jejich
užitná hodnota. A právě tehdy si mezi sebou začaly aplikace
posílat zprávy a tehdy také vznikly termíny messaging
a middleware.
Jako mnoho termínů ze současné informační vědy, nemají slova
middleware a messaging exaktně definovaný význam. I když mají
jednotlivé interpretace společný základ, přesto je každý chápe
trochu jinak. Proto se také mezi sebou odlišují řešení od různých
firem. Proto je těch řešení tolik. A proto také neexistuje
jednoznačný a hezký český překlad obou termínů. Abychom si mohli
ukázat přehled současných řešení, která jsou s těmito termíny
spojena, se však významu těchto slov musíme nějak dobrat.
Začněme tím jednodušším: messaging. Každý, kdo je jen trochu
znalý anglického jazyka, tuší, že termín pochází z anglického
message, tedy zpráva. Na zprávy narážíme v moderní informatice
neustále: informace, které si po síti posílají uživatelé jsou
zprávou, hlášení systému či programu je zprávou, zprávy si mezi
sebou vyměňují i aplikace (často o tom dokonce jejich uživatelé
vůbec neví). Problémem klasického, živelně vzniklého informačního
prostředí firmy ovšem je, že k této výměně zpráv dochází jaksi
neuspořádaně. Některé programy spolu komunikují a jiné ne, někteří
uživatelé spolu mluví a jiní ne. Aby firma běžela jako po másle,
je tedy nutné vnést do všeho nějaký systém. A protože stále ještě
mluvíme o zprávách, nazývá se tento systém messagingový (messaging
system), zkráceně messaging.
Samotný pojem zpráva je velmi obecný. I v obyčejném životě,
kde o počítač nezavadíte, se používá v různém kontextu. Ve světě
informatiky je především nutné rozlišit klasické "lidské" zprávy
od zpráv a hlášení, jež si mezi sebou vyměňují jednotlivé aplikace
nebo aplikace a systém. Pro skutečně efektivní práci firmy je
nutné systematicky hlídat tok zpráv lidských i technologických,
a pro oba typy zpráv také existují různá řešení. My se zaměříme na
zpracování a řízení komunikace mezi aplikacemi, označované někdy
také jako technology messaging. Tokem zpráv generovaných lidskými
uživateli se zabývá odvětví označované jako unified
messaging.
Zprávy posílané mezi jednotlivými aplikacemi často padají na
straně příjemce do jakési fronty (queue), odkud si je příjemce
postupně vybírá. Proto mnoho implementací messagingových systémů
snadno odhalíte podle písmen M a Q v názvu aplikace (IBM, Sun,
Microsoft, Progress).
Pojem middleware je snad ještě obecnější než
messaging. Někdy dokonce oba pojmy splývají v jeden. Obecně je ale
možné říci, že messaging system je jakýmsi potrubím, jež zajišťuje
hladký běh a výměnu zpráv a middleware je "to všechno
kolem". Máme-li jistotu, že jsou spolu aplikace schopny
komunikovat, musíme rozhodnout, jaké zprávy si budou posílat, jaká
data budou sdílet a jak je zpracují. A to všechno zajišťuje právě
middleware. Chytrý middleware je navíc navržen tak, že jednotlivé
aplikace nijak neomezuje a nezdržuje. Middleware schopný pracovat
se zprávami se nazývá message oriented middleware a bývá označován
zkratkou MOM.
Kombinace middleware s aplikacemi a databázemi vytváří
dohromady cosi, co je nejčastěji nazýváno jako firemní informační
systém. Je to provázaný soubor aplikací, jež spolu sdílejí data
a vzájemně spolupracují. Správně navržený a sestavený informační
systém svými funkcemi pokrývá veškerou důležitou firemní agendu
(zpravidla vedení účetnictví, personalistiku, skladové
hospodářství, správa kontaktů na partnery a zákazníky, workflow
a další). Díky automatizaci a zrychlení některých činností tak
firma získává konkurenční výhody, neboť šetří pracovní síly, čas
i náklady. Je pochopitelné, že se informační systémy jednotlivých
firem od sebe výrazně odlišují. Liší se nejen skladbou aplikací
danou předmětem činnosti firmy či organizace, podstatně se liší
také rozsahem i cenou.
Vzhledem k tomu, že v uvedené sestavě snadno na první pohled
rozlišíme tři základní vrstvy (původní aplikace, middleware
a klientské aplikace), označuje se taková aplikace často jako
třívrstvá. Middleware tvoří střední vrstvu (odtud také pochází
jeho název), tedy prostředníka mezi aplikacemi a jejich výstupy na
straně klientů. Messagingový systém je tmel, který slepuje
rozhraní mezi aplikacemi a střední vrstvou. Strukturu klasické
třívrstvé aplikace ukazuje obrázek.
|
Generace integrace
Jen zřídka vzniká firemní informační systém jen tak
z ničeho na zelené louce. V takovém případě je všechno velmi
jednoduché: systém je navrhován jako celek, dílčí aplikace nebo
databáze jsou voleny tak, aby spolu vzájemně bezproblémově
spolupracovaly. Funkce jednotlivých aplikací se nijak
nepřekrývá, nedochází k ukládání stejných dat na více
místech. Řešení může být sestaveno z produktů jedné firmy,
stejně dobře může být poskládáno z dílčích aplikací různých
výrobců. Systém je navíc často přímo navrhován tak, aby byly
některé nebo všechny jeho funkce dostupné přes webové rozhraní,
určité důležité výstupy či sestavy mohou být zaneprázdněným
manažerům, pobývajícím neustále na cestách, zprostředkovány
i mobilním telefonem.
V praxi je ovšem taková situace spíše nadpřirozeným
úkazem. Téměř každá firma pořizuje své softwarové vybavení
postupně. Nejprve bývají zakoupeny jednotlivé dílčí aplikace, ve
větší firmě navíc o nákupu rozhodují různá oddělení. Účetní
dostane účetní programy, správce skladu nějaké skladové
hospodářství, sekretářka vyrobí v tabulkovém procesoru databázi
zaměstnanců a evidenci docházky, firemní kontakty jsou uloženy
v samostatné databázi, obchodní oddělení získá vlastní aplikaci
pro správu objednávek a faktur. Jednotlivé programy jsou různě
staré, pracují s různými objemy dat, v různém režimu. Největším
problémem potom je skutečnost, že se funkce některých programů
částečně překrývají a v databázích jednotlivých programů se
hromadí duplicitní data. Taková situace se časem může stát
neudržitelnou, neboť bude stále obtížnější zajistit, aby
nedocházelo ke ztrátě informací a aby se některé činnosti
neprováděly dvakrát.
Jakmile se vedení firmy rozhodne "s tím něco udělat",
vstoupí do firmy osoba znalá a povolaná - systémový
integrátor. Nejprve provede rozsáhlou studii stávajícího systému
aplikací. Vyšetří, kde všude se jednotlivé aplikace překrývají,
jaká data chybí, jaká jsou ukládána dvakrát a které procesy je
možné automatizovat. Následuje zdlouhavý a bolestný proces
zavádění pořádku označovaný jako integrace.
Integrace může být v zásadě dvojího druhu: aplikační a na
úrovni middleware. V prvním případě je systém jednotlivých
nespolupracujících aplikací a databází zásadně přebudován. Staré
aplikace jsou nahrazeny novými, jejich spektrum je upraveno tak,
aby se vzájemně funkčně přesně doplňovaly. Roztříštěné databáze
jsou sloučeny a jednou či několika novými nahrazeny tak, aby
byla data ukládána s maximální efektivitou. Proces je zdlouhavý,
náročný a často také poměrně drahý, neboť je nutné pořizovat
zcela nové aplikace, nové databáze a s s tím ruku v ruce často
také nové servery a další hardwarové vybavení.
Ve druhém případě se toho naopak přestavuje co
nejméně. Pod stávající aplikační vrstvu je se jakoby podsune
cosi, co donutí jednotlivé aplikace spolupracovat a sdílet svá
data. Správně tušíte, že tím cosi je právě middleware
a messagingový systém. Výhodou je, že nemusíte příliš zasahovat
do struktury firmy, a kromě vlastního middleware nemusíte
(teoreticky) pořizovat nic dalšího. V praxi se pochopitelně obě
metody částečně kříží a doplňují. V prvním případě se stejně
musí nějaký messagingový systém použít. Vzhledem k tomu, že ale
současně zásadně měníte své aplikace a data, může to být zcela
jiný systém, než po kterém sáhnete v případě druhém, kdy chcete
především rychle zajistit spolupráci bez dalších zásahů.
|
|
|
Pod kůží messagingového systému
Messagingový systém tedy propojuje navzájem mezi sebou
jednotlivé aplikace a vytváří tak ze samostatných součástek
výkonný a hladce běžící stroj. Důležité je, že spolu mohou
součástky svobodně hovořit každá s každou, kdykoliv je právě
napadne. Jinými slovy, messaging zajišťuje přímou asynchronní
komunikaci mezi samostatnými komponentami, na rozdíl od staršího
modelu klient-server. Aplikace si zkrátka jakousi potrubní
poštou posílají zprávy s definovanou strukturou. Nemá-li na tom
příjemce speciální zájem, nemusí se vůbec starat, kdo mu zprávu
poslal, kde se odesílatel fyzicky nachází a kdy přesně zprávu
generoval. Takový systém lze tedy poměrně snadno uzpůsobovat
aktuálním potřebám jeho uživatelů - je tedy snadno
škálovatelný. Messagingový systém představuje univerzální
sběrnici - podobně jako ostatní harware většinou nijak
nepostřehne výměnu staré grafické karty za výkonnější model, ani
v tomto případě si ostatní příjemci nemusí všimnout, že se jeden
z odesílatelů přestěhoval z PC na nějaký veleserver s komerčním
Unixem. Systémy sestávající ze vzájemně propojených nezávislých
komponent postupně nahrazují složité distribuované aplikace,
neboť odpadají problémy se synchronizací vzájemné komunikace,
dosažitelností, škálovatelností a bezpečností připojení
(posílané zprávy je možné jednoduše kódovat nebo digitálně
podepisovat).
Dva modely komunikace
Chceme-li do potrubní sítě odeslat nějakou zásilku,
můžeme ji popsat dvěma způsoby. První variantou, která asi
každého ihned napadne, je napsat na obálku zásilky adresu
příjemce. Zásilka putuje potrubím, až dorazí na místo
určení. Propojuje se tak vlastně adresáta s odesílatelem,
systém pracuje v režimu point-to-point. Výhoda je zřejmá:
zásilkou není obtěžován ten, komu není určena. Někdy se však
stane, že se rozhodneme více adresátům předat stejný balíček
dat. Vzhledem k tomu, že se na obálku vejde právě jedna
adresa, musíme vytvořit a odeslat tolik balíčků, kolik je
adresátů, i když balíčky obsahují úplně stejná data. Tento
systém je také často charakterizován termínem všichni směrem
k jednomu, neboť se libovolný počet odesílatelů může ve
stejnou chvíli obrátit na jednoho adresáta.
K problému proto můžeme přistoupit zcela odlišně:
nebudeme zprávy rozlišovat podle adresáta, ale podle jejich
obsahu. Na každou zprávu nějak jasně napíšeme, co zpráva
obsahuje a všichni připojení aktivní příjemci se podle popisu
sami rozhodnou, zda mají o zásilku zájem, či nikoliv. Nevýhoda
je zřejmá - balíčkem se musí zabývat každý, kdo je do mé
potrubní sítě připojen. Když se ale rozhodnu z ničeno nic
připojit do systému novou komponentu, nemusím ostatním říkat
její adresu a sahat tak do nastavení. Komponenta si sama
zachytí data, jež pro svou práci potřebuje. Tento model je
označován jako publish/subscribe. Odesílatelé generují zprávy
s různým obsahem (tématem). Příjemci se přihlašují k odběru
určitého téma. V jednu chvíli tak vlastně libovolný počet
odesílatelů oslovuje libovolný počet příjemců.
V obou případech pochopitelně může být komponenta současně odesílatelem zpráv i jejich příjemcem.
Některé messagingové systémy podporují pouze jeden
z modelů, jiné jsou schopné oba modely kombinovat. V přehledu
konkrétních řešení je vždy podporovaný model komunikace
uveden.
Technologie a realizace
Prvotní idea pro sestavení messagingového systému je
tedy velmi prostá. Je nutné nějakým způsobem definovat formát
s fyzickou podobu zprávy a vyřešit, jak zajistit její
doručení. Skutečných messagingových systémů existuje poměrně
velké množství. Jako i v jiných oblastech, i zde existují
implementace vystavěné na otevřených standardech vedle zcela
privátních a uzavřených řešení. Ponechme raději stranou
diskusi o sporu mezi otevřeným a uzavřeným řešením a podívejme
se raději na stavební kameny, jež mají tvůrci jednotlivých
řešení k dispozici.
Messagingový systém musí ve své ideální podobě propojit
různé aplikace v různých operačních systémech. Rovněž formát
přenášených dat by v ideálním případě měl být rozluštitelný za
různých okrajových podmínek. Je proto vcelku pochopitelné, že
je velmi často v souvislosti s těmito systémy skloňována Java
díky své nezávislosti a XML jako vhodný formát pro data. Ne
všechny systémy jsou napsány v Javě, ale projdeme-li je
postupně, zjistíme, že je jich naprostá většina. Ty, které
v Javě napsány nejsou, alespoň disponují nějakým rozhraním,
kterým je možné se k javským aplikacím připojit.
Ani messagingový systém nevisí někde ve
vzduchoprázdnu. Ohromný stroj, který pohání, musí čas od času
komunikovat s jiným ohromným strojem: informačním systémem
zákazníka či obchodního partnera. Tato firma může pracovat
s úplně jiným messagingovým systémem. Jestliže již dopředu
víte, že se budete takto na někoho napojovat, je od počátku
vhodné hlídat, zda se je váš systém s partnerským
propojitelný. Tato napojení jsou vlastně jakýmsi mostem,
překlenujícím vzdálenost mezi vámi a partnerskou firmou, proto
jsou výrobci často označována jako bridges.
Při rozhodování je dále důležité, kolik aplikací lze
skutečně na messagingový systém napojit. Je-li napsán
s využitím nějakého standardu, napojíte pochopitelně všechny
aplikace s vhodným rozhraním. To je však zpravidla málo, neboť
podobná rozhraní vznikají až v poslední době. Chcete-li tedy
připojit nějakou starší aplikaci, musíte mít jistotu, že pro
ni má zvolený systém správný konektor. Zde se asi nejvíce
projevují rozdíly mezi řešením budovaným na otevřených
formátech a uzavřenými systémy. Ve druhém případě si totiž
musíte zakoupit speciální konektor pro každou
aplikaci. V prvním případě musíte shánět konektory jen pro ty
aplikace, jež není možné připojit jinak (přes standardní
rozhraní).
Standardně jsou systémy budovány tak, že u každé
aplikace, jež je zdrojem či příjemcem zpráv, číhá tykadlo
messagingového systému. Tohle tykadlo může být buď nativní
aplikace připravená přímo pro operační systém nebo nějaký
interpretovaný program. Proto je vhodné včas kontrolovat,
jakými tykadly systém disponuje. (V praxi se ovšem tykadla
nazývají poněkud prozaicky klienti.) Je-li systém napsán
v Javě, pravděpodobně nebudou žádné problémy, je-li však
nějakým komerčním řešením, musíte být pozorní. I v Javě
existují různé standardy a firma Sun hlídá, které aplikace jim
vyhovují. Jestliže nějaké řešení splní všechny referenční
testy a prokáže, že skutečně plně a správně implementuje
všechny rysy standardu, získává od Sunu licenci
(certifikát). Seznam licencovaných výrobců Sun zveřejňuje na
svých webových stránkách.
Java jako taková je na messaging připravena. Standard
J2EE (Java 2 Enterprise Edition) obsahuje i Java Message
Service (JMS), nabízející standardní rozhraní pro všechny, kdo
by chtěli v Javě vytvářet messagingový systém nebo se na něj
z nějaké aplikace napojovat. JVM umožňuje vysílání metodou
poin-to-point i metodou publish/subscribe. Tělem zprávy může
být buď textový řetězec (tedy i libovolný XML dokument) nebo
objekt.
Zmínili jsme také problém
bezpečnosti. Máme-li více poboček na různých místech, můžeme
pochopitelně posílat zprávy i mezi pobočkami. Jestliže
k přenosu zpráv chceme využít Internet, je vhodné kontrolovat,
zda systém nabízí možnost zprávy nějak šifrovat nebo pro
jejich přenos využít hůře prolomitelné protokoly. I když se
nechystáme vyrazit přímo do Internetu, není dobré bezpečnost
podceňovat. Konec konců, prokazatelně nejvíc útoků přichází
z nitra firem, nikoli zvenčí.
Aplikační server
Volbou messagingového systému však celý proces nekončí
ani nezačíná. Systém je zde jen jakýmsi prostředníkem,
potrubím pro výměnu zpráv. Definuje jejich formát, určuje
způsob šíření. V závislosti na zvoleném řešení je různě
inteligentní: u některých výrobců je messagingový systém
striktně oddělen od implementace aplikační logiky, jinde obojí
podstatnou měrou splývá. Holý messagingový systém nabízí jen
málokdo, častým souputníkem messagingového systému je proto
ještě další velmi důležitý program nazývaný aplikační
server.
Zatímco messagingový systém propojuje dílčí komponenty
na úrovni fyzické a vytváří prostředí pro přenos zpráv,
aplikační server pracuje na úrovni programové
logiky. Aplikační server je skutečným srdcem informačního
systému. Obsahuje definici firemních procesů a zajišťuje
jejich fungování. Je-li nutné během výměny dat mezi aplikacemi
data nějak zpracovávat, převádět nebo upravovat, zná podrobný
popis jednotlivých akcí a zodpovídá za jejich
provedení. Vzhledem k tomu, že nejčastějším médiem pro výměnu
zpráv na dlouhé vzdálenosti bývá Internet, často je aplikační
server propojen s webovým serverem nebo portálovou
aplikací. Některé aplikační servery navíc dokáží data dopravit
k různým koncovým zařízením: mobilním telefonům či kapesním
počítačům.
Ne všechny aplikační servery jsou vybaveny klasickým
messagingovým systémem v podobě, v jaké jsme jej zatím
popsali. Buď pro správu distribuovaných aplikací využívají
jiné technologie nebo jsou určeny pro trochu jiné
aplikace. Hlavními hráči na trhu aplikačních serverů jsou
firmy IBM a BEA, oba jejich servery stejně jako ty ostatní
jsou napsány v Javě. Jsou tak snadno přenositelné z prostředí
do prostředí, což je důležité zejména v okamžiku, kdy se firma
začne rozrůstat a rozhodne se server střední třídy nahradit
železem těžkého kalibru.
Standard J2EE obsahuje mimo jiné i definici, jak
vytvářet a psát konektory mezi serverem a vlastní aplikací
(nebo dalším firemním informačním systémem) - tzv. Java
Connector architecture. Většina dobrých aplikačních serverů
tuto technologii podporuje a pro důležité aplikace již
existují hotové konektory. Dodávají je buď výrobci aplikací
nebo serverů.
|
|
|
Praktické ukázky
V hrubých obrysech jsme si v předcházejícím textu
nastínili, co je to messagingový systém a kde jej můžeme
hledat. Vzhledem k tomu, že se jeho pojetí liší výrobce od
výrobce, nabízím nyní stručný přehled nejznámějších
a nejpoužívanějších řešení. Jako první jsou do přehledu řazena
řešení využívající javské technologie a standardy, následují
různá alternativní a uzavřená řešení.
U každého řešení je uvedena jeho základní charakteristika
a seznam systémů, s nimiž dokáže spolupracovat. Dále jsou
zmíněny všechny další vlastnosti, které podle mého názoru
uvedené řešení odlišují od ostatních.
iPlanet Message Queue for Java
Protože jsem se rozhodla nejprve představit řešení
postavená na javských standardech (především na JMS), je
slušností začít přímo u pramene, přesněji u Slunce. Firma Sun
má svůj vlastní aplikační server iPlanet a poměrně rozsáhlé
portfolio produktů s ním spolupracujících. V kategorii
integration services je zařazena také implementace JMS. Patří
pochopitelně mezi implementaci s certifikátem.
Server je možné provozovat na operačních systémech MS
Windows NT/2000, Solaris a Linux (RedHat 6.1 pro PC). Klienti
pracují navíc ještě v systémech Windows 98/Me.
Zprávy je možné posílat v režimu point-to-point
i v režimu publish/subscribe. Implementace je vybavena
grafickým uživatelským rozhraním pro správu, pochopitelně se
nezapomíná ani na příkazovou řádku. Pro zabezpečení komunikace
je možné využít SSL (další možností je TCP a HTTP), je možné
rozhodovat odkud a kdo se smí k systému připojovat.
Zájemci si mohou vyzkoušet volně poskytovanou variantu
pro vývojáře (Developer Edition), která je nabízena na
domovských stránkách produktu (rozcestník najdete na CD). Tato
verze pracuje devadesát dní a slouží pouze k testovacím
účelům. Nesmí být nasazena v nějaké "ostré" aplikaci. Pro
skutečné aplikace je určena Enterprise Edition, jejíž cena se
určuje podle počtu procesorů (4.000 USD za jeden).
Kdybyste se rozhodli pro sestavení aplikace využít
i další produkty z řady iPlanet, asi vás bude zajímat
především iPlanet Integration Server (B2B Edition či EAI
Edition), což jsou aplikační servery sloužící právě pro
propojování různých firemních aplikací. Jestliže právě
chystáte nějaký e-obchod či e-portál, můžete sáhnout po
iPlanet Application Serveru (Standard, Enterprise a Enterprise
Pro Edition).
BEA WebLogic Server
Ačkoli je firma BEA jednou z nejmladších v našem výčtu,
její aplikační server patří mezi ty nejpoužívanější. Firma
nenabízí jen aplikační server, ale i všechny další důležité
produkty pro sestavení správné třívrstvé aplikační
struktury. Srdcem všech řešení však zůstává javský aplikační
server WebLogic, jenž obsahuje také implementaci JMS. WebLogic
Server je jedním z řešení, kde messagingový systém není
samostatným produktem, ale nedílnou součástí aplikačního
serveru.
BEA vyniká podporou mnoha nejrůznějších kombinací
operačního systému s hardware, na nichž je možné server
provozovat. Firma nepíše vlastní JVM (Java Virtual Machine)
pro jednotlivá prostředí, ale využívá JVM dodaných výrobcem
systému, které certifikuje. Díky spojení s aplikačním serverem
je pochopitelně pamatováno na otázky bezpečnosti,
propojitelnosti (podpora Java Connector architecture),
dostupnosti v různých koncových zařízeních a další.
Vývojářská edice serveru je nabízena zdarma ke stažení
na webových stránkách firmy. Vlastní server WebLogic existuje
ve variantách Server (určen především pro tvorbu webových
aplikací), Enterprise (pro tvorbu robustnějších aplikací)
a Express (jednodušší dynamické webové aplikace).
SonicMQ
Poslední implementací JMS v našem výčtu je SonicMQ
pocházející z dílny Progress Software. Navíc oproti standardu
podporuje i zprávy ve formátu XML, pracuje v obou režimech
rozesílání zpráv. SonicMQ podporuje digitální certifikáty,
40-128bitové šifrování, umožňuje autorizaci přístupů. Odeslané
zprávy jsou registrovány ve vestavěné databázi, proto by měly
být zprávy vždy doručeny, bez ohledy na výpadky fyzické
infrastruktury. Podporuje databáze Progress v 9.1, Oracle 8i
a Microsoft SQL Server V7.
Pro vývoj aplikací a jejich testování je možné využít
Developer Edition poskytovanou zdarma (je přiložena na
samostatném CD k časopisu), nebo Professional Developer
Edition. První varianta má limitován počet připojených
uživatelů a povoluje připojení k jedné IP adrese. Pro vlastní
nasazení ve firmě je určena E-Bussines Edition. Vytvořené
aplikace lze mezi jednotlivými variantami přenášet.
Ze SonicMQ se spojíte se všemi systémy podporujícími JMS
i s IBM MQSeries (viz dále). SonicMQ pracuje s klienty
vybavenými Java API, COM/ActiveX nebo adaptérem pro Progress
4GL. Pro vývojáře je navíc připravena SonicMQ Messaging
JavaBean, integrovatelná webových řešení nebo grafických
vývojových nástrojů.
Progress Software má i svůj aplikační server (Open
AppServer), jenž se SonicMQ spolupracuje.
MQ Series
Firma IBM má vlastní implementaci messagingového
systému, pojmenovanou MQSeries. MQSeries nevycházejí z JMS,
ale obsahují i podporu pro Javu a API pro připojení
k aplikacím, jež JMS využívají. MQSeries přenášejí data mezi
aplikacemi prostřednictvím front, v nichž jsou zprávy
řazeny. Na každém počítači je umístěna jedna fronta pro
zprávy, ze které si aplikace zprávy vybírají. Rozdíly mezi
komunikací v rámci jednoho a více počítačů ukazují
obrázky. API pro MQSeries nabízí čtyři základní operace:
otevření fronty, vložení zprávy, vybrání zprávy a zavření
fronty.
MQSeries pracují v systémech AIX, Compaq NSK, HP-UX,
Linux, OpenVMS Alpha, OpenVMS VAX, OS/2, OS/390, OS/400,
Solaris, VSE/ESA a Windows 3.x/95/98/NT/2000.
IBM má také svůj vlastní javský aplikační server
(WebSphere), který je po serveru WebLogic v současné době
nejrozšířenějším. I při použití MQSeries proto můžete zůstat
v náručí jedné firmy.
TIB/Active Enterprise
Dalším alternativním řešením jsou produkty firmy Reuters
z řady TIB/Active Enterprise. Pro výměnu dat je používán
vlastní formát nezávislý na prostředích a datových formátech
propojovaných aplikací. Aplikace jsou k transportní vrstvě
připojovány konektory, které si musíte pro každou aplikaci
zakoupit zvlášť. Systém pracuje pouze v režimu
publish/subscribe, jednotlivé adaptéry si ze zpráv vybírají
podle jejich záhlaví. U každé připojené aplikace číhá démon,
jenž je zodpovědný za příjem i vysílání zpráv. I když řešení
přímo neobsahuje aplikační server, je možné modulem
TIB/MessageBroker zajistit transformaci a zpracování
dat. Modul je možné využít i pro implementaci jednoduššího
workflow. K systému je možné připojit i rozhraní pro JMS
(TIBCO Enterprise for JMS).
Systém pracuje na AIX 4.3/5.1, FreeBSD 3.3/4.2, HP UX
11.X, Linuxu (od jádra 2.2), Solarisu (od verze 2.6), VMS 7.2
a Windows NT/2000.
MSMQ a BizTalk Server
Microsoft se vydává svou vlastní cestou, jejíž výhodou
a nevýhodou zároveň je přímé propojení messagingového systému
s operačním systémem. Messagingový systém se nazývá MSMQ
a Windows 2000 počínaje je součástí operačního
systému. Písmena v názvu napovídají, že i tento systém řadí
zprávy do front.
Pro vlastní propojení jednotlivých aplikací je určen
BizTalk Server. Data jsou mezi aplikacemi vyměňována ve
formátu XML, server je proto doprovázen sadou nástrojů pro
snadné mapování různých formátů na XML. Po převodu do XML
mohou být zprávy dále transformovány s využitím XSLT. Vývojové
nástroje také obsahují grafické prostředí pro definici
firemních procesů. BizTalk Server 2000 pracuje v prostředích
Windows 2000.
|
|
Autorkou tohoto webu je LenkaKT, alias Lenka Kosková-Třísková. Bádám a vyučuji na TU Liberec. |
Poslední změna: 3. 3. 2011
|
|