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

2,030 views

Published on

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

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,030
On SlideShare
0
From Embeds
0
Number of Embeds
27
Actions
Shares
0
Downloads
51
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

  1. 1. Orchestrierung von Web Services Seminar Serviceorientierte Architekturen 18. Dezember 2008 Hannes Meyer & Alexander Schmid Masterstudiengang Information Systems & Services
  2. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 14. Beispiel Bestellabwicklung 14 Hannes Meyer & Alexander Schmid 18.12.2008
  15. 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. 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. 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. 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. 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. 20. Pause 20 Hannes Meyer & Alexander Schmid 18.12.2008
  21. 21. Fortsetzung 21 Hannes Meyer & Alexander Schmid 18.12.2008
  22. 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. 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. 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. 25. WS-BPEL - Einführung • Web Services Business ProcessExecutionLanguage 2.0 • Orchestriert Web-Services 25 Hannes Meyer & Alexander Schmid 18.12.2008
  26. 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. 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. 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. 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. 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. 31. Überblick BPEL Sprachelemente PROZESSDEFINITION 31 Hannes Meyer & Alexander Schmid 18.12.2008
  32. 32. 32 Hannes Meyer & Alexander Schmid 18.12.2008
  33. 33. <process> 33 Hannes Meyer & Alexander Schmid 18.12.2008
  34. 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. 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. 36. <partnerLinks> 36 Hannes Meyer & Alexander Schmid 18.12.2008
  37. 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. 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. 39. Überblick BPEL Sprachelemente GRUNDLEGENDE AKTIVITÄTEN 39 Hannes Meyer & Alexander Schmid 18.12.2008
  40. 40. <receive> 40 Hannes Meyer & Alexander Schmid 18.12.2008
  41. 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. 42. <reply> 42 Hannes Meyer & Alexander Schmid 18.12.2008
  43. 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. 44. <invoke> 44 Hannes Meyer & Alexander Schmid 18.12.2008
  45. 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. 46. <assign> 46 Hannes Meyer & Alexander Schmid 18.12.2008
  47. 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. 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. 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. 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. 51. Überblick BPEL Sprachelemente STRUKTURIERENDE AKTIVITÄTEN 51 Hannes Meyer & Alexander Schmid 18.12.2008
  52. 52. <sequence> 52 Hannes Meyer & Alexander Schmid 18.12.2008
  53. 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. 54. <forEach> 54 Hannes Meyer & Alexander Schmid 18.12.2008
  55. 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. 56. <if> - <else> 56 Hannes Meyer & Alexander Schmid 18.12.2008
  57. 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. 58. Überblick BPEL Sprachelemente AUSNAHMEBEHANDLUNG 58 Hannes Meyer & Alexander Schmid 18.12.2008
  59. 59. Fault Handler 59 Hannes Meyer & Alexander Schmid 18.12.2008
  60. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 71. Vielen Dank für die Aufmerksamkeit! 71 Hannes Meyer & Alexander Schmid 18.12.2008

×