Contenu connexe Plus de virtual-campus (20) S-CUBE LP: Runtime Process Migration: Flexible Execution of Distributed Business Processes1. S-Cube Learning Package
Runtime Process Migration:
Flexible Execution of
Distributed Business Processes
University of Hamburg (UniHH)
Kristof Hamann & Sonja Zaplata, UniHH
www.s-cube-network.eu
2. Learning Package Categorization
S-Cube
Service composition and coordination
Models and Mechanisms for
Coordinated Service Compositions
Runtime Process Migration: Flexible Execution
of Distributed Business Processes
© UniHH, S-Cube – 2
4. Motivation (1)
Distributed business processes:
Increasing need for dynamism and flexibility
– E.g. cross-organisational business processes, outsourcing
– Distribution/decentralisation of resources
Employees, machines, services, … (e.g. WS-BPEL)
book book
payment
flight hotel
Booking Booking Banking
Service 1 Service 2 Service
– Decentralisation of process execution
Autonomy of business partners, relevance of location, technological
differences, large data transfers, security policy, non-functional
aspects, …
© UniHH, S-Cube – 4
5. Motivation (2)
Distributed business processes:
Increasing need for dynamism and flexibility
– Decentralisation of process execution (cont’d)
buy configure test ok
accoun- write
software software software X ting
payment
report
not
ok
ok
receive make
update X complaint
not
ok
consider ok
assert
legal
claim
action
Since requirements may change even during execution, there is
a need for a flexible distribution of process execution
© UniHH, S-Cube – 5
6. Motivation (2)
Distributed business processes:
Increasing need for dynamism and flexibility
– Decentralisation of process execution (cont’d)
buy configure test ok
accoun- write
software software software X ting
payment
report
not
ok
Consulting Administration
ok
company receive
X make
update complaint
not
ok
consider ok
assert
legal
claim
action
Legal office
Since requirements may change even during execution, there is
a need for a flexible distribution of process execution
© UniHH, S-Cube – 6
7. Motivation (2)
Distributed business processes:
Increasing need for dynamism and flexibility
– Decentralisation of process execution (cont’d)
buy configure test ok
accoun- write
software software software X ting
payment
report
not
ok
Consulting Administration
ok
company receive
X make
update complaint
not
ok
Mobile user consider ok
assert
legal
claim
action
Legal office
Since requirements may change even during execution, there is
a need for a flexible distribution of process execution
© UniHH, S-Cube – 7
9. Basic Idea of this S-Cube approach
Context-based Cooperation in Mobile Business Environments
© UniHH, S-Cube – 9
10. Background:
Context-based Cooperation
Context-based Cooperation in Mobile Business Environments
– Resources are available only in specific situations on specific devices
– Process execution can profit from
a context-based cooperation:
• The running process instance is
migrated to another process engine
• Continuation of the execution on
the other engine
• Benefit of newly available resources
– Not only mobile environments exhibit dynamically available resources
Sonja Zaplata, Christian P. Kunze, Winfried Lamersdorf. Context-based Cooperation in Mobile
Business Environments: Managing the Distributed Execution of Mobile Processes. In: Business &
Information Systems Engineering (BISE), Volume 1, Number 4, pp. 301-314
© UniHH, S-Cube – 10
11. Goal and Requirements
Goal:
– Select most appropriate process
participant dynamically in
dependence of context such as
location, workload, variables, …
Requirements:
– Share and integrate available business process management systems
– Non-intrusiveness for business processes and support for ad-hoc
processes
– Security mechanisms in order to restrict access to private process parts
– User-defined guidelines for execution, monitoring and management
© UniHH, S-Cube – 11
12. Migration Metadata (1): Introduction
Challenge: How to migrate process instances?
– Current process modeling standards (e.g. WS-BPEL, BPMN) do not
define how to save process instance data such as the states of
activities, current values of variables, etc.
– However, this information is needed in order to migrate a running
process instance to another process engine
Solution: Migration metadata model
– Generic: suitable for current process modeling standards
– Lifecycle state models and Undefined Fixed Participant or Role Variable Algorithm QoS and Context
current variable values Selection
Type
1 0,1 0,1 ID
Process 1
– Selection of participants
1 1
State 1
1..n 1
1 1 Activity
Process 1 1 Activity 1
State
1
1
1 1
StartActivity
1..n Log
– Security issues
global variable
local variable
Structured Atomic
1
Name Activity Activity
0,1 0,1
* *
(see next slides for details)
1
1
Initial 0,1 1
Variable
1 0,1 Security *
Value 1
Encrypted Session Key
Policy
Current 1
Value
© UniHH, S-Cube – 12
13. Migration Metadata (2): Overview
Undefined Fixed Participant or Role Variable Algorithm QoS and Context
Selection
Type
1 0,1 0,1 ID
Process 1
1 1
State 1
1..n 1
1 1 Activity
Process 1 1 Activity 1
State
1
1
1 1
StartActivity
1..n Log
global variable
local variable
Structured Atomic
1
Name Activity Activity
0,1 0,1
1 * *
1
Initial 0,1 1
Variable
1 0,1 Security *
Value 1
Encrypted Session Key
Policy
Current 1 Elements of the general
Value process meta model
Elements of the migration
data meta model
© UniHH, S-Cube – 13
14. Migration Metadata (3): Lifecycle Models
Undefined Fixed Participant or Role Variable Algorithm QoS and Context
Selection
Type
1 0,1 0,1 ID
Process 1
1 1
State 1
1..n 1
1 1 Activity
Process 1 1 Activity 1
State
1
1
1 1
StartActivity
1..n Log
global variable
local variable
Structured Atomic
1
Name Activity Activity
0,1 0,1
1 * *
1
Initial *
Migratable Process Lifecycle State Model
0,1 1 1 0,1 Security
Variable Encrypted Session Key
Value 1 Policy
Current 1
Value
Activity Lifecycle State Model
InError
inactive ready executing executed
Created Option Running Finished Deleted
Trans- Suspen- Termin- Termin- skipped expired inError finished
ferring ded ating ated
• Each activity and the whole process have a state which is to be migrated
• Model based on the established lifecycle model Frank Leymann, Dieter Roller:
Production Workflow: Concepts and
presented by Leymann and Roller Techniques. PTR Prentice Hall, 2000
• New states for migration
Option (migration is possible), Transferring (process is currently migrated)
© UniHH, S-Cube – 14
15. Migration Metadata (4) Undefined Fixed Participant or Role Variable Algorithm QoS and Context
Undefined Fixed Participant or Role Variable Algorithm QoS and Context
Selection
Type
1 0,1 0,1 ID
Selection
Process 1
State
1
1
Type 1
1 1..n 1
1 0,1 0,1 Undefined Fixed Participant or Role 1
ID
Variable Activity
Algorithm QoS and Context
Start activity: Process Process 1 1 Activity 1
1 State
1 1
1 1
State 1 1 1..n 1 1
1
StartActivity 1
Selection Activity
Process
1..n 1 1 Activity 1 Type
State Log
where to continue the 1
1 1 0,1 0,1 ID
global variable
Process 1
local variable
1 State 1 1
1 1
StartActivity 1 1..n 1
1 Activity
process execution after migration
1..n Process 1
Log 1 Activity 1
1 State
1
1
StartActivity Structured Atomic 1
global variable
local variable
1 1..n Log
Name Activity Activity
global variable
local variable
Structured
0,1 0,1 Atomic Structured Atomic
1 1 * * ActivityName
1
Activity
Activity Activity
Name Initial 0,1 1 0,1
1
*
1
Variable Security Encrypted Session
0,1 0,1 Key
Value 1 1 *
*
Policy Initial 0,1 1 1 0,1 Security
1
*
0,1 0,1 Variable Encrypted Session Key
* * Value 1
Variable – Current value:
Policy
1
1
Initial 0,1 1
Current Variable
1 0,1 Security *
Value 1
1 Current Encrypted Session Key
1
Value Policy Value
the current state of each Current 1
process variable Value
Selection type: Which process engine should
execute the activity/process? Undefined Fixed Participant or Role Variable Algorithm QoS and Context
– Fixed participant/role name Selection
Type
– Participant is referenced in variable Process
State
1
1
1
0,1 0,1
1
1
ID
1 1..n 1
1 Activity
– Participant can be determined by a certain algorithm Process 1 1 Activity 1
1 State
1
1 1
StartActivity
1..n Log
– Participant will be selected according to its QoS and Context
global variable
local variable
Structured Atomic
1
Name Activity Activity
* * 0,1 © UniHH, S-Cube – 15
0,1
16. Migration Metadata (5): Security Issues
Why? Private data must not be readable by everyone!
How? Encryption of critical parts with symmetric session keys (pk1 and pk2)
Security policy contains the session keys (pk1 and pk2), which are
encrypted with the public keys of authorized process engines
(one session key can be encrypted multiple times with different public keys)
Only legitimate receivers are able to read private data and execute critical
process parts
Integrity is ensured by a MAC
(Message Authentication Code)
Undefined Fixed Participant or Role Variable Algorithm QoS and Context
Selection
Type
1 0,1 0,1 ID
Process 1
1 1
State 1
1..n 1
1 1 Activity
Process 1 1 Activity 1
State
1
1
1 1
StartActivity
1..n Log
global variable
local variable
Structured Atomic
1
Name Activity Activity
0,1 0,1
1 * *
1
Initial 0,1 1
Variable
1 0,1 Security *
Value 1
Encrypted Session Key
Policy
Current 1
Value
© UniHH, S-Cube – 16
18. Methodology (2): Steps in Detail
1. Process modeling:
Traditional modeling in an arbitrary language
2. Generation of migration meta data:
Automatic generation of initial process/activity states
Manual configuration of user-defined guidelines
3. Deployment:
Deployment to a process engine, which supports migration
4. Instantiation:
The user is now able to start a new process instance and may define
additional requirements (migration metadata) for this process instance
5. Assignment and process execution:
Flexible execution on (multiple)
process engines using runtime
process migration
© UniHH, S-Cube – 18
19. Example (Design Time)
1. Process modeling
buy configure test ok
accoun- write
software software software X ting
payment
report
not
ok
ok
receive make
update X complaint
not
ok
consider ok
assert
legal
claim
action
Process variables (initial values):
IBAN (String): "DE68 2105 0172 3456 78"
OK (BOOLEAN): -
…
© UniHH, S-Cube – 19
20. Example (Design Time)
2. Generation of migration data (automatic)
buy configure test ok
accoun- write
software software software X ting
payment
report
inactive inactive inactive not inactive inactive inactive
ok
ok
receive make
update X complaint
not
inactive ok inactive
consider ok
assert
legal
claim
action
inactive inactive
Process variables (current values):
(initial
Process-Id: 1234567
IBAN (String): "DE68 2105 0172 3456 78"
Startactivity: buy software OK (BOOLEAN): -
ProcessState: created …
© UniHH, S-Cube – 20
21. Example (Design Time)
2. Generation of migration data (manual)
buy configure test ok
accoun- write
software software software X ting
payment
report
inactive inactive inactive not inactive inactive inactive
ok
ok
receive make
update X complaint
not
inactive ok inactive
consider ok
assert
legal
claim
action
inactive inactive
Process variables (current values):
(initial
Process-Id: 1234567
XXXXXXXXXXXXXXXXXX
IBAN (String): "DE68 2105 0172 3456 78"
Startactivity: buy software OK (BOOLEAN): -
ProcessState: created …
SelectionTypes:
buy software: Fixed Participant or Role: "XY Consulting"
payment: Fixed Participant or Role: "Administration"
Security policy:
IBAN: Administration: (session key 1) public key of "Administration"
Legal Office: (session key 1) public key of" Legal Office"
© UniHH, S-Cube – 21
22. Example (Runtime)
4. Instantiation
buy configure test ok
accoun- write
software software software X ting
payment
report
inactive inactive inactive not inactive inactive inactive
ok
ok
receive make
update X complaint
not
inactive ok inactive
consider ok
assert
legal
claim
action
inactive inactive
Process variables:
Process-Id: 1234567
XXXXXXXXXXXXXXXXXXX
IBAN (String): "DE68 2105 0172 3456 78"
Startactivity: buy software OK (BOOLEAN): -
ProcessState: created …
SelectionTypes:
buy software: Fixed Participant or Role: "XY Consulting"
payment: Fixed Participant or Role: "Administration"
Security policy:
IBAN: Administration: (session key 1) public key of "Administration"
Legal Office: (session key 1) public key of" Legal Office"
© UniHH, S-Cube – 22
23. Example (Runtime)
5. Assignment and process execution
buy configure test ok
accoun- write
software software software X ting
payment
report
executing inactive inactive not inactive inactive inactive
ok
XY Consulting
ok
receive make
update X complaint
not
inactive ok inactive
consider ok
assert
legal
claim
action
inactive inactive
Process variables:
Process-Id: 1234567
XXXXXXXXXXXXXXXXXXX
IBAN (String): "DE68 2105 0172 3456 78"
Startactivity: buy software OK (BOOLEAN): -
ProcessState: running …
SelectionTypes:
buy software: Fixed Participant or Role: "XY Consulting"
payment: Fixed Participant or Role: "Administration"
Security policy:
IBAN: Administration: (session key 1) public key of "Administration"
Legal Office: (session key 1) public key of" Legal Office"
© UniHH, S-Cube – 23
24. Example (Runtime)
5. Assignment and process execution
buy configure test ok
accoun- write
software software software X ting
payment
report
finished inactive inactive not inactive inactive inactive
ok
XY Consulting
ok
receive make
update X complaint
not
inactive ok inactive
consider ok
assert
legal
claim
action
inactive inactive
Process variables:
Process-Id: 1234567
XXXXXXXXXXXXXXXXXXX
IBAN (String): "DE68 2105 0172 3456 78"
Startactivity: configure software OK (BOOLEAN): -
ProcessState: option …
SelectionTypes:
buy software: Fixed Participant or Role: "XY Consulting"
payment: Fixed Participant or Role: "Administration"
Security policy:
IBAN: Administration: (session key 1) public key of "Administration"
Legal Office: (session key 1) public key of" Legal Office"
© UniHH, S-Cube – 24
25. Example (Runtime)
5. Assignment and process execution
Mobile user
buy configure test ok
accoun- write
software software software X ting
payment
report
finished executing inactive not inactive inactive inactive
ok
ok
receive make
update X complaint
not
inactive ok inactive
consider ok
assert
legal
claim
action
inactive inactive
Process variables:
Process-Id: 1234567
XXXXXXXXXXXXXXXXXXX
IBAN (String): "DE68 2105 0172 3456 78"
Startactivity: configure software OK (BOOLEAN): -
ProcessState: running …
SelectionTypes:
buy software: Fixed Participant or Role: "XY Consulting"
payment: Fixed Participant or Role: "Administration"
Security policy:
IBAN: Administration: (session key 1) public key of "Administration"
Legal Office: (session key 1) public key of" Legal Office"
© UniHH, S-Cube – 25
26. Example (Runtime)
5. Assignment and process execution
Mobile user
buy configure test ok
accoun- write
software software software X ting
payment
report
finished executed inactive not inactive inactive inactive
ok
ok
receive make
update X complaint
not
inactive ok inactive
consider ok
assert
legal
claim
action
inactive inactive
Process variables:
Process-Id: 1234567
XXXXXXXXXXXXXXXXXXX
IBAN (String): "DE68 2105 0172 3456 78"
Startactivity: test software OK (BOOLEAN): -
ProcessState: option …
SelectionTypes:
buy software: Fixed Participant or Role: "XY Consulting"
payment: Fixed Participant or Role: "Administration"
Security policy:
IBAN: Administration: (session key 1) public key of "Administration"
Legal Office: (session key 1) public key of" Legal Office"
© UniHH, S-Cube – 26
27. Example (Runtime)
5. Assignment and process execution
Mobile user
buy configure test ok
accoun- write
software software software X ting
payment
report
finished finished finished not inactive inactive inactive
ok
ok
receive make
update X complaint
not
skipped ok skipped
consider ok
assert
legal
claim
action
skipped skipped
Process variables:
Process-Id: 1234567
XXXXXXXXXXXXXXXXXXX
IBAN (String): "DE68 2105 0172 3456 78"
Startactivity: accounting OK (BOOLEAN): true
ProcessState: option …
SelectionTypes:
buy software: Fixed Participant or Role: "XY Consulting"
payment: Fixed Participant or Role: "Administration"
Security policy:
IBAN: Administration: (session key 1) public key of "Administration"
Legal Office: (session key 1) public key of" Legal Office"
© UniHH, S-Cube – 27
28. Example (Runtime)
5. Assignment and process execution
Administration
buy configure test ok
accoun- write
software software software X ting
payment
report
finished finished finished not inactive inactive inactive
ok
ok
receive make
update X complaint
not
skipped ok skipped
consider ok
assert
legal
claim
action
skipped skipped
Process variables:
Process-Id: 1234567
XXXXXXXXXXXXXXXXXXX
IBAN (String): "DE68 2105 0172 3456 78"
Startactivity: accounting OK (BOOLEAN): true
ProcessState: option …
SelectionTypes:
buy software: Fixed Participant or Role: "XY Consulting"
payment: Fixed Participant or Role: "Administration"
Security policy:
IBAN: Administration: (session key 1) public key of "Administration"
Legal Office: (session key 1) public key of" Legal Office"
© UniHH, S-Cube – 28
29. Example (Runtime)
5. Assignment and process execution
Administration
buy configure test ok
accoun- write
software software software X ting
payment
report
finished finished finished not finished inactive inactive
ok
ok
receive make
update X complaint
not
skipped ok skipped
consider ok
assert
legal
claim
action
skipped skipped
Process variables:
Process-Id: 1234567
XXXXXXXXXXXXXXXXXXX
IBAN (String): "DE68 2105 0172 3456 78"
Startactivity: payment OK (BOOLEAN): true
ProcessState: option …
SelectionTypes:
buy software: Fixed Participant or Role: "XY Consulting"
payment: Fixed Participant or Role: "Administration"
Security policy:
IBAN: Administration: (session key 1) public key of "Administration"
Legal Office: (session key 1) public key of" Legal Office"
© UniHH, S-Cube – 29
30. Example (Runtime)
5. Assignment and process execution
Administration
buy configure test ok
accoun- write
software software software X ting
payment
report
finished finished finished not finished executing inactive
ok
ok
receive make
update X complaint
not
skipped ok skipped
consider ok
assert
legal
claim
action
skipped skipped
Process variables:
Process-Id: 1234567
XXXXXXXXXXXXXXXXXXX
IBAN (String): "DE68 2105 0172 3456 78"
Startactivity: payment OK (BOOLEAN): true
ProcessState: running …
SelectionTypes:
buy software: Fixed Participant or Role: "XY Consulting"
payment: Fixed Participant or Role: "Administration"
Security policy:
IBAN: Administration: (session key 1) public key of "Administration"
Legal Office: (session key 1) public key of" Legal Office"
© UniHH, S-Cube – 30
31. Example (Runtime)
5. Assignment and process execution
Administration
buy configure test ok
accoun- write
software software software X ting
payment
report
finished finished finished not finished executing inactive
ok
ok
receive make
update X complaint
not
skipped ok skipped
consider ok
assert
legal
claim
action
skipped skipped
Process variables:
Process-Id: 1234567
IBAN (String): "DE68 2105 0172 3456 78"
Startactivity: payment OK (BOOLEAN): true
ProcessState: running …
SelectionTypes:
buy software: Fixed Participant or Role: "XY Consulting"
payment: Fixed Participant or Role: "Administration"
Security policy:
IBAN: Administration: (session key 1) public key of "Administration"
Legal Office: (session key 1) public key of" Legal Office"
© UniHH, S-Cube – 31
32. Example (Runtime)
5. Assignment and process execution
Administration
buy configure test ok
accoun- write
software software software X ting
payment
report
finished finished finished not finished executing inactive
ok
ok
receive make
update X complaint
not
skipped ok skipped
consider ok
assert
legal
claim
action
skipped skipped
Process variables:
Process-Id: 1234567
XXXXXXXXXXXXXXXXXXX
IBAN (String): "DE68 2105 0172 3456 78"
Startactivity: payment OK (BOOLEAN): true
ProcessState: running …
SelectionTypes:
buy software: Fixed Participant or Role: "XY Consulting"
payment: Fixed Participant or Role: "Administration"
Security policy:
IBAN: Administration: (session key 1) public key of "Administration"
Legal Office: (session key 1) public key of" Legal Office"
© UniHH, S-Cube – 32
33. Example (Runtime)
5. Assignment and process execution
Administration
buy configure test ok
accoun- write
software software software X ting
payment
report
finished finished finished not finished finished inactive
ok
ok
receive make
update X complaint
not
skipped ok skipped
consider ok
assert
legal
claim
action
skipped skipped
Process variables:
Process-Id: 1234567
IBAN (String): XXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
"DE68 2105 0172 3456 78"
Startactivity: write report OK (BOOLEAN): true
ProcessState: option …
SelectionTypes:
buy software: Fixed Participant or Role: "XY Consulting"
payment: Fixed Participant or Role: "Administration"
Security policy:
IBAN: Administration: (session key 1) public key of "Administration"
Legal Office: (session key 1) public key of" Legal Office"
© UniHH, S-Cube – 33
34. Example (Runtime)
5. Assignment and process execution
Administration
buy configure test ok
accoun- write
software software software X ting
payment
report
finished finished finished not finished finished finished
ok
ok
receive make
update X complaint
not
skipped ok skipped
consider ok
assert
legal
claim
action
skipped skipped
Process variables:
Process-Id: 1234567
IBAN (String): XXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
"DE68 2105 0172 3456 78"
Startactivity: - OK (BOOLEAN): true
ProcessState: finished …
SelectionTypes:
buy software: Fixed Participant or Role: "XY Consulting"
payment: Fixed Participant or Role: "Administration"
Security policy:
IBAN: Administration: (session key 1) public key of "Administration"
Legal Office: (session key 1) public key of" Legal Office"
© UniHH, S-Cube – 34
35. Ad-hoc management capabilities (1)
Process execution may leave initiator’s sphere of influence
– due to migration to another process engine
– but also due to subcontracting or fragmentation
Challenges
– Resources and execution systems are often selected dynamically
– Heterogeneous execution systems without standardized management
capabilities
– Cross-organizational monitoring and controlling can be applied in
advance, but miss instant monitoring and reaction capabilities
Solution
– process management system as a manageable resource
© UniHH, S-Cube – 35
36. Ad-hoc management capabilities (2)
Process management system as a manageable resource
Realized according to the Web Services Distributed
Management (WSDM) standard
management interface
meta services
information modification events
deploy/undeploy context change
context
process model
instantiate
status intrinsic extrinsic
change
context context
process instance event
terminate
process history
process management system
© UniHH, S-Cube – 36