UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS 11. Szolgáltatás Integráció Dr. Bilicki Vilmos Szegedi Tudományegyetem Informatikai Tanszékcsoport Szoftverfejlesztés Tanszék
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Tartalom ESB BPEL Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Szolgáltatás-orientált architektúra Szolgáltatás: lazán csatolt alapegység, üzleti funkciót reprezentál Szolgáltató: szolgáltatást biztosít, és a bróker felé továbbítja azok adatait Használó: kikeresi a számára szükséges szolgáltatást és igénybe veszi azt Bróker: szolgáltatásokról tárol és biztosít információt Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Java Business Integration A szolgáltatás-orientált architektúra megvalósítása Javaban (specifikáció) Webszolgáltatásokra épül Kibővíthető architektúra Szolgáltatásmodell: WSDL 2.0 Üzenetcsere-minták: In-Only: egyirányú, max. státusz a fogadótól Robust In-Only: megbízható egyirányú In-Out: kétirányú, fogadó is küld státuszt In Optional-Out: a válasz opcionális Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Enterprise Service Bus Szolgáltatások közötti üzenetcsere monitorozása és vezérlése Szolgáltatások telepítése és verziózása Gyakori középréteg szolgáltatások biztosítása: Eseménykezelés Adattranszformáció Üzenetsorok kezelése Biztonság- és kivételkezelés Stb Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS JBoss ESB Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS JBossESB: szolgáltatások, akciók, üzenetek Szolgáltatás: Üzelti logika megvalósítása vagy integrációs pont Akcióosztályok halmaza Kategória és név alapján azonosítható (registry-ből) Bejövő üzenetek fogadására Listenerek: Gateway listener ESB listener <jms-message-filter dest-type="QUEUE" dest-name="queue/shoeStoreJMSGateway"/> <jms-listener name="shoeStoreJMSGateway" is-gateway="true" busidref="shoeStoreJMSGateway" /> Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS JBossESB: szolgáltatások, akciók, üzenetek Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS JBossESB: szolgáltatások, akciók, üzenetek Üzenet: kommunikációs alapegység szolgáltatások között Javasolt MEP: in-only Részei: Header: útválasztási és címzési adatok Body: tartalom (többrészes) Properties: saját metaadatok (nem ajánlott, helyette body) Attachments: csatolmányok (nem ajánlott, helyette body) Fault: hibainformáció közvetítésére (kód, ok) Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS JBossESB szolgáltatásai: registry Szolgáltatásokkal kapcsolatos információkat szolgáltatja (meta- adatok) Szolgáltatások automatizált felderítése Csak katalógus, nem tárolja a tényleges információt Gyakorlatilag a SOA szolgáltatásbróker feladatait látja el Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS JBossESB szolgáltatásai: szabálykezelés Drools szabályok használata szolgáltatásokként Akciólánc vagy vezérelt üzleti folyamat Támogatott szabálytípusok: Drools BRMS DRL-fájlok DSL Döntési fa szabályok Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS JBossESB szolgáltatásai: CBR Üzenetek közvetítésére Az üzenetek végpont referenciák felé közlekednek Mi legyen, ha valamelyik végpont nem elérhető vagy megváltozott? Tartalom-alapú útválasztás: nem adott célhoz tartanak az üzenetek, hanem a tartalmuk alapján választódik célpont A küldőnek nem kell ismerni a fogadó felet Tartalommegadás: Xpath, reguláris kifejezések, Drools, Smooks Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS JBossESB szolgáltatások: CBR – példa Adottak: Szolgáltatások Útválasztó Összerendelés üzenettípusok és szolgáltatások között (útválasztási szabályok) Példa : A kliens küld egy üzenetet az ESB felé (A szolgáltatás fogadja az üzenetet) A szolgáltatás az útválasztóhoz továbbítja az üzenetet Az útválasztó a szabályok (és az üzenet tartalma) alapján továbbítja az üzenetet B vagy C szolgáltatás felé Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS JBossESB szolgáltatások: CBR - XPath <action class="org.jboss.soa.esb.actions.ContentBasedRouter„ name="ContentBasedRouter"> <route-to service-category="BlueTeam" service-name="GoBlue" /> <route-to service-category="RedTeam" service-name="GoRed" /> <route-to service-category="GreenTeam" service-name="GoGreen" /> Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS JBossESB szolgáltatások: CBR - Regex <action class="org.jboss.soa.esb.actions.ContentBasedRouter„ name="ContentBasedRouter"> <route-to service-category="BlueTeam" service-name="GoBlue" expression="#*111#*" /> <route-to service-category="RedTeam" service-name="GoRed" expression="#*222#*" /> <route-to service-category="GreenTeam" servicename="GoGreen" expression="#*333#*" /> Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS JBossESB szolgáltatások: transzformációk Üzenetek átalakítására Támogatott módszerek: Smooks (SmooksAction) XSLT Saját transzformációs kód (Java) Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS JBossESB szolgáltatások: ServiceInvoker Szolgáltatások számára történő üzenetküldésre Létrehozás: public ServiceInvoker(String serviceCategory, String serviceName) throws MessageDeliverException; Szinkron küldés: public Message deliverSync(Message message, long timeoutMillis) throws MessageDeliverException, RegistryException; Aszinkron küldés: public void deliverAsync(Message message) throws MessageDeliverException; Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Web Szolgáltatások Lazán csatolt alkalmazások Elemei: ■SOAP ■WSDL ■UDDI A szolgáltatás integráció többet igényel mint egyszerű web szolgáltatás hívásokat A konkrét protokollt, üzleti folyamatot kellene definiálni Igények: ■Adatfüggő folyamatok ■Hiba/kivételkezelés (mi van akkor ha valami nincs rendben?) ■Hosszúidejű egymásba ágyazott üzleti folyamatok kezelése Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS BPEL Vezérlés vs. Koregrafálás XML alapú Szinkron – Aszinkron Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS WS-BPEL Modell és nyelv ■Web szolgáltatás alapú interakciók ■A viszonyokat a partnerLink segítségével írja le ■Állapotok és logika kezelése ■Kompenzáció kezelése ■Hiba kezelése Két koncepció ■Absztrakt folyamat (WS-BPEL Abstract Process) –A kívülről megfigyelhető működést írja le –Egy sablont ad a folyamatra ■Futtatható folyamat (WS-BPEL Executable Process) Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS BPEL Technológiák ■WSDL ■SOAP ■XML ■Xpath Szkópok használata ■Változók ■Aktivitások ■Vezérlő elemek Zárolások Kompenzáció Hosszú folyamatok -> állapot perzisztálás Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS BPEL4WS Hogyan kapcsoljunk össze WS alapú rendszereket? Hibakezelés? Tranzakciókezelés? Web Szolgáltatásokat komponál össze (orchestration) MS:XLANG + IBM:WSFL ■Absztrakt üzleti folyamat ■Futtatható üzleti folyamat Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS BPEL4WS Folyamat leíró nyelv (XML alapú) Aktivitásokból áll pl.: ■ Ezeket lehet kombinálni komplex aktivitásokba ■ Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Folyamat társak A folyamat Web szolgáltatásokat hív és web szolgáltatás interfészeket ad ■Kliens folyamat társak azok a kliensek akik a web szolgáltatás interfészeket használják (ezeket esetleg szeretné megkülönböztetni…) ■Meghívott folyamat társak azok az alkalmazások akik a web szolgáltatásokat a folyamat rendelkezésére bocsájtják Ezek kombinációja: ■Szolgáltatások amelyeket csak hív ■Szolgáltatások amelyek csak hívják ■Szolgáltatások amelyek hív és hívják (pl.: aszinkron hívás) Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Szolgáltatás hivatkozás típusok Port Type Service Link Types ■Megadja a kommunikáló partnerek szerepköreit (portType) ■Role (myRole/partnerRole) Szolgáltatás referencia (Service Reference) ■Konkrét web szolgáltatást ad meg Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Változók A munkafolyamathoz tartozó információ tárolásához használjuk Adattípusok: ■Üzenet típus (MessageType – WSDL által definiált üzenet) ■Elem (Element - XSD) ■Típus (Type – egyszerű XSD típus) Általában a ki és bejövő hívásokat ilyen változókban tároljuk Egy BPEL folyamatnak több példánya is lehet ■Minden példány saját változó példányokkal bír Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Invoke elem A partner szolgáltatás valamilyen műveletét hívja meg (operation) Valamilyen változóhoz kötődik (in/out) Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Receive elem Amikor a folyamat egy partner folyamattól vár valamit Aszinkron – callback Az egész BPEL folyamat kezdete Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS If, elseif, else elemek Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Assign, copy, from elemek Változó értékadás Mindegyik értékadás egy copy művelet Minden copy művelet egy to és egy from elemet tartalmaz Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Korreláció Processz példányok Melyik üzenet melyik processz példányhoz tartozik Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Kivételkezelés Thorw/Catch elemek A WSDL hibakezelésére (fault) épít Kompenzáció ■A folyamat tervező az egyes nem megfordítható folyamatok esetén kompenzálhat (pl.: jegyfoglalás lemondás esetén más folyamaton kell végigmenni) ■Kompenzációs akciók Rekurzívan támogatja ■Környezet (Scope) az elemi egysége Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS A folyamat életciklusa Folyamat indítópont Üzenetek hatására jön létre Nem Process ID alapú az üzenet folyamat összerendelés (belső struktúra) Üzenet korreláció (message correlation) Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Tételsor Elosztott rendszerek ■Motiváció (5 pont) ■Architektúra típusok (5 pont) ■Skálázhatóság (5 pont) ■CAP tétel (5 pont) ■Virtualizációs rétegek (5 pont) ■Elosztott rendszer architektúrák (15 pont) Átszövődő vonatkozások ■Átszövődő vonatkozások (5 pont) ■Kontextus (5 pont) ■Biztonság (10 pont) ■Konszenzus (5 pont) ■Tranzakció (5 pont) ■Paxos (5 pont) ■Perziszetncia (5 pont) Web Szolgáltatások ■REST, JSON (10 pont) ■SOAP (5 pont) ■WSDL (20 pont) ■UDDI (5 pont) Köztesréteg ■Motiváció, nem funkcionális követelmények, típusai, megvalósítása (5) ■JGroups szerepe, képességei (5) ■Apache Hadoop HDFS (5) ■Map-Reduce (10) ■Apache Hadoop HBase/Pig Latin (5) Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Tételsor Nyelvi paradigmák – logika ■RUP absztrakciós szintek (5) ■Folyamat nyelvek (15) ■Szabály nyelvek (10) ■Tartomány specifikus nyelvek (5) ■AOP (5) Nyelvi paradigmák – adatábrázolás ■Web 1.2, 2.0 korlátok(5) ■Szemantikus web (5) ■RDF (10) ■OWL (10) ■SPARQL (10) Felhasználói interakció ■AJAX + GWT(10) ■JSP (10) ■JSF (20) Háttér logika ■EJB rendszer, szolgáltatás réteg (5) ■RMI, JNDI (5) ■EJB (10) ■Tranzakció (5) ■CDI/Web babok (15) Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Tételsor Adatkezelés ■Perzisztencia (5) ■JDBC (5) ■ORM (5) ■JPA (10) ■Hibernate (15) Szolgáltatás integráció ■ESB (20) ■BPEL (20) Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Itt a nyár ! Köszönöm a félévi figyelmet! Sok sikert! Programrendszerek fejlesztése