enterprise service bus (esb) - fit.vutbr.czrychly/public/docs/pdi.esb/pdi.esb.print.pdf ·...
Embed Size (px)
TRANSCRIPT

Enterprise Service Bus (ESB)
Marek Rychlý
Vysoké ucení technické v BrneFakulta informacních technologií
Ústav informacních systému
Prednáška pro PDI8. prosince 2015
Marek Rychlý Enterprise Service Bus (ESB) — Prednáška pro PDI, 8. prosince 2015 1 / 32

Obsah
1 Cesta k ESBEnterprise Service Bus (ESB)Problémy „accidental architecture“
2 Enterprise Service Bus (ESB)ESB jako Message Oriented Middleware (MOM)Prechod od „accidental architecture“ k ESB
Marek Rychlý Enterprise Service Bus (ESB) — Prednáška pro PDI, 8. prosince 2015 2 / 32

Cesta k ESBEnterprise Service Bus (ESB)
Enterprise Service Bus (ESB)Problémy „accidental architecture“
Enterprise Service Bus (ESB)Sbernice pro rozsáhlou decentralizovanou integraci aplikací.(propojení rozhraní autonomních systému ruzných formátu, technologií a lokací)
Pro asynchronní komunikaci pomocí zasílání zpráv.(predstavuje tzv. „Message-oriented Middleware“, MOM)
Pro implementaci pátere SOA architektury.(respektuje principy SOA, tj. volnou vazbu, standardizaci, znovupoužitelost, atd.)
Postavená na standardech komunikace a integrace komponent.(JMS, JCA, JBI, WS-*, SOAP, WSDL, XML, XSLT, XPath, XRef, XQuery, . . . )
Implementovaná mnoha zpusoby v mnoha produktech.(Windows Azure SB, Oracle ESB, JBoss ESB, Mule ESB, Spring Integration, . . . )
(diagram prevzat z „David A. Chappell: Enterprise Service Bus, 2004“)
Marek Rychlý Enterprise Service Bus (ESB) — Prednáška pro PDI, 8. prosince 2015 4 / 32

Cesta k ESBEnterprise Service Bus (ESB)
Enterprise Service Bus (ESB)Problémy „accidental architecture“
Proc ESB?Globální podniky/organizace chtejí/musí integrovat lokální systémy.Postupná integrace zavedených rešení vede k „accidental architecture“.Prenos dat z jedné komponenty na druhou rešen hromadne a dávkove.(typicky automaticky jednou denne, nebo dokonce manuálne pres CSV atp.)
(diagram prevzat z „David A. Chappell: Enterprise Service Bus, 2004“)
Marek Rychlý Enterprise Service Bus (ESB) — Prednáška pro PDI, 8. prosince 2015 5 / 32

Cesta k ESBEnterprise Service Bus (ESB)
Enterprise Service Bus (ESB)Problémy „accidental architecture“
Problémy „accidental architecture“: Mnoho rozhraní
Postupná integrace vyžaduje tvorbu nových rozhraní a spojení.(napojení apl. C na A zn. zachování puvodních rozhraní A a pridání nového C-A)
Nejhorší prípad (každý s každým) pro n apl. je n(n � 1)=2 spojení.(pro 5 apl. je to 10 spojení, pro 13 je to 78, ale pro 100 už 4.950 spojení)
Velký pocet rozhraní zvyšuje náklady na jejich údržbu i riziko selhání.(problém závislostí napr. pri zavedení nové verze apl., bezpecnosti, atd.)
(diagram prevzat z „David A. Chappell: Enterprise Service Bus, 2004“)
Marek Rychlý Enterprise Service Bus (ESB) — Prednáška pro PDI, 8. prosince 2015 6 / 32

Cesta k ESBEnterprise Service Bus (ESB)
Enterprise Service Bus (ESB)Problémy „accidental architecture“
Problémy „accidental architecture“: ETL integrace (I)
Populární integrace pomocí Extract, Transform, & Load (ETL) via FTP.(apl. S periodicky exportuje do souboru, který si pres FTP stahuje a nacítá apl. W)
(diagram prevzat z „David A. Chappell: Enterprise Service Bus, 2004“)
Marek Rychlý Enterprise Service Bus (ESB) — Prednáška pro PDI, 8. prosince 2015 7 / 32

