Übersetzung	
  von	
  Petrinetzen
                   in	
  BPEL-­‐Prozesse
   Fully-­‐automatic	
  Translation	
  of	
  Op...
BPEL
• Sprache	
  zur	
  Spezifikation	
  und	
  Implementierung	
  von	
  
  Geschäftsprozessen	
  mit	
  Webservices
• "P...
BPEL
• Sprache	
  zur	
  Spezifikation	
  und	
  Implementierung	
  von	
  
  Geschäftsprozessen	
  mit	
  Webservices
• "P...
BPEL	
  zur	
  Modellierung?
• Grenzen	
  als	
  Modellierungs-­‐/Spezifikationssprache
   XML-­‐basiert:	
  Wirklich	
  l...
Petrinetze

• grafischer	
  Formalismus

• formale	
  Semantik        empfange
                             Login
• Kontrol...
Petrinetze

• grafischer	
  Formalismus

• formale	
  Semantik        empfange
                             Login
• Kontrol...
Petrinetze

• grafischer	
  Formalismus

• formale	
  Semantik                      empfange
                              ...
Petrinetzmodelle	
  für	
  Services

• Analyse	
  von	
  Services
   Kompatibilität
   Compliance                      L...
Zwei	
  Welten
     BPEL                 Petrinetz-­‐Modell




                 LÜCKE
                         Analyse
We...
Zwei	
  Welten
     BPEL                  Petrinetz-­‐Modell




                 LÜCKE
                          Analyse
...
Übersetzung	
  Petrinetze	
  ➙	
  BPEL




                                         7
Übersetzung	
  Petrinetze	
  ➙	
  BPEL
• Regelbasierter	
  Übersetzungsansatz
   Teilnetze	
  werden	
  zusammengefasst	
...
Übersetzung	
  Petrinetze	
  ➙	
  BPEL
• Regelbasierter	
  Übersetzungsansatz
   Teilnetze	
  werden	
  zusammengefasst	
...
Beispiel



           Login                Angebot
                    speichern
Bestellung fertig               ablehnen...
Beispiel
                    zwei	
  Startknoten



           Login                          Angebot
                    ...
Beispiel
                    zwei	
  Startknoten



           Login                          Angebot
                    ...
Beispiel
                    zwei	
  Startknoten



           Login                               Angebot
               ...
Beispiel
                    zwei	
  Startknoten



           Login                               Angebot
               ...
Beispiel
                        zwei	
  Startknoten



           Login                                   Angebot
       ...
Beispiel
                        zwei	
  Startknoten



           Login                                   Angebot
       ...
Beispiel



           Login                Angebot
                    speichern
Bestellung fertig               ablehnen...
Beispiel



           Login                                  Angebot
                           speichern
Bestellung fert...
Beispiel



           Login                                  Angebot
                           speichern
Bestellung fert...
Beispiel
                           <opaqueActivity "speichern"/>



                                                     ...
Beispiel
                           <opaqueActivity "speichern"/>


Empfangsaktivität
                                    ...
Beispiel
                           <opaqueActivity "speichern"/>


Empfangsaktivität                                     ...
Beispiel
                              interne	
  Aktivität
                           <opaqueActivity "speichern"/>


Emp...
Beispiel
                           <opaqueActivity "speichern"/>



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



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



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



           ...
Beispiel
                           <opaqueActivity "speichern"/>



                                                     ...
Beispiel           Sequenzen	
  zusammenfassen
                           <opaqueActivity "speichern"/>



               ...
Beispiel           Sequenzen	
  zusammenfassen
                           <opaqueActivity "speichern"/>



               ...
Beispiel           Sequenzen	
  zusammenfassen
                           <opaqueActivity "speichern"/>



               ...
Beispiel           Sequenzen	
  zusammenfassen
                           <opaqueActivity "speichern"/>



               ...
Beispiel            Sequenzen	
  zusammenfassen


                                                <invoke "Angebot"/>
<seq...
Beispiel


                                             <invoke "Angebot"/>
<sequence>
 <receive "Login"/>
 <invoke "Bestä...
Beispiel


                                              <invoke "Angebot"/>
<sequence>
 <receive "Login"/>
 <invoke "Best...
Beispiel


                                              <invoke "Angebot"/>
<sequence>
 <receive "Login"/>
 <invoke "Best...
Beispiel


                                                     <invoke "Angebot"/>
<sequence>
 <receive "Login"/>
 <invok...
Beispiel


                                                     <invoke "Angebot"/>
<sequence>
 <receive "Login"/>
 <invok...
