orchestrierung von web-services mit der business process execution language bpel
DESCRIPTION
Diese Präsentation bietet einen Einblick in die Grundlagen von BPEL und Orchestrierung von Web-ServicesTRANSCRIPT
![Page 1: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/1.jpg)
Orchestrierung von Web Services
Seminar Serviceorientierte Architekturen18. Dezember 2008
Hannes Meyer & Alexander SchmidMasterstudiengang Information Systems & Services
![Page 2: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/2.jpg)
2Hannes Meyer & Alexander Schmid
Inhalt
18.12.2008
![Page 3: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/3.jpg)
3Hannes Meyer & Alexander Schmid
Inhalt
18.12.2008
![Page 4: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/4.jpg)
4Hannes Meyer & Alexander Schmid
Geschäftsprozessmodellierung
18.12.2008
„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)
![Page 5: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/5.jpg)
5Hannes Meyer & Alexander Schmid
Methoden für GP-Modellierung
18.12.2008
![Page 6: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/6.jpg)
6Hannes Meyer & Alexander Schmid
Grafische Notationen
• Unified Modeling Language (UML)– Aktivitätsdiagramm
• Ereignis-gesteuerte Prozesskette (EPK)
• Business Process Markup Notation (BPMN)
18.12.2008
![Page 7: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/7.jpg)
7Hannes Meyer & Alexander Schmid
Unified Modeling Language
• Standardisierte Sprache zurModellierung von Softwareund anderen Systemen
• Aktivitätsdiagramm zur Abbildung eines Anwendungsfall
18.12.2008
![Page 8: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/8.jpg)
8Hannes Meyer & Alexander Schmid
Ereignis-gesteuerte Prozesskette
• Grafische Darstellung von Geschäftsprozessen einer Organisation
• Wesentliches Element des ARIS-Konzepts• Operationen, Ereignisse und Funktionen
• Gerichtete Graphen zur Verknüpfung
18.12.2008
Bildquelle: http://www.iam-wiki.org/EPK
![Page 9: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/9.jpg)
9Hannes Meyer & Alexander Schmid
Erweiterte Ereignis-gesteuerte Prozesskette
• erweiterte Ereignis-gesteuerte Prozesskette (eEPK):– Organisationseinheit– Datenflüsse– Anwendungssystem
• Kanten dazu stellen Rollen dar (z.B. „führt aus“)
• Beispiel
18.12.2008
Bildquelle: http://www.iam-wiki.org/EPK
![Page 10: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/10.jpg)
10Hannes Meyer & Alexander Schmid
Business Process Markup Notation
• 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
18.12.2008
![Page 11: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/11.jpg)
11Hannes Meyer & Alexander Schmid
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
18.12.2008
![Page 12: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/12.jpg)
12Hannes Meyer & Alexander Schmid
BPMN – Flow Objects
• Activity
• Gateway
• Event
18.12.2008
Task Subprocess Loop
AND OR XOR Event-basiert
Start Inter- End Start- Int.- End- mediate Message Timer Exception
![Page 13: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/13.jpg)
13Hannes Meyer & Alexander Schmid
BPMN – weitere Elemente
• Connecting Objects:– Sequence Flow– Message Flow
• Pools/Swimlanes
• Artifacts– Data Objects, Groups, Annotations
18.12.2008
![Page 14: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/14.jpg)
14Hannes Meyer & Alexander Schmid
Beispiel Bestellabwicklung
18.12.2008
![Page 15: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/15.jpg)
15Hannes Meyer & Alexander Schmid
Inhalt
18.12.2008
![Page 16: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/16.jpg)
16Hannes Meyer & Alexander Schmid
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
18.12.2008
![Page 17: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/17.jpg)
17Hannes Meyer & Alexander Schmid
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?
18.12.2008
![Page 18: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/18.jpg)
Vorgehensweise
18.12.2008 18Hannes Meyer & Alexander Schmid
• Zwei Ansätze:Top-Down Bottom-Up
Dekomposition Komposition
WAS IST BESSER ???
![Page 19: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/19.jpg)
19Hannes Meyer & Alexander Schmid
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)
18.12.2008
![Page 20: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/20.jpg)
Hannes Meyer & Alexander Schmid 2018.12.2008
Pause
![Page 21: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/21.jpg)
Hannes Meyer & Alexander Schmid 2118.12.2008
Fortsetzung
![Page 22: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/22.jpg)
22Hannes Meyer & Alexander Schmid
Inhalt
18.12.2008
![Page 23: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/23.jpg)
23Hannes Meyer & Alexander Schmid
BPEL Historie
• 2002: BPEL4WS 1.0 von Microsoft, IBM & BEA• IBM: Web Services Flow Language WSFL• Microsoft: XLANG• 2003: Beitritt von SAP und Siebel Systems• Weiterentwicklung von OASIS• Offizieller offener Standard• 2007: WS-BPEL 2.0
18.12.2008
![Page 24: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/24.jpg)
BPEL im Web-Services-Stapel
18.12.2008 24Hannes Meyer & Alexander Schmid
WS-BPEL
WSDL, Policy, UDDI, Inspection
Security Reliable Messaging
Transactions
Coordination
SOAP (logical messaging) Other protocols
XML, Encoding Other services
Business Processes
Description
Quality Of Service
Transport and Encoding
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
![Page 25: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/25.jpg)
WS-BPEL - Einführung
• Web Services Business Process Execution Language 2.0
• Orchestriert Web-Services
18.12.2008 25Hannes Meyer & Alexander Schmid
Service
Input
Service Service Service
Output
Service Service
![Page 26: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/26.jpg)
Basis- und Composite-Services
18.12.2008 26Hannes Meyer & Alexander Schmid
Basis-Service
Input
B-Service
Composite-Service
B-Service
Output
Operative DB
B-Service
DB 1 Operation
DB 2
![Page 27: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/27.jpg)
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.
18.12.2008 27Hannes Meyer & Alexander Schmid
![Page 28: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/28.jpg)
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.
18.12.2008 28Hannes Meyer & Alexander Schmid
Bildquellen: http://www.flickr.com/creativecommons/
![Page 29: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/29.jpg)
29Hannes Meyer & Alexander Schmid
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.118.12.2008
![Page 30: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/30.jpg)
30Hannes Meyer & Alexander Schmid
BPEL Sprachelemente
• Prozessdefinition– Prozess & Import– Variablen– Partner Links
• Grundlegende Aktivitäten– Assign– Invoke– Receive & Reply– Throw
• Strukturierende Aktivitäten– Sequence, Flow– If-else– ForEach
• Ausnahmebehandlung– Fault-Handler– Event-Handler– Compensation-Handler
18.12.2008
![Page 31: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/31.jpg)
31Hannes Meyer & Alexander Schmid
PROZESSDEFINITIONÜberblick BPEL Sprachelemente
18.12.2008
![Page 32: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/32.jpg)
32Hannes Meyer & Alexander Schmid 18.12.2008
![Page 33: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/33.jpg)
Hannes Meyer & Alexander Schmid 3318.12.2008
<process>
![Page 34: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/34.jpg)
34Hannes Meyer & Alexander Schmid
<process>
<?xml version="1.0" encoding="UTF-8"?>
<process name="process_Bestellung" targetNamespace="http://enterprise.netbeans.org/bpel/process_Bestellung" xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:sxt="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Trace" xmlns:sxed="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Editor" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:adress="http://xml.netbeans.org/schema/Adresse" xmlns:kunde="http://xml.netbeans.org/schema/Kunde" xmlns:best="http://xml.netbeans.org/schema/Bestellung" xmlns:tns="http://j2ee.netbeans.org/wsdl/Bestellung_pruefen" xmlns:sxxf="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/XPathFunctions" xmlns:sxeh="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/ErrorHandling">
<documentation>Dies ist der Bestellprozess. …
</documentation>
[…]
</process>
18.12.2008
![Page 35: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/35.jpg)
35Hannes Meyer & Alexander Schmid
<import>
<import namespace="http://xml.netbeans.org/schema/Bestellung" location="../src/Bestellung.xsd" importType="http://www.w3.org/2001/XMLSchema"/>
<import namespace="http://bestellabwicklung.hdm.de" location="Bestellung_pruefen/Bestellung_pruefen.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
<import namespace="http://bestellabwicklung.hdm.de/" location="WebServices/MaterialPruefenService.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
<import namespace="http://j2ee.netbeans.org/wsdl/prozess_Bestellung" location="process_Bestellung.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
18.12.2008
![Page 36: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/36.jpg)
Hannes Meyer & Alexander Schmid 3618.12.2008
<partnerLinks>
![Page 37: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/37.jpg)
37Hannes Meyer & Alexander Schmid
<partnerLinks>
<partnerLinks><partnerLinkname="PL_Bestellung_pruefen" xmlns:tns="http://j2ee.netbeans.org/wsdl/
subprocess_Bestellung_pruefen" partnerLinkType="tns:subprocess_Bestellung_pruefen" partnerRole="subprocess_Bestellung_pruefenPortTypeRole"/>[…]</partnerLinks>
18.12.2008
Verbindung zu einem Partner-Service.
![Page 38: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/38.jpg)
<variables>
<variables><variable name="Subprocess_Bestellung_pruefenOperationIn" xmlns:tns="http://j2ee.netbeans.org/wsdl/subprocess_Bestellung_pruefen" messageType="tns:subprocess_Bestellung_pruefenOperationRequest"/><variable name="Kunde" type="kunde:Kunde" /><variable name="Meldung" type="xsd:string" /></variables>
• In Variablen werden Zustände eines Prozesses gespeichert.• Variablen müssen von einem der folgenden Typen sein:
– WSDL Nachrichten– XMLS Simple Types und Complex Types– XMLS Elemente im Allgemeinen (String etc.)
• Die Definition der Variablen als direkte Kinder von <process> macht sie global;• Innerhalb eines Scopes nur für Kinder dieses Scopes sichtbar.• XPATH als Zugriffsprache auf Variablen
18.12.2008 38Hannes Meyer & Alexander Schmid
![Page 39: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/39.jpg)
39Hannes Meyer & Alexander Schmid
GRUNDLEGENDE AKTIVITÄTEN
Überblick BPEL Sprachelemente
18.12.2008
![Page 40: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/40.jpg)
Hannes Meyer & Alexander Schmid 4018.12.2008
<receive>
![Page 41: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/41.jpg)
Hannes Meyer & Alexander Schmid 41
<receive>
18.12.2008
<receive
name="Bestelleingang"
partnerLink="Kunde"
portType="tns:prozess_BestellungPortType"
operation="prozess_BestellungOperation"
variable="Prozess_BestellungOperationIn"
createInstance="yes"
xmlns:tns="http://.../wsdl/prozess_Bestellung" >
</receive>
Empfangen einer passenden eintreffenden Nachricht.
![Page 42: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/42.jpg)
Hannes Meyer & Alexander Schmid 4218.12.2008
<reply>
![Page 43: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/43.jpg)
Hannes Meyer & Alexander Schmid 43
<reply>
18.12.2008
<reply name="Bestaetigung_senden"
partnerLink="Kunde"
operation="prozess_BestellungOperation"
xmlns:tns="http://j2ee.netbeans.org/wsdl/prozess_Bestellung"
portType="tns:prozess_BestellungPortType"
variable="Prozess_BestellungOperationOut" />
Sende eine Nachricht als Antwort auf <receive>.
![Page 44: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/44.jpg)
Hannes Meyer & Alexander Schmid 4418.12.2008
<invoke>
![Page 45: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/45.jpg)
Hannes Meyer & Alexander Schmid 45
<invoke>
18.12.2008
<invoke name="Bestellung_pruefen"
partnerLink="PL_Bestellung_pruefen"
operation="bestellung_pruefenOperation"
portType="tns:bestellung_pruefenPortType"
xmlns:tns="http://bestellabwicklung.hdm.de"
inputVariable="Bestellung_pruefenOperationIn"
outputVariable="Bestellung_pruefenOperationOut">
</invoke>
Führe eine Operation eines PartnerLinks aus.
![Page 46: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/46.jpg)
Hannes Meyer & Alexander Schmid 4618.12.2008
<assign>
![Page 47: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/47.jpg)
Hannes Meyer & Alexander Schmid 47
<assign>
18.12.2008
<assign name="Assign1">
<copy>
<from variable="Prozess_BestellungOperationIn"
part="bestellprozess_in" />
<to variable="Bestellung_pruefenOperationIn"
part="bestellung_in" />
</copy>
</assign>
Weise Variablen neue Werte zu.
![Page 48: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/48.jpg)
Hannes Meyer & Alexander Schmid 48
<copy> mit xsl Transformation
18.12.2008
<copy>
<from>
bpws:doXslTransform('urn:stylesheets:Bestellbestaetigung.xsl', $Prozess_BestellungOperationIn.bestellprozess_in)
</from>
<to variable="Prozess_BestellungOperationOut" part="bestellprozess_out"/>
</copy>
![Page 49: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/49.jpg)
Hannes Meyer & Alexander Schmid 49
xsl stylesheet
18.12.2008
<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:bes="http://xml.netbeans.org/schema/Bestellung"xmlns:kun="http://xml.netbeans.org/schema/Kunde"><xsl:output method="xml"/>
<xsl:template match="bes:Bestellung"><bestaetigung>
<xsl:variable name="tmpTotal"/><bestellnummer><xsl:value-of select="@bestellnummer"/></bestellnummer><datum><xsl:value-of select="@bestelldatum"/></datum><kunde><xsl:value-of select="bes:Kunde/kun:Name/kun:Nachname"/>, <xsl:value-of
select="bes:Kunde/kun:Name/kun:Vorname"/></kunde><kundennummer><xsl:value-of select="bes:Kunde/kun:Kundennummer"/></kundennummer>
<bestellpositionen> <xsl:for-each select="bes:Bestellposition"><produkt><nummer><xsl:value-of select="bes:Produkt/bes:Produktnummer"/></nummer><name><xsl:value-of select="bes:Produkt/bes:Produktbezeichnung"/></name><menge><xsl:value-of select="bes:Bestellmenge"/></menge><preis einheit="EUR"><xsl:value-of select="bes:Produkt/bes:Produktpreis *
((bes:Produkt/bes:InklMwst) div 100 +1)"/></preis></produkt></xsl:for-each>
</bestellpositionen></bestaetigung>
</xsl:template></xsl:stylesheet>
![Page 50: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/50.jpg)
Hannes Meyer & Alexander Schmid 50
<wait>
18.12.2008
<wait name="Wait1"><for>'P0Y0M0DT0H0M20S'</for>
</wait>[…]
<wait name="Wait2"><until>'2008-12-18T13:15+01:00'</until>
</wait>[…]
Warte eine gewisse Zeit.
![Page 51: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/51.jpg)
51Hannes Meyer & Alexander Schmid
STRUKTURIERENDE AKTIVITÄTEN
Überblick BPEL Sprachelemente
18.12.2008
![Page 52: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/52.jpg)
Hannes Meyer & Alexander Schmid 5218.12.2008
<sequence>
![Page 53: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/53.jpg)
Hannes Meyer & Alexander Schmid 53
<sequence> & <flow>
18.12.2008
<sequence><receive […] /><assign […] /><invoke […] /><reply […] />
</sequence>
<flow><invoke name="Invoke1" […] />
<invoke name="Invoke2" […] /> <invoke name="Invoke3" […] /></flow><assign […] /><reply […] />
![Page 54: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/54.jpg)
Hannes Meyer & Alexander Schmid 5418.12.2008
<forEach>
![Page 55: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/55.jpg)
Hannes Meyer & Alexander Schmid 55
<forEach>
18.12.2008
<forEach name="Fuer_jede" parallel="no" counterName="i"><startCounterValue>1</startCounterValue>
<finalCounterValue> count($Prozess_BestellungOperationIn.bestellprozess_in/best:Bestellposition)</finalCounterValue><scope name="Position">
<variables><variable name="Bestand_pruefenIn" […] />[…]</variables>
<sequence name="Sequence2">
<assign name="Assign4">
<copy>
<from>$Prozess_BestellungOperationIn.bestellprozess_in/best:Bestellposition[$i]/best:Bestellmenge</from>
<to>$Bestand_pruefenIn.parameters/bestellmenge</to>
</copy>
[…]
</assign>
<invoke name="Materialbestand_pruefen" […]/> […]
</sequence>
</scope>
</forEach>
![Page 56: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/56.jpg)
Hannes Meyer & Alexander Schmid 5618.12.2008
<if> - <else>
![Page 57: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/57.jpg)
57Hannes Meyer & Alexander Schmid
<if> - <else><if name="If1">
<condition>$Bestand_pruefenOut.parameters/return > 0</condition><sequence name="Sequence4">
<assign name="Assign5"><copy>
<from>$Bestand_pruefenOut.parameters/return</from><to>$Auftrag_anlegenIn.parameters/produktionsmenge</to>
</copy><copy>
<from>$Bestand_pruefenIn.parameters/produktnummer</from>
<to>$Auftrag_anlegenIn.parameters/produktnummer</to></copy>
</assign><invoke name="Produktionsauftrag_ausloesen" partnerLink="PL_Produktion"
operation="Auftrag_anlegen" portType="tns:Produktionsauftrag_anlegen" inputVariable="Auftrag_anlegenIn" xmlns:tns="http://bestellabwicklung.hdm.de/"></invoke></sequence><else> […] </else>
</if>
18.12.2008
![Page 58: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/58.jpg)
58Hannes Meyer & Alexander Schmid
AUSNAHMEBEHANDLUNGÜberblick BPEL Sprachelemente
18.12.2008
![Page 59: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/59.jpg)
Hannes Meyer & Alexander Schmid 5918.12.2008
Fault Handler
![Page 60: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/60.jpg)
Hannes Meyer & Alexander Schmid 60
<throw>
18.12.2008
<throw
name="Throw1"
faultName="ns2:datenfehler"
faultVariable="subprocess_Bestellung_pruefenOperationFault"/>
Erzeuge einen Fehler innerhalb des Prozesses.
![Page 61: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/61.jpg)
Hannes Meyer & Alexander Schmid 61
<catch>
18.12.2008
<catch faultName="ns2:datenfehler"
faultVariable="Fault_Bestelldaten" faultMessageType="ns2:
subprocess_Bestellung_pruefenOperationFault">
<reply name="Reply_Datenfehler"
partnerLink="PL_Bestellprozess"
operation="subprocess_Bestellung_pruefenOperation"
portType="ns2:subprocess_Bestellung_pruefenPortType"
faultName="ns2:datenfehler"
variable="subprocess_Bestellung_pruefenOperationFault" />
</catch>
![Page 62: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/62.jpg)
Compensation Handler
18.12.2008 62Hannes Meyer & Alexander Schmid
Bildquelle: http://www.oasis-open.org/committees/download.php/23066/WS-BPEL%20Technical%20Overview%20for%20Developers%20and%20Architects%20-%20Part%203%20(Charlton%20Barreto).pdf
![Page 63: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/63.jpg)
63Hannes Meyer & Alexander Schmid
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.
18.12.2008
![Page 64: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/64.jpg)
64Hannes Meyer & Alexander Schmid
Condition:
Bestand_pruefenOut > 0
process_BestellungIn - Bestellposition[i]/Produktnummer - Bestellposition[i]/Bestellmenge
Bestand_pruefenIn (produktnummer, bestellmenge)Material_reservierenIn (produktnummer, bestellmenge)
From: 1
To: count(Be-stellposition)
18.12.2008
process_BestellungIn
Part: Bestellung
process_BestellungIn
subprocess_Bestellung_pruefenInsubprocess_Bestellung_pruefenIn
Part: Bestellung
subprocess_Bestellung_pruefenOut
Part: boolean
Bestand_pruefenOut
Part: IntegerBestellung_pruefenOut
Auftrag_anlegenIn
Auftrag_anlegenIn
Part: Integer
DoXSLTransform
process_BestellungOut
process_BestellungOut
Part: String
process_BestellungFault
Part: String
Material_reservierenIn
Parts: Integer
Bestand_pruefenIn
Parts: Integer
![Page 65: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/65.jpg)
65Hannes Meyer & Alexander Schmid
Inhalt
18.12.2008
![Page 66: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/66.jpg)
66Hannes Meyer & Alexander Schmid
Vor- und Nachteile
• Vorteile– XML-basiert– Ausnahmebehandlung– BPMN als grafische
Notation fungiert als Schnittstelle zwischen Fachpersonal und IT
18.12.2008
• Nachteile– Komplexität– Keine Interaktion mit
Menschen möglich– Kompatibilität von BPEL
1.1 und BPEL 2.0– Überführung von BPMN
in BPEL nicht einfach
![Page 67: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/67.jpg)
67Hannes Meyer & Alexander Schmid
BPEL4People
• Als Vorschlag bei OASIS eingereicht, aber noch kein offizieller Standard.
• Erweitert die bestehende WS-BPEL Spezifikation.
• Bringt menschliche Interaktionen in BPEL-Prozesse.
18.12.2008
![Page 68: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/68.jpg)
68Hannes Meyer & Alexander Schmid
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
18.12.2008
![Page 69: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/69.jpg)
69Hannes Meyer & Alexander Schmid
Pause
18.12.2008
![Page 70: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/70.jpg)
70Hannes Meyer & Alexander Schmid
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/
04AF9B7C89738738C125732A00551F54/$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
18.12.2008
![Page 71: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL](https://reader036.vdocument.in/reader036/viewer/2022062513/5563072ed8b42a275f8b5485/html5/thumbnails/71.jpg)
Hannes Meyer & Alexander Schmid 7118.12.2008
Vielen Dank für die Aufmerksamkeit!