Cesta k ESBEnterprise Service Bus (ESB)
Enterprise Service Bus (ESB)Problémy „accidental architecture“
Problémy „accidental architecture“: ETL integrace (II)Zpoždení mezi integrací aplikací pres ETL muže zpusobit chybu.(než se propaguje zmena poctu kusu na centrálním skladu z pobocky na jinoupobocku, tak tam mezitím muže nekdo objednat/vrátit chybející kusy)
Bežne se reší nad-dimenzováním skladových zásob! zbytecné náklady
(diagram prevzat z „David A. Chappell: Enterprise Service Bus, 2004“)
Marek Rychlý Enterprise Service Bus (ESB) — Prednáška pro PDI, 8. prosince 2015 8 / 32

Cesta k ESBEnterprise Service Bus (ESB)
Enterprise Service Bus (ESB)Problémy „accidental architecture“
Problémy „accidental arch.“: Centrální „hub&spoke“
Rešení je zavést centrální komunikacní platformu/„hub“.(tj. middleware, centrální server nebo sbernici)
Problém je, že centrální „hub“ vyžaduje duveru zúcastnených.(není možné, pokud jsou úcastníci konkurenti, nebo nechtejí centralizovat data)
(diagram prevzat z „David A. Chappell: Enterprise Service Bus, 2004“)
Marek Rychlý Enterprise Service Bus (ESB) — Prednáška pro PDI, 8. prosince 2015 9 / 32

Cesta k ESBEnterprise Service Bus (ESB)
Enterprise Service Bus (ESB)Problémy „accidental architecture“
Další problémy a požadavky na middleware/ESB
Schopnost vytváret elektronické trhy.(e-marketplaces and vertical trading hubs)
Schopnost zavést monitoring a rízení vyžadované legislativou.(napr. v USA: Sarbanes-Oxley, the PATRIOT Act, and FCC regulations)
Schopnost reálného monitoringu soucinnosti systému a businessu.(tzv. Business Activity Monitoring, BAM; bez merení není rízení)
Eliminace zbytecného zpracování, transformace a predávání dat.(tzv. Straight-Through Processing, STP)
Schopnost (postupné) integrace „legacy“ systému.(nelze vše zborit a postavit znovu, je nutno integrovat postupne existující)
Bezpecnost a spolehlivost.(šifrování, podepisování, zarucené dorucení, transakce, selektivní autorizace, atd.)
Marek Rychlý Enterprise Service Bus (ESB) — Prednáška pro PDI, 8. prosince 2015 10 / 32

Cesta k ESBEnterprise Service Bus (ESB)
ESB jako Message Oriented Middleware (MOM)Prechod od „accidental architecture“ k ESB
Postupný vývoj middleware k ESB
ESB = „best-practices“ v Enterprise Application Integration (EAI).( „Mater artium necessitas“, tj. „nouze je matka vynalézavosti“; W. Horma, 1519)
Zobecnuje koncept Java Message Service (JMS) v Java EE.( „Point-to-Point Messaging queues“ a „Publish/Subscribe Messaging domains“)
Vychází z aplikacních serveru/kontejneru hostujících komponenty.(kontejner poskytuje prostredí/standardizované rozhraní pro komponenty)
Snaží se šetrit, dobre zduvodnit a optimalizovat náklady na IT.(prasknutí internetové bubliny, ekonomická krize, outsourcing IT, atd.)
(diagram prevzat z „David A. Chappell: Enterprise Service Bus, 2004“)
Marek Rychlý Enterprise Service Bus (ESB) — Prednáška pro PDI, 8. prosince 2015 12 / 32

Cesta k ESBEnterprise Service Bus (ESB)
ESB jako Message Oriented Middleware (MOM)Prechod od „accidental architecture“ k ESB
JMS modely komunikace zasílání zpráv v ESB
(pub-sub vs. p2p a hierachie témat v pub-sub; diagramy prevzaty z „David A. Chappell: Enterprise Service Bus, 2004“)
Marek Rychlý Enterprise Service Bus (ESB) — Prednáška pro PDI, 8. prosince 2015 13 / 32

Cesta k ESBEnterprise Service Bus (ESB)
ESB jako Message Oriented Middleware (MOM)Prechod od „accidental architecture“ k ESB
ESB kontejner a jeho schopnostiIntegrované systémy jsou napojeny pres ESB kontejner.(kontejner hostuje systémy jako ESB komponenty a poskytuje rozhraní k ESB)
V jednom kontejneru muže být provozováno soucasne více komponent.(tyto komponenty spolu mohou komunikovat prímo, nemusí pres ESB)
(diagramy prevzaty z „David A. Chappell: Enterprise Service Bus, 2004“)
Marek Rychlý Enterprise Service Bus (ESB) — Prednáška pro PDI, 8. prosince 2015 14 / 32

