Upload
petra
View
23
Download
0
Embed Size (px)
DESCRIPTION
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 - PowerPoint PPT Presentation
Citation preview
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
11. Szolgáltatás Integráció
Dr. Bilicki Vilmos
Szegedi Tudományegyetem
Informatikai Tanszékcsoport
Szoftverfejlesztés Tanszék
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
TartalomESBBPEL
23.04.20. 2Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
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
23.04.20. 3Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
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
23.04.20. 4Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
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.
23.04.20. 5Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
JBoss ESB
23.04.20. 6Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
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
<service category="Retail" name="ShoeStore" description="Acme Shoe Store Service">
<providers>
<jms-provider name="JBossMQ" connection-factory="ConnectionFactory">
<jms-bus busid="shoeStoreJMSGateway">
<jms-message-filter dest-type="QUEUE"
dest-name="queue/shoeStoreJMSGateway"/>
</jms-bus>
</jms-provider>
</providers>
<listeners>
<jms-listener name="shoeStoreJMSGateway" is-gateway="true"
busidref="shoeStoreJMSGateway" />
</listeners>
<actions>
<action name="println" class="org.jboss.soa.esb.actions.SystemPrintln" />
</actions>
</service>
23.04.20. 7Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
JBossESB: szolgáltatások, akciók, üzenetek
23.04.20. 8Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
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)
23.04.20. 9Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
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
23.04.20. 10Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
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
23.04.20. 11Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
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
23.04.20. 12Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
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é
23.04.20. 13Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
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>
23.04.20. 14Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
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>
23.04.20. 15Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
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)
23.04.20. 16Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
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;
23.04.20. 17Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
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
1823.04.20. 18Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
BPELVezérlés vs. KoregrafálásXML alapúSzinkron – Aszinkron
1923.04.20. 19Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
WS-BPELModell é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)
2023.04.20. 20Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
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
2123.04.20. 21Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
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
2223.04.20. 22Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
BPEL4WS 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>
2323.04.20. 23Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
Folyamat társakA 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)
2423.04.20. 24Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
Szolgáltatás hivatkozás típusokPort TypeService 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
23.04.20. 25Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
VáltozókA munkafolyamathoz tartozó információ
tárolásához használjukAdattí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
23.04.20. 26Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
Invoke elemA partner szolgáltatás valamilyen
műveletét hívja meg (operation)Valamilyen változóhoz kötődik (in/out)
23.04.20. 27Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
Receive elemAmikor a folyamat egy partner folyamattól
vár valamitAszinkron – callbackAz egész BPEL folyamat kezdete
23.04.20. 28Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
If, elseif, else elemek
23.04.20. 29Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
Assign, copy, from elemekVáltozó értékadásMindegyik értékadás egy copy műveletMinden copy művelet egy to és egy from
elemet tartalmaz
23.04.20. 30Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
KorrelációProcessz példányokMelyik üzenet melyik processz példányhoz
tartozik
23.04.20. 31Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
KivételkezelésThorw/Catch elemekA WSDL hibakezelésére (fault) építKompenzá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
23.04.20. 32Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
A folyamat életciklusaFolyamat indítópontÜzenetek hatására jön létreNem Process ID alapú az üzenet folyamat
összerendelés (belső struktúra)Üzenet korreláció (message correlation)
23.04.20. 33Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
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)
23.04.20. 34Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
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)
23.04.20. 35Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
Tételsor
Adatkezelés ■ Perzisztencia (5)■ JDBC (5)■ ORM (5)■ JPA (10)■ Hibernate (15)
Szolgáltatás integráció■ ESB (20)■ BPEL (20)
23.04.20. 36Programrendszerek fejlesztése
UN
IVER
SIT
Y O
F SZ
EG
ED
Dep
artm
ent o
f Sof
twar
e E
ngin
eeri
ng
UN
IVE
RS
ITA
S S
CIE
NT
IAR
UM
SZ
EG
ED
IEN
SIS
Itt a nyár ! Köszönöm a félévi figyelmet!Sok sikert!
23.04.20. 37Programrendszerek fejlesztése