SlideShare ist ein Scribd-Unternehmen logo
1 von 69
Übersetzung	
  von	
  Petrinetzen
                   in	
  BPEL-­‐Prozesse
   Fully-­‐automatic	
  Translation	
  of	
  Open	
  Workflow	
  Net	
  
           Models	
  into	
  Simple	
  Abstract	
  BPEL	
  Processes




                         Niels	
  Lohmann	
  und	
  Jens	
  Kleine
              Modellierung	
  2008	
  ▪	
  Berlin	
  ▪	
  13.	
  März	
  2008



UNIVERSITÄT ROSTOCK
BPEL
• Sprache	
  zur	
  Spezifikation	
  und	
  Implementierung	
  von	
  
  Geschäftsprozessen	
  mit	
  Webservices
• "Programmieren	
  im	
  Großen"

• Spezifikation	
  (abstrakte	
  Prozesse)
   Beschreibung	
  von	
  "Business	
  Protocols"
   Auslassen	
  von	
  internen	
  Details




                                                                        2
BPEL
• Sprache	
  zur	
  Spezifikation	
  und	
  Implementierung	
  von	
  
  Geschäftsprozessen	
  mit	
  Webservices
• "Programmieren	
  im	
  Großen"

• Spezifikation	
  (abstrakte	
  Prozesse)
   Beschreibung	
  von	
  "Business	
  Protocols"
   Auslassen	
  von	
  internen	
  Details

• Implementierung	
  (ausführbare	
  Prozesse)
   Verfeinerung	
  der	
  Spezifikation
   breite	
  Werkzeugunterstützung
                                                                        2
BPEL	
  zur	
  Modellierung?
• Grenzen	
  als	
  Modellierungs-­‐/Spezifikationssprache
   XML-­‐basiert:	
  Wirklich	
  lesbar?
   syntaktische	
  Einschränkungen:	
  Nicht	
  alles	
  erlaubt.
   Erbe	
  der	
  Eltern:	
  Mischung	
  von	
  Konzepten
                                <flow>
                                	
  <links>	
  <link	
  name="l1"/>	
  </links>
                                	
  <receive	
  ...>
<sequence>                      	
  	
  <sources>	
  <source	
  linkName"l1"/>	
  </sources>
	
  <receive	
  .../>
	
  <reply	
  ...	
  />   vs.   	
  </receive>
                                	
  <reply	
  ...>
</sequence>                     	
  	
  <targets>	
  <target	
  linkName"l1"/>	
  </target>
                                	
  </reply>
                                </flow>


                                                                                               3
Petrinetze

• grafischer	
  Formalismus

• formale	
  Semantik        empfange
                             Login
• Kontroll-­‐/Datenfluss

                             sende
                             Bestätigung




                                           4
Petrinetze

• grafischer	
  Formalismus

• formale	
  Semantik        empfange
                             Login
• Kontroll-­‐/Datenfluss

• einfache	
  Erweiterung    sende
                             Bestätigung
  zur	
  Modellierung
  von	
  asynchronem
  Nachrichtenaustausch

                                           4
Petrinetze

• grafischer	
  Formalismus

• formale	
  Semantik                      empfange
                                  Login
                                           Login
• Kontroll-­‐/Datenfluss

• einfache	
  Erweiterung    Bestätigung
                                           sende
                                           Bestätigung
  zur	
  Modellierung
  von	
  asynchronem
  Nachrichtenaustausch

                                                         4
Petrinetzmodelle	
  für	
  Services

• Analyse	
  von	
  Services
   Kompatibilität
   Compliance                      Login
                                             empfange
                                             Login
   Bedienbarkeit

• Unterstützung                              sende
                               Bestätigung
                                             Bestätigung
   Partnersynthese
   Adaptersynthese
   Diagnose/Korrektur

                                                           5
Zwei	
  Welten
     BPEL                 Petrinetz-­‐Modell




                 LÜCKE
                         Analyse
Web	
  Service           • Kompatibilität
                         • Compliance
Spezifikation/            • Bedienbarkeit
Contract                 Unterstützung
                         • Partnersynthese
Choreographie            • Adaptersynthese
                         • Diagnose/Korrektur
                                                6
Zwei	
  Welten
     BPEL                  Petrinetz-­‐Modell




                 LÜCKE
                          Analyse
Web	
  Service            • Kompatibilität
                          • Compliance
Spezifikation/ BPEL2oWFN   • Bedienbarkeit
Contract                  Unterstützung
                          • Partnersynthese
Choreographie             • Adaptersynthese
                          • Diagnose/Korrektur
                                                 6
Übersetzung	
  Petrinetze	
  ➙	
  BPEL




                                         7
Übersetzung	
  Petrinetze	
  ➙	
  BPEL
• Regelbasierter	
  Übersetzungsansatz
   Teilnetze	
  werden	
  zusammengefasst	
  und	
  mit
    BPEL-­‐Code	
  annotiert
   Endergebnis	
  ist	
  einziger	
  Knoten	
  mit	
  komplettem	
  
    BPEL-­‐Prozess	
  als	
  Annotation




                                                                        7
Übersetzung	
  Petrinetze	
  ➙	
  BPEL
• Regelbasierter	
  Übersetzungsansatz
   Teilnetze	
  werden	
  zusammengefasst	
  und	
  mit
    BPEL-­‐Code	
  annotiert
   Endergebnis	
  ist	
  einziger	
  Knoten	
  mit	
  komplettem	
  
    BPEL-­‐Prozess	
  als	
  Annotation

• Herausforderung:	
  BPEL	
  ist	
  blockorientiert
   eine	
  Anfangsaktivität,	
  Ende	
  implizit
   Schleifen	
  syntaktisch	
  eingeschränkt
   Mehrfachausführung	
  nur	
  innerhalb	
  von	
  Schleifen	
  
                                                                        7
Beispiel



           Login                Angebot
                    speichern
Bestellung fertig               ablehnen


    Bestätigung                 annehmen




                                           8
Beispiel
                    zwei	
  Startknoten



           Login                          Angebot
                       speichern
Bestellung fertig                         ablehnen


    Bestätigung                           annehmen




                                                     8
Beispiel
                    zwei	
  Startknoten



           Login                          Angebot
                       speichern
Bestellung fertig                         ablehnen


    Bestätigung                           annehmen




                                                     8
Beispiel
                    zwei	
  Startknoten



           Login                               Angebot
                       speichern
Bestellung fertig                              ablehnen


    Bestätigung                                annehmen




                                   beliebige
                                   Schleife               8
Beispiel
                    zwei	
  Startknoten



           Login                               Angebot
                       speichern
Bestellung fertig                              ablehnen


    Bestätigung                                annehmen




                                   beliebige
                                   Schleife               8
Beispiel
                        zwei	
  Startknoten



           Login                                   Angebot
                           speichern
Bestellung fertig                                  ablehnen


    Bestätigung                                    annehmen




                    mehrfache          beliebige
                    Ausführung         Schleife               8
Beispiel
                        zwei	
  Startknoten



           Login                                   Angebot
                           speichern
Bestellung fertig                                  ablehnen


    Bestätigung                                    annehmen




                    mehrfache          beliebige
                    Ausführung         Schleife               8
Beispiel



           Login                Angebot
                    speichern
Bestellung fertig               ablehnen


    Bestätigung                 annehmen




                                           9
Beispiel



           Login                                  Angebot
                           speichern
Bestellung fertig                                 ablehnen


    Bestätigung                                   annehmen




                    Kommunikation	
  annotieren
                                                             9
Beispiel



           Login                                  Angebot
                           speichern
Bestellung fertig                                 ablehnen


    Bestätigung                                   annehmen




                    Kommunikation	
  annotieren
                                                             9
Beispiel
                           <opaqueActivity "speichern"/>



                                                            <invoke "Angebot"/>
   <receive "Login"/>




   <receive "fertig"/>

                                                           <receive "ablehnen"/>




 <invoke "Bestätigung"/>                                   <receive "annehmen"/>




                        Kommunikation	
  annotieren
                                                                                  10
Beispiel
                           <opaqueActivity "speichern"/>


