Web Services Business Process Execution Language 2.0 (WS-BPEL 2.0) by pharmphresh26

VIEWS: 46 PAGES: 33

									                                         Web Services
                                           Business
                                           Process
                                          Execution
                                         Language 2.0
                                        (WS-BPEL 2.0)

  Service-orientierte                  WS-BPEL 2.0


Software-Architekturen                 Beziehungen
                                       zwischen
                                       Prozessen

         Prof. Dr. U. Hoffmann         Verhalten von
                                       Prozessen
               FH Wedel                Kommunikation
                                       Kontrollstrukturen
                                       Parallelverarbeitung
                                       Datenmanipulation
   Web Services Business Process       Ausnahmebehandlung
                                       Ereignisbehandlung
Execution Language 2.0 (WS-BPEL 2.0)   Sonstiges

                                       Zusammenfassung




                                        Dr. U. Hoffmann
                                        Kap. 6                1 / 33
Das letzte Mal
                                          Web Services
                                            Business
                                            Process
                                           Execution
                                          Language 2.0
                                         (WS-BPEL 2.0)
 Geschäftsprozessmanagement
                                        WS-BPEL 2.0
     Modellierung                       Beziehungen
                                        zwischen
         Entwurfsstrategien             Prozessen
         Werkzeuge                      Verhalten von
                                        Prozessen
         erster Blick auf BPEL          Kommunikation
         Standards                      Kontrollstrukturen
                                        Parallelverarbeitung
         Alternative Strategien         Datenmanipulation
                                        Ausnahmebehandlung
                                        Ereignisbehandlung


     Orchestrierung und Choreographie   Sonstiges

                                        Zusammenfassung




                                         Dr. U. Hoffmann
                                         Kap. 6                2 / 33
Gliederung
                                        Web Services
Ein genauerer Blick auf WS–BPEL 2.0       Business
                                          Process
                                         Execution
                                        Language 2.0
WS-BPEL 2.0                            (WS-BPEL 2.0)

                                      WS-BPEL 2.0

Beziehungen zwischen Prozessen        Beziehungen
                                      zwischen
                                      Prozessen

Verhalten von Prozessen               Verhalten von
                                      Prozessen
   Kommunikation                      Kommunikation
                                      Kontrollstrukturen
   Kontrollstrukturen                 Parallelverarbeitung
                                      Datenmanipulation
   Parallelverarbeitung               Ausnahmebehandlung
                                      Ereignisbehandlung
   Datenmanipulation
                                      Sonstiges
   Ausnahmebehandlung                 Zusammenfassung
   Ereignisbehandlung

Sonstiges

                                       Dr. U. Hoffmann
                                       Kap. 6                3 / 33
WS-BPEL 2.0
                                                                 Web Services
                                                                   Business
                                                                   Process
                                                                  Execution
    Zweite Version von BPEL (vorher BPEL4WS 1.1)                 Language 2.0
                                                                (WS-BPEL 2.0)
    Standardisiert von OASIS:                                  WS-BPEL 2.0
    Web Services Business Process Execution Language Version
                                                               Beziehungen
    2.0, OASIS Standard 11 April 2007                          zwischen
                                                               Prozessen
    BPEL–Einführung von OASIS: BPEL 2.0 Primer
                                                               Verhalten von
    online unter www.oasis-open.org/committees/wsbpel/         Prozessen
                                                               Kommunikation
                                                               Kontrollstrukturen
    basiert auf vielen anderen XML-Standards                   Parallelverarbeitung
                                                               Datenmanipulation
         XML-Namespaces                                        Ausnahmebehandlung
                                                               Ereignisbehandlung
         XML-Schema
                                                               Sonstiges
         XPath
                                                               Zusammenfassung
         WSDL
         ...




                                                                Dr. U. Hoffmann
                                                                Kap. 6                4 / 33
Struktur von BPEL–Dokumenten
                                                                           Web Services
                                                                             Business
                                                                             Process
                                                                            Execution
                                                                           Language 2.0
                                                                          (WS-BPEL 2.0)

                                                                         WS-BPEL 2.0

                                                                         Beziehungen
                                                                         zwischen
                                                                         Prozessen
<process name="BeispielProzess"
   targetNamespace="http://fh-wedel.de/ss08/soa/beispiel/"               Verhalten von
   xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable" />   Prozessen
                                                                         Kommunikation
                                                                         Kontrollstrukturen
                                                                         Parallelverarbeitung
                                                                         Datenmanipulation
                                                                         Ausnahmebehandlung
Ein BPEL–Dokument beschreibt einen Geschäftsprozess                      Ereignisbehandlung


      Ausführbare Prozesse                                               Sonstiges

                                                                         Zusammenfassung
      Abstrakte Prozesse (teilweise Beschreibung mit offenen Datails)




                                                                          Dr. U. Hoffmann
                                                                          Kap. 6                5 / 33
