orchestrierung von web-services mit der business process execution language bpel

71
Orchestrierung von Web Services Seminar Serviceorientierte Architekturen 18. Dezember 2008 Hannes Meyer & Alexander Schmid Masterstudiengang Information Systems & Services

Upload: h1m

Post on 25-May-2015

1.037 views

Category:

Technology


1 download

DESCRIPTION

Diese Präsentation bietet einen Einblick in die Grundlagen von BPEL und Orchestrierung von Web-Services

TRANSCRIPT

Page 1: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL

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

2Hannes Meyer & Alexander Schmid

Inhalt

18.12.2008

Page 3: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL

3Hannes Meyer & Alexander Schmid

Inhalt

18.12.2008

Page 4: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL

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

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

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

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

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

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

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

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

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

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

14Hannes Meyer & Alexander Schmid

Beispiel Bestellabwicklung

18.12.2008

Page 15: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL

15Hannes Meyer & Alexander Schmid

Inhalt

18.12.2008

Page 16: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL

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

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

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

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

Hannes Meyer & Alexander Schmid 2018.12.2008

Pause

Page 21: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL

Hannes Meyer & Alexander Schmid 2118.12.2008

Fortsetzung

Page 22: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL

22Hannes Meyer & Alexander Schmid

Inhalt

18.12.2008

Page 23: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL

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

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

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

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

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

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

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

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

31Hannes Meyer & Alexander Schmid

PROZESSDEFINITIONÜberblick BPEL Sprachelemente

18.12.2008

Page 32: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL

32Hannes Meyer & Alexander Schmid 18.12.2008

Page 33: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL

Hannes Meyer & Alexander Schmid 3318.12.2008

<process>

Page 34: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL

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

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

Hannes Meyer & Alexander Schmid 3618.12.2008

<partnerLinks>

Page 37: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL

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

<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

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

Hannes Meyer & Alexander Schmid 4018.12.2008

<receive>

Page 41: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL

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

Hannes Meyer & Alexander Schmid 4218.12.2008

<reply>

Page 43: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL

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

Hannes Meyer & Alexander Schmid 4418.12.2008

<invoke>

Page 45: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL

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

Hannes Meyer & Alexander Schmid 4618.12.2008

<assign>

Page 47: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL

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

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

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

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

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

Hannes Meyer & Alexander Schmid 5218.12.2008

<sequence>

Page 53: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL

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

Hannes Meyer & Alexander Schmid 5418.12.2008

<forEach>

Page 55: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL

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

Hannes Meyer & Alexander Schmid 5618.12.2008

<if> - <else>

Page 57: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL

57Hannes Meyer & Alexander Schmid

<if> - <else><if name="If1">

<condition>$Bestand_pruefenOut.parameters/return &gt; 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

58Hannes Meyer & Alexander Schmid

AUSNAHMEBEHANDLUNGÜberblick BPEL Sprachelemente

18.12.2008

Page 59: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL

Hannes Meyer & Alexander Schmid 5918.12.2008

Fault Handler

Page 60: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL

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

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

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

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

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

65Hannes Meyer & Alexander Schmid

Inhalt

18.12.2008

Page 66: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL

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

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

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

69Hannes Meyer & Alexander Schmid

Pause

18.12.2008

Page 70: Orchestrierung von Web-Services mit der Business Process Execution Language BPEL

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

Hannes Meyer & Alexander Schmid 7118.12.2008

Vielen Dank für die Aufmerksamkeit!