Szolgáltatásorientált rendszerintegráció
SOA-alapú rendszerintegráció Enterprise Service Bus (ESB) © Ercsényi András, BME IIT, 2011.
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 © Ercsényi András, BME IIT, 2011.
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
© Ercsényi András, BME IIT, 2011.
3
Mediációs minták
© Ercsényi András, BME IIT, 2011.
4
Példa: File-csere
© Ercsényi András, BME IIT, 2011.
5
Mi az ESB?
© Ercsényi András, BME IIT, 2011.
6
Miért éppen „busz”?
© Ercsényi András, BME IIT, 2011.
7
Mi az ESB?
© Ercsényi András, BME IIT, 2011.
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 © Ercsényi András, BME IIT, 2011.
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
© Ercsényi András, BME IIT, 2011.
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) © Ercsényi András, BME IIT, 2011.
11
Szabványok XML XSLT Xpath JAXB
(XML Transformation) (XML Path Language) (Java Architecture for XML Binding)
Web Service WSDL SOAP MTOM WS-* UDDI
(Message Transfer Optimization Mechanism) (Universal Description, Discovery, and Integration)
WS-orchestration WS-BPEL
© Ercsényi András, BME IIT, 2011.
12
Szabványok 2. J2EE JTA JMS
(Transaction) (Messaging)
Enterprise level JSSE JAAS JCE JMX
(SSL – Secure Socket) (Authentication/authorization) (Cryptography) (Management) © Ercsényi András, BME IIT, 2011.
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
© Ercsényi András, BME IIT, 2011.
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
© Ercsényi András, BME IIT, 2011.
15
Üzenetek (messages)
© Ercsényi András, BME IIT, 2011.
16
Üzenet kezelési modellek
© Ercsényi András, BME IIT, 2011.
17
Üzenetes példa
© Ercsényi András, BME IIT, 2011.
18
Üzenet szerkezete
© Ercsényi András, BME IIT, 2011.
19
Point-to-point modell
© Ercsényi András, BME IIT, 2011.
20
Publish-subscribe modell
© Ercsényi András, BME IIT, 2011.
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. © Ercsényi András, BME IIT, 2011.
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 © Ercsényi András, BME IIT, 2011.
23
Kapcsolódás a WS-hez
© Ercsényi András, BME IIT, 2011.
24
Egy lehetséges alkalmazás
© Ercsényi András, BME IIT, 2011.
25
ESB sematikus rajza Event Source
Event Sink
Event Sink
ESB
Endpoint
• Asynchronous communications • SOAP/XML messaging Pipeline • Content-based routing • Message transformations Endpoint
Endpoint
Service Consumer
Service Provider © Ercsényi András, BME IIT, 2011.
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 © Ercsényi András, BME IIT, 2011.
27
JBI belső szerkezete Fő részei: 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ó
© Ercsényi András, BME IIT, 2011.
28
JBI elemek kapcsolódása
© Ercsényi András, BME IIT, 2011.
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 © Ercsényi András, BME IIT, 2011.
30
Konkrét megoldások Gyári rendszerek IBM Oracle Sun/Glassfish OpenESB Apache ServiceMix
…
(ingyenes) (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 © Ercsényi András, BME IIT, 2011.
31
Komponens-ESB 1: kliens-szerver
© Ercsényi András, BME IIT, 2011.
32
Komp-ESB 2: nem komp.rendszerek
© Ercsényi András, BME IIT, 2011.
33
Komp-ESB 3: intelligens routing
© Ercsényi András, BME IIT, 2011.
34
Komp-ESB 4: adat transzfer
© Ercsényi András, BME IIT, 2011.
35
IBM megoldásai WebSphere ESB WebSphere Message Broker ESB WebSphere DataPower Integration Appliance
© Ercsényi András, BME IIT, 2011.
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
© Ercsényi András, BME IIT, 2011.
37
IBM MQ
© Ercsényi András, BME IIT, 2011.
38
Üzenet fejléce
© Ercsényi András, BME IIT, 2011.
39
Üzenet tartalma
© Ercsényi András, BME IIT, 2011.
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ő
© Ercsényi András, BME IIT, 2011.
41
Belső szerkezete Végpont típusok Web service-ek Read/write file, azaz WS-adapterek JMS EJB Java alkalmazások
© Ercsényi András, BME IIT, 2011.
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 © Ercsényi András, BME IIT, 2011.
43
Grafikus szerkesztés ikonjai
© Ercsényi András, BME IIT, 2011.
44
Grafikus menedzselési felület
© Ercsényi András, BME IIT, 2011.
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 © Ercsényi András, BME IIT, 2011.
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
© Ercsényi András, BME IIT, 2011.
47