Struktur von BPEL–Dokumenten
                                                                                         Web Services
                                                                                           Business
                                                                                           Process
                                                                                          Execution
                                                                                         Language 2.0
                                                                                        (WS-BPEL 2.0)

                                                                                       WS-BPEL 2.0

                                                                                       Beziehungen
<scope name="Scope">                                                                   zwischen
  <!-- local definitions          -->                                                  Prozessen

</scope>                                                                               Verhalten von
                                                                                       Prozessen
                                                                                       Kommunikation
                                                                                       Kontrollstrukturen
                                                                                       Parallelverarbeitung
    Die Sichtbarkeiten von Definitionen kann mittels scope                              Datenmanipulation

    eingeschränkt werden.                                                              Ausnahmebehandlung
                                                                                       Ereignisbehandlung

                                                                                       Sonstiges

                                                                                       Zusammenfassung


                           Quelle: Beispiele dieser Folien aus OASIS BPEL 2.0 Primer




                                                                                        Dr. U. Hoffmann
                                                                                        Kap. 6                6 / 33
Partner–Links zu Geschäftspartnern
                                                                     Web Services
                                                                       Business
                                                                       Process
 <partnerLinks>                                                       Execution
    <partnerLink name="ClientStartUpLink"                            Language 2.0
                                                                    (WS-BPEL 2.0)
       partnerLinkType="wsdl:ClientStartUpPLT"
       myRole="Client" />                                          WS-BPEL 2.0

 </partnerLinks>                                                   Beziehungen
                                                                   zwischen
                                                                   Prozessen

                                                                   Verhalten von
                                                                   Prozessen
 Partner–Links definieren Kommunikationskanäle zwischen Prozessen   Kommunikation
                                                                   Kontrollstrukturen
      Verbindung zu einem WSDL–Port (über einen                    Parallelverarbeitung

      BPEL-PartnerLinkType)                                        Datenmanipulation
                                                                   Ausnahmebehandlung
                                                                   Ereignisbehandlung

                                                                   Sonstiges
 Zusätzliche Angaben in der WSDL:
                                                                   Zusammenfassung
 <plnk:partnerLinkType name="EmployeeServiceType">
   <plnk:role name="EmployeeServiceProvider"
              portType="emp:EmployeeInterface" />
 </plnk:partnerLinkType>

                                                                    Dr. U. Hoffmann
                                                                    Kap. 6                7 / 33
Zustand eines BPEL–Prozesses
Der Zustand eine Geschäftsprozesses wird durch die Werte seiner     Web Services
Variablen bestimmt.                                                   Business
                                                                      Process
                                                                     Execution
Definition von Variablen:                                            Language 2.0
                                                                   (WS-BPEL 2.0)
<variables>
                                                                  WS-BPEL 2.0
   <variable name="myVar1"
                                                                  Beziehungen
        messageType="myNS:myWSDLMessageDataType" />               zwischen
   <variable name="myVar2"                                        Prozessen
             element="myNS:myXMLElement" />                       Verhalten von
   <variable name="myVar3"                                        Prozessen
                                                                  Kommunikation
             type="xsd:string" />                                 Kontrollstrukturen
                                                                  Parallelverarbeitung
   <variable name="myVar4"                                        Datenmanipulation
             type="myNS:myComplexType" />                         Ausnahmebehandlung
                                                                  Ereignisbehandlung
</variables>
                                                                  Sonstiges

                                                                  Zusammenfassung
     Variablen sind typisiert:
          WSDL–Nachrichten
          einfache XML–Schema–Typen
          komplexe XML–Schema–Typen
          XML–Schema–Elemente
                                                                   Dr. U. Hoffmann
                                                                   Kap. 6                8 / 33
Empfangen von Nachrichten externer Partner
                                                                    Web Services
                                                                      Business
                                                                      Process
                                                                     Execution
                                                                    Language 2.0
 <receive name="ReceiveRequestFromPartner"                         (WS-BPEL 2.0)

    createInstance="yes"                                          WS-BPEL 2.0
    partnerLink="ClientStartUpPLT"                                Beziehungen
    operation="StartProcess" ... />                               zwischen
                                                                  Prozessen

                                                                  Verhalten von
                                                                  Prozessen
                                                                  Kommunikation
                                                                  Kontrollstrukturen
                                                                  Parallelverarbeitung
                                                                  Datenmanipulation
 receive-Aktivität                                                Ausnahmebehandlung
                                                                  Ereignisbehandlung
     atomare Aktivität um Nachrichten von externen Partnern zu
                                                                  Sonstiges
     erhalten
                                                                  Zusammenfassung
     createInstance: soll ein neuer Prozess erzeugt werden oder
     verarbeitet der aktuelle Prozess diese Nachricht?



                                                                   Dr. U. Hoffmann
                                                                   Kap. 6                9 / 33