Beispiel

                                       Merge
                                                         <invoke "A...
Beispiel


                                              <invoke "Angebot"/>
<sequence>
 <receive "Login"/>
 <invoke "Best...
Beispiel


                                              <invoke "Angebot"/>
<sequence>
 <receive "Login"/>
 <invoke "Best...
Beispiel


                                              <invoke "Angebot"/>
<sequence>
 <receive "Login"/>
 <invoke "Best...
Beispiel


                                              <invoke "Angebot"/>
<sequence>
 <receive "Login"/>
 <invoke "Best...
Beispiel


                                              <invoke "Angebot"/>
<sequence>
 <receive "Login"/>
 <invoke "Best...
Beispiel
                                              <invoke "Angebot"/>
<sequence>
 <receive "Login"/>
 <invoke "Bestät...
Beispiel
                                              <invoke "Angebot"/>
<sequence>
 <receive "Login"/>
 <invoke "Bestät...
Beispiel
                                              <invoke "Angebot"/>
<sequence>
 <receive "Login"/>
 <invoke "Bestät...
Beispiel
                                              <invoke "Angebot"/>
<sequence>
 <receive "Login"/>
 <invoke "Bestät...
Beispiel

                             <sequence>
                              <invoke "Angebot"/>
                      ...
Beispiel

                             <sequence>
                              <invoke "Angebot"/>
                      ...
Beispiel

                             <sequence>
                              <invoke "Angebot"/>
                      ...
Beispiel

                             <sequence>
                              <invoke "Angebot"/>
                      ...
Beispiel                 <flow>
                          <sequence>
                           <receive "Login"/>
       ...
Beispiel         <flow>
                  <sequence>
                   <receive "Login"/>
                   <invoke "Bes...
Übersetzung	
  Petrinetze	
  ➙	
  BPEL


• insgesamt	
  17	
  Transformationsregeln
• weitere	
  Regeln	
  zur	
  Codeopti...
 	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
 	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
 	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
 	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
Fazit
• Verbindung	
  von	
  Petrinetzen	
  als
  Modellierungs-­‐/Spezifikationssprache
  und	
  BPEL	
  als	
  Implementi...
Fazit
• Verbindung	
  von	
  Petrinetzen	
  als
  Modellierungs-­‐/Spezifikationssprache
  und	
  BPEL	
  als	
  Implementi...
Fazit
• Verbindung	
  von	
  Petrinetzen	
  als
  Modellierungs-­‐/Spezifikationssprache
  und	
  BPEL	
  als	
  Implementi...
Fazit
• Verbindung	
  von	
  Petrinetzen	
  als
  Modellierungs-­‐/Spezifikationssprache
  und	
  BPEL	
  als	
  Implementi...
Fazit
• Verbindung	
  von	
  Petrinetzen	
  als
  Modellierungs-­‐/Spezifikationssprache
  und	
  BPEL	
  als	
  Implementi...
Übersetzung	
  von	
  Petrinetzen
                   in	
  BPEL-­‐Prozesse
   Fully-­‐automatic	
  Translation	
  of	
  Op...
Nächste SlideShare
Wird geladen in …5
×

Übersetzung von Petrinetzen in BPEL-Prozesse

1.064 Aufrufe

Veröffentlicht am

Conference presentation given by Niels Lohmann on March 13, 2008 in Berlin, Germany at the Modellierung 2008.

