La lecture à portée de main
364
pages
Deutsch
Documents
2010
Écrit par
Daniel Martin
Publié par
universitat_stuttgart
Le téléchargement nécessite un accès à la bibliothèque YouScribe Tout savoir sur nos offres
364
pages
Deutsch
Ebook
2010
Le téléchargement nécessite un accès à la bibliothèque YouScribe Tout savoir sur nos offres
Publié par
Publié le
01 janvier 2010
Nombre de lectures
15
Langue
Deutsch
Poids de l'ouvrage
3 Mo
Publié par
Publié le
01 janvier 2010
Nombre de lectures
15
Langue
Deutsch
Poids de l'ouvrage
3 Mo
A Tuplespace-Based Execution Model for
Decentralized Workflow Enactment
– Applied to BPEL –
Von der Fakultät für Informatik, Elektrotechnik und Informationstechnik der
Universität Stuttgart zur Erlangung der Würde eines Doktors der
Naturwissenschaften (Dr. rer. nat.) genehmigte Abhandlung
Vorgelegt von
Daniel Martin
aus Lindau a.B.
Hauptberichter: Prof. Dr. rer. nat. Frank Leymann
Mitberichter: A.o. Univ. Prof. Dr. Dipl.-Ing. Eva Kühn
Tag der mündlichen Prüfung: 04. Mai 2010
Institut für Architektur von Anwendungssystemen
der Universität Stuttgart
2010Martin, Daniel:
A Tuplespace-Based Execution Model for Decentralized Workflow
Enactment : Applied to BPEL / Daniel Martin. –
Als Ms. gedr.. – Berlin : dissertation.de – Verlag im Internet GmbH,
2010
Zugl.: Stuttgart, Univ., Diss., 2010
ISBN 978-3-86624-495-5
Bibliografische Information der Deutschen
Nationalbibliothek
Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der
Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind
im Internet über http://dnb.d-nb.de abrufbar.
dissertation.de – Verlag im Internet GmbH 2010
Alle Rechte, auch das des auszugsweisen Nachdruckes, der
auszugsweisen oder vollständigen Wiedergabe, der Speicherung in
Datenverarbeitungsanlagen, auf Datenträgern oder im Internet und der
Übersetzung, vorbehalten.
Es wird ausschließlich chlorfrei gebleichtes
Papier (TCF) nach DIN-ISO 9706 verwendet.
Printed in Germany.
dissertation.de - Verlag im Internet GmbH
URL: http://www.dissertation.de
CONTENTS
1 Introduction 1
1.1 Scenario 1: Organizational Change . . . . . . . . . . . . . . . . . . 3
1.2 2: Infrastructural . . . . . . . . . . . . . . . . . . 5
1.3 Scenario 3: Optimized Process Execution . . . . . . . . . . . . . . 6
1.4 Focus of This Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.5 Summary of Scientific Contributions . . . . . . . . . . . . . . . . . 8
1.6 Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2 Background and Related Work 13
2.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.1 Message-Oriented Middleware . . . . . . . . . . . . . . . . 14
2.1.2 Tuplespaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.1.3 Petri Nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.1.4 SOA, Web Services and WS-BPEL . . . . . . . . . . . . . . . 18
2.2 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.1 Coordination Languages . . . . . . . . . . . . . . . . . . . . 21
2.2.1.1 Tuplespaces . . . . . . . . . . . . . . . . . . . . . . 21
2.2.1.2 Message-Oriented Middleware . . . . . . . . . . 29
2.2.1.3 Process Algebra . . . . . . . . . . . . . . . . . . . . 30
iii2.2.2 Petri Nets in Workflows . . . . . . . . . . . . . . . . . . . . . 32
2.2.2.1 Petri Nets in Workflow Execution . . . . . . . . . 32
2.2.2.2 Petri Nets in W Distribution . . . . . . . . 35
2.2.2.3 Petri Net Transformations of WS-BPEL . . . . . . 36
2.2.3 Distributed Workflow Enactment . . . . . . . . . . . . . . . 39
2.2.3.1 Systems Using BPEL itself as Execution Model . 39
2.2.3.2 Agent-Based Systems . . . . . . . . . . . . . . . . 42
2.2.3.3 Grid/Peer-to-Peer Workflow Systems . . . . . . . 44
2.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3 Middleware in Workflow Systems 51
3.1 Requirements on a Decentralized Workflow Engine . . . . . . . . 52
3.1.1 Operational Requirements on Workflow Systems . . . . . 52
3.1.2 Requirements on the Execution Model . . . . . . . . . . . . 55
3.2 Review of Existing Workflow Engines . . . . . . . . . . . . . . . . . 57
3.2.1 Stuttgarter W Maschine (SWoM) . . . . . . . . . . 57
3.2.2 Apache ODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.2.3 ActiveBPEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.2.4 Discussion of Results . . . . . . . . . . . . . . . . . . . . . . 65
3.3 Comparison of Tuplespaces and MOM . . . . . . . . . . . . . . . . 68
3.3.1 High-Level Comparison of Features . . . . . . . . . . . . . . 68
3.3.2 Comparison Using EAI-Patterns . . . . . . . . . . . . . . . . 75
3.3.3 Discussion of Results . . . . . . . . . . . . . . . . . . . . . . 76
3.4 Comparison of Tuplespaces and RDBMS . . . . . . . . . . . . . . . 79
3.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4 Distributed Process Execution Model 85
4.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.2 Executable Workflow Nets . . . . . . . . . . . . . . . . . . . . . . . . 87
4.2.1 Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
4.2.2 Semantics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.2.3 Detection of Conflicts . . . . . . . . . . . . . . . . . . . . . . 97
4.2.4 Join Matching . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
iv Contents4.2.5 Structural Properties . . . . . . . . . . . . . . . . . . . . . . 105
4.2.6 Graphical Notation . . . . . . . . . . . . . . . . . . . . . . . . 106
4.2.7 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
4.3 Behavioral Equivalent Place-Transition Nets . . . . . . . . . . . . . 115
4.3.1 Place-Transition Nets . . . . . . . . . . . . . . . . . . . . . . 115
4.3.2 Mapping EWFN to PT-Nets . . . . . . . . . . . . . . . . 115Linda
4.4 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
4.5 Common Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
4.5.1 Readall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
4.5.2 Takeall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
4.5.3 Update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
4.5.4 Multiple Arcs Between Nodes . . . . . . . . . . . . . . . . . 126
4.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
5 Transformation of WS-BPEL 2.0 into Executable Workflow Nets 131
5.1 Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
5.1.1 EWFN Extensions . . . . . . . . . . . . . . . . . . . . . . . . 133
5.1.1.1 . . . . . . . . . . . . . . . . . . . . . . . . . . 133
5.1.1.2 Tuple Structure and Types . . . . . . . . . . . . . 134
5.1.1.3 Graphical Notation . . . . . . . . . . . . . . . . . . 137
5.1.2 Transformation Details . . . . . . . . . . . . . . . . . . . . . 139
5.2 Basic Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
5.2.1 Receive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
5.2.2 Reply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
5.2.3 Invoke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
5.2.4 Assign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
5.2.5 Throw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
5.2.6 Wait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
5.2.7 Empty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
5.2.8 Exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
5.2.9 Process Termination . . . . . . . . . . . . . . . . . . . . . . . 162
5.3 Structured Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
5.3.1 Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Contents v
sync5.3.2 While . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
5.3.3 RepeatUntil . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
5.3.4 If . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
5.3.5 Pick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
5.3.6 Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
5.3.7 Link-Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
5.3.8 Link-Target . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
5.3.9 ForEach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
5.4 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
5.4.1 Scope Pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
5.4.2 Dynamic Scopes and Scope Nesting . . . . . . . . . . . . . 191
5.4.3 Fault Handler . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
5.4.3.1 Scope Termination . . . . . . . . . . . . . . . . . . 199
5.4.4 Termination Handler . . . . . . . . . . . . . . . . . . . . . . 200
5.4.5 Compensation Handler . . . . . . . . . . . . . . . . . . . . . 202
5.4.5.1 Compensate . . . . . . . . . . . . . . . . . . . . . . 205
5.4.6 Event Handler . . . . . . . . . . . . . . . . . . . . . . . . . . 208
5.4.7 Scope Isolation . . . . . . . . . . . . . . . . . . . . . . . . . . 211
5.5 Example: Simple BPEL Process as EWFN . . . . . . . . . . . . . . . 212
5.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
6 Tuplespace-Based Execution of EWFNs 217
6.1 A Generic Approach to Execute Petri Nets Using Tuplespaces . . 218
6.1.1 Analysis of Petri Net Tuple Encodi