Service orchestration techniques combine the benefits of Service Oriented Architecture (SOA) and Business Process Management (BPM) to compose and coordinate distributed software services. On the other hand, Software-as-a-Service (SaaS) is gaining popularity as a software delivery model through cloud platforms due to the many benefits to software vendors, as well as their customers. Multi-tenancy, which refers to the sharing of a single application instance across multiple customers or user groups (called tenants), is an essential characteristic of the SaaS model. Written in an easy to follow style with discussions supported by real-world examples, Service Orchestration as Organization introduces a novel approach with associated language, framework, and tool support to show how service orchestration techniques can be used to engineer and deploy SaaS applications. - Describes the benefits as well as the challenges of building adaptive, multi-tenant software service applications using service-orchestration techniques - Provides a thorough synopsis of the current state of the art, including the advantages and drawbacks of the adaptation techniques available - Describes in detail how the underlying framework of the new approach has been implemented using available technologies, such as business rules engines and web services
Malinda Kapuruge received his PhD degree in Computer Science and Software Engineering from Swinburne, University of Technology (Melbourne Australia) in 2012. Currently working as a Postdoctoral Research Fellow in Software Engineering at Swinburne University of Technology, he is investigating how BPM practices can be used to build multi-tenanted, adaptable service-based software systems. His research interest includes business process management, service oriented architecture, cloud computing and adaptive software systems.
Kapuruge / Han / Colman
Service Orchestration as Organization jetzt bestellen!
Weitere Infos & Material
1;Front Cover;1
2;Service Orchestration as Organization;4
3;Copyright Page;5
4;Contents;6
5;List of Figures;12
6;List of Tables;16
7;List of Listings;18
8;Preface;20
9;About the Authors;22
10;One;24
10.1;1 Introduction;26
10.1.1;1.1 Business process management;26
10.1.1.1;1.1.1 BPM in practice;28
10.1.1.2;1.1.2 BPM in service-oriented systems;28
10.1.2;1.2 Service orchestration and its adaptation;30
10.1.2.1;1.2.1 Novel requirements for service orchestration;30
10.1.2.2;1.2.2 Runtime adaptability in service orchestration;31
10.1.3;1.3 Research goals;33
10.1.4;1.4 Approach overview;37
10.1.5;1.5 Contributions;40
10.1.6;1.6 Overview of this book;40
10.2;2 Motivational Scenario;44
10.2.1;2.1 RoSAS business model;44
10.2.2;2.2 Support for controlled change;46
10.2.3;2.3 Support for SIMT;48
10.2.4;2.4 Requirements of service orchestration;49
10.2.5;2.5 Summary;50
10.3;3 Literature Review;52
10.3.1;3.1 BPM – an overview;52
10.3.2;3.2 BPM and SOA;55
10.3.3;3.3 Adaptability in BPM;58
10.3.4;3.4 Techniques to improve adaptability in BPM;59
10.3.4.1;3.4.1 Proxy-based adaptation;60
10.3.4.2;3.4.2 Dynamic explicit changes;62
10.3.4.3;3.4.3 Business rules integration;64
10.3.4.4;3.4.4 Aspect orientation;66
10.3.4.5;3.4.5 Template customisation;69
10.3.4.6;3.4.6 Constraint satisfaction;72
10.3.5;3.5 Summary and observations;76
10.3.5.1;3.5.1 Summary and evaluation;76
10.3.5.2;3.5.2 Observations and lessons learnt;77
10.3.6;3.6 Towards an adaptive service orchestration framework;82
10.3.7;3.7 Summary;83
11;Two;84
11.1;4 Orchestration as Organisation;86
11.1.1;4.1 The organisation;87
11.1.1.1;4.1.1 Structure;88
11.1.1.2;4.1.2 Processes;94
11.1.2;4.2 Loosely coupled tasks;96
11.1.2.1;4.2.1 Task dependencies;97
11.1.2.2;4.2.2 Events and event patterns;99
11.1.2.3;4.2.3 Support for dynamic modifications;101
11.1.3;4.3 Behaviour-based processes;103
11.1.3.1;4.3.1 Organisational behaviour;104
11.1.3.2;4.3.2 Process definitions;105
11.1.4;4.4 Two-tier constraints;107
11.1.4.1;4.4.1 The boundary for a safe modification;107
11.1.4.2;4.4.2 The minimal set of constraints;109
11.1.4.3;4.4.3 Benefits of two-tier constraints;111
11.1.5;4.5 Behaviour specialisation;112
11.1.5.1;4.5.1 Variations in organisational behaviour;112
11.1.5.2;4.5.2 Specialisation rules;115
11.1.5.3;4.5.3 Support for unforeseen variations;116
11.1.6;4.6 Interaction membranes;117
11.1.6.1;4.6.1 Indirection of processes and external interactions;119
11.1.6.2;4.6.2 Data transformation;120
11.1.6.3;4.6.3 Benefits of membranous design;122
11.1.7;4.7 Support for adaptability;123
11.1.7.1;4.7.1 Adaptability in layers of the organisation;123
11.1.7.2;4.7.2 Separation of control and functional process;124
11.1.8;4.8 Managing complexity;126
11.1.8.1;4.8.1 Hierarchical and recursive composition;126
11.1.8.2;4.8.2 Support for heterogeneity of task execution;128
11.1.8.3;4.8.3 Explicit service relationships;128
11.1.9;4.9 The meta-model;130
11.1.10;4.10 Summary;131
11.2;5 Serendip Runtime;132
11.2.1;5.1 The design of an adaptive service orchestration runtime;132
11.2.1.1;5.1.1 Design expectations;133
11.2.1.2;5.1.2 Core components;134
11.2.2;5.2 Process life cycle;136
11.2.2.1;5.2.1 Stages of a process instance;136
11.2.2.2;5.2.2 Process progression;137
11.2.3;5.3 Event processing;138
11.2.3.1;5.3.1 The event cloud;138
11.2.3.2;5.3.2 Event triggering and business rules integration;141
11.2.4;5.4 Data synthesis of tasks;143
11.2.4.1;5.4.1 The role design;144
11.2.4.2;5.4.2 The transformation process;145
11.2.5;5.5 Dynamic process graphs;147
11.2.5.1;5.5.1 Atomic graphs;148
11.2.5.2;5.5.2 Patterns of event mapping and construction of EPC graphs;149
11.2.6;5.6 Summary;155
11.3;6 Adaptation Management;158
11.3.1;6.1 Overview of process management and adaptation;159
11.3.1.1;6.1.1 Process modelling life cycles;159
11.3.1.2;6.1.2 Adaptation phases;160
11.3.2;6.2 Adaptation management;162
11.3.2.1;6.2.1 Functional and management systems;162
11.3.2.2;6.2.2 The organiser;163
11.3.2.3;6.2.3 The adaptation engine;164
11.3.2.4;6.2.4 Challenges;165
11.3.3;6.3 Adaptations;166
11.3.3.1;6.3.1 Operation-based adaptations;166
11.3.3.2;6.3.2 Batch mode adaptations;167
11.3.3.3;6.3.3 Adaptation scripts;168
11.3.3.4;6.3.4 Scheduling adaptations;169
11.3.3.5;6.3.5 Adaptation mechanism;170
11.3.4;6.4 Automated process validation;172
11.3.4.1;6.4.1 Validation mechanism;173
11.3.4.2;6.4.2 Dependency specification;173
11.3.4.3;6.4.3 Constraint specification;174
11.3.5;6.5 State checks;175
11.3.6;6.6 Summary;176
12;Three;180
12.1;7 The Serendip Orchestration Framework;182
12.1.1;7.1 Serendip-Core;184
12.1.1.1;7.1.1 The event cloud;185
12.1.1.2;7.1.2 Interpreting interactions;187
12.1.1.3;7.1.3 Message synchronisation and synthesis;189
12.1.1.4;7.1.4 The validation module;191
12.1.1.5;7.1.5 The model provider factory;193
12.1.1.6;7.1.6 The adaptation engine;194
12.1.2;7.2 Deployment environment;196
12.1.2.1;7.2.1 Apache Axis2;196
12.1.2.2;7.2.2 ROAD4WS;197
12.1.2.3;7.2.3 Dynamic deployments;198
12.1.2.4;7.2.4 Orchestrating web services;200
12.1.2.5;7.2.5 Message delivery patterns;202
12.1.3;7.3 Tool support;204
12.1.3.1;7.3.1 Modelling tools;204
12.1.3.2;7.3.2 Monitoring tools;206
12.1.3.3;7.3.3 Adaptation tools;207
12.1.4;7.4 Summary;209
12.2;8 Case Study;210
12.2.1;8.1 Defining the organisational structure;211
12.2.1.1;8.1.1 Identifying roles, contracts and players;211
12.2.1.2;8.1.2 Defining interactions of contracts;213
12.2.2;8.2 Defining the processes;214
12.2.2.1;8.2.1 Defining organisational behaviour;214
12.2.2.2;8.2.2 Defining tasks;215
12.2.2.3;8.2.3 Defining processes;217
12.2.2.4;8.2.4 Specialising behaviour units;220
12.2.3;8.3 Message interpretations and transformations;221
12.2.3.1;8.3.1 Specifying contractual rules;221
12.2.3.2;8.3.2 Specifying message transformations;225
12.2.4;8.4 Adaptations;226
12.2.4.1;8.4.1 Operation-based adaptations;227
12.2.4.2;8.4.2 Batch-mode adaptations;228
12.2.4.3;8.4.3 Controlled adaptations;232
12.2.5;8.5 Summary;235
12.3;9 Evaluation;236
12.3.1;9.1 Support for change patterns;236
12.3.1.1;9.1.1 Adaptation patterns;237
12.3.1.1.1;9.1.1.1 AP1: insert process fragment;238
12.3.1.1.2;9.1.1.2 AP2: delete process fragment;238
12.3.1.1.3;9.1.1.3 AP3: move process fragment;239
12.3.1.1.4;9.1.1.4 AP4: replace process fragment;239
12.3.1.1.5;9.1.1.5 AP5: swap process fragment;240
12.3.1.1.6;9.1.1.6 AP6: extract sub-process;240
12.3.1.1.7;9.1.1.7 AP7: inline sub-process;241
12.3.1.1.8;9.1.1.8 AP8: embed process fragment in loop;241
12.3.1.1.9;9.1.1.9 AP9: parallelise process fragment;242
12.3.1.1.10;9.1.1.10 AP10: embed process fragment in conditional branch;242
12.3.1.1.11;9.1.1.11 AP11: add control dependency;243
12.3.1.1.12;9.1.1.12 AP12: remove control dependency;243
12.3.1.1.13;9.1.1.13 AP13: update condition;244
12.3.1.2;9.1.2 Patterns for pre-defined changes;244
12.3.1.2.1;9.1.2.1 PP1: late selection of process fragments;244
12.3.1.2.2;9.1.2.2 PP2: late modelling of process fragments;246
12.3.1.2.3;9.1.2.3 PP3: late composition of process fragments;246
12.3.1.2.4;9.1.2.4 PP4: multi-instance activity;247
12.3.1.3;9.1.3 Change support features;248
12.3.1.3.1;9.1.3.1 F1: schema evolution, version control and instance migration;248
12.3.1.3.2;9.1.3.2 F2: support for ad hoc changes;249
12.3.1.3.3;9.1.3.3 F3: correctness of change;249
12.3.1.3.4;9.1.3.4 F4: traceability and analysis;250
12.3.1.3.5;9.1.3.5 F5: access control for changes;250
12.3.1.3.6;9.1.3.6 F6: change re-use;250
12.3.1.4;9.1.4 Results and analysis;250
12.3.2;9.2 Runtime performance overhead;252
12.3.2.1;9.2.1 Experimentation set-up;252
12.3.2.2;9.2.2 Results and analysis;253
12.3.3;9.3 Comparative assessment;255
12.3.3.1;9.3.1 Flexible processes;255
12.3.3.2;9.3.2 Capturing commonalities;257
12.3.3.3;9.3.3 Allowing variations;257
12.3.3.4;9.3.4 Controlled changes;258
12.3.3.5;9.3.5 Predictable change impacts;259
12.3.3.6;9.3.6 Managing the complexity;259
12.3.3.7;9.3.7 Summary of comparison;262
12.3.4;9.4 Summary;262
12.4;10 Using the Serendip Framework;266
12.4.1;10.1 Pre-requisites;266
12.4.2;10.2 Install ROAD4WS platform;267
12.4.3;10.3 Deploy Serendip orchestration descriptions;267
12.4.4;10.4 Send Web service requests to the deployed composite;268
12.4.5;10.5 Manage the composite;269
12.4.6;10.6 Summary;272
12.5;11 Conclusion;274
12.5.1;11.1 Contributions;274
12.5.2;11.2 Future work;277
13;Bibliography;280
14;Appendix A: SerendipLang Grammar;296
15;Appendix B: RoSAS Description;298
16;Appendix C: Organiser Operations;318
17;Appendix D: Adaptation Scripting Language;324
18;Appendix E: Schema Definitions;326
List of Figures
| Figure 1.3 | Service ecosystem and the amount of flexibility | 13 |
| Figure 1.6 | Adaptive organisational structure providing required amount of flexibility | 16 |
| Figure 2.1 | The collaborators of RoSAS business model | 22 |
| Figure 3.1 | The relationship between BPM theories, standards and systems | 30 |
| Figure 3.2 | Categories of process modelling approaches | 31 |
| Figure 3.3 | Complementary existence of BPM and SOA | 34 |
| Figure 3.4 | The classification scheme for flexibility | 35 |
| Figure 3.5 | Dominant underpinning adaptation techniques | 36 |
| Figure 3.6 | An illustration of different techniques used to improve the adaptability | 53 |
| Figure 3.7 | Towards an adaptive service orchestration | 60 |
| Figure 4.1 | Process structure and organisational structure | 66 |
| Figure 4.2 | Meta-model: organisation, contracts, roles and players | 68 |
| Figure 4.3 | A contract captures the relationship among two roles | 68 |
| Figure 4.4 | Meta-model: contracts, facts and rules | 69 |
| Figure 4.5 | Roles and contracts of the RoSAS composite | 69 |
| Figure 4.6 | Layers of a Serendip orchestration design | 72 |
| Figure 4.7 | Meta-model: tasks, roles and players | 73 |
| Figure 4.10 | Events independent of where they originated and referenced | 77 |
| Figure 4.13 | Organisational behaviours are reused across process definitions | 82 |
| Figure 4.14 | Meta-model: process definitions, behaviour units and tasks | 83 |
| Figure 4.17 | Process-collaboration linkage in constraint specification | 88 |
| Figure 4.18 | Variations in separate behaviour units: (A) bTowingSilv and (B) bTowingPlat | 90 |
| Figure 4.20 | Process definitions can refer to specialised behaviour units | 91 |
| Figure 4.22 | Role players interact via the organisation | 94 |
| Figure 4.24 | The indirection of indirections assisted by tasks | 96 |
| Figure 4.25 | Meta-model: tasks, events and interactions | 97 |
| Figure 4.26 | Tasks associate internal and external interactions | 98 |
| Figure 4.31 | Reducing a complex orchestration into manageable suborchestrations | 103 |
| Figure 4.33 | Implementation of task execution is unknown to core orchestration | 105 |
| Figure 4.35 | Contracts support explicit representation of service relationships | 107 |
| Figure 5.1 | Core components of serendip runtime | 111 |
| Figure 5.2 | The life cycle of a serendip process instance | 113 |
| Figure 5.6 | Data synthesis and synchronisation design | 121 |
| Figure 5.7 | Generating process graphs from declarative behaviour units | 124 |
| Figure 5.10 | Predecessor and successor processing for merging events | 128 |
| Figure 5.12 | A dynamically constructed EPC graph for pdSilv process | 133 |
| Figure 6.1 | (A) Process life cycle and (B) BPM life cycle | 137 |
| Figure 6.3 | Separation of management and functional systems | 141 |
| Figure 6.4 | Types of operations in organiser interface | 143 |