Orchestrierung von Web Services




          Seminar Serviceorientierte Architekturen
                                   ...
Inhalt



         1. Geschäftsprozessmodellierung

         2. GP-Management und SOA

         3. Orchestrierung mit BPEL...
Inhalt



1. Geschäftsprozessmodellierung               Definition
                                              Methoden
...
Geschäftsprozessmodellierung



    „Geschäftsprozessmodellierung ist eine Menge von Praktiken oder
    Maßnahmen, die Unt...
Methoden für GP-Modellierung


                    Textbasiert                                                Tabellenbasi...
Grafische Notationen

• Unified Modeling Language (UML)
  – Aktivitätsdiagramm


• Ereignis-gesteuerte Prozesskette (EPK)
...
Unified Modeling Language

• Standardisierte Sprache zur
  Modellierung von Software
  und anderen Systemen

• Aktivitätsd...
Ereignis-gesteuerte Prozesskette

• Grafische Darstellung von Geschäftsprozessen
  einer Organisation
• Wesentliches Eleme...
Erweiterte Ereignis-gesteuerte Prozesskette

• erweiterte Ereignis-gesteuerte Prozesskette
  (eEPK):
   – Organisationsein...
Business ProcessMarkupNotation
• Schwerpunkt ist grafische Darstellung von
  Geschäftsprozessen

• Symbole zur Verständlic...
BPMN – Objekte
• Flow Objects
   – Knoten in den Geschäftsprozessdiagrammen

• Connecting Objects
   – Verbindende Kanten
...
BPMN – Flow Objects

• Activity

                     Task                         Subprocess          Loop


• Gateway

 ...
BPMN – weitere Elemente

• Connecting Objects:
   – Sequence Flow
   – MessageFlow
• Pools/Swimlanes




• Artifacts
   – ...
Beispiel Bestellabwicklung




                                                              14
               Hannes Meye...
Inhalt



1. Geschäftsprozessmodellierung

2. GP-Management und SOA                      Zusammenhänge

                  ...
Zusammenhänge GPM und SOA

• Services sind ein Teil von Geschäftsprozessen

• Services erfüllen fachliche Aufgaben

• BPEL...
Vorgehensweise

• Wie gelangt man zu den Services eines
  Geschäftsprozesses?

• Wie kann ich Services allgemein formulier...
Vorgehensweise

• Zwei Ansätze:
    Dekomposition                                         Komposition
  Top-Down          ...
Vorgehensweise

• Wie gelangt man zu den Services eines
  Geschäftsprozesses?

• Wie kann ich Services allgemein formulier...
Pause




                                                       20
        Hannes Meyer & Alexander Schmid   18.12.2008
Fortsetzung




                                                             21
              Hannes Meyer & Alexander Sch...
Inhalt



1. Geschäftsprozessmodellierung

2. GP-Management und SOA
                                             Erklärung...
BPEL Historie

•   2002: BPEL4WS 1.0 von Microsoft, IBM & BEA
•   IBM: Web Services FlowLanguage WSFL
•   Microsoft: XLANG...
BPEL im Web-Services-Stapel

                          WS-BPEL                                    Business Processes

    ...
WS-BPEL - Einführung

• Web Services Business
  ProcessExecutionLanguage 2.0
• Orchestriert Web-Services




             ...
Basis- und Composite-Services

        Operative DB


        Basis-Service



                        BPEL               ...
Orchestrierung

• Komposition verschiedener Services zu einem
  Prozess.
• Services können intern und extern sein.
• Steue...
Abgrenzung zu Choreografie
• Choreografie als Zusammenarbeit gleichberechtigter
  Partner.
• Orchester wird zentral geleit...
BPEL und WSDL

• Mittels einer WSDL wird ein BPEL-Prozess
  selbst als Service zur Verfügung gestellt.
• WDSL definiert u....
BPEL Sprachelemente

• Prozessdefinition                        • Strukturierende Aktivitäten
   – Prozess & Import       ...
Überblick BPEL Sprachelemente

PROZESSDEFINITION


                                                                    31
...
32
Hannes Meyer & Alexander Schmid   18.12.2008
<process>




                                                           33
            Hannes Meyer & Alexander Schmid   ...
<process>
<?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?>

<processname=quot;process_Bestellungquot;
targetNamespac...
<import>
<importnamespace=quot;http://xml.netbeans.org/schema/Bestellungquot; location=quot;../src/Bestellung.xsdquot;
   ...
<partnerLinks>




                                                                36
                 Hannes Meyer & Alex...
<partnerLinks>

                  Verbindung zu einem Partner-Service.




