Orchestrierung von Web-Services mit der Business Process Execution Language BPEL
1. Orchestrierung von Web Services
Seminar Serviceorientierte Architekturen
18. Dezember 2008
Hannes Meyer & Alexander Schmid
Masterstudiengang Information Systems & Services
2. Inhalt
1. Geschäftsprozessmodellierung
2. GP-Management und SOA
3. Orchestrierung mit BPEL
4. Fazit und Ausblick
5. Praxisteil
2
Hannes Meyer & Alexander Schmid 18.12.2008
3. Inhalt
1. Geschäftsprozessmodellierung Definition
Methoden
2. GP-Management und SOA
Grafische Notationen
3. Orchestrierung mit BPEL
4. Fazit und Ausblick
5. Praxisteil
3
Hannes Meyer & Alexander Schmid 18.12.2008
4. Geschäftsprozessmodellierung
„Geschäftsprozessmodellierung ist eine Menge von Praktiken oder
Maßnahmen, die Unternehmen durchführen können, um alle Aspekte
eines Geschäftsprozesses darstellen oder beschreiben zu können“
(nach Bloomberg, Schmelzer)
4
Hannes Meyer & Alexander Schmid 18.12.2008
5. Methoden für GP-Modellierung
Textbasiert Tabellenbasiert
- einfach erstellbar (Dokument) - einfach erstellbar (Tabellenkalkulation)
- keine Terminologie - kompakter und übersichtlicher
- keine autom. Verarbeitung - keine komplexe Kontrollflüsse
- Problem großer Prozesslandschaften - Problem großer Prozesslandschaften
Grafisches Modell mit Notation
Grafische Darstellung - Anschaulichkeit
- komplexe Kontrollflüsse
- Anschaulichkeit - Reihe von Softwarwerkzeugen
- keine Einheitlichkeit - Attribute für Modellierungselemente
- Modellierungskonventionen
- Problem großer Prozesslandschaften
- Große Prozesslandschaften darstellbar bzw. aufteilbar
5
Hannes Meyer & Alexander Schmid 18.12.2008
6. Grafische Notationen
• Unified Modeling Language (UML)
– Aktivitätsdiagramm
• Ereignis-gesteuerte Prozesskette (EPK)
• Business ProcessMarkup Notation (BPMN)
6
Hannes Meyer & Alexander Schmid 18.12.2008
7. Unified Modeling Language
• Standardisierte Sprache zur
Modellierung von Software
und anderen Systemen
• Aktivitätsdiagramm zur
Abbildung eines
Anwendungsfall
7
Hannes Meyer & Alexander Schmid 18.12.2008
8. Ereignis-gesteuerte Prozesskette
• Grafische Darstellung von Geschäftsprozessen
einer Organisation
• Wesentliches Element des ARIS-Konzepts
• Operationen, Ereignisse und Funktionen
• Gerichtete Graphen zur Verknüpfung
Bildquelle: http://www.iam-wiki.org/EPK
8
Hannes Meyer & Alexander Schmid 18.12.2008
9. Erweiterte Ereignis-gesteuerte Prozesskette
• erweiterte Ereignis-gesteuerte Prozesskette
(eEPK):
– Organisationseinheit
– Datenflüsse
– Anwendungssystem
• Kanten dazu stellen Rollen dar (z.B. „führt aus“)
• Beispiel
Bildquelle: http://www.iam-wiki.org/EPK
9
Hannes Meyer & Alexander Schmid 18.12.2008
10. Business ProcessMarkupNotation
• Schwerpunkt ist grafische Darstellung von
Geschäftsprozessen
• Symbole zur Verständlichkeit für Fachpersonal und
Informatiker
• Kaum Anwendungs- und Strukturierungsanweisungen
• Überführung in ausführbare Prozessbeschreibungen
(BPEL, XPDL) schwierig
10
Hannes Meyer & Alexander Schmid 18.12.2008
11. BPMN – Objekte
• Flow Objects
– Knoten in den Geschäftsprozessdiagrammen
• Connecting Objects
– Verbindende Kanten
• Pools/Swimlanes
– Bereiche mit denen Aktoren und Systeme dargestellt
werden
• Artefakte
– Data Objects, Groups, Annotations
11
Hannes Meyer & Alexander Schmid 18.12.2008
12. BPMN – Flow Objects
• Activity
Task Subprocess Loop
• Gateway
AND OR XOR Event-basiert
• Event
Start Inter- End Start- Int.- End-
mediate Message Timer Exception
12
Hannes Meyer & Alexander Schmid 18.12.2008
13. BPMN – weitere Elemente
• Connecting Objects:
– Sequence Flow
– MessageFlow
• Pools/Swimlanes
• Artifacts
– Data Objects, Groups, Annotations
13
Hannes Meyer & Alexander Schmid 18.12.2008
16. Zusammenhänge GPM und SOA
• Services sind ein Teil von Geschäftsprozessen
• Services erfüllen fachliche Aufgaben
• BPEL als Teil von SOA beschreibt
Geschäftsprozesse
16
Hannes Meyer & Alexander Schmid 18.12.2008
17. Vorgehensweise
• Wie gelangt man zu den Services eines
Geschäftsprozesses?
• Wie kann ich Services allgemein formuliert
erstellen, damit sie in anderen Szenarien
wiederverwendet werden können?
17
Hannes Meyer & Alexander Schmid 18.12.2008
18. Vorgehensweise
• Zwei Ansätze:
Dekomposition Komposition
Top-Down Bottom-Up
Geschäfts-
Geschäftsprozesse
prozesse
Composed-
Composed-
WAS IST BESSER ??? Services
Services
Basis-
Basis-Services
Services
18
Hannes Meyer & Alexander Schmid 18.12.2008
19. Vorgehensweise
• Wie gelangt man zu den Services eines
Geschäftsprozesses?
• Wie kann ich Services allgemein formuliert
erstellen, damit sie in anderen Szenarien
wiederverwendet werden können?
Die Service-Entwicklung sollte „agil“ sein (sowohl
Top-Down als auch Bottom-Up)
19
Hannes Meyer & Alexander Schmid 18.12.2008
20. Pause
20
Hannes Meyer & Alexander Schmid 18.12.2008
21. Fortsetzung
21
Hannes Meyer & Alexander Schmid 18.12.2008
22. Inhalt
1. Geschäftsprozessmodellierung
2. GP-Management und SOA
Erklärung Orchestrierung
3. Orchestrierung mit BPEL
Abgrenzung zu Choreografie
4. Fazit und Ausblick Sprachelemente
Ausnahmebehandlung und Events
5. Praxisteil Überblick Fallbeispiel Bestellabwicklung
22
Hannes Meyer & Alexander Schmid 18.12.2008
23. BPEL Historie
• 2002: BPEL4WS 1.0 von Microsoft, IBM & BEA
• IBM: Web Services FlowLanguage WSFL
• Microsoft: XLANG
• 2003: Beitritt von SAP und Siebel Systems
• Weiterentwicklung von OASIS
• Offizieller offener Standard
• 2007: WS-BPEL 2.0
23
Hannes Meyer & Alexander Schmid 18.12.2008
24. BPEL im Web-Services-Stapel
WS-BPEL Business Processes
WSDL, Policy, UDDI, Inspection Description
Transactions
ReliableMes
Security Quality Of Service
saging
Coordination
SOAP (logicalmessaging) Otherprotocols
Transport and
Encoding
XML, Encoding Otherservices
Quelle: In Anlehnung an Ryan, Frank
http://www.oasis-open.org/committees/download.php/23068/WS-
BPEL%20Technical%20Overview%20for%20Developers%20and%20Architects%20-
%20Part%201%20(Frank%20Ryan).pdf
24
Hannes Meyer & Alexander Schmid 18.12.2008
25. WS-BPEL - Einführung
• Web Services Business
ProcessExecutionLanguage 2.0
• Orchestriert Web-Services
25
Hannes Meyer & Alexander Schmid 18.12.2008
26. Basis- und Composite-Services
Operative DB
Basis-Service
BPEL Prozess Output
Input
Composite-Service
B-Service B-Service
B-Service
Operation
DB 1
DB 2
26
Hannes Meyer & Alexander Schmid 18.12.2008
27. Orchestrierung
• Komposition verschiedener Services zu einem
Prozess.
• Services können intern und extern sein.
• Steuerung der zeitlichen Reihenfolge und
Bedingungen der Serviceaufrufe.
• Übergabe und Zwischenspeicherung von Daten
zwischen Services.
• Der komponierte Prozess ist wiederum ein
Service.
27
Hannes Meyer & Alexander Schmid 18.12.2008
28. Abgrenzung zu Choreografie
• Choreografie als Zusammenarbeit gleichberechtigter
Partner.
• Orchester wird zentral geleitet (dirigiert).
• Eigenschaften der Choreografie:
– bessere Skalierung
– fehlender Gesamtüberblick
– Services triggern sich gegenseitig.
Bildquellen: http://www.flickr.com/creativecommons/
28
Hannes Meyer & Alexander Schmid 18.12.2008
29. BPEL und WSDL
• Mittels einer WSDL wird ein BPEL-Prozess
selbst als Service zur Verfügung gestellt.
• WDSL definiert u.a. Input-/Output-Messages,
deren Typ.
• Serviceaufrufe innerhalb des Prozesses stützen
sich auf WSDL-Dokumente.
• BPEL erweitert die WSDL- Spezifikation, um
asynchrone Prozesse mit langer Laufzeit zu
unterstützen.
• WS-BPEL 2.0 verwendet WSDL 1.1
29
Hannes Meyer & Alexander Schmid 18.12.2008
36. <partnerLinks>
36
Hannes Meyer & Alexander Schmid 18.12.2008
37. <partnerLinks>
Verbindung zu einem Partner-Service.
<partnerLinks>
<partnerLink
name=quot;PL_Bestellung_pruefenquot;
xmlns:tns=quot;http://j2ee.netbeans.org/wsdl/subprocess_Bestellung_pruefenquot;
partnerLinkType=quot;tns:subprocess_Bestellung_pruefenquot;
partnerRole=quot;subprocess_Bestellung_pruefenPortTypeRolequot;/>
[…]
</partnerLinks>
37
Hannes Meyer & Alexander Schmid 18.12.2008
40. <receive>
40
Hannes Meyer & Alexander Schmid 18.12.2008
41. <receive>
Empfangen einer passenden eintreffenden Nachricht.
<receive
name=quot;Bestelleingangquot;
partnerLink=quot;Kundequot;
portType=quot;tns:prozess_BestellungPortTypequot;
operation=quot;prozess_BestellungOperationquot;
variable=quot;Prozess_BestellungOperationInquot;
createInstance=quot;yesquot;
xmlns:tns=quot;http://.../wsdl/prozess_Bestellungquot; >
</receive>
41
Hannes Meyer & Alexander Schmid 18.12.2008
42. <reply>
42
Hannes Meyer & Alexander Schmid 18.12.2008
43. <reply>
Sende eine Nachricht als Antwort auf <receive>.
<replyname=quot;Bestaetigung_sendenquot;
partnerLink=quot;Kundequot;
operation=quot;prozess_BestellungOperationquot;
xmlns:tns=quot;http://j2ee.netbeans.org/wsdl/prozess_Bestellungquot;
portType=quot;tns:prozess_BestellungPortTypequot;
variable=quot;Prozess_BestellungOperationOutquot; />
43
Hannes Meyer & Alexander Schmid 18.12.2008
44. <invoke>
44
Hannes Meyer & Alexander Schmid 18.12.2008
45. <invoke>
Führe eine Operation eines PartnerLinks aus.
<invokename=quot;Bestellung_pruefenquot;
partnerLink=quot;PL_Bestellung_pruefenquot;
operation=quot;bestellung_pruefenOperationquot;
portType=quot;tns:bestellung_pruefenPortTypequot;
xmlns:tns=quot;http://bestellabwicklung.hdm.dequot;
inputVariable=quot;Bestellung_pruefenOperationInquot;
outputVariable=quot;Bestellung_pruefenOperationOutquot;>
</invoke>
45
Hannes Meyer & Alexander Schmid 18.12.2008
46. <assign>
46
Hannes Meyer & Alexander Schmid 18.12.2008
47. <assign>
Weise Variablen neue Werte zu.
<assign name=quot;Assign1quot;>
<copy>
<from variable=quot;Prozess_BestellungOperationInquot;
part=quot;bestellprozess_inquot; />
<tovariable=quot;Bestellung_pruefenOperationInquot;
part=quot;bestellung_inquot; />
</copy>
</assign>
47
Hannes Meyer & Alexander Schmid 18.12.2008
48. <copy> mit xsl Transformation
<copy>
<from>
bpws:doXslTransform('urn:stylesheets:Bestellbestaetigung.xsl',
$Prozess_BestellungOperationIn.bestellprozess_in)
</from>
<to variable=quot;Prozess_BestellungOperationOutquot; part=quot;bestellprozess_outquot;/>
</copy>
48
Hannes Meyer & Alexander Schmid 18.12.2008
59. Fault Handler
59
Hannes Meyer & Alexander Schmid 18.12.2008
60. <throw>
Erzeuge einen Fehler innerhalb des Prozesses.
<throw
name=quot;Throw1quot;
faultName=quot;ns2:datenfehlerquot;
faultVariable=quot;subprocess_Bestellung_pruefenOperationFaultquot;/>
60
Hannes Meyer & Alexander Schmid 18.12.2008
63. Event Handler
• Parallel zur Abarbeitung des
Prozesses/ Scopes.
• Empfängt Requests, stößt
draufhin Aktionen an.
• Beispiel: Stornierung durch
Kunden tritt während des
Bestellprozesses ein.
63
Hannes Meyer & Alexander Schmid 18.12.2008
65. Inhalt
1. Geschäftsprozessmodellierung
2. GP-Management und SOA
3. Orchestrierung mit BPEL
4. Fazit und Ausblick
5. Praxisteil
65
Hannes Meyer & Alexander Schmid 18.12.2008
66. Vor- und Nachteile
• Vorteile • Nachteile
– XML-basiert – Komplexität
– Ausnahmebehandlung – Keine Interaktion mit
Menschen möglich
– BPMN als grafische
– Kompatibilität von BPEL
Notation fungiert als
Schnittstelle zwischen 1.1 und BPEL 2.0
Fachpersonal und IT – Überführung von BPMN
in BPEL nicht einfach
66
Hannes Meyer & Alexander Schmid 18.12.2008
67. BPEL4People
• Als Vorschlag bei OASIS eingereicht, aber noch
kein offizieller Standard.
• Erweitert die bestehende WS-BPEL
Spezifikation.
• Bringt menschliche Interaktionen in BPEL-
Prozesse.
67
Hannes Meyer & Alexander Schmid 18.12.2008
68. BEPL4People
• Mensch --> Prozess
• User instantiiert& liefert Daten an Prozess
• Mensch <--> Prozess
• Prozess fordert vom User Daten an
• Prozess liefert eine Meldung an den User
• Prozess fordert Bestätigung des Users
• Mensch <-- Prozess
• Prozess benachrichtigt den User
68
Hannes Meyer & Alexander Schmid 18.12.2008
69. Pause
1. Geschäftsprozessmodellierung
2. GP-Management und SOA
3. Orchestrierung mit BPEL
4. Fazit und Ausblick
5. Praxisteil
69
Hannes Meyer & Alexander Schmid 18.12.2008
70. Quellen
• OASIS (2007): WS-BPEL 2.0 Primer. http://www.oasis-
open.org/committees/download.php/23974/wsbpel-v2.0-primer.pdf
• OASIS (2007): WS-BPEL 2.0 Specification. http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-
OS.pdf
• http://swt2.informatik.uni-halle.de/downloads/2006ss/proseminar_cs_ws/08_felix-
wagner_bpel_ausarbeitung.pdf
• BPEL4PEOPLE 1.0 Specification.
http://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-
bpel4people/BPEL4People_v1.pdf
• http://bpel4people.svn.sourceforge.net/viewvc/bpel4people/doc/poster/poster.pdf?revision=1
• BPEL Presentations on http://ode.apache.org/ws-bpel-20.html
• Josuttis, N. (2008): SOA in der Praxis. Dpunkt Verlag.
• http://www.iam-wiki.org/EPK
• http://www.competence-
site.de/soa.nsf/AttachShow!OpenFrameset&attachfile=/soa.nsf/04AF9B7C89738738C125732A0055
1F54/$File/SOA%20macht%20den%20Weg%20frei%20fuer%20Business%202.0_ids%20scheer_dr.%
20scheer_082007.pdf
• http://www.gi-ev.de/no_cache/service/informatiklexikon/informatiklexikon-
detailansicht/meldung/serviceorientierte-architektur-118/
• http://bpms.intalio.com/tutorials.html
• http://www.bpmn.org
• Netbeans Sample BPEL Projects
70
Hannes Meyer & Alexander Schmid 18.12.2008
71. Vielen Dank für die Aufmerksamkeit!
71
Hannes Meyer & Alexander Schmid 18.12.2008