Senden von Antworten
                                                  Web Services
                                                    Business
                                                    Process
                                                   Execution
                                                  Language 2.0
                                                 (WS-BPEL 2.0)
<reply name="ReplyResponseToPartner"
                                                WS-BPEL 2.0
   partnerLink="ClientStartUpPLT"
                                                Beziehungen
   operation="StartProcess" ... />              zwischen
                                                Prozessen

                                                Verhalten von
                                                Prozessen
                                                Kommunikation
                                                Kontrollstrukturen
                                                Parallelverarbeitung
                                                Datenmanipulation
reply–Aktivität                                 Ausnahmebehandlung
                                                Ereignisbehandlung
     definiert Antworten auf frühere Anfragen
                                                Sonstiges
     Reguläre Antworten oder Fehler–Antworten   Zusammenfassung
     (faultName–Attribut)




                                                 Dr. U. Hoffmann
                                                 Kap. 6              10 / 33
Stellen von Anfragen
                                                                   Web Services
 Anfrage/Antwort:                                                    Business
                                                                     Process
 <invoke name="RequestResponseInvoke"                               Execution
                                                                   Language 2.0
    partnerLink="BusinessPartnerServiceLink"                      (WS-BPEL 2.0)
    operation="RequestResponseOperation"
                                                                 WS-BPEL 2.0
    inputVariable="Input"
                                                                 Beziehungen
    outputVariable="Output" />                                   zwischen
                                                                 Prozessen

 Einweg:                                                         Verhalten von
                                                                 Prozessen
 <invoke name="OneWayInvoke"                                     Kommunikation
                                                                 Kontrollstrukturen
    partnerLink="BusinessPartnerServiceLink"                     Parallelverarbeitung
                                                                 Datenmanipulation
    operation="OneWayOperation"                                  Ausnahmebehandlung

    inputVariable="Input" />                                     Ereignisbehandlung

                                                                 Sonstiges

                                                                 Zusammenfassung

      Aufruf einer Operation eines Web–Services eines Partners
      Aufruf von Anfrage/Antwort–Operationen
      Aufruf von Einweg–Operationen
                                                                  Dr. U. Hoffmann
                                                                  Kap. 6              11 / 33
Hintereinanderausfürhung: sequenz–Aktivität
                                                              Web Services
                                                                Business
                                                                Process
                                                               Execution
                                                              Language 2.0
                                                             (WS-BPEL 2.0)
 <sequence name="InvertMessageOrder">
    <receive name="receiveOrder" ... />                     WS-BPEL 2.0

    <invoke name="checkPayment" ... />                      Beziehungen
                                                            zwischen
    <invoke name="shippingService" ... />                   Prozessen
    <reply name="sendConfirmation" ... />                   Verhalten von
 </sequence>                                                Prozessen
                                                            Kommunikation
                                                            Kontrollstrukturen
                                                            Parallelverarbeitung
                                                            Datenmanipulation
                                                            Ausnahmebehandlung
                                                            Ereignisbehandlung

                                                            Sonstiges
 Hintereinanderausführen von Aktivitäten                    Zusammenfassung
      Die Teilaktivitäten werden nacheinander ausgeführt.




                                                             Dr. U. Hoffmann
                                                             Kap. 6              12 / 33
Fallunterscheidung: if–else–Aktivität
                                                          Web Services
                                                            Business
 <if name="isOrderBiggerThan5000Dollars">                   Process
  <condition>                                              Execution
                                                          Language 2.0
     $order &gt; 5000                                    (WS-BPEL 2.0)
  </condition>                                          WS-BPEL 2.0
  <invoke name="calculateTenPercentDiscount" ... />
                                                        Beziehungen
  <elseif>                                              zwischen
                                                        Prozessen
   <condition>
       $order &gt; 2500                                 Verhalten von
                                                        Prozessen
   </condition>                                         Kommunikation

   <invoke name="calculateFivePercentDiscount" ... />   Kontrollstrukturen
                                                        Parallelverarbeitung
  </elseif>                                             Datenmanipulation
                                                        Ausnahmebehandlung
  <else>                                                Ereignisbehandlung

    <reply name="sendNoDiscountInformation" ... />      Sonstiges
  </else>
                                                        Zusammenfassung
 </if>


 Fallunterscheidung
      Ausdruckssprache: XPath (default)
                                                         Dr. U. Hoffmann
                                                         Kap. 6              13 / 33