Cesta k ESBEnterprise Service Bus (ESB)
ESB jako Message Oriented Middleware (MOM)Prechod od „accidental architecture“ k ESB
Rozhraní a obsah ESB kontejneru
ESB kontejner muže hostovatruzné druhy komponent.(vc. speciálních komponent promodifikaci a rízení ESB zpráv)
Kontejner poskytuje komponenteruzné druhy rozhraní.
(diagramy prevzaty z „David A. Chappell: Enterprise Service Bus,2004“)
Marek Rychlý Enterprise Service Bus (ESB) — Prednáška pro PDI, 8. prosince 2015 15 / 32

Cesta k ESBEnterprise Service Bus (ESB)
ESB jako Message Oriented Middleware (MOM)Prechod od „accidental architecture“ k ESB
ESB „endpoint“ – pripojení komponenty do kontejneru
ESB kontejner nabízí ruzné zpusobypripojení hostovaných komponent(nativní JMS, HTTP&SOAP proWeb-services, ruzné adaptéry vc.file/DB-adapters ci JMS pro C++/C#/.NET)
ESB však podporuje jen asynchronníkomunikaci/zasílání zpráv.(synchronní komunikaci lze nasimulovat,ale je to nespolehlivé/hrozí timeout)
(diagramy prevzaty z „David A. Chappell: Enterprise Service Bus, 2004“)
Marek Rychlý Enterprise Service Bus (ESB) — Prednáška pro PDI, 8. prosince 2015 16 / 32

Cesta k ESBEnterprise Service Bus (ESB)
ESB jako Message Oriented Middleware (MOM)Prechod od „accidental architecture“ k ESB
Napojení ruzných komponent/systému na ESB
(diagram prevzat z „David A. Chappell: Enterprise Service Bus, 2004“)
Marek Rychlý Enterprise Service Bus (ESB) — Prednáška pro PDI, 8. prosince 2015 17 / 32

Cesta k ESBEnterprise Service Bus (ESB)
ESB jako Message Oriented Middleware (MOM)Prechod od „accidental architecture“ k ESB
Message Oriented Middleware (MOM)
ESB funguje jako MOM.(API a protokol komunikace s MOM po vzoru JMS, vizte modely komunikace na str. 13)
(diagramy prevzaty z „David A. Chappell: Enterprise Service Bus, 2004“)
Marek Rychlý Enterprise Service Bus (ESB) — Prednáška pro PDI, 8. prosince 2015 18 / 32

Cesta k ESBEnterprise Service Bus (ESB)
ESB jako Message Oriented Middleware (MOM)Prechod od „accidental architecture“ k ESB
MOM a volná vazba rozhraní propojených komponent
Komunikace zasíláním zpráv umožnuje volnou vazbu (loose coupling).(komunikující komponenta zná pouze sbernici, nikoliv protistranu komunikace)
Sbernice zajišt’uje dorucení zpráv ve vhodném formátu.(kompatibilita vysílajícího a prijímacího rozhraní transformací zpráv na sbernici)
Rozhraní komponenty je nezávislé na jeho použití protistranou.(každé komponente pak stací pouze jedno rozhraní; tedy máme celkem n rozhranípro n komponent, ve srovnání s n(n� 1)=2 rozhraními prímé komunikace na str. 6)
(diagramy prevzaty z „David A. Chappell: Enterprise Service Bus, 2004“)
Marek Rychlý Enterprise Service Bus (ESB) — Prednáška pro PDI, 8. prosince 2015 19 / 32

Cesta k ESBEnterprise Service Bus (ESB)
ESB jako Message Oriented Middleware (MOM)Prechod od „accidental architecture“ k ESB
Spolehlivé dorucení zpráv v MOM/ESBSbernice využívá úložište pruchozích zpráv pro jejich spolehlivé dorucení.(zpráva je uložena a dorucena jedenkrát, až je príjemce pripraven a podarí se to)
Odesílatel se muže spolehnout na jisté asynchronní dorucení v ESB.(implementace/inspirace ze standardu WS-ReliableMessaging)
(P2P a pub-sub komunikace; diagramy prevzaty z „David A. Chappell: Enterprise Service Bus, 2004“)
Marek Rychlý Enterprise Service Bus (ESB) — Prednáška pro PDI, 8. prosince 2015 20 / 32

Cesta k ESBEnterprise Service Bus (ESB)
ESB jako Message Oriented Middleware (MOM)Prechod od „accidental architecture“ k ESB
Lokální transakce nad zprávami v MOM/ESB
Spolehlivé dorucení umožnuje transakcní komunikaci s ESB.(transakce vždy odesílatel-ESB nebo príjemce-ESB, nikoliv odesílatel-príjemce)
V jedné transakci lze sdružit odeslání a príjem nekolika zpráv.(je to skutecne transakce, tj. pro komunikovaná data platí ACID)
Transakci lze provést dvoufázove, napr. v kombinaci s DB operací.(tzn. do transakce lze zahrnout jiné zdroje, napr. transakcní databáze, ty však musírespektovat „XOpen/XA two-phase-commit transaction protocol“)
(diagramy prevzaty z „David A. Chappell: Enterprise Service Bus, 2004“)
Marek Rychlý Enterprise Service Bus (ESB) — Prednáška pro PDI, 8. prosince 2015 21 / 32

Cesta k ESBEnterprise Service Bus (ESB)
ESB jako Message Oriented Middleware (MOM)Prechod od „accidental architecture“ k ESB
Request/reply komunikace v MOM/ESB
U asyn. zprávy s požadavkem odpovedi, je nutno vedet kam odpovídat.(zpráva obsahuje hlavicku „replyTo“ s adresou príjemce odpovedi)
Odpoved’ muže obdržet ten kdo se tázal, nebo i úplne nekdo jiný.(lze tak zprávu skrz príjemce zpracovat a preposlat jinam)
(diagramy prevzaty z „David A. Chappell: Enterprise Service Bus, 2004“)
Marek Rychlý Enterprise Service Bus (ESB) — Prednáška pro PDI, 8. prosince 2015 22 / 32

Cesta k ESBEnterprise Service Bus (ESB)
ESB jako Message Oriented Middleware (MOM)Prechod od „accidental architecture“ k ESB
VETO a VETRO integracní vzoryVETO = V + E + T + O
Validate overíme zda je zpráva validní, jinak odmítnemeEnrich doplnení obsahu zprávy o chybející data
(napr. údaje zákazníka z jeho ID, mesto z PSC, atp.)Transform konverze zprávy do cílového (nebo kanonického) formátu
Operate vlastní zpracování zprávy cílovou aplikací/komponentouVETRO = VETO + R
Route po transformaci zprávu smerujeme ke správnéaplikaci/komponente
(diagramy prevzaty z „David A. Chappell: Enterprise Service Bus, 2004“)
Marek Rychlý Enterprise Service Bus (ESB) — Prednáška pro PDI, 8. prosince 2015 23 / 32

Cesta k ESBEnterprise Service Bus (ESB)
ESB jako Message Oriented Middleware (MOM)Prechod od „accidental architecture“ k ESB
Validate, Enrich & Transform; Two-Step XRef PatternPro VET využívá ESB formát XML zpráv a nástroje pro práci s XML.(pro validaci XML Schema/Schematron, obohacení XRef a transformaci XSLT)
Snaha rozdelit komponenty vykonávající více z VETRO operací.(pak je možno využít standardní komponenty pro jednotlivé operace)
„Two-Step XRef Pattern“ pro prípravu XML a jeho doplnení o data.(XML se pripraví ze vstupu transformací XSLT a pak doplní pomocí XRef)
(pred a po aplikaci vzoru; diagramy prevzaty z „David A. Chappell: Enterprise Service Bus, 2004“)
Marek Rychlý Enterprise Service Bus (ESB) — Prednáška pro PDI, 8. prosince 2015 24 / 32

Cesta k ESBEnterprise Service Bus (ESB)
ESB jako Message Oriented Middleware (MOM)Prechod od „accidental architecture“ k ESB
Smerování (routing) zpráv v ESB
Podobne jako pro VET, tak i pro R ve VETRO je standardní komponenta.(napr. komponenta Mediator se smerovacími pravidly, ci BPEL proces s popisemorchestrace, tj. postupného volání jednotlivých služeb/komponent/aplikací ESB)
Smerování na základe itineráre ve zpráve ci posouzením obsahu zprávy.(tzv. „Itinerary-based Routing“, IBR, vs. „Content-based Routing“, CBR)
Pri IBR je možno itinerár upravovat/doplnovat pri pruchodu ESB.(komponenty-aplikace ESB naplánují do itineráre, co se se zprávou dále stane)
(diagram prevzat z „David A. Chappell: Enterprise Service Bus, 2004“)
Marek Rychlý Enterprise Service Bus (ESB) — Prednáška pro PDI, 8. prosince 2015 25 / 32

Cesta k ESBEnterprise Service Bus (ESB)
ESB jako Message Oriented Middleware (MOM)Prechod od „accidental architecture“ k ESB
Paralelní zpracování zpráv v ESBCBR a IBR muže zprávu také duplikovat/rozdelit pro paralelní zpracování.(zpráva ci její cásti jsou pak zpracovávány v rámci ESB soubežne)
Paralelní zpracování (a jeho výsledky) je možno opet spojit.(opacnou operací/komponentou k „split“ je „join“)
(diagram prevzat z „David A. Chappell: Enterprise Service Bus, 2004“)
Marek Rychlý Enterprise Service Bus (ESB) — Prednáška pro PDI, 8. prosince 2015 26 / 32

Cesta k ESBEnterprise Service Bus (ESB)
ESB jako Message Oriented Middleware (MOM)Prechod od „accidental architecture“ k ESB
Prechod od „accidental architecture“ k ESB (I)Na zacátku je „accidental architecture“.(tzn. prímá propojení aplikací; ETL s periodickou synchronizací a daty v CSV ci, vlepším prípade, v XML; skryté závislosti a manuální predávání dat mimo systém)
Obtížná správa, monitoring a rízení, další integrace) neudržitelné.
(diagramy prevzaty z „David A. Chappell: Enterprise Service Bus, 2004“)
Marek Rychlý Enterprise Service Bus (ESB) — Prednáška pro PDI, 8. prosince 2015 27 / 32