Empfangsaktivität
                                                            <invoke "Angebot"/>
   <receive "Login"/>




   <receive "fertig"/>

                                                           <receive "ablehnen"/>




 <invoke "Bestätigung"/>                                   <receive "annehmen"/>




                        Kommunikation	
  annotieren
                                                                                  10
Beispiel
                           <opaqueActivity "speichern"/>


Empfangsaktivität                                           Sendeaktivität
                                                            <invoke "Angebot"/>
   <receive "Login"/>




   <receive "fertig"/>

                                                           <receive "ablehnen"/>




 <invoke "Bestätigung"/>                                   <receive "annehmen"/>




                        Kommunikation	
  annotieren
                                                                                  10
Beispiel
                              interne	
  Aktivität
                           <opaqueActivity "speichern"/>


Empfangsaktivität                                           Sendeaktivität
                                                            <invoke "Angebot"/>
   <receive "Login"/>




   <receive "fertig"/>

                                                           <receive "ablehnen"/>




 <invoke "Bestätigung"/>                                   <receive "annehmen"/>




                        Kommunikation	
  annotieren
                                                                                  10
Beispiel
                           <opaqueActivity "speichern"/>



                                                            <invoke "Angebot"/>
   <receive "Login"/>




   <receive "fertig"/>

                                                           <receive "ablehnen"/>




 <invoke "Bestätigung"/>                                   <receive "annehmen"/>




                                                                                  11
Beispiel           Mehrfachausführung	
  entfalten
                           <opaqueActivity "speichern"/>



                                                            <invoke "Angebot"/>
   <receive "Login"/>




   <receive "fertig"/>

                                                           <receive "ablehnen"/>




 <invoke "Bestätigung"/>                                   <receive "annehmen"/>




                                                                                  11
Beispiel           Mehrfachausführung	
  entfalten
                           <opaqueActivity "speichern"/>



                                                            <invoke "Angebot"/>
   <receive "Login"/>




   <receive "fertig"/>

                                                           <receive "ablehnen"/>




 <invoke "Bestätigung"/>                                   <receive "annehmen"/>




                                                                                  11
Beispiel           Mehrfachausführung	
  entfalten
                           <opaqueActivity "speichern"/>



                                                            <invoke "Angebot"/>
   <receive "Login"/>




                                                           <receive "ablehnen"/>




 <invoke "Bestätigung"/>                                   <receive "annehmen"/>




                                           <receive "fertig"/>

         <invoke "Bestätigung"/>                                                  12
Beispiel
                           <opaqueActivity "speichern"/>



                                                            <invoke "Angebot"/>
   <receive "Login"/>




                                                           <receive "ablehnen"/>




 <invoke "Bestätigung"/>                                   <receive "annehmen"/>




                                           <receive "fertig"/>

         <invoke "Bestätigung"/>                                                  13
Beispiel           Sequenzen	
  zusammenfassen
                           <opaqueActivity "speichern"/>



                                                            <invoke "Angebot"/>
   <receive "Login"/>




                                                           <receive "ablehnen"/>




 <invoke "Bestätigung"/>                                   <receive "annehmen"/>




                                           <receive "fertig"/>

         <invoke "Bestätigung"/>                                                  13
Beispiel           Sequenzen	
  zusammenfassen
                           <opaqueActivity "speichern"/>



                                                            <invoke "Angebot"/>
   <receive "Login"/>




                                                           <receive "ablehnen"/>




 <invoke "Bestätigung"/>                                   <receive "annehmen"/>




                                           <receive "fertig"/>

         <invoke "Bestätigung"/>                                                  13
Beispiel           Sequenzen	
  zusammenfassen
                           <opaqueActivity "speichern"/>



                                                            <invoke "Angebot"/>
   <receive "Login"/>




                                                           <receive "ablehnen"/>




 <invoke "Bestätigung"/>                                   <receive "annehmen"/>




                                           <receive "fertig"/>

         <invoke "Bestätigung"/>                                                  13
Beispiel           Sequenzen	
  zusammenfassen
                           <opaqueActivity "speichern"/>



                                                            <invoke "Angebot"/>
   <receive "Login"/>




                                                           <receive "ablehnen"/>




 <invoke "Bestätigung"/>                                   <receive "annehmen"/>




                                           <receive "fertig"/>

         <invoke "Bestätigung"/>                                                  13
Beispiel            Sequenzen	
  zusammenfassen


                                                <invoke "Angebot"/>
<sequence>
 <receive "Login"/>
 <invoke "Bestätigung"/>
</sequence>



                                               <receive "ablehnen"/>
        <sequence>
         <receive "fertig"/>          <sequence>
         <invoke "Bestätigung"/>       <receive "annehmen"/>
        </sequence>                    <opaqueActivity "speichern"/>
                                      </sequence>




                                                                      14
Beispiel


                                             <invoke "Angebot"/>
<sequence>
 <receive "Login"/>
 <invoke "Bestätigung"/>
</sequence>



                                            <receive "ablehnen"/>
        <sequence>
         <receive "fertig"/>       <sequence>
         <invoke "Bestätigung"/>    <receive "annehmen"/>
        </sequence>                 <opaqueActivity "speichern"/>
                                   </sequence>




                                                                   15
Beispiel


                                              <invoke "Angebot"/>
<sequence>
 <receive "Login"/>
 <invoke "Bestätigung"/>
</sequence>



                                             <receive "ablehnen"/>
        <sequence>
         <receive "fertig"/>        <sequence>
         <invoke "Bestätigung"/>     <receive "annehmen"/>
        </sequence>                  <opaqueActivity "speichern"/>
                                    </sequence>




          Alternative	
  zusammenfassen
                                                                    15
Beispiel


                                              <invoke "Angebot"/>
<sequence>
 <receive "Login"/>
 <invoke "Bestätigung"/>
</sequence>



                                             <receive "ablehnen"/>
        <sequence>
         <receive "fertig"/>        <sequence>
         <invoke "Bestätigung"/>     <receive "annehmen"/>
        </sequence>                  <opaqueActivity "speichern"/>
                                    </sequence>




          Alternative	
  zusammenfassen
                                                                    15
Beispiel


                                                     <invoke "Angebot"/>
<sequence>
 <receive "Login"/>
 <invoke "Bestätigung"/>
</sequence>

                                   Split
                                                    <receive "ablehnen"/>
        <sequence>
         <receive "fertig"/>               <sequence>
         <invoke "Bestätigung"/>            <receive "annehmen"/>
        </sequence>                         <opaqueActivity "speichern"/>
                                           </sequence>




          Alternative	
  zusammenfassen
                                                                           15
Beispiel


                                                     <invoke "Angebot"/>
<sequence>
 <receive "Login"/>
 <invoke "Bestätigung"/>
</sequence>

                                   Split
                                                    <receive "ablehnen"/>
        <sequence>
         <receive "fertig"/>               <sequence>
         <invoke "Bestätigung"/>            <receive "annehmen"/>
        </sequence>                         <opaqueActivity "speichern"/>
                                           </sequence>




          Alternative	
  zusammenfassen
                                                                           15
Beispiel

                                       Merge
                                                         <invoke "Angebot"/>
<sequence>
 <receive "Login"/>
 <invoke "Bestätigung"/>
</sequence>

                                   Split
                                                        <receive "ablehnen"/>
        <sequence>
         <receive "fertig"/>                   <sequence>
         <invoke "Bestätigung"/>                <receive "annehmen"/>
        </sequence>                             <opaqueActivity "speichern"/>
                                               </sequence>




          Alternative	
  zusammenfassen
                                                                               15
Beispiel


                                              <invoke "Angebot"/>
<sequence>
 <receive "Login"/>
 <invoke "Bestätigung"/>
</sequence>




        <sequence>
                                   <pick>
         <receive "fertig"/>
                                    <onMessage "ablehnen"/>
         <invoke "Bestätigung"/>
                                    <onMessage "annehmen">
        </sequence>
                                      <opaqueActivity "speichern"/>
                                    </onMessage>
                                   </pick>


          Alternative	
  zusammenfassen
                                                                    16
