1 / 37

11. Szolgáltatás Integráció

11. Szolgáltatás Integráció. Dr. Bilicki Vilmos Szegedi Tudományegyetem Informatikai Tanszékcsoport Szoftverfejlesztés Tanszék. Tartalom. ESB BPEL. Szolgáltatás-orientált architektúra. Szolgáltatás: lazán csatolt alapegység, üzleti funkciót reprezentál

petra
Download Presentation

11. Szolgáltatás Integráció

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 11. Szolgáltatás Integráció Dr. Bilicki Vilmos Szegedi Tudományegyetem Informatikai Tanszékcsoport Szoftverfejlesztés Tanszék

  2. Programrendszerek fejlesztése Tartalom • ESB • BPEL

  3. Programrendszerek fejlesztése 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

  4. Programrendszerek fejlesztése 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ó isküld státuszt • In Optional-Out: a válaszopcionális

  5. Programrendszerek fejlesztése 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.

  6. Programrendszerek fejlesztése JBoss ESB

  7. Programrendszerek fejlesztése 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: • Gatewaylistener • ESB listener <service category="Retail" name="ShoeStore"description="AcmeShoeStoreService"> <providers> <jms-provider name="JBossMQ" connection-factory="ConnectionFactory"> <jms-busbusid="shoeStoreJMSGateway"> <jms-message-filterdest-type="QUEUE" dest-name="queue/shoeStoreJMSGateway"/> </jms-bus> </jms-provider> </providers> <listeners> <jms-listenername="shoeStoreJMSGateway" is-gateway="true" busidref="shoeStoreJMSGateway" /> </listeners> <actions> <actionname="println" class="org.jboss.soa.esb.actions.SystemPrintln" /> </actions> </service>

  8. Programrendszerek fejlesztése JBossESB: szolgáltatások, akciók, üzenetek

  9. Programrendszerek fejlesztése 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)

  10. Programrendszerek fejlesztése 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

  11. Programrendszerek fejlesztése 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

  12. Programrendszerek fejlesztése 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

  13. Programrendszerek fejlesztése 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é

  14. Programrendszerek fejlesztése JBossESB szolgáltatások: CBR - XPath • <action class="org.jboss.soa.esb.actions.ContentBasedRouter„ • name="ContentBasedRouter"> • <property name="cbrAlias" value="XPath"/> • <property name="destinations"> • <route-to service-category="BlueTeam" service-name="GoBlue" • expression="/Order[@statusCode='0']" /> • <route-to service-category="RedTeam" service-name="GoRed" • expression="/Order[@statusCode='1']" /> • <route-to service-category="GreenTeam" service-name="GoGreen" • expression="/Order[@statusCode='2']" /> • </property> • </action>

  15. Programrendszerek fejlesztése JBossESB szolgáltatások: CBR - Regex • <action class="org.jboss.soa.esb.actions.ContentBasedRouter„ • name="ContentBasedRouter"> • <property name="cbrAlias" value="Regex"/> • <property name="destinations"> • <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#*" /> • </property> • </action>

  16. Programrendszerek fejlesztése 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)

  17. Programrendszerek fejlesztése 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: • publicMessagedeliverSync(Messagemessage, longtimeoutMillis)throwsMessageDeliverException, RegistryException; Aszinkron küldés: • publicvoiddeliverAsync(Messagemessage)throwsMessageDeliverException;

  18. 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 Web Szolgáltatások 18

  19. Vezérlés vs. Koregrafálás XML alapú Szinkron – Aszinkron Programrendszerek fejlesztése BPEL 19

  20. 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 AbstractProcess) A kívülről megfigyelhető működést írja le Egy sablont ad a folyamatra Futtatható folyamat (WS-BPEL ExecutableProcess) Programrendszerek fejlesztése WS-BPEL 20

  21. 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 BPEL 21

  22. 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 BPEL4WS 22

  23. Folyamat leíró nyelv (XML alapú) Aktivitásokból áll pl.: <invoke> <wait> <receive> <reply> <assign> <throw> <terminate> Ezeket lehet kombinálni komplex aktivitásokba <switch> <while> <sequence> <flow> Programrendszerek fejlesztése BPEL4WS 23

  24. 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 Folyamat társak 24

  25. 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 Szolgáltatás hivatkozás típusok

  26. 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 Változók

  27. 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 Invoke elem

  28. Amikor a folyamat egy partner folyamattól vár valamit Aszinkron – callback Az egész BPEL folyamat kezdete Programrendszerek fejlesztése Receive elem

  29. Programrendszerek fejlesztése If, elseif, else elemek

  30. 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 Assign, copy, from elemek

  31. Processz példányok Melyik üzenet melyik processz példányhoz tartozik Programrendszerek fejlesztése Korreláció

  32. 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 Kivételkezelés

  33. 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 A folyamat életciklusa

  34. Programrendszerek fejlesztése Tételsor • 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) • ApacheHadoop HDFS (5) • Map-Reduce (10) • ApacheHadoopHBase/Pig Latin (5) • 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)

  35. Programrendszerek fejlesztése 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)

  36. Programrendszerek fejlesztése Tételsor • Adatkezelés • Perzisztencia (5) • JDBC (5) • ORM (5) • JPA (10) • Hibernate (15) • Szolgáltatás integráció • ESB (20) • BPEL (20)

  37. Programrendszerek fejlesztése • Itt a nyár !  • Köszönöm a félévi figyelmet! • Sok sikert!

More Related