Cesta k ESBEnterprise Service Bus (ESB)
ESB jako Message Oriented Middleware (MOM)Prechod od „accidental architecture“ k ESB
Prechod od „accidental architecture“ k ESB (II)
ESB se zavede v jednom míste a transparentne pri pohledu zvencí.Pro napojení na stará (legacy) rozhraní se využijí adaptéry.
(diagram prevzat z „David A. Chappell: Enterprise Service Bus, 2004“)
Marek Rychlý Enterprise Service Bus (ESB) — Prednáška pro PDI, 8. prosince 2015 28 / 32

Cesta k ESBEnterprise Service Bus (ESB)
ESB jako Message Oriented Middleware (MOM)Prechod od „accidental architecture“ k ESB
Prechod od „accidental architecture“ k ESB (III)
Postupne (a za behu) se zavádí ESB do sousedních oblastí.Zvencí je celé rešení transparentní a bez (vetších) výpadku.
(diagram prevzat z „David A. Chappell: Enterprise Service Bus, 2004“)
Marek Rychlý Enterprise Service Bus (ESB) — Prednáška pro PDI, 8. prosince 2015 29 / 32

Cesta k ESBEnterprise Service Bus (ESB)
ESB jako Message Oriented Middleware (MOM)Prechod od „accidental architecture“ k ESB
Prechod od „accidental architecture“ k ESB (IV)
ESB lze zavádet postupne i v rámci jedné oblasti.(aplikace mohou stále ješte komunikovat prímo s aplikacemi ostatních oblastí)
Zachování prímé komunikace vhodné pro težko adaptovatelná rozhraní.(nebo napr. pri potrebe synchronní komunikace stylu RPC, nebo napojení partneru,na které nemáme vliv, tedy nemužeme lehce adaptovat)
(diagram prevzat z „David A. Chappell: Enterprise Service Bus, 2004“)
Marek Rychlý Enterprise Service Bus (ESB) — Prednáška pro PDI, 8. prosince 2015 30 / 32

