Your SlideShare is downloading. ×
Orchestrierung von Web-Services mit der Business Process Execution Language BPEL
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

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

978
views

Published on

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

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

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
978
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
47
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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
  • 14. Beispiel Bestellabwicklung 14 Hannes Meyer & Alexander Schmid 18.12.2008
  • 15. Inhalt 1. Geschäftsprozessmodellierung 2. GP-Management und SOA Zusammenhänge Vorgehensweise 3. Orchestrierung mit BPEL 4. Fazit und Ausblick 5. Praxisteil 15 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
  • 30. BPEL Sprachelemente • Prozessdefinition • Strukturierende Aktivitäten – Prozess & Import – Sequence, Flow – Variablen – If-else – Partner Links – ForEach • Grundlegende Aktivitäten • Ausnahmebehandlung – – Fault-Handler Assign – – Event-Handler Invoke – – Compensation-Handler Receive&Reply – Throw 30 Hannes Meyer & Alexander Schmid 18.12.2008
  • 31. Überblick BPEL Sprachelemente PROZESSDEFINITION 31 Hannes Meyer & Alexander Schmid 18.12.2008
  • 32. 32 Hannes Meyer & Alexander Schmid 18.12.2008
  • 33. <process> 33 Hannes Meyer & Alexander Schmid 18.12.2008
  • 34. <process> <?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?> <processname=quot;process_Bestellungquot; targetNamespace=quot;http://enterprise.netbeans.org/bpel/process_Bestellungquot; xmlns=quot;http://docs.oasis-open.org/wsbpel/2.0/process/executablequot; xmlns:sxt=quot;http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Tracequot; xmlns:sxed=quot;http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Editorquot; xmlns:xsd=quot;http://www.w3.org/2001/XMLSchemaquot; xmlns:bpws=quot;http://docs.oasis-open.org/wsbpel/2.0/process/executablequot; xmlns:adress=quot;http://xml.netbeans.org/schema/Adressequot; xmlns:kunde=quot;http://xml.netbeans.org/schema/Kundequot; xmlns:best=quot;http://xml.netbeans.org/schema/Bestellungquot; xmlns:tns=quot;http://j2ee.netbeans.org/wsdl/Bestellung_pruefenquot; xmlns:sxxf=quot;http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/XPathFunctionsquot; xmlns:sxeh=quot;http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/ErrorHandlingquot;> <documentation> Dies ist der Bestellprozess. … </documentation> […] </process> 34 Hannes Meyer & Alexander Schmid 18.12.2008
  • 35. <import> <importnamespace=quot;http://xml.netbeans.org/schema/Bestellungquot; location=quot;../src/Bestellung.xsdquot; importType=quot;http://www.w3.org/2001/XMLSchemaquot;/> <importnamespace=quot;http://bestellabwicklung.hdm.dequot; location=quot;Bestellung_pruefen/Bestellung_pruefen.wsdlquot; importType=quot;http://schemas.xmlsoap.org/wsdl/quot;/> <importnamespace=quot;http://bestellabwicklung.hdm.de/quot; location=quot;WebServices/MaterialPruefenService.wsdlquot; importType=quot;http://schemas.xmlsoap.org/wsdl/quot;/> <import namespace=quot;http://j2ee.netbeans.org/wsdl/prozess_Bestellungquot; location=quot;process_Bestellung.wsdlquot; importType=quot;http://schemas.xmlsoap.org/wsdl/quot;/> 35 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
  • 38. <variables> <variables> <variable name=quot;Subprocess_Bestellung_pruefenOperationInquot; xmlns:tns=quot;http://j2ee.netbeans.org/wsdl/subprocess_Bestellung_pruefenquot; messageType=quot;tns:subprocess_Bestellung_pruefenOperationRequestquot;/> <variable name=quot;Kundequot; type=quot;kunde:Kundequot; /> <variable name=quot;Meldungquot; type=quot;xsd:stringquot; /> </variables> • In Variablen werden Zustände eines Prozesses gespeichert. • Variablen müssen von einem der folgenden Typen sein: – WSDL Nachrichten – XMLS Simple Types und ComplexTypes – 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 38 Hannes Meyer & Alexander Schmid 18.12.2008
  • 39. Überblick BPEL Sprachelemente GRUNDLEGENDE AKTIVITÄTEN 39 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
  • 49. xslstylesheet <?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?> <xsl:stylesheet xmlns:xsl=quot;http://www.w3.org/1999/XSL/Transformquot; version=quot;1.0quot; xmlns:bes=quot;http://xml.netbeans.org/schema/Bestellungquot; xmlns:kun=quot;http://xml.netbeans.org/schema/Kundequot;> <xsl:outputmethod=quot;xmlquot;/> <xsl:templatematch=quot;bes:Bestellungquot;> <bestaetigung> <xsl:variablename=quot;tmpTotalquot;/> <bestellnummer><xsl:value-ofselect=quot;@bestellnummerquot;/></bestellnummer> <datum><xsl:value-ofselect=quot;@bestelldatumquot;/></datum> <kunde><xsl:value-ofselect=quot;bes:Kunde/kun:Name/kun:Nachnamequot;/>, <xsl:value- ofselect=quot;bes:Kunde/kun:Name/kun:Vornamequot;/></kunde> <kundennummer><xsl:value-ofselect=quot;bes:Kunde/kun:Kundennummerquot;/></kundennummer> <bestellpositionen> <xsl:for-eachselect=quot;bes:Bestellpositionquot;> <produkt> <nummer><xsl:value-ofselect=quot;bes:Produkt/bes:Produktnummerquot;/></nummer> <name><xsl:value-ofselect=quot;bes:Produkt/bes:Produktbezeichnungquot;/></name> <menge><xsl:value-ofselect=quot;bes:Bestellmengequot;/></menge> <preis einheit=quot;EURquot;><xsl:value-ofselect=quot;bes:Produkt/bes:Produktpreis * ((bes:Produkt/bes:InklMwst) div 100 +1)quot;/></preis> </produkt> </xsl:for-each> </bestellpositionen> </bestaetigung> </xsl:template> </xsl:stylesheet> 49 Hannes Meyer & Alexander Schmid 18.12.2008
  • 50. <wait> Warte eine gewisse Zeit. <waitname=quot;Wait1quot;> <for>'P0Y0M0DT0H0M20S'</for> </wait> […] <waitname=quot;Wait2quot;> <until>'2008-12-18T13:15+01:00'</until> </wait> […] 50 Hannes Meyer & Alexander Schmid 18.12.2008
  • 51. Überblick BPEL Sprachelemente STRUKTURIERENDE AKTIVITÄTEN 51 Hannes Meyer & Alexander Schmid 18.12.2008
  • 52. <sequence> 52 Hannes Meyer & Alexander Schmid 18.12.2008
  • 53. <sequence>&<flow> <sequence> <receive […] /> <assign […] /> <invoke […] /> <reply […] /> </sequence> <flow> <invokename=quot;Invoke1quot; […] /> <invokename=quot;Invoke2quot; […] /> <invokename=quot;Invoke3quot; […] /> </flow> <assign […] /> <reply […] /> 53 Hannes Meyer & Alexander Schmid 18.12.2008
  • 54. <forEach> 54 Hannes Meyer & Alexander Schmid 18.12.2008
  • 55. <forEach> <forEachname=quot;Fuer_jedequot; parallel=quot;noquot; counterName=quot;iquot;> <startCounterValue>1</startCounterValue> <finalCounterValue>count($Prozess_BestellungOperationIn.bestellprozess_in/best:Bestellposition)</finalCount erValue> <scopename=quot;Positionquot;> <variables><variablename=quot;Bestand_pruefenInquot; […] />[…]</variables> <sequencename=quot;Sequence2quot;> <assignname=quot;Assign4quot;> <copy> <from>$Prozess_BestellungOperationIn.bestellprozess_in/best:Bestellposition[$i]/best:Bestellmenge</from> <to>$Bestand_pruefenIn.parameters/bestellmenge</to> </copy> […] </assign> <invokename=quot;Materialbestand_pruefenquot; […]/> […] </sequence> </scope> </forEach> 55 Hannes Meyer & Alexander Schmid 18.12.2008
  • 56. <if> - <else> 56 Hannes Meyer & Alexander Schmid 18.12.2008
  • 57. <if> - <else> <ifname=quot;If1quot;> <condition>$Bestand_pruefenOut.parameters/return&gt; 0</condition> <sequencename=quot;Sequence4quot;> <assignname=quot;Assign5quot;> <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> <invokename=quot;Produktionsauftrag_ausloesenquot; partnerLink=quot;PL_Produktionquot; operation=quot;Auftrag_anlegenquot; portType=quot;tns:Produktionsauftrag_anlegenquot; inputVariable=quot;Auftrag_anlegenInquot; xmlns:tns=quot;http://bestellabwicklung.hdm.de/quot;></invoke> </sequence> <else> *…+ </else> </if> 57 Hannes Meyer & Alexander Schmid 18.12.2008
  • 58. Überblick BPEL Sprachelemente AUSNAHMEBEHANDLUNG 58 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
  • 61. <catch> <catch faultName=quot;ns2:datenfehlerquot; faultVariable=quot;Fault_Bestelldatenquot; faultMessageType=quot;ns2: subprocess_Bestellung_pruefenOperationFaultquot;> <replyname=quot;Reply_Datenfehlerquot; partnerLink=quot;PL_Bestellprozessquot; operation=quot;subprocess_Bestellung_pruefenOperationquot; portType=quot;ns2:subprocess_Bestellung_pruefenPortTypequot; faultName=quot;ns2:datenfehlerquot; variable=quot;subprocess_Bestellung_pruefenOperationFaultquot; /> </catch> 61 Hannes Meyer & Alexander Schmid 18.12.2008
  • 62. CompensationHandler 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 62 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
  • 64. process_BestellungFault Part: String process_BestellungIn subprocess_Bestellung_pruefenIn  subprocess_Bestellung_pruefenIn process_BestellungIn Part: Bestellung Part: Bestellung process_BestellungIn Bestand_pruefenIn From: 1 - Bestellposition[i]/Produktnummer subprocess_Bestellung_pruefenOut - Bestellposition[i]/Bestellmenge Parts: Integer To: count(Be- Part: boolean stellposition) Bestand_pruefenIn (produktnummer, bestellmenge) Material_reservierenIn (produktnummer, bestellmenge) Condition: Bestand_pruefenOut Material_reservierenIn Bestand_pruefenOut> 0 Part: Integer Bestellung_pruefenOut Parts: Integer  Auftrag_anlegenIn Auftrag_anlegenIn Part: Integer process_BestellungOut Part: String DoXSLTransform  process_BestellungOut 64 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