Schleifen: while– und RepeatUntil–Aktiviät
                                                              Web Services
                                                                Business
                                                                Process
 <while>                                                       Execution
                                                              Language 2.0
    <condition>                                              (WS-BPEL 2.0)
       $iterations &gt; 3
                                                            WS-BPEL 2.0
    </condition>
                                                            Beziehungen
    <invoke name="increaseIterationCounter" ... />          zwischen
 </while>                                                   Prozessen

                                                            Verhalten von
                                                            Prozessen
                                                            Kommunikation
 <repeatUntil>                                              Kontrollstrukturen
    <invoke name="increaseIterationCounter" ... />          Parallelverarbeitung
                                                            Datenmanipulation
    <condition>                                             Ausnahmebehandlung

       $iterations &gt; 3                                   Ereignisbehandlung


    </condition>                                            Sonstiges
 </repeatUntil>                                             Zusammenfassung




 Aktivitäten wiederholen, bis eine Bedingung erfüllt ist.

                                                             Dr. U. Hoffmann
                                                             Kap. 6              14 / 33
Schleifen: foreach–Aktivität
                                                              Web Services
                                                                Business
                                                                Process
 <forEach parallel="no" counterName="N" ...>                   Execution
                                                              Language 2.0
    <startCounterValue>1</startCounterValue>                 (WS-BPEL 2.0)
    <finalCounterValue>5</finalCounterValue>
                                                            WS-BPEL 2.0
    <scope>
                                                            Beziehungen
       <documentation>                                      zwischen
            check availability of each item ordered         Prozessen
       </documentation>                                     Verhalten von
                                                            Prozessen
       <invoke name="checkAvailability" ... />              Kommunikation
    </scope>                                                Kontrollstrukturen
                                                            Parallelverarbeitung
 </forEach>                                                 Datenmanipulation
                                                            Ausnahmebehandlung
                                                            Ereignisbehandlung

                                                            Sonstiges

                                                            Zusammenfassung
     feste Anzahl von Schleifendurchläufen (final-start+1)
     forEach muss ein scope–Element enthalten
     Sequentielle oder parallele Abarbeitung möglich

                                                             Dr. U. Hoffmann
                                                             Kap. 6              15 / 33
Nebenläufigkeit: flow–Aktivität
                                                                     Web Services
                                                                       Business
                                                                       Process
 <flow ...>                                                           Execution
                                                                     Language 2.0
    <links> ... </links>                                            (WS-BPEL 2.0)
    <documentation>
                                                                   WS-BPEL 2.0
       check availability of a flight, hotel and
       rental car concurrently                                     Beziehungen
                                                                   zwischen
    </documentation>                                               Prozessen
    <invoke name="checkFlight" ... />                              Verhalten von
    <invoke name="checkHotel" ... />                               Prozessen
                                                                   Kommunikation
    <invoke name="checkRentalCar" ... />                           Kontrollstrukturen

 </flow>                                                           Parallelverarbeitung
                                                                   Datenmanipulation
                                                                   Ausnahmebehandlung
                                                                   Ereignisbehandlung

                                                                   Sonstiges
 Nebenläufige Ausführung von Aktivitäten                            Zusammenfassung

      Synchronisation zwischen Aktivitäten durch link
      source muss beendet sein, bevor target gestartet wird.
      bedingte Links: target startet nur, wenn Bedingung erfüllt

                                                                    Dr. U. Hoffmann
                                                                    Kap. 6              16 / 33
Nebenläufigkeit: flow–Aktivität mit Links
                                                              Web Services
                                                                Business
                                                                Process
                                                               Execution
                                                              Language 2.0
 <flow ...>                                                  (WS-BPEL 2.0)
    <links>
       <link name="checkFlight-To-BookFlight" />
                                                            WS-BPEL 2.0
    </links>
    <documentation>                                         Beziehungen
       check availability of a flight, hotel and            zwischen
       rental car concurrently                              Prozessen
    </documentation>
    <invoke name="checkFlight" ...>                         Verhalten von
       <sources>                                            Prozessen
          <source linkName="checkFlight-To-BookFlight" />   Kommunikation
       </sources>                                           Kontrollstrukturen
    </invoke>                                               Parallelverarbeitung
    <invoke name="checkHotel" ... />                        Datenmanipulation
    <invoke name="checkRentalCar" ... />                    Ausnahmebehandlung
    <invoke name="bookFlight" ...>                          Ereignisbehandlung
       <targets>
          <target linkName="checkFlight-To-BookFlight" />   Sonstiges
       </targets>                                           Zusammenfassung
    </invoke>
 </flow>




                                                             Dr. U. Hoffmann
                                                             Kap. 6              17 / 33
