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

30
Enterprise Service Bus (ESB) Marek Rychlý Vysoké uˇ cení technické v Brn ˇ e Fakulta informaˇ cních technologií Ústav informaˇ cních systém ˚ u rednáška pro PDI 8. prosince 2015 Marek Rychlý Enterprise Service Bus (ESB) — Pˇ rednáška pro PDI, 8. prosince 2015 1 / 32

Upload: votu

Post on 31-Mar-2018

239 views

Category:

Documents


3 download

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