Szolgáltatásorientált rendszerintegráció SOA-alapú rendszerintegráció Enterprise Service Bus (ESB)
Mi a téma? Valójában alkalmazásintegráció integrációs minták szinkron (RPC, RMI) aszinkron web service stb. ESB = Enterprise Service Bus mint az integráció megvalósításának eszköze 2
Alkalmazás-integráció Flexibilis architektúra az alkalmazások összekapcsolására azonosít irányít szétoszt (mediáció) konvertál a protokollok között transzformál az adatformátumok között 3
Mediációs minták 4
Példa: File-csere 5
Mi az ESB? 6
Miért éppen busz? 7
Mi az ESB? 8
ESB definíciója Nincs elfogadott definíció Felhasználói szempontból Kapcsolat olyan alkalmazások között, melyeket eredetileg nem készítettek fel kapcsolódásra QOS Szolgáltatás- és esemény orientált architektúrákhoz is jó legyen Szabványok használata Magas szintű konfigurálhatóság biztosítása Platform és nyelv független Technikai szempontból Általános és bővíthető hosting rendszer szolgáltatások és komponensek számára Általános integrációs szolgáltatás Monitorozás, mérés 9
ESB igények Alkalmazások kapcsolódása Üzenet bázisú legyen ESB könnyen legyen kapcsolható az alkalmazásokhoz Lazán csatolt: ne legyen semmiféle extra integrálási előírás Vállalati szintű QOS Biztonságos üzenetszállítás Security Deployment és monitoring lehetőség Regisztrálhatóság és directory Skálázható Tranzakció támogatás 10
ESB igények 2. Különféle architektúrák támogatása ESB segítse, hogy az alkalmazás service lehessen SOI Service Oriented Integration ESB biztosítsa a publish-subscribe mechanizmust ESB segítse az esemény-orientált alkalmazások bekapcsolását Szabványok használata Üzenet (message) reprezentáció Üzenet leírások Üzenet kezelés és feldolgozás Declarative programming: XML-bázisú legyen Leírások XML-ben (XML Schema, WSDL) Konfigurálás XML-ben Üzenet irányítás (XPath) Üzenet transzformáció (XSLT) Service orchestration (WS-BPEL) 11
XML XSLT Xpath JAXB Web Service WSDL SOAP MTOM WS-* UDDI WS-orchestration WS-BPEL Szabványok (XML Transformation) (XML Path Language) (Java Architecture for XML Binding) (Message Transfer Optimization Mechanism) (Universal Description, Discovery, and Integration) 12
Szabványok 2. J2EE JTA JMS (Transaction) (Messaging) Enterprise level JSSE JAAS JCE JMX (SSL Secure Socket) (Authentication/authorization) (Cryptography) (Management) 13
ESB belső szerkezeti igények Bővíthetőség Legyen közös belső üzenetforma Legyen közös protokoll a service és publish/subscribe mechanizmus között Legyenek belső konténerei (az endpoint-ra és pipeline-ra) Végpontos (endpoint) Legyenek be- és kilépési pontok Legyen átváltás a protokollok és az üzenetformák között Lehessen a végpontok között irányítgatni Pipeline-os Biztosítson egy konfigurálható, bővíthető, dinamikus végpont kapcsolódást Adjon az ESB ún. value-added service-t 14
ESB megvalósítása Gyakran BPEL alapon BPEL = web service-ek integrációja Interface a könnyebb integrációhoz JBI = Java Business Integration Üzenetek (message) központi szerepben 15
Üzenetek (messages) 16
Üzenet kezelési modellek 17
Üzenetes példa 18
Üzenet szerkezete 19
Point-to-point modell 20
Publish-subscribe modell 21
ESB, mint middleware Software, hardware mintájára Definíció: heterogén platformok és az üzleti alkalmazások közötti réteg Céljai: Magasabb absztrakciós szint Támogassa a komponens szemléletet Lehetőleg objektum orientált Nagyobb biztonság, skálázhatóság, stb. 22
Miért a web service-nél? WS nem igazi middleware Van sok egyéb middleware J2EE ORB/CORBA Adatbázis Van sok kommunikációs rendszer JDBC JMS SMTP MQ ESB feladata Kapcsolat közöttük 23
Kapcsolódás a WS-hez 24
Egy lehetséges alkalmazás 25
ESB sematikus rajza Event Source Event Sink Event Sink ESB Asynchronous communications SOAP/XML messaging Content-based routing Message transformations Pipeline Endpoint Endpoint Endpoint Service Consumer Service Provider 26
ESB és JBI JBI = Java Business Integration új szabvány célok szabványos Service Provider Interface kialakítása absztrakt üzenetkezelési mechanizmus az integrációhoz szabvány a csomagoláshoz és a telepítéshez adminisztrációs és menedzselési előírás Cél: JBI alapú ESB kialakítása használata 27
Fő részei: JBI belső szerkezete SE service engine service típusok, mint provider BE binding engine kapcsolódás a platformokhoz FTP, MQ, JMS, JDBC NMR normalised message router belső üzenetkapcsoló 28
JBI elemek kapcsolódása 29
JBI minták Message Exchange Pattern Egyirányú In-only Robust In-only Kétirányú In-Out In Optional-Out Átvéve a WSDL 2.0-ból 30
Konkrét megoldások Gyári rendszerek IBM Oracle Sun/Glassfish OpenESB (ingyenes) Apache ServiceMix (ingyenes) Közvetlen megoldás Open source komponensekből Tomcat WS-keret; pl. Axis JMS-rendszerű üzenetkezelés; pl. Joram vagy Jetlang Piplelining; pl. Orbeon 31
Komponens-ESB 1: kliens-szerver 32
Komp-ESB 2: nem komp.rendszerek 33
Komp-ESB 3: intelligens routing 34
Komp-ESB 4: adat transzfer 35
WebSphere ESB IBM megoldásai WebSphere Message Broker ESB WebSphere DataPower Integration Appliance 36
WebSphere Message Broker ESB IBM MQ (Message Queue Series) Sokéves termék semmi köze a web service-hez Igen nagy megbízhatóságú Rendkívül gyors (sok gépi kódú részlettel) Állandóan fejlesztve Rengeteg interface megvalósítva (kb. 100) Ez most kibővült web service be/kimenettel 37
IBM MQ 38
Üzenet fejléce 39
Üzenet tartalma 40
WebSphere ESB Alkalmazás szerver alapú rendszer Kifejezetten web service-ek/bpel-ek integrálására XML, WSDL, XSLT, XML-schema támogatásával Nagy megbízhatóságú, de kisebb teljesítményű Jól menedzselhető 41
Végpont típusok Belső szerkezete Web service-ek Read/write file, azaz WS-adapterek JMS EJB Java alkalmazások 42
Menedzselés Konfigurációs nyelv a menedzseléséhez MessageFilter XSLTranformation MessageLogger DatabaseLooup CustomMediation (java program) Fail Stop Grafikus felületen szerkesztés 43
Grafikus szerkesztés ikonjai 44
Grafikus menedzselési felület 45
WS DataPower Integration Appliance HW doboz Célhardware Java programmal 6 csatlakozóval Igen gyors Csak web service-ek támogatására XML, XSL max. támogatás Teljes OASIS security 46
ESB alkalmazási megoldások Egyszerű használat Sok be/kimenettel Kaszkádosított megoldások Központi vezérlő ESB Ehhez kapcsolódnak az alsóbb szintű ESB-k 47