Beispiel


                                              <invoke "Angebot"/>
<sequence>
 <receive "Login"/>
 <invoke "Bestätigung"/>
</sequence>



                                          externe	
  Entscheidung
        <sequence>
                                   <pick>
         <receive "fertig"/>
                                    <onMessage "ablehnen"/>
         <invoke "Bestätigung"/>
                                    <onMessage "annehmen">
        </sequence>
                                      <opaqueActivity "speichern"/>
                                    </onMessage>
                                   </pick>


          Alternative	
  zusammenfassen
                                                                    16
Beispiel


                                              <invoke "Angebot"/>
<sequence>
 <receive "Login"/>
 <invoke "Bestätigung"/>
</sequence>




        <sequence>
                                   <pick>
         <receive "fertig"/>
                                    <onMessage "ablehnen"/>
         <invoke "Bestätigung"/>
                                    <onMessage "annehmen">
        </sequence>
                                      <opaqueActivity "speichern"/>
                                    </onMessage>
                                   </pick>




                                                                    17
Beispiel


                                              <invoke "Angebot"/>
<sequence>
 <receive "Login"/>
 <invoke "Bestätigung"/>
</sequence>




        <sequence>
                                   <pick>
         <receive "fertig"/>
                                    <onMessage "ablehnen"/>
         <invoke "Bestätigung"/>
                                    <onMessage "annehmen">
        </sequence>
                                      <opaqueActivity "speichern"/>
                                    </onMessage>
                                   </pick>


     Schleife	
  zusammenfassen
                                                                    17
Beispiel


                                              <invoke "Angebot"/>
<sequence>
 <receive "Login"/>
 <invoke "Bestätigung"/>
</sequence>




        <sequence>
                                   <pick>
         <receive "fertig"/>
                                    <onMessage "ablehnen"/>
         <invoke "Bestätigung"/>
                                    <onMessage "annehmen">
        </sequence>
                                      <opaqueActivity "speichern"/>
                                    </onMessage>
                                   </pick>


     Schleife	
  zusammenfassen
                                                                    17
Beispiel
                                              <invoke "Angebot"/>
<sequence>
 <receive "Login"/>
 <invoke "Bestätigung"/>
</sequence>




        <sequence>
                                   <while>
         <receive "fertig"/>
                                    <pick>
         <invoke "Bestätigung"/>
                                     <onMessage "ablehnen">
        </sequence>
                                      <invoke "Angebot"/>
                                     </onMessage>
                                     <onMessage "annehmen">
                                      <sequence>
                                       <invoke "Angebot"/>
                                       <opaqueActivity "speichern"/>
                                      </sequence>
                                     </onMessage>
                                    </pick>
     Schleife	
  zusammenfassen    </while>
                                                                  18
Beispiel
                                              <invoke "Angebot"/>
<sequence>
 <receive "Login"/>
 <invoke "Bestätigung"/>
</sequence>




        <sequence>
                                   <while>
         <receive "fertig"/>
                                    <pick>
         <invoke "Bestätigung"/>
                                     <onMessage "ablehnen">
        </sequence>
                                      <invoke "Angebot"/>
                                     </onMessage>
                                     <onMessage "annehmen">
                                      <sequence>
                                       <invoke "Angebot"/>
                                       <opaqueActivity "speichern"/>
                                      </sequence>
                                     </onMessage>
                                    </pick>
                                   </while>
                                                                  19
Beispiel
                                              <invoke "Angebot"/>
<sequence>
 <receive "Login"/>
 <invoke "Bestätigung"/>
</sequence>




        <sequence>
                                   <while>
         <receive "fertig"/>
                                    <pick>
         <invoke "Bestätigung"/>
                                     <onMessage "ablehnen">
        </sequence>
                                      <invoke "Angebot"/>
                                     </onMessage>
                                     <onMessage "annehmen">
                                      <sequence>
                                       <invoke "Angebot"/>
                                       <opaqueActivity "speichern"/>
                                      </sequence>
                                     </onMessage>
                                    </pick>
 Sequenz	
  zusammenfassen         </while>
                                                                  19
Beispiel
                                              <invoke "Angebot"/>
<sequence>
 <receive "Login"/>
 <invoke "Bestätigung"/>
</sequence>




        <sequence>
                                   <while>
         <receive "fertig"/>
                                    <pick>
         <invoke "Bestätigung"/>
                                     <onMessage "ablehnen">
        </sequence>
                                      <invoke "Angebot"/>
                                     </onMessage>
                                     <onMessage "annehmen">
                                      <sequence>
                                       <invoke "Angebot"/>
                                       <opaqueActivity "speichern"/>
                                      </sequence>
                                     </onMessage>
                                    </pick>
 Sequenz	
  zusammenfassen         </while>
                                                                  19
Beispiel

                             <sequence>
                              <invoke "Angebot"/>
                              <while>
                               <pick>
                                <onMessage "ablehnen">
                                 <invoke "Angebot"/>
                                </onMessage>
  <sequence>                    <onMessage "annehmen">
   <receive "Login"/>            <sequence>
   <invoke "Bestätigung"/>        <invoke "Angebot"/>
  </sequence>                     <opaqueActivity "speichern"/>
                                 </sequence>
                                </onMessage>
                               </pick>
                              </while>
                              <receive "fertig"/>
                              <invoke "Bestätigung"/>
                             </sequence>

Sequenz	
  zusammenfassen
                                                                  20
Beispiel

                             <sequence>
                              <invoke "Angebot"/>
                              <while>
                               <pick>
                                <onMessage "ablehnen">
                                 <invoke "Angebot"/>
                                </onMessage>
  <sequence>                    <onMessage "annehmen">
   <receive "Login"/>            <sequence>
   <invoke "Bestätigung"/>        <invoke "Angebot"/>
  </sequence>                     <opaqueActivity "speichern"/>
                                 </sequence>
                                </onMessage>
                               </pick>
                              </while>
                              <receive "fertig"/>
                              <invoke "Bestätigung"/>
                             </sequence>


                                                                  21
Beispiel

                             <sequence>
                              <invoke "Angebot"/>
                              <while>
                               <pick>
                                <onMessage "ablehnen">
                                 <invoke "Angebot"/>
                                </onMessage>
  <sequence>                    <onMessage "annehmen">
   <receive "Login"/>            <sequence>
   <invoke "Bestätigung"/>        <invoke "Angebot"/>
  </sequence>                     <opaqueActivity "speichern"/>
                                 </sequence>
                                </onMessage>
                               </pick>
                              </while>
                              <receive "fertig"/>
                              <invoke "Bestätigung"/>

nebenläufige	
  Stränge       </sequence>


zusammenfassen                                                    21
Beispiel

                             <sequence>
                              <invoke "Angebot"/>
                              <while>
                               <pick>
                                <onMessage "ablehnen">
                                 <invoke "Angebot"/>
                                </onMessage>
  <sequence>                    <onMessage "annehmen">
   <receive "Login"/>            <sequence>
   <invoke "Bestätigung"/>        <invoke "Angebot"/>
  </sequence>                     <opaqueActivity "speichern"/>
                                 </sequence>
                                </onMessage>
                               </pick>
                              </while>
                              <receive "fertig"/>
                              <invoke "Bestätigung"/>

nebenläufige	
  Stränge       </sequence>


zusammenfassen                                                    21
Beispiel                 <flow>
                          <sequence>
                           <receive "Login"/>
                           <invoke "Bestätigung"/>
                          </sequence>

                          <sequence>
                           <invoke "Angebot"/>
                           <while>
                            <pick>
                             <onMessage "ablehnen">
                              <invoke "Angebot"/>
                             </onMessage>
                             <onMessage "annehmen">
                              <sequence>
                               <invoke "Angebot"/>
                               <opaqueActivity "speichern"/>
                              </sequence>
                             </onMessage>
                            </pick>
                           </while>
                           <receive "fertig"/>
nebenläufige	
  Stränge     <invoke "Bestätigung"/>
                          </sequence>
