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 Pˇ rednáška pro PDI 8. prosince 2015 Marek Rychlý Enterprise Service Bus (ESB) — Pˇ rednáška pro PDI, 8. prosince 2015 1 / 32
30
Embed
Enterprise Service Bus (ESB) - fit.vutbr.czrychly/public/docs/PDI.esb/PDI.esb.print.pdf · Enterprise Service Bus (ESB) ... JBoss ESB, Mule ESB, Spring Integration, ...) (diagram
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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
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
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
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
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
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
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
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
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
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
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
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
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