Cesta k ESBEnterprise Service Bus (ESB)
ESB jako Message Oriented Middleware (MOM)Prechod od „accidental architecture“ k ESB
Prechod od „accidental architecture“ k ESB (V)
Nakonec je celá organizace integrovaná pomocí ESB.Partnerské aplikace mimo organizaci pak komunikují také s ESB.
(diagram prevzat z „David A. Chappell: Enterprise Service Bus, 2004“)
Marek Rychlý Enterprise Service Bus (ESB) — Prednáška pro PDI, 8. prosince 2015 31 / 32

Cesta k ESBEnterprise Service Bus (ESB)
ESB jako Message Oriented Middleware (MOM)Prechod od „accidental architecture“ k ESB
Shrnutí a záver
ESB je rešení pro integraci rozsáhlých systému organizací.(geograficky rozsáhlé, s autonomními cástmi, heterogenní, atp.)
ESB využívá zavedených a overených technologií.(JMS, JCA, JBI, WS-*, SOAP, WSDL, XML, XSLT, XPath, XRef, XQuery, . . . )
ESB není rešení vhodné pro všechny, použití je treba zvážit.(nevýhodou je treba vyšší režie na komunikaci, tedy ztráta výkonu)
Marek Rychlý Enterprise Service Bus (ESB) — Prednáška pro PDI, 8. prosince 2015 32 / 32