zusammenfassen           </flow>                               22
Beispiel         <flow>
                  <sequence>
                   <receive "Login"/>
                   <invoke "Bestätigung"/>
                  </sequence>

                  <sequence>
                   <invoke "Angebot"/>
                   <while>
                    <pick>
                     <onMessage "ablehnen">
                      <invoke "Angebot"/>
                     </onMessage>
                     <onMessage "annehmen">
                      <sequence>
                       <invoke "Angebot"/>
                       <opaqueActivity "speichern"/>
                      </sequence>
                     </onMessage>
                    </pick>
                   </while>
                   <receive "fertig"/>
Transformation     <invoke "Bestätigung"/>
                  </sequence>
abgeschlossen    </flow>                               23
Übersetzung	
  Petrinetze	
  ➙	
  BPEL


• insgesamt	
  17	
  Transformationsregeln
• weitere	
  Regeln	
  zur	
  Codeoptimierung
• implementiert	
  im	
  Werkzeug	
  oWFN2BPEL

• vollautomatische	
  Übersetzung
• anschließende	
  manuelle	
  Verfeinerung	
  zu	
  
  ausführbarem	
  Code


                                                        24
 	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Framework
                         BPEL                                                                                                                                       Petrinetz-­‐Modell




                                                                                                LÜCKE
                                                                                                                                                                   Analyse
  Web	
  Service                                                                                                                                                   • Kompatibilität
                                                                                                                                                                   • Compliance
  Spezifikation/                                                                                                                                                    • Bedienbarkeit
  Contract                                                                                                                                                         Unterstützung
                                                                                                                                                                   • Partnersynthese
  Choreographie                                                                                                                                                    • Adaptersynthese
                                                                                                                                                                   • Diagnose/Korrektur
                                                                                                                                                                                          25
 	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Framework
                         BPEL                                                                                                                                       Petrinetz-­‐Modell




                                                                                                LÜCKE
                                                                                                                                                                   Analyse
  Web	
  Service                                                                                                                                                   • Kompatibilität
                                                                              BPEL2oWFN                                                                            • Compliance
  Spezifikation/                                                                                                                                                    • Bedienbarkeit
  Contract                                                                                                                                                         Unterstützung
                                                                                                                                                                   • Partnersynthese
  Choreographie                                                                                                                                                    • Adaptersynthese
                                                                                                                                                                   • Diagnose/Korrektur
                                                                                                                                                                                          25
 	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Framework
                         BPEL                                                                                                                                       Petrinetz-­‐Modell




                                                                                                LÜCKE
                                                                                                                                                                   Analyse
  Web	
  Service                                                                                                                                                   • Kompatibilität
                                                                              BPEL2oWFN                                                                            • Compliance
  Spezifikation/                                                                                                                                                    • Bedienbarkeit
  Contract                                                                            oWFN2BPEL                                                                    Unterstützung
                                                                                                                                                                   • Partnersynthese
  Choreographie                                                                                                                                                    • Adaptersynthese
                                                                                                                                                                   • Diagnose/Korrektur
                                                                                                                                                                                          25
 	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Framework
                         BPEL                                                                                                                                       Petrinetz-­‐Modell
                                                                                                                                                                   Analyse
  Web	
  Service                                                                                                                                                   • Kompatibilität
                                                                              BPEL2oWFN                                                                            • Compliance
  Spezifikation/                                                                                                                                                    • Bedienbarkeit
  Contract                                                                            oWFN2BPEL                                                                    Unterstützung
                                                                                                                                                                   • Partnersynthese
  Choreographie                                                                                                                                                    • Adaptersynthese
                                                                                                                                                                   • Diagnose/Korrektur
                                                                                                                                                                                          25
Fazit
• Verbindung	
  von	
  Petrinetzen	
  als
  Modellierungs-­‐/Spezifikationssprache
  und	
  BPEL	
  als	
  Implementierungs-­‐          Petrinetze – BPEL

  sprache                                            BPEL – Petrinetze




• Vervollständigung	
  des
  Tools4BPEL-­‐Frameworks

• Übersetzungs-­‐/Analyse-­‐Tools	
  sind	
  frei	
  verfügbar:
  www.informatik.hu-­‐berlin.de/top/tools4bpel
  www.informatik.uni-­‐rostock.de/~nl/tools
                                                                         26
Fazit
• Verbindung	
  von	
  Petrinetzen	
  als
  Modellierungs-­‐/Spezifikationssprache
  und	
  BPEL	
  als	
  Implementierungs-­‐          Petrinetze – BPEL

  sprache                                            BPEL – Petrinetze




• Vervollständigung	
  des
  Tools4BPEL-­‐Frameworks

• Übersetzungs-­‐/Analyse-­‐Tools	
  sind	
  frei	
  verfügbar:
  www.informatik.hu-­‐berlin.de/top/tools4bpel
  www.informatik.uni-­‐rostock.de/~nl/tools
                                                                         26
Fazit
• Verbindung	
  von	
  Petrinetzen	
  als
  Modellierungs-­‐/Spezifikationssprache
  und	
  BPEL	
  als	
  Implementierungs-­‐   Petrinetze – BPEL

  sprache                                     BPEL – Petrinetze




• Vervollständigung	
  des
  Tools4BPEL-­‐Frameworks




                                                                  26
Fazit
• Verbindung	
  von	
  Petrinetzen	
  als
  Modellierungs-­‐/Spezifikationssprache
  und	
  BPEL	
  als	
  Implementierungs-­‐   Petrinetze – BPEL

  sprache                                     BPEL – Petrinetze




• Vervollständigung	
  des
  Tools4BPEL-­‐Frameworks




                                                                  26
Fazit
• Verbindung	
  von	
  Petrinetzen	
  als
  Modellierungs-­‐/Spezifikationssprache
  und	
  BPEL	
  als	
  Implementierungs-­‐          Petrinetze – BPEL

  sprache                                            BPEL – Petrinetze




• Vervollständigung	
  des
  Tools4BPEL-­‐Frameworks

• Übersetzungs-­‐/Analyse-­‐Tools	
  sind	
  frei	
  verfügbar:
  www.informatik.hu-­‐berlin.de/top/tools4bpel
  www.informatik.uni-­‐rostock.de/~nl/tools
                                                                         26
Übersetzung	
  von	
  Petrinetzen
                   in	
  BPEL-­‐Prozesse
   Fully-­‐automatic	
  Translation	
  of	
  Open	
  Workflow	
  Net	
  
           Models	
  into	
  Simple	
  Abstract	
  BPEL	
  Processes




                         Niels	
  Lohmann	
  und	
  Jens	
  Kleine
              Modellierung	
  2008	
  ▪	
  Berlin	
  ▪	
  13.	
  März	
  2008



UNIVERSITÄT ROSTOCK

Weitere ähnliche Inhalte

Andere mochten auch (20)

FES Keynote "Neue Medien - Segen oder Fluch"
FES Keynote "Neue Medien - Segen oder Fluch"FES Keynote "Neue Medien - Segen oder Fluch"
FES Keynote "Neue Medien - Segen oder Fluch"
 
La Materia
La MateriaLa Materia
La Materia
 
Moleculas Organicas
Moleculas OrganicasMoleculas Organicas
Moleculas Organicas
 
El mundo del caballo
El mundo del caballoEl mundo del caballo
El mundo del caballo
 
Porfolio Dos Arquitectos.Log
Porfolio Dos Arquitectos.LogPorfolio Dos Arquitectos.Log
Porfolio Dos Arquitectos.Log
 
T A L L E R I N T E G R A L D E I N T E R N E T
T A L L E R  I N T E G R A L  D E  I N T E R N E TT A L L E R  I N T E G R A L  D E  I N T E R N E T
T A L L E R I N T E G R A L D E I N T E R N E T
 
Las Webquest
Las WebquestLas Webquest
Las Webquest
 
utpl
utplutpl
utpl
 
Programación y evaluación por ccbb eso
Programación y evaluación por ccbb esoProgramación y evaluación por ccbb eso
Programación y evaluación por ccbb eso
 
Vorlesung Medienpädagogik I
Vorlesung Medienpädagogik IVorlesung Medienpädagogik I
Vorlesung Medienpädagogik I
 
