6 Folien/Seite

Commentaren

Transcriptie

6 Folien/Seite
Motivation
Warum ist Komposition von WS wichtig?
• Idee von WS geschuldet
Studienarbeit:
Komposition von Web Services
Weshalb ist Komposition von WS
problematisch?
1. Syntaktische Kompatibilität
2. Semantische Kompatibilität
Luhme IX
Christian Stahl
14.05.2003
Beispiel
• Deadlock möglich
àkeine semantische
Kompatibilität
Komposition von Web Services
Warum mit einer Prozessalgebra?
• BPEL hat (noch) keine Semantik
• bei Modellierung interaktiver Systeme
bewährt
• Forschungsergebnisse nutzen
• Werkzeug: CWB
– Werkzeug zur Analyse und Manipulation von
verteilten Systemen
– arbeitet mit CCS
3
14.05.2003
Komposition von Web Services
Lösungsansatz CCS
•
•
•
•
Aktion
– extern sichtbar:
– intern:
– korrespondierend:
•
5
a
tau
a & ‘a
Agent
-
Komposition von Web Services
4
CWB - Syntax
Abstraktion von Daten
ausschließliche Betrachtung der
Kommunikation
BPEL in Prozessalgebra überführen
14.05.2003
2
Lösungsansatz CCS
• Agent 1 und Agent 2
haben die gleiche
Schnittstelle
àsyntaktische
Kompatibilität
14.05.2003
Komposition von Web Services
14.05.2003
agent A = 0;
agent A = a.0;
agent A = a.A;
* symbolisiert Terminierung
* endlicher Agent
* unendlicher Agent
Komposition von Web Services
6
1
PDF created with FinePrint pdfFactory Pro trial version http://www.pdffactory.com
CWB - Syntax
•
3 mögliche Konstrukte
–
–
–
à
•
Kommunikation
•
vorangestellte Aktion:
nichtdeterministische Auswahl:
parallele Komposition:
ergeben wieder einen Agenten
a.A
A+B
A|B
•
Restriktion von Aktionen
Empfangen
– passiv à warten auf Nachricht
à agent Receive = ‘a.0;
– korrespondierende Aktion a als
kommunizierende Aktion auszeichnen:
A\{a}
14.05.2003
Senden
1. interne Entscheidung etwas zu senden
2. Senden der Nachricht
à agent Send = tau.a.0;
•
Komposition von Web Services
7
agent Comm = (Send | Receive)\{a};
14.05.2003
Beispiel
Komposition von Web Services
8
BPEL - Überführung
agent Agent1 = tau.a.‘b.End + tau.a.‘c.End;
agent Agent2 = ‘a.(tau.b.End + tau.c.End);
agent End = x.0;
agent System = (Agent1 | Agent2)\{a,b,c};
•
•
Idee: jede Aktivität ist ein Agent
keine Kommunikation bei
<wait>, <empty>, <catch>, <throw>,
<terminate>, <assign>
à agent A = tau.0;
deadlocksobs System;
=== ===> (’c.End | b.End)\{a,b,c}
=== ===> (’b.End | c.End)\{a,b,c}
=== x x ===> (0 | 0)\{a,b,c}
14.05.2003
Komposition von Web Services
9
14.05.2003
BPEL - Überführung
<receive>
<reply
portType="c"
name=„Send">
...
</reply>
agent Rec = ‘c.0;
agent Send = tau.c.0;
Asynchrones <invoke>
<invoke
portType="c"
inputContainer="in"
name="Asynchron">
...
</invoke>
agent Asynchron = tau.c.0;
14.05.2003
Komposition von Web Services
10
BPEL - Überführung
<reply>
<receive
portType=„c"
name=„Rec">
...
</receive>
Komposition von Web Services
11
14.05.2003
Synchrones <invoke>
<invoke
portType="c"
inputContainer="in"
outputContainer="out"
name="Synchron">
...
</invoke>
agent Synchron =
tau.c1.’c2.0;
Komposition von Web Services
12
2
PDF created with FinePrint pdfFactory Pro trial version http://www.pdffactory.com
BPEL - Überführung
•
BPEL - Überführung
<sequence>
agent A = a1.a2. … .am.0;
agent B = b1.b2. … .bn.0;
agent Schleife = S_L + S_R;
agent S_L = tau.a.B;
agent S_R = tau.b.C;
agent B = 0;
agent C = ’c.Schleife;
<while>
agent Seq = a1.a2. … .am.b1.b2. … .bn.0;
agent Schleife
agent Partner
agent Partner = P_L + P_R;
agent P_L = ’a.E;
agent P_R = ’b.F;
agent E = 0;
agent F = tau.c.Partner;
agent While =
(Schleife | Partner)\{a,b,c};
14.05.2003
Komposition von Web Services
13
14.05.2003
Performanz
•
•
•
•
•
•
•
Gefahr der Zustandsexplosion bei
rekursiven Agenten
Test mit „Dining Philosophers“
CWB für zyklische Web Services
ungeeignet
14.05.2003
Komposition von Web Services
14
Ergebnis
– 3 Philosophen ~ 3h
– 5 Philosophen ~ 20h + ???
•
Komposition von Web Services
15
Übersetzung gelungen
Automatisierungsansatz
CWB nur eingeschränkt geeignet
offen: suppressedJoinFailure = „yes“
Einschränkung der
Übersetzung bei
unstrukturierten
Flussgraphen
14.05.2003
Komposition von Web Services
16
Motivation
Task Force
‘‘Geschäftsprozesssprache BPEL4WS‘‘
BPEL2PNML- Diplomvorhaben
Luhme IX
Christian Stahl
•
Task Force – Ziel ist Semantik für BPEL
1. mit ASMs
2. mit Petrinetzen
•
•
•
BPEL in Petrinetze überführen
Analyse der Petrinetze (z.B. mit PNK)
Analysewerkzeuge benötigen textuelle
Repräsentation des Petrinetzes
à PNML
14.05.2003
BPEL2PNML
18
3
PDF created with FinePrint pdfFactory Pro trial version http://www.pdffactory.com
Aufgabe
•
•
Aufbau der Arbeit
BPEL-Konstrukte in Petrinetze
überführen (à Semantikgruppe)
BPEL-Petrinetze nach PNML à PNMLModule
BPEL-Datei
PNML-Module
+
XSLT-Skript
Teil I:
Literaturarbeit
1. Geschäftsprozessmodellierung mit PN
2. Verwendete Konzepte
Teil II:
Projektanteil BPEL2PNML
1. Theorieteil: BPEL2PN
2. Praxisteil: BPEL2PNML
PNML-Datei
à BPEL2PNML
14.05.2003
BPEL2PNML
19
14.05.2003
Aufbau der Arbeit
20
Aufbau der Arbeit
I.1 Geschäftsprozessmodellierung mit PN
• Begriffsklärung
• Petrinetze als Beschreibungsmittel
I.2 Verwendete Konzepte
• BPEL4WS
• PNML
• XSLT
• Werkzeuge
– Vor- u. Nachteile
•
BPEL2PNML
Geleistete Forschungsarbeit
– Petrinetz-Typen
– wichtige Eigenschaften
14.05.2003
BPEL2PNML
21
14.05.2003
Aufbau der Arbeit
BPEL2PNML
22
Aufbau der Arbeit
II.1 Theorieteil: BPEL2PN
• Erläutern der BPEL-Petrinetzmuster
• Bewertung der Übersetzung
• Bestimmung der Netzklasse
II.2 Praxisteil: BPEL2PNML
• BPEL-Petrinetzmuster nach PNML
– PNTD für Netzklasse
– Bilden der PNML-Module
•
Übersetzen von BPEL-Dateien
– XSLT-Skript
– Bewertung der Übersetzung
14.05.2003
BPEL2PNML
23
14.05.2003
BPEL2PNML
24
4
PDF created with FinePrint pdfFactory Pro trial version http://www.pdffactory.com
Vielen Dank für Eure
Aufmerksamkeit!
5
PDF created with FinePrint pdfFactory Pro trial version http://www.pdffactory.com