0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.064
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
12
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Übersetzung von Petrinetzen in BPEL-Prozesse

  1. 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. 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. 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. 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. 5. Petrinetze • grafischer  Formalismus • formale  Semantik empfange Login • Kontroll-­‐/Datenfluss sende Bestätigung 4
  6. 6. Petrinetze • grafischer  Formalismus • formale  Semantik empfange Login • Kontroll-­‐/Datenfluss • einfache  Erweiterung sende Bestätigung zur  Modellierung von  asynchronem Nachrichtenaustausch 4
  7. 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. 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. 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. 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
  11. 11. Übersetzung  Petrinetze  ➙  BPEL 7
  12. 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. 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. 14. Beispiel Login Angebot speichern Bestellung fertig ablehnen Bestätigung annehmen 8
  15. 15. Beispiel zwei  Startknoten Login Angebot speichern Bestellung fertig ablehnen Bestätigung annehmen 8
  16. 16. Beispiel zwei  Startknoten Login Angebot speichern Bestellung fertig ablehnen Bestätigung annehmen 8
  17. 17. Beispiel zwei  Startknoten Login Angebot speichern Bestellung fertig ablehnen Bestätigung annehmen beliebige Schleife 8
  18. 18. Beispiel zwei  Startknoten Login Angebot speichern Bestellung fertig ablehnen Bestätigung annehmen beliebige Schleife 8
  19. 19. Beispiel zwei  Startknoten Login Angebot speichern Bestellung fertig ablehnen Bestätigung annehmen mehrfache beliebige Ausführung Schleife 8
  20. 20. Beispiel zwei  Startknoten Login Angebot speichern Bestellung fertig ablehnen Bestätigung annehmen mehrfache beliebige Ausführung Schleife 8
  21. 21. Beispiel Login Angebot speichern Bestellung fertig ablehnen Bestätigung annehmen 9
  22. 22. Beispiel Login Angebot speichern Bestellung fertig ablehnen Bestätigung annehmen Kommunikation  annotieren 9
  23. 23. Beispiel Login Angebot speichern Bestellung fertig ablehnen Bestätigung annehmen Kommunikation  annotieren 9
  24. 24. Beispiel <opaqueActivity "speichern"/> <invoke "Angebot"/> <receive "Login"/> <receive "fertig"/> <receive "ablehnen"/> <invoke "Bestätigung"/> <receive "annehmen"/> Kommunikation  annotieren 10
  25. 25. Beispiel <opaqueActivity "speichern"/> Empfangsaktivität <invoke "Angebot"/> <receive "Login"/> <receive "fertig"/> <receive "ablehnen"/> <invoke "Bestätigung"/> <receive "annehmen"/> Kommunikation  annotieren 10
  26. 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. 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. 28. Beispiel <opaqueActivity "speichern"/> <invoke "Angebot"/> <receive "Login"/> <receive "fertig"/> <receive "ablehnen"/> <invoke "Bestätigung"/> <receive "annehmen"/> 11
  29. 29. Beispiel Mehrfachausführung  entfalten <opaqueActivity "speichern"/> <invoke "Angebot"/> <receive "Login"/> <receive "fertig"/> <receive "ablehnen"/> <invoke "Bestätigung"/> <receive "annehmen"/> 11
  30. 30. Beispiel Mehrfachausführung  entfalten <opaqueActivity "speichern"/> <invoke "Angebot"/> <receive "Login"/> <receive "fertig"/> <receive "ablehnen"/> <invoke "Bestätigung"/> <receive "annehmen"/> 11
  31. 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. 32. Beispiel <opaqueActivity "speichern"/> <invoke "Angebot"/> <receive "Login"/> <receive "ablehnen"/> <invoke "Bestätigung"/> <receive "annehmen"/> <receive "fertig"/> <invoke "Bestätigung"/> 13
  33. 33. Beispiel Sequenzen  zusammenfassen <opaqueActivity "speichern"/> <invoke "Angebot"/> <receive "Login"/> <receive "ablehnen"/> <invoke "Bestätigung"/> <receive "annehmen"/> <receive "fertig"/> <invoke "Bestätigung"/> 13
  34. 34. Beispiel Sequenzen  zusammenfassen <opaqueActivity "speichern"/> <invoke "Angebot"/> <receive "Login"/> <receive "ablehnen"/> <invoke "Bestätigung"/> <receive "annehmen"/> <receive "fertig"/> <invoke "Bestätigung"/> 13
  35. 35. Beispiel Sequenzen  zusammenfassen <opaqueActivity "speichern"/> <invoke "Angebot"/> <receive "Login"/> <receive "ablehnen"/> <invoke "Bestätigung"/> <receive "annehmen"/> <receive "fertig"/> <invoke "Bestätigung"/> 13
  36. 36. Beispiel Sequenzen  zusammenfassen <opaqueActivity "speichern"/> <invoke "Angebot"/> <receive "Login"/> <receive "ablehnen"/> <invoke "Bestätigung"/> <receive "annehmen"/> <receive "fertig"/> <invoke "Bestätigung"/> 13
  37. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 66. Fazit • Verbindung  von  Petrinetzen  als Modellierungs-­‐/Spezifikationssprache und  BPEL  als  Implementierungs-­‐ Petrinetze – BPEL sprache BPEL – Petrinetze • Vervollständigung  des Tools4BPEL-­‐Frameworks 26
  67. 67. Fazit • Verbindung  von  Petrinetzen  als Modellierungs-­‐/Spezifikationssprache und  BPEL  als  Implementierungs-­‐ Petrinetze – BPEL sprache BPEL – Petrinetze • Vervollständigung  des Tools4BPEL-­‐Frameworks 26
  68. 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. 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

×