<partnerLinks>
<partnerLink
name=quot;PL_Bestel...
<variables>
<variables>
<variable
name=quot;Subprocess_Bestellung_pruefenOperationInquot;
xmlns:tns=quot;http://j2ee.netbe...
Überblick BPEL Sprachelemente

GRUNDLEGENDE AKTIVITÄTEN


                                                                ...
<receive>




                                                           40
            Hannes Meyer & Alexander Schmid   ...
<receive>

                         Empfangen einer passenden eintreffenden Nachricht.




<receive

name=quot;Bestelleing...
<reply>




                                                         42
          Hannes Meyer & Alexander Schmid   18.12....
<reply>

                      Sende eine Nachricht als Antwort auf <receive>.




<replyname=quot;Bestaetigung_sendenquot...
<invoke>




                                                          44
           Hannes Meyer & Alexander Schmid   18....
<invoke>

                      Führe eine Operation eines PartnerLinks aus.




<invokename=quot;Bestellung_pruefenquot;
...
<assign>




                                                          46
           Hannes Meyer & Alexander Schmid   18....
<assign>

                          Weise Variablen neue Werte zu.




<assign name=quot;Assign1quot;>

<copy>

<from vari...
<copy> mit xsl Transformation
<copy>
<from>
bpws:doXslTransform('urn:stylesheets:Bestellbestaetigung.xsl',
   $Prozess_Bes...
xslstylesheet
<?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?>
<xsl:stylesheet xmlns:xsl=quot;http://www.w3.org/1999...
<wait>

                      Warte eine gewisse Zeit.


<waitname=quot;Wait1quot;>
<for>'P0Y0M0DT0H0M20S'</for>
</wait>
[...
Überblick BPEL Sprachelemente

STRUKTURIERENDE
AKTIVITÄTEN

                                                              ...
<sequence>




                                                            52
             Hannes Meyer & Alexander Schmid...
<sequence>&<flow>
<sequence>
<receive […] />
<assign […] />
<invoke […] />
<reply […] />
</sequence>




<flow>
<invokenam...
<forEach>




                                                           54
            Hannes Meyer & Alexander Schmid   ...
<forEach>
<forEachname=quot;Fuer_jedequot; parallel=quot;noquot; counterName=quot;iquot;>
<startCounterValue>1</startCount...
<if> - <else>




                                                               56
                Hannes Meyer & Alexand...
<if> - <else>
<ifname=quot;If1quot;>
<condition>$Bestand_pruefenOut.parameters/return&gt; 0</condition>
<sequencename=quot...
Überblick BPEL Sprachelemente

AUSNAHMEBEHANDLUNG


                                                                    58...
Fault Handler




                                                               59
                Hannes Meyer & Alexand...
<throw>

                    Erzeuge einen Fehler innerhalb des Prozesses.



<throw
name=quot;Throw1quot;
faultName=quot;...
<catch>
<catch faultName=quot;ns2:datenfehlerquot;

faultVariable=quot;Fault_Bestelldatenquot; faultMessageType=quot;ns2:
...
CompensationHandler




Bildquelle: http://www.oasis-open.org/committees/download.php/23066/WS-
BPEL%20Technical%20Overvie...
Event Handler

• Parallel zur Abarbeitung des
  Prozesses/ Scopes.
• Empfängt Requests, stößt
  draufhin Aktionen an.
• Be...
process_BestellungFault

                                                                                   Part: String
 ...
Inhalt



         1. Geschäftsprozessmodellierung

         2. GP-Management und SOA

         3. Orchestrierung mit BPEL...
Vor- und Nachteile

• Vorteile                              • Nachteile
  – XML-basiert                                 – ...
BPEL4People

• Als Vorschlag bei OASIS eingereicht, aber noch
  kein offizieller Standard.
• Erweitert die bestehende WS-B...
BEPL4People

• Mensch --> Prozess
     • User instantiiert& liefert Daten an Prozess
• Mensch <--> Prozess
     • Prozess ...
Pause


                       1. Geschäftsprozessmodellierung

                       2. GP-Management und SOA

         ...
Quellen
•   OASIS (2007): WS-BPEL 2.0 Primer. http://www.oasis-
    open.org/committees/download.php/23974/wsbpel-v2.0-pri...
Vielen Dank für die Aufmerksamkeit!




                                                              71
               Ha...
Nächste SlideShare
Wird geladen in …5
×

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

1.722 Aufrufe

Veröffentlicht am

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

Veröffentlicht in: Technologie
0 Kommentare
1 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.722
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
27
Aktionen
Geteilt
0
Downloads
50
Kommentare
0
Gefällt mir
1
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

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

×