#d2m13 Ergebnisse de Konzept-Workshop
#d2m13 Ergebnisse de Konzept-Workshop#d2m13 Ergebnisse de Konzept-Workshop
#d2m13 Ergebnisse de Konzept-Workshop
 
Minifakten uber Estland 2010
Minifakten uber Estland 2010Minifakten uber Estland 2010
Minifakten uber Estland 2010
 
Genetica
GeneticaGenetica
Genetica
 
La Casta
La CastaLa Casta
La Casta
 
Aida
AidaAida
Aida
 
Web 2.0
Web 2.0Web 2.0
Web 2.0
 
Medios Sociales en el Mundo Medico
Medios Sociales en el Mundo MedicoMedios Sociales en el Mundo Medico
Medios Sociales en el Mundo Medico
 
Community Aufbau
Community AufbauCommunity Aufbau
Community Aufbau
 
Carteradinversiones
CarteradinversionesCarteradinversiones
Carteradinversiones
 
Starnberg percha family key gemeinnütziges Projekt Stand 2015
Starnberg percha  family key gemeinnütziges Projekt Stand 2015Starnberg percha  family key gemeinnütziges Projekt Stand 2015
Starnberg percha family key gemeinnütziges Projekt Stand 2015
 

Mehr von Universität Rostock

Pragmatic model checking: from theory to implementations
Pragmatic model checking: from theory to implementationsPragmatic model checking: from theory to implementations
Pragmatic model checking: from theory to implementationsUniversität Rostock
 
Where did I go wrong? Explaining errors in process models
Where did I go wrong? Explaining errors in process modelsWhere did I go wrong? Explaining errors in process models
Where did I go wrong? Explaining errors in process modelsUniversität Rostock
 
Decidability Results for Choreography Realization
Decidability Results for Choreography RealizationDecidability Results for Choreography Realization
Decidability Results for Choreography RealizationUniversität Rostock
 
Artifact-centric modeling using BPMN
Artifact-centric modeling using BPMNArtifact-centric modeling using BPMN
Artifact-centric modeling using BPMNUniversität Rostock
 
Compliance by Design for Artifact-Centric Business Processes
Compliance by Design for Artifact-Centric Business ProcessesCompliance by Design for Artifact-Centric Business Processes
Compliance by Design for Artifact-Centric Business ProcessesUniversität Rostock
 
Verification with LoLA: 7 Implementation
Verification with LoLA: 7 ImplementationVerification with LoLA: 7 Implementation
Verification with LoLA: 7 ImplementationUniversität Rostock
 
Verification with LoLA: 6 Integrating LoLA
Verification with LoLA: 6 Integrating LoLAVerification with LoLA: 6 Integrating LoLA
Verification with LoLA: 6 Integrating LoLAUniversität Rostock
 
Verification with LoLA: 5 Case Studies
Verification with LoLA: 5 Case StudiesVerification with LoLA: 5 Case Studies
Verification with LoLA: 5 Case StudiesUniversität Rostock
 
Verification with LoLA: 4 Using LoLA
Verification with LoLA: 4 Using LoLAVerification with LoLA: 4 Using LoLA
Verification with LoLA: 4 Using LoLAUniversität Rostock
 
Verification with LoLA: 3 State Space Reduction
Verification with LoLA: 3 State Space ReductionVerification with LoLA: 3 State Space Reduction
Verification with LoLA: 3 State Space ReductionUniversität Rostock
 
Verification with LoLA: 2 The LoLA Input Language
Verification with LoLA: 2 The LoLA Input LanguageVerification with LoLA: 2 The LoLA Input Language
Verification with LoLA: 2 The LoLA Input LanguageUniversität Rostock
 
Internal Behavior Reduction for Services
Internal Behavior Reduction for ServicesInternal Behavior Reduction for Services
Internal Behavior Reduction for ServicesUniversität Rostock
 
Karsten Wolf @ Carl Adam Petri Memorial Symposium
Karsten Wolf @ Carl Adam Petri Memorial SymposiumKarsten Wolf @ Carl Adam Petri Memorial Symposium
Karsten Wolf @ Carl Adam Petri Memorial SymposiumUniversität Rostock
 
Implementation of an Interleaving Semantics for TLDA
Implementation of an Interleaving Semantics for TLDAImplementation of an Interleaving Semantics for TLDA
Implementation of an Interleaving Semantics for TLDAUniversität Rostock
 
Formale Fundierung und effizientere Implementierung der schrittbasierten TLDA...
Formale Fundierung und effizientere Implementierung der schrittbasierten TLDA...Formale Fundierung und effizientere Implementierung der schrittbasierten TLDA...
Formale Fundierung und effizientere Implementierung der schrittbasierten TLDA...Universität Rostock
 
Demonstration of BPEL2oWFN and Fiona
Demonstration of BPEL2oWFN and FionaDemonstration of BPEL2oWFN and Fiona
Demonstration of BPEL2oWFN and FionaUniversität Rostock
 

Mehr von Universität Rostock (20)

Pragmatic model checking: from theory to implementations
Pragmatic model checking: from theory to implementationsPragmatic model checking: from theory to implementations
Pragmatic model checking: from theory to implementations
 
Where did I go wrong? Explaining errors in process models
Where did I go wrong? Explaining errors in process modelsWhere did I go wrong? Explaining errors in process models
Where did I go wrong? Explaining errors in process models
 
Decidability Results for Choreography Realization
Decidability Results for Choreography RealizationDecidability Results for Choreography Realization
Decidability Results for Choreography Realization
 
Artifact-centric modeling using BPMN
Artifact-centric modeling using BPMNArtifact-centric modeling using BPMN
Artifact-centric modeling using BPMN
 
Compliance by Design for Artifact-Centric Business Processes
Compliance by Design for Artifact-Centric Business ProcessesCompliance by Design for Artifact-Centric Business Processes
Compliance by Design for Artifact-Centric Business Processes
 
Verification with LoLA
Verification with LoLAVerification with LoLA
Verification with LoLA
 
Verification with LoLA: 7 Implementation
Verification with LoLA: 7 ImplementationVerification with LoLA: 7 Implementation
Verification with LoLA: 7 Implementation
 
Verification with LoLA: 6 Integrating LoLA
Verification with LoLA: 6 Integrating LoLAVerification with LoLA: 6 Integrating LoLA
Verification with LoLA: 6 Integrating LoLA
 
Verification with LoLA: 5 Case Studies
Verification with LoLA: 5 Case StudiesVerification with LoLA: 5 Case Studies
Verification with LoLA: 5 Case Studies
 
Verification with LoLA: 4 Using LoLA
Verification with LoLA: 4 Using LoLAVerification with LoLA: 4 Using LoLA
Verification with LoLA: 4 Using LoLA
 
Verification with LoLA: 3 State Space Reduction
Verification with LoLA: 3 State Space ReductionVerification with LoLA: 3 State Space Reduction
Verification with LoLA: 3 State Space Reduction
 
Verification with LoLA: 1 Basics
Verification with LoLA: 1 BasicsVerification with LoLA: 1 Basics
Verification with LoLA: 1 Basics
 
Verification with LoLA: 2 The LoLA Input Language
Verification with LoLA: 2 The LoLA Input LanguageVerification with LoLA: 2 The LoLA Input Language
Verification with LoLA: 2 The LoLA Input Language
 
Saarbruecken
SaarbrueckenSaarbruecken
Saarbruecken
 
Ws4 dsec talk @ Kickoff RS3
Ws4 dsec talk @ Kickoff RS3Ws4 dsec talk @ Kickoff RS3
Ws4 dsec talk @ Kickoff RS3
 
Internal Behavior Reduction for Services
Internal Behavior Reduction for ServicesInternal Behavior Reduction for Services
Internal Behavior Reduction for Services
 
Karsten Wolf @ Carl Adam Petri Memorial Symposium
Karsten Wolf @ Carl Adam Petri Memorial SymposiumKarsten Wolf @ Carl Adam Petri Memorial Symposium
Karsten Wolf @ Carl Adam Petri Memorial Symposium
 