Nebenläufigkeit: flow–Aktivität mit Bedingung 1
 <flow ...>
    <links>                                                         Web Services
        <link name="request-to-approve" />                            Business
        <link name="request-to-decline" />                            Process
    </links>                                                         Execution
    <receive name="ReceiveCreditRequest"                            Language 2.0
        createInstance="yes"                                       (WS-BPEL 2.0)
        partnerLink="creditRequestPLT"
        operation="creditRequest"                                 WS-BPEL 2.0
        variable="creditVariable">
                                                                  Beziehungen
        <sources>
                                                                  zwischen
           <source linkName="request-to-approve">
                                                                  Prozessen
              <transitionCondition>
                  $creditVariable/value &lt; 5000                 Verhalten von
              </transitionCondition>                              Prozessen
           </source>                                              Kommunikation
           <source linkName="request-to-decline">                 Kontrollstrukturen
              <transitionCondition>                               Parallelverarbeitung
                  $creditVariable/value >= 5000                   Datenmanipulation
              </transitionCondition>                              Ausnahmebehandlung
           </source>                                              Ereignisbehandlung
        </sources>
    </receive>                                                    Sonstiges
    <invoke name="approveCredit" ...>
        <targets>                                                 Zusammenfassung
           <target linkName="request-to-approve" />
        </targets>
    </invoke>
    ...
    </flow>


       transitionCondition muss erfüllt sein, damit Link wirkt.    Dr. U. Hoffmann
                                                                   Kap. 6              18 / 33
Nebenläufigkeit: flow–Aktivität mit Bedingung 1
                                                          Web Services
                                                            Business
                                                            Process
                                                           Execution
                                                          Language 2.0
 <flow ...>                                              (WS-BPEL 2.0)
      ...
     <invoke name="approveCredit" ...>                  WS-BPEL 2.0
       <targets>                                        Beziehungen
          <target linkName="request-to-approve" />      zwischen
       </targets>                                       Prozessen
    </invoke>
    <invoke name="declineCredit" ...>                   Verhalten von
       <targets>                                        Prozessen
          <target linkName="request-to-decline" />      Kommunikation
       </targets>                                       Kontrollstrukturen
    </invoke>                                           Parallelverarbeitung
 </flow>                                                Datenmanipulation
                                                        Ausnahmebehandlung
                                                        Ereignisbehandlung
       Entweder approveCredit oder declineCredit wird
                                                        Sonstiges
       aufgerufen.
                                                        Zusammenfassung




                                                         Dr. U. Hoffmann
                                                         Kap. 6              19 / 33
Nebenläufigkeit: flow–Aktivität mit Bedingung 2
 <flow ...>
                                                       Web Services
    <links>
                                                         Business
       <link name="request-to-approve" />
                                                         Process
       <link name="request-to-decline" />
                                                        Execution
       <link name="approve-to-notify" />
                                                       Language 2.0
       <link name="decline-to-notify" />
                                                      (WS-BPEL 2.0)
    </links>
    <receive name="ReceiveCreditRequest"
                                                     WS-BPEL 2.0
       createInstance="yes"
       partnerLink="creditRequestPLT"                Beziehungen
       operation="creditRequest"                     zwischen
       variable="creditVariable">                    Prozessen
       <sources>
          <source linkName="request-to-approve">     Verhalten von
             <transitionCondition>                   Prozessen
                 $creditVariable/value &lt; 5000     Kommunikation
             </transitionCondition>                  Kontrollstrukturen
          </source>                                  Parallelverarbeitung
          <source linkName="request-to-decline">     Datenmanipulation
             <transitionCondition>                   Ausnahmebehandlung
                 $creditVariable/value >= 5000       Ereignisbehandlung
             </transitionCondition>
          </source>                                  Sonstiges
       </sources>
                                                     Zusammenfassung
    </receive>
    <invoke name="approveCredit" ...>
       <source linkName="approve-to-notify" />
       <targets>
          <target linkName="request-to-approve" />
       </targets>
    </invoke>
   ...
                                                      Dr. U. Hoffmann
                                                      Kap. 6              20 / 33
Nebenläufigkeit: flow–Aktivität mit Bedingung 2
                                                                      Web Services
                                                                        Business
  ...                                                                   Process
   <invoke name="declineCredit" ...>                                   Execution
      <source linkName="decline-to-notify" />                         Language 2.0
      <targets>                                                      (WS-BPEL 2.0)
         <target linkName="request-to-decline" />
      </targets>                                                    WS-BPEL 2.0
   </invoke>
                                                                    Beziehungen
    <reply name="notifyApplicant" ...>                              zwischen
       <targets>                                                    Prozessen
          <joinCondition>
             $approve-to-notify or $decline-to-notify               Verhalten von
          </joinCondition>                                          Prozessen
                                                                    Kommunikation
          <target linkName="approve-to-notify" />
                                                                    Kontrollstrukturen
          <target linkName="decline-to-notify" />
                                                                    Parallelverarbeitung
       </targets>
                                                                    Datenmanipulation
       </invoke>
                                                                    Ausnahmebehandlung
       </reply>
                                                                    Ereignisbehandlung
 </flow>
                                                                    Sonstiges

                                                                    Zusammenfassung




       joinCondition muss erfüllt sein, damit ein Prozess startet


                                                                     Dr. U. Hoffmann
                                                                     Kap. 6              21 / 33
Datenmanipulationen: assign–Aktivität
                                                              Web Services
                                                                Business
 <assign>                                                       Process
                                                               Execution
  <copy>                                                      Language 2.0
   <from variable="TimesheetSubmissionFailedMsg" />          (WS-BPEL 2.0)

   <to variable="EmployeeNotificationMsg" />                WS-BPEL 2.0
  </copy>                                                   Beziehungen
 </assign>                                                  zwischen
                                                            Prozessen

                                                            Verhalten von
                                                            Prozessen
 assign–Aktivität                                           Kommunikation
                                                            Kontrollstrukturen

      enthält mehre copy–Aktivitäten                        Parallelverarbeitung
                                                            Datenmanipulation
                                                            Ausnahmebehandlung
      verschiedene Arten von copy–Aktivitäten:              Ereignisbehandlung


           Kopieren zwischen Variablen                      Sonstiges

           Kopieren von Teilen (mittels XPath selektiert)   Zusammenfassung

           Kopieren von Partnerlinks
           Kopieren von Properties
           Kopieren von konstanten XPath-Ausdrücken (ohne
           Kontextknoten)
                                                             Dr. U. Hoffmann
                                                             Kap. 6              22 / 33
Datenmanipulationen: assign–Aktivität mit Selektion
                                                                                Web Services
                                                                                  Business
                                                                                  Process
                                                                                 Execution
                                                                                Language 2.0
 <assign>                                                                      (WS-BPEL 2.0)
  <copy>
   <from variable="Input" part="operation1Parameter">                         WS-BPEL 2.0
     <query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">   Beziehungen
        creditCardInformation                                                 zwischen
     </query>                                                                 Prozessen
   </from>
   <to variable="CreditCardServiceInput" />                                   Verhalten von
  </copy>                                                                     Prozessen
 </assign>                                                                    Kommunikation
                                                                              Kontrollstrukturen
                                                                              Parallelverarbeitung
                                                                              Datenmanipulation
                                                                              Ausnahmebehandlung
                                                                              Ereignisbehandlung

                                                                              Sonstiges

                                                                              Zusammenfassung
       default QueryLanguage ist XPath 1.0




                                                                               Dr. U. Hoffmann
                                                                               Kap. 6              23 / 33
Ausnahmebehandlung: faultHandlers
                                                  Web Services
                                                    Business
                                                    Process
                                                   Execution
<faultHandlers>                                   Language 2.0
   <catch faultName="BookOutOfStockException"    (WS-BPEL 2.0)

      faultVariable="BookOutOfStockVariable">   WS-BPEL 2.0
      ...                                       Beziehungen
   </catch>                                     zwischen
                                                Prozessen
   <catchAll>...</catchAll>
                                                Verhalten von
</faultHandlers>                                Prozessen
                                                Kommunikation
                                                Kontrollstrukturen
                                                Parallelverarbeitung
                                                Datenmanipulation
                                                Ausnahmebehandlung
faultHandlers können                            Ereignisbehandlung


     einem Prozess,                             Sonstiges

                                                Zusammenfassung
     einem scope oder
     einem invoke–Aufruf
zugeordnet sein.

                                                 Dr. U. Hoffmann
                                                 Kap. 6              24 / 33
Ausnahmebehandlung mit eingeschränkter Sichtbarkeit
                                                          Web Services
                                                            Business
                                                            Process
                                                           Execution
<scope>                                                   Language 2.0
 <faultHandlers>                                         (WS-BPEL 2.0)

  <catch faultName="xyz:anExpectedError">...</catch>    WS-BPEL 2.0
  <catchAll><!-- deal with other errors -->             Beziehungen
         ...                                            zwischen
                                                        Prozessen
  </catchAll>
                                                        Verhalten von
 </faultHandlers>                                       Prozessen
 <sequence>                                             Kommunikation
                                                        Kontrollstrukturen
   <!-- do work -->                                     Parallelverarbeitung

 </sequence>                                            Datenmanipulation
                                                        Ausnahmebehandlung
</scope>                                                Ereignisbehandlung

                                                        Sonstiges

                                                        Zusammenfassung


Ausnahmebehandlung in scope
    ist nur im Gültigkeitsbereich von scope definiert.


                                                         Dr. U. Hoffmann
                                                         Kap. 6              25 / 33
Ausnahmebehandlung: Aktivität beim Beenden
                                                                          Web Services
                                                                            Business
                                                                            Process
                                                                           Execution
<scope>                                                                   Language 2.0
                                                                         (WS-BPEL 2.0)
 <terminationHandler>
  <!-- clean up resources in case                                       WS-BPEL 2.0

       of forced termination -->                                        Beziehungen
                                                                        zwischen
 </terminationHandler>                                                  Prozessen
 <sequence>
                                                                        Verhalten von
   <!-- do work -->                                                     Prozessen
                                                                        Kommunikation
 </sequence>                                                            Kontrollstrukturen
</scope>                                                                Parallelverarbeitung
                                                                        Datenmanipulation
                                                                        Ausnahmebehandlung
                                                                        Ereignisbehandlung

                                                                        Sonstiges

                                                                        Zusammenfassung
Termination-Handler
     wird abgearbeitet, wenn alle Unteraktivitäten beendet sind (oder
     beendet werden).


                                                                         Dr. U. Hoffmann
                                                                         Kap. 6              26 / 33
Kompensation
<scope name="S1">
                                                           Web Services
   <faultHandlers>                                           Business
      <catchAll>                                             Process
                                                            Execution
          <compensateScope target="S2" />                  Language 2.0
      </catchAll>                                         (WS-BPEL 2.0)

   </faultHandlers>                                      WS-BPEL 2.0
   <sequence>                                            Beziehungen
      <scope name="S2">                                  zwischen
                                                         Prozessen
          <compensationHandler>
                                                         Verhalten von
             <!-- undo work -->                          Prozessen
          </compensationHandler>                         Kommunikation
                                                         Kontrollstrukturen
          <!-- do some work -->                          Parallelverarbeitung

      </scope>                                           Datenmanipulation
                                                         Ausnahmebehandlung
      <!-- do more work -->                              Ereignisbehandlung

      <!-- a fault is thrown here;                       Sonstiges
            results of S2 must be undone -->             Zusammenfassung
   </sequence>
 </scope>

    compensate führt die Handler der Unter-scopes aus
    compensateScope führt den Hander eines scopes aus.    Dr. U. Hoffmann
                                                          Kap. 6              27 / 33
Ereignisbehandlung: pick–Aktivität
 <pick>
                                                           Web Services
  <onMessage partnerLink="buyer"                             Business
     operation="inputLineItem"                               Process
                                                            Execution
     variable="lineItem">                                  Language 2.0
  <!-- activity to add line item to order -->             (WS-BPEL 2.0)

  </onMessage>                                           WS-BPEL 2.0
  <onMessage partnerLink="buyer"                         Beziehungen
     operation="orderComplete"                           zwischen
                                                         Prozessen
     variable="completionDetail">
                                                         Verhalten von
     <!-- activity to perform order completion -->       Prozessen
  </onMessage>                                           Kommunikation
                                                         Kontrollstrukturen
  <onAlarm>                                              Parallelverarbeitung

    <for>’P3DT10H’</for>                                 Datenmanipulation
                                                         Ausnahmebehandlung
    <!-- handle timeout for order completion -->         Ereignisbehandlung

  </onAlarm>                                             Sonstiges
 </pick>                                                 Zusammenfassung



     pick trifft eine Auswahl aus vielen Ereignissen
     onMessage erwartet das Eintreffen einer Nachricht
     onAlarm wartet Zeit ab                               Dr. U. Hoffmann
                                                          Kap. 6              28 / 33
Ereignisbehandlung: Mehrere Ereignisse bearbeiten
 <flow>
    <links>                                                                  Web Services
        <link name="buyToSettle" />                                            Business
        <link name="sellToSettle" />                                           Process
    </links>                                                                  Execution
    <receive name="receiveBuyerInformation" createInstance="yes" ...>        Language 2.0
        <sources>                                                           (WS-BPEL 2.0)
           <source linkName="buyToSettle" />
        </sources>                                                         WS-BPEL 2.0
        <correlations>
           <correlation set="tradeID" initiate="join" />                   Beziehungen
        </correlations>                                                    zwischen
    </receive>                                                             Prozessen
    <receive name="receiveSellerInformation" createInstance="yes" ...>
        <sources>                                                          Verhalten von
           <source linkName="sellToSettle" />                              Prozessen
                                                                           Kommunikation
        </sources>
                                                                           Kontrollstrukturen
        <correlations>
                                                                           Parallelverarbeitung
           <correlation set="tradeID" initiate="join" />
                                                                           Datenmanipulation
        </correlations>
                                                                           Ausnahmebehandlung
    </receive>
                                                                           Ereignisbehandlung
    <invoke name="settleTrade" ...>
        <targets>                                                          Sonstiges
           <joinCondition>$buyToSettle and $sellToSettle</joinCondition>
           <target linkName="buyToSettle" />                               Zusammenfassung
           <target linkName="sellToSettle" />
        </targets>
    </invoke>
    ...
 </flow>



       Mehrere Anfragen in beliebiger Reihenfolge werden erwartet.          Dr. U. Hoffmann
                                                                            Kap. 6              29 / 33
Ereignisbehandlung: Asynchrone Ereignisse
                                                          Web Services
                                                            Business
                                                            Process
<process name="purchaseOrderProcess" ...>                  Execution
                                                          Language 2.0
   ...                                                   (WS-BPEL 2.0)
   <eventHandlers>
                                                        WS-BPEL 2.0
       <onEvent partnerLink="purchasing"
                                                        Beziehungen
          operation="queryOrderStatus" ...>             zwischen
          <scope>...</scope>                            Prozessen

      </onEvent>                                        Verhalten von
                                                        Prozessen
      <onEvent partnerLink="purchasing"                 Kommunikation
          operation="cancelOrder" ...>                  Kontrollstrukturen
                                                        Parallelverarbeitung
          <scope>...</scope>                            Datenmanipulation

      </onEvent>                                        Ausnahmebehandlung
                                                        Ereignisbehandlung
   </eventHandlers>
                                                        Sonstiges
   ...
                                                        Zusammenfassung
</process>


    onEvent behandelt Ereignisse ohne Synchronisation

                                                         Dr. U. Hoffmann
                                                         Kap. 6              30 / 33
Verzögerung eines Prozesses
                                                                     Web Services
                                                                       Business
                                                                       Process
                                                                      Execution
                                                                     Language 2.0
                                                                    (WS-BPEL 2.0)

                                                                   WS-BPEL 2.0
<wait>
                                                                   Beziehungen
   <!-- wait for three days                                        zwischen
          and ten hours to go by ... -->                           Prozessen

   <for>’P3DT10H’</for>                                            Verhalten von
                                                                   Prozessen
</wait>                                                            Kommunikation
                                                                   Kontrollstrukturen
                                                                   Parallelverarbeitung
                                                                   Datenmanipulation

    wait verzögert den aktuellen Prozess um die angegebene Zeit.   Ausnahmebehandlung
                                                                   Ereignisbehandlung

    XPath–Zeitspannen und –Zeitpunkte                              Sonstiges

                                                                   Zusammenfassung




                                                                    Dr. U. Hoffmann
                                                                    Kap. 6              31 / 33
Weitere WS-BPEL–Konzepte
                                                         Web Services
                                                           Business
                                                           Process
                                                          Execution
                                                         Language 2.0
                                                        (WS-BPEL 2.0)
    Korrelation von Nachrichten                        WS-BPEL 2.0
    paralleles forEach                                 Beziehungen
                                                       zwischen
    empty, exit                                        Prozessen

                                                       Verhalten von
    XML–Validierung (validate)                         Prozessen
                                                       Kommunikation

    Nebenläufiges Ändern der Daten (Isolation)          Kontrollstrukturen
                                                       Parallelverarbeitung

    Dynamische Ermittlung der Partner                  Datenmanipulation
                                                       Ausnahmebehandlung
                                                       Ereignisbehandlung
    Erweiterbarkeit durch Angeben der Ausdrucks– und   Sonstiges
    Abfragesprache                                     Zusammenfassung




                                                        Dr. U. Hoffmann
                                                        Kap. 6              32 / 33
Zusammenfassung
                                                                  Web Services
WS-BPEL 2.0                                                         Business
                                                                    Process
                                                                   Execution
Beziehungen zwischen Prozessen                                    Language 2.0
                                                                 (WS-BPEL 2.0)
Verhalten von Prozessen                                         WS-BPEL 2.0
   Kommunikation                                                Beziehungen
   Kontrollstrukturen                                           zwischen
                                                                Prozessen
   Parallelverarbeitung
                                                                Verhalten von
   Datenmanipulation                                            Prozessen
                                                                Kommunikation
   Ausnahmebehandlung                                           Kontrollstrukturen

   Ereignisbehandlung                                           Parallelverarbeitung
                                                                Datenmanipulation
                                                                Ausnahmebehandlung

Sonstiges                                                       Ereignisbehandlung

                                                                Sonstiges

                                                                Zusammenfassung
    Fragen?

    nächste Woche:
      Organisatorische Aspekte und SOA im Unternehmenskontext
                                                                 Dr. U. Hoffmann
                                                                 Kap. 6              33 / 33

								
To top