Implementation of an Interleaving Semantics for TLDA
Implementation of an Interleaving Semantics for TLDAImplementation of an Interleaving Semantics for TLDA
Implementation of an Interleaving Semantics for TLDA
 
Formale Fundierung und effizientere Implementierung der schrittbasierten TLDA...
Formale Fundierung und effizientere Implementierung der schrittbasierten TLDA...Formale Fundierung und effizientere Implementierung der schrittbasierten TLDA...
Formale Fundierung und effizientere Implementierung der schrittbasierten TLDA...
 
Demonstration of BPEL2oWFN and Fiona
Demonstration of BPEL2oWFN and FionaDemonstration of BPEL2oWFN and Fiona
Demonstration of BPEL2oWFN and Fiona
 

Übersetzung von Petrinetzen in BPEL-Prozesse

  • 1. Übersetzung  von  Petrinetzen in  BPEL-­‐Prozesse Fully-­‐automatic  Translation  of  Open  Workflow  Net   Models  into  Simple  Abstract  BPEL  Processes Niels  Lohmann  und  Jens  Kleine Modellierung  2008  ▪  Berlin  ▪  13.  März  2008 UNIVERSITÄT ROSTOCK
  • 2. BPEL • Sprache  zur  Spezifikation  und  Implementierung  von   Geschäftsprozessen  mit  Webservices • "Programmieren  im  Großen" • Spezifikation  (abstrakte  Prozesse)  Beschreibung  von  "Business  Protocols"  Auslassen  von  internen  Details 2
  • 3. BPEL • Sprache  zur  Spezifikation  und  Implementierung  von   Geschäftsprozessen  mit  Webservices • "Programmieren  im  Großen" • Spezifikation  (abstrakte  Prozesse)  Beschreibung  von  "Business  Protocols"  Auslassen  von  internen  Details • Implementierung  (ausführbare  Prozesse)  Verfeinerung  der  Spezifikation  breite  Werkzeugunterstützung 2
  • 4. BPEL  zur  Modellierung? • Grenzen  als  Modellierungs-­‐/Spezifikationssprache  XML-­‐basiert:  Wirklich  lesbar?  syntaktische  Einschränkungen:  Nicht  alles  erlaubt.  Erbe  der  Eltern:  Mischung  von  Konzepten <flow>  <links>  <link  name="l1"/>  </links>  <receive  ...> <sequence>    <sources>  <source  linkName"l1"/>  </sources>  <receive  .../>  <reply  ...  /> vs.  </receive>  <reply  ...> </sequence>    <targets>  <target  linkName"l1"/>  </target>  </reply> </flow> 3
  • 5. Petrinetze • grafischer  Formalismus • formale  Semantik empfange Login • Kontroll-­‐/Datenfluss sende Bestätigung 4
  • 6. Petrinetze • grafischer  Formalismus • formale  Semantik empfange Login • Kontroll-­‐/Datenfluss • einfache  Erweiterung sende Bestätigung zur  Modellierung von  asynchronem Nachrichtenaustausch 4
  • 7. Petrinetze • grafischer  Formalismus • formale  Semantik empfange Login Login • Kontroll-­‐/Datenfluss • einfache  Erweiterung Bestätigung sende Bestätigung zur  Modellierung von  asynchronem Nachrichtenaustausch 4
  • 8. Petrinetzmodelle  für  Services • Analyse  von  Services  Kompatibilität  Compliance Login empfange Login  Bedienbarkeit • Unterstützung sende Bestätigung Bestätigung  Partnersynthese  Adaptersynthese  Diagnose/Korrektur 5
  • 9. Zwei  Welten BPEL Petrinetz-­‐Modell LÜCKE Analyse Web  Service • Kompatibilität • Compliance Spezifikation/ • Bedienbarkeit Contract Unterstützung • Partnersynthese Choreographie • Adaptersynthese • Diagnose/Korrektur 6
  • 10. Zwei  Welten BPEL Petrinetz-­‐Modell LÜCKE Analyse Web  Service • Kompatibilität • Compliance Spezifikation/ BPEL2oWFN • Bedienbarkeit Contract Unterstützung • Partnersynthese Choreographie • Adaptersynthese • Diagnose/Korrektur 6
  • 12. Übersetzung  Petrinetze  ➙  BPEL • Regelbasierter  Übersetzungsansatz  Teilnetze  werden  zusammengefasst  und  mit BPEL-­‐Code  annotiert  Endergebnis  ist  einziger  Knoten  mit  komplettem   BPEL-­‐Prozess  als  Annotation 7
  • 13. Übersetzung  Petrinetze  ➙  BPEL • Regelbasierter  Übersetzungsansatz  Teilnetze  werden  zusammengefasst  und  mit BPEL-­‐Code  annotiert  Endergebnis  ist  einziger  Knoten  mit  komplettem   BPEL-­‐Prozess  als  Annotation • Herausforderung:  BPEL  ist  blockorientiert  eine  Anfangsaktivität,  Ende  implizit  Schleifen  syntaktisch  eingeschränkt  Mehrfachausführung  nur  innerhalb  von  Schleifen   7
  • 14. Beispiel Login Angebot speichern Bestellung fertig ablehnen Bestätigung annehmen 8
  • 15. Beispiel zwei  Startknoten Login Angebot speichern Bestellung fertig ablehnen Bestätigung annehmen 8
  • 16. Beispiel zwei  Startknoten Login Angebot speichern Bestellung fertig ablehnen Bestätigung annehmen 8
  • 17. Beispiel zwei  Startknoten Login Angebot speichern Bestellung fertig ablehnen Bestätigung annehmen beliebige Schleife 8
  • 18. Beispiel zwei  Startknoten Login Angebot speichern Bestellung fertig ablehnen Bestätigung annehmen beliebige Schleife 8
  • 19. Beispiel zwei  Startknoten Login Angebot speichern Bestellung fertig ablehnen Bestätigung annehmen mehrfache beliebige Ausführung Schleife 8
  • 20. Beispiel zwei  Startknoten Login Angebot speichern Bestellung fertig ablehnen Bestätigung annehmen mehrfache beliebige Ausführung Schleife 8
  • 21. Beispiel Login Angebot speichern Bestellung fertig ablehnen Bestätigung annehmen 9
  • 22. Beispiel Login Angebot speichern Bestellung fertig ablehnen Bestätigung annehmen Kommunikation  annotieren 9
  • 23. Beispiel Login Angebot speichern Bestellung fertig ablehnen Bestätigung annehmen Kommunikation  annotieren 9
  • 24. Beispiel <opaqueActivity "speichern"/> <invoke "Angebot"/> <receive "Login"/> <receive "fertig"/> <receive "ablehnen"/> <invoke "Bestätigung"/> <receive "annehmen"/> Kommunikation  annotieren 10
  • 25. Beispiel <opaqueActivity "speichern"/> Empfangsaktivität <invoke "Angebot"/> <receive "Login"/> <receive "fertig"/> <receive "ablehnen"/> <invoke "Bestätigung"/> <receive "annehmen"/> Kommunikation  annotieren 10
  • 26. Beispiel <opaqueActivity "speichern"/> Empfangsaktivität Sendeaktivität <invoke "Angebot"/> <receive "Login"/> <receive "fertig"/> <receive "ablehnen"/> <invoke "Bestätigung"/> <receive "annehmen"/> Kommunikation  annotieren 10
  • 27. Beispiel interne  Aktivität <opaqueActivity "speichern"/> Empfangsaktivität Sendeaktivität <invoke "Angebot"/> <receive "Login"/> <receive "fertig"/> <receive "ablehnen"/> <invoke "Bestätigung"/> <receive "annehmen"/> Kommunikation  annotieren 10
  • 28. Beispiel <opaqueActivity "speichern"/> <invoke "Angebot"/> <receive "Login"/> <receive "fertig"/> <receive "ablehnen"/> <invoke "Bestätigung"/> <receive "annehmen"/> 11
  • 29. Beispiel Mehrfachausführung  entfalten <opaqueActivity "speichern"/> <invoke "Angebot"/> <receive "Login"/> <receive "fertig"/> <receive "ablehnen"/> <invoke "Bestätigung"/> <receive "annehmen"/> 11
  • 30. Beispiel Mehrfachausführung  entfalten <opaqueActivity "speichern"/> <invoke "Angebot"/> <receive "Login"/> <receive "fertig"/> <receive "ablehnen"/> <invoke "Bestätigung"/> <receive "annehmen"/> 11
  • 31. Beispiel Mehrfachausführung  entfalten <opaqueActivity "speichern"/> <invoke "Angebot"/> <receive "Login"/> <receive "ablehnen"/> <invoke "Bestätigung"/> <receive "annehmen"/> <receive "fertig"/> <invoke "Bestätigung"/> 12
  • 32. Beispiel <opaqueActivity "speichern"/> <invoke "Angebot"/> <receive "Login"/> <receive "ablehnen"/> <invoke "Bestätigung"/> <receive "annehmen"/> <receive "fertig"/> <invoke "Bestätigung"/> 13
  • 33. Beispiel Sequenzen  zusammenfassen <opaqueActivity "speichern"/> <invoke "Angebot"/> <receive "Login"/> <receive "ablehnen"/> <invoke "Bestätigung"/> <receive "annehmen"/> <receive "fertig"/> <invoke "Bestätigung"/> 13
  • 34. Beispiel Sequenzen  zusammenfassen <opaqueActivity "speichern"/> <invoke "Angebot"/> <receive "Login"/> <receive "ablehnen"/> <invoke "Bestätigung"/> <receive "annehmen"/> <receive "fertig"/> <invoke "Bestätigung"/> 13
  • 35. Beispiel Sequenzen  zusammenfassen <opaqueActivity "speichern"/> <invoke "Angebot"/> <receive "Login"/> <receive "ablehnen"/> <invoke "Bestätigung"/> <receive "annehmen"/> <receive "fertig"/> <invoke "Bestätigung"/> 13
  • 36. Beispiel Sequenzen  zusammenfassen <opaqueActivity "speichern"/> <invoke "Angebot"/> <receive "Login"/> <receive "ablehnen"/> <invoke "Bestätigung"/> <receive "annehmen"/> <receive "fertig"/> <invoke "Bestätigung"/> 13
  • 37. Beispiel Sequenzen  zusammenfassen <invoke "Angebot"/> <sequence> <receive "Login"/> <invoke "Bestätigung"/> </sequence> <receive "ablehnen"/> <sequence> <receive "fertig"/> <sequence> <invoke "Bestätigung"/> <receive "annehmen"/> </sequence> <opaqueActivity "speichern"/> </sequence> 14
  • 38. Beispiel <invoke "Angebot"/> <sequence> <receive "Login"/> <invoke "Bestätigung"/> </sequence> <receive "ablehnen"/> <sequence> <receive "fertig"/> <sequence> <invoke "Bestätigung"/> <receive "annehmen"/> </sequence> <opaqueActivity "speichern"/> </sequence> 15
  • 39. Beispiel <invoke "Angebot"/> <sequence> <receive "Login"/> <invoke "Bestätigung"/> </sequence> <receive "ablehnen"/> <sequence> <receive "fertig"/> <sequence> <invoke "Bestätigung"/> <receive "annehmen"/> </sequence> <opaqueActivity "speichern"/> </sequence> Alternative  zusammenfassen 15
  • 40. Beispiel <invoke "Angebot"/> <sequence> <receive "Login"/> <invoke "Bestätigung"/> </sequence> <receive "ablehnen"/> <sequence> <receive "fertig"/> <sequence> <invoke "Bestätigung"/> <receive "annehmen"/> </sequence> <opaqueActivity "speichern"/> </sequence> Alternative  zusammenfassen 15
  • 41. Beispiel <invoke "Angebot"/> <sequence> <receive "Login"/> <invoke "Bestätigung"/> </sequence> Split <receive "ablehnen"/> <sequence> <receive "fertig"/> <sequence> <invoke "Bestätigung"/> <receive "annehmen"/> </sequence> <opaqueActivity "speichern"/> </sequence> Alternative  zusammenfassen 15
  • 42. Beispiel <invoke "Angebot"/> <sequence> <receive "Login"/> <invoke "Bestätigung"/> </sequence> Split <receive "ablehnen"/> <sequence> <receive "fertig"/> <sequence> <invoke "Bestätigung"/> <receive "annehmen"/> </sequence> <opaqueActivity "speichern"/> </sequence> Alternative  zusammenfassen 15
  • 43. Beispiel Merge <invoke "Angebot"/> <sequence> <receive "Login"/> <invoke "Bestätigung"/> </sequence> Split <receive "ablehnen"/> <sequence> <receive "fertig"/> <sequence> <invoke "Bestätigung"/> <receive "annehmen"/> </sequence> <opaqueActivity "speichern"/> </sequence> Alternative  zusammenfassen 15
  • 44. Beispiel <invoke "Angebot"/> <sequence> <receive "Login"/> <invoke "Bestätigung"/> </sequence> <sequence> <pick> <receive "fertig"/> <onMessage "ablehnen"/> <invoke "Bestätigung"/> <onMessage "annehmen"> </sequence> <opaqueActivity "speichern"/> </onMessage> </pick> Alternative  zusammenfassen 16
  • 45. Beispiel <invoke "Angebot"/> <sequence> <receive "Login"/> <invoke "Bestätigung"/> </sequence> externe  Entscheidung <sequence> <pick> <receive "fertig"/> <onMessage "ablehnen"/> <invoke "Bestätigung"/> <onMessage "annehmen"> </sequence> <opaqueActivity "speichern"/> </onMessage> </pick> Alternative  zusammenfassen 16
  • 46. Beispiel <invoke "Angebot"/> <sequence> <receive "Login"/> <invoke "Bestätigung"/> </sequence> <sequence> <pick> <receive "fertig"/> <onMessage "ablehnen"/> <invoke "Bestätigung"/> <onMessage "annehmen"> </sequence> <opaqueActivity "speichern"/> </onMessage> </pick> 17
  • 47. Beispiel <invoke "Angebot"/> <sequence> <receive "Login"/> <invoke "Bestätigung"/> </sequence> <sequence> <pick> <receive "fertig"/> <onMessage "ablehnen"/> <invoke "Bestätigung"/> <onMessage "annehmen"> </sequence> <opaqueActivity "speichern"/> </onMessage> </pick> Schleife  zusammenfassen 17
  • 48. Beispiel <invoke "Angebot"/> <sequence> <receive "Login"/> <invoke "Bestätigung"/> </sequence> <sequence> <pick> <receive "fertig"/> <onMessage "ablehnen"/> <invoke "Bestätigung"/> <onMessage "annehmen"> </sequence> <opaqueActivity "speichern"/> </onMessage> </pick> Schleife  zusammenfassen 17
  • 49. Beispiel <invoke "Angebot"/> <sequence> <receive "Login"/> <invoke "Bestätigung"/> </sequence> <sequence> <while> <receive "fertig"/> <pick> <invoke "Bestätigung"/> <onMessage "ablehnen"> </sequence> <invoke "Angebot"/> </onMessage> <onMessage "annehmen"> <sequence> <invoke "Angebot"/> <opaqueActivity "speichern"/> </sequence> </onMessage> </pick> Schleife  zusammenfassen </while> 18
  • 50. Beispiel <invoke "Angebot"/> <sequence> <receive "Login"/> <invoke "Bestätigung"/> </sequence> <sequence> <while> <receive "fertig"/> <pick> <invoke "Bestätigung"/> <onMessage "ablehnen"> </sequence> <invoke "Angebot"/> </onMessage> <onMessage "annehmen"> <sequence> <invoke "Angebot"/> <opaqueActivity "speichern"/> </sequence> </onMessage> </pick> </while> 19
  • 51. Beispiel <invoke "Angebot"/> <sequence> <receive "Login"/> <invoke "Bestätigung"/> </sequence> <sequence> <while> <receive "fertig"/> <pick> <invoke "Bestätigung"/> <onMessage "ablehnen"> </sequence> <invoke "Angebot"/> </onMessage> <onMessage "annehmen"> <sequence> <invoke "Angebot"/> <opaqueActivity "speichern"/> </sequence> </onMessage> </pick> Sequenz  zusammenfassen </while> 19
  • 52. Beispiel <invoke "Angebot"/> <sequence> <receive "Login"/> <invoke "Bestätigung"/> </sequence> <sequence> <while> <receive "fertig"/> <pick> <invoke "Bestätigung"/> <onMessage "ablehnen"> </sequence> <invoke "Angebot"/> </onMessage> <onMessage "annehmen"> <sequence> <invoke "Angebot"/> <opaqueActivity "speichern"/> </sequence> </onMessage> </pick> Sequenz  zusammenfassen </while> 19
  • 53. Beispiel <sequence> <invoke "Angebot"/> <while> <pick> <onMessage "ablehnen"> <invoke "Angebot"/> </onMessage> <sequence> <onMessage "annehmen"> <receive "Login"/> <sequence> <invoke "Bestätigung"/> <invoke "Angebot"/> </sequence> <opaqueActivity "speichern"/> </sequence> </onMessage> </pick> </while> <receive "fertig"/> <invoke "Bestätigung"/> </sequence> Sequenz  zusammenfassen 20
  • 54. Beispiel <sequence> <invoke "Angebot"/> <while> <pick> <onMessage "ablehnen"> <invoke "Angebot"/> </onMessage> <sequence> <onMessage "annehmen"> <receive "Login"/> <sequence> <invoke "Bestätigung"/> <invoke "Angebot"/> </sequence> <opaqueActivity "speichern"/> </sequence> </onMessage> </pick> </while> <receive "fertig"/> <invoke "Bestätigung"/> </sequence> 21
  • 55. Beispiel <sequence> <invoke "Angebot"/> <while> <pick> <onMessage "ablehnen"> <invoke "Angebot"/> </onMessage> <sequence> <onMessage "annehmen"> <receive "Login"/> <sequence> <invoke "Bestätigung"/> <invoke "Angebot"/> </sequence> <opaqueActivity "speichern"/> </sequence> </onMessage> </pick> </while> <receive "fertig"/> <invoke "Bestätigung"/> nebenläufige  Stränge </sequence> zusammenfassen 21
  • 56. Beispiel <sequence> <invoke "Angebot"/> <while> <pick> <onMessage "ablehnen"> <invoke "Angebot"/> </onMessage> <sequence> <onMessage "annehmen"> <receive "Login"/> <sequence> <invoke "Bestätigung"/> <invoke "Angebot"/> </sequence> <opaqueActivity "speichern"/> </sequence> </onMessage> </pick> </while> <receive "fertig"/> <invoke "Bestätigung"/> nebenläufige  Stränge </sequence> zusammenfassen 21
  • 57. Beispiel <flow> <sequence> <receive "Login"/> <invoke "Bestätigung"/> </sequence> <sequence> <invoke "Angebot"/> <while> <pick> <onMessage "ablehnen"> <invoke "Angebot"/> </onMessage> <onMessage "annehmen"> <sequence> <invoke "Angebot"/> <opaqueActivity "speichern"/> </sequence> </onMessage> </pick> </while> <receive "fertig"/> nebenläufige  Stränge <invoke "Bestätigung"/> </sequence> zusammenfassen </flow> 22
  • 58. Beispiel <flow> <sequence> <receive "Login"/> <invoke "Bestätigung"/> </sequence> <sequence> <invoke "Angebot"/> <while> <pick> <onMessage "ablehnen"> <invoke "Angebot"/> </onMessage> <onMessage "annehmen"> <sequence> <invoke "Angebot"/> <opaqueActivity "speichern"/> </sequence> </onMessage> </pick> </while> <receive "fertig"/> Transformation <invoke "Bestätigung"/> </sequence> abgeschlossen </flow> 23
  • 59. Übersetzung  Petrinetze  ➙  BPEL • insgesamt  17  Transformationsregeln • weitere  Regeln  zur  Codeoptimierung • implementiert  im  Werkzeug  oWFN2BPEL • vollautomatische  Übersetzung • anschließende  manuelle  Verfeinerung  zu   ausführbarem  Code 24
  • 60.                                                                                  Framework BPEL Petrinetz-­‐Modell LÜCKE Analyse Web  Service • Kompatibilität • Compliance Spezifikation/ • Bedienbarkeit Contract Unterstützung • Partnersynthese Choreographie • Adaptersynthese • Diagnose/Korrektur 25
  • 61.                                                                                  Framework BPEL Petrinetz-­‐Modell LÜCKE Analyse Web  Service • Kompatibilität BPEL2oWFN • Compliance Spezifikation/ • Bedienbarkeit Contract Unterstützung • Partnersynthese Choreographie • Adaptersynthese • Diagnose/Korrektur 25
  • 62.                                                                                  Framework BPEL Petrinetz-­‐Modell LÜCKE Analyse Web  Service • Kompatibilität BPEL2oWFN • Compliance Spezifikation/ • Bedienbarkeit Contract oWFN2BPEL Unterstützung • Partnersynthese Choreographie • Adaptersynthese • Diagnose/Korrektur 25
  • 63.                                                                                  Framework BPEL Petrinetz-­‐Modell Analyse Web  Service • Kompatibilität BPEL2oWFN • Compliance Spezifikation/ • Bedienbarkeit Contract oWFN2BPEL Unterstützung • Partnersynthese Choreographie • Adaptersynthese • Diagnose/Korrektur 25
  • 64. Fazit • Verbindung  von  Petrinetzen  als Modellierungs-­‐/Spezifikationssprache und  BPEL  als  Implementierungs-­‐ Petrinetze – BPEL sprache BPEL – Petrinetze • Vervollständigung  des Tools4BPEL-­‐Frameworks • Übersetzungs-­‐/Analyse-­‐Tools  sind  frei  verfügbar: www.informatik.hu-­‐berlin.de/top/tools4bpel www.informatik.uni-­‐rostock.de/~nl/tools 26
  • 65. Fazit • Verbindung  von  Petrinetzen  als Modellierungs-­‐/Spezifikationssprache und  BPEL  als  Implementierungs-­‐ Petrinetze – BPEL sprache BPEL – Petrinetze • Vervollständigung  des Tools4BPEL-­‐Frameworks • Übersetzungs-­‐/Analyse-­‐Tools  sind  frei  verfügbar: www.informatik.hu-­‐berlin.de/top/tools4bpel www.informatik.uni-­‐rostock.de/~nl/tools 26
  • 66. Fazit • Verbindung  von  Petrinetzen  als Modellierungs-­‐/Spezifikationssprache und  BPEL  als  Implementierungs-­‐ Petrinetze – BPEL sprache BPEL – Petrinetze • Vervollständigung  des Tools4BPEL-­‐Frameworks 26
  • 67. Fazit • Verbindung  von  Petrinetzen  als Modellierungs-­‐/Spezifikationssprache und  BPEL  als  Implementierungs-­‐ Petrinetze – BPEL sprache BPEL – Petrinetze • Vervollständigung  des Tools4BPEL-­‐Frameworks 26
  • 68. Fazit • Verbindung  von  Petrinetzen  als Modellierungs-­‐/Spezifikationssprache und  BPEL  als  Implementierungs-­‐ Petrinetze – BPEL sprache BPEL – Petrinetze • Vervollständigung  des Tools4BPEL-­‐Frameworks • Übersetzungs-­‐/Analyse-­‐Tools  sind  frei  verfügbar: www.informatik.hu-­‐berlin.de/top/tools4bpel www.informatik.uni-­‐rostock.de/~nl/tools 26
  • 69. Übersetzung  von  Petrinetzen in  BPEL-­‐Prozesse Fully-­‐automatic  Translation  of  Open  Workflow  Net   Models  into  Simple  Abstract  BPEL  Processes Niels  Lohmann  und  Jens  Kleine Modellierung  2008  ▪  Berlin  ▪  13.  März  2008 UNIVERSITÄT ROSTOCK