Upload
virtual-campus
View
289
Download
2
Embed Size (px)
DESCRIPTION
Citation preview
www.s-cube-network.eu
S-Cube Learning Package
Runtime Process Migration:
Flexible Execution of Distributed Business Processes
University of Hamburg (UniHH)
Kristof Hamann & Sonja Zaplata, UniHH
© UniHH, S-Cube – 2
Learning Package Categorization
S-Cube
Models and Mechanisms for
Coordinated Service Compositions
Runtime Process Migration: Flexible Execution
of Distributed Business Processes
Service composition and coordination
© UniHH, S-Cube – 3
Learning Package Overview
Problem Description
Runtime Process Migration
Discussion
Conclusions
© UniHH, S-Cube – 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)
– Decentralisation of process execution
Autonomy of business partners, relevance of location, technological
differences, large data transfers, security policy, non-functional
aspects, …
book
flightbook
hotelpayment
Booking
Service 1
Booking
Service 2
Banking
Service
© UniHH, S-Cube – 5
Motivation (2)
Distributed business processes:
Increasing need for dynamism and flexibility
– Decentralisation of process execution (cont’d)
Since requirements may change even during execution, there is
a need for a flexible distribution of process execution
buy
software
configure
software
test
software
receive
update
make
complaint
accoun-
tingpayment
consider
legal
action
assert
claim
X
X
ok
not
ok
ok
not
ok
write
report
ok
© UniHH, S-Cube – 6
Motivation (2)
Distributed business processes:
Increasing need for dynamism and flexibility
– Decentralisation of process execution (cont’d)
Since requirements may change even during execution, there is
a need for a flexible distribution of process execution
buy
software
configure
software
test
software
receive
update
make
complaint
accoun-
tingpayment
consider
legal
action
assert
claim
X
X
ok
not
ok
ok
not
ok
write
report
ok
Legal office
Administration Consulting
company
© UniHH, S-Cube – 7
Motivation (2)
Distributed business processes:
Increasing need for dynamism and flexibility
– Decentralisation of process execution (cont’d)
Since requirements may change even during execution, there is
a need for a flexible distribution of process execution
buy
software
configure
software
test
software
receive
update
make
complaint
accoun-
tingpayment
consider
legal
action
assert
claim
X
X
ok
not
ok
ok
not
ok
write
report
ok
Legal office
Administration
Mobile user
Consulting
company
© UniHH, S-Cube – 8
Learning Package Overview
Problem Description
Runtime Process Migration
Discussion
Conclusions
© UniHH, S-Cube – 9
Basic Idea of this S-Cube approach
Context-based Cooperation in Mobile Business Environments
© UniHH, S-Cube – 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 – 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 – 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
current variable values
– Selection of participants
– Security issues
(see next slides for details)
Process
Structured
Activity
Atomic
Activity
Selection
Type
Current
Value
Variable
Name
Initial
Value
Process
State
Security
PolicyEncrypted Session Key
1
11
1
0,1
11
0,1
1
1 *
0,1
0,1
1
* *
1
1
1
1
0,1
1
1
StartActivity
1
1..n
Activity
State
1
1
ID
Activity
0,11
loca
l va
ria
ble
glo
ba
l va
ria
ble
1
Log
1..n
Undefined Fixed Participant or Role Variable Algorithm QoS and Context
11
© UniHH, S-Cube – 13
Migration Metadata (2): Overview
Process
Structured
Activity
Atomic
Activity
Selection
Type
Current
Value
Variable
Name
Initial
Value
Process
State
Security
PolicyEncrypted Session Key
1
11
1
0,1
11
0,1
1
1 *
0,1
0,1
1
* *
1
1
1
1
0,1
1
1
StartActivity
1
1..n
Activity
State
1
1
ID
Activity
0,11
loca
l va
ria
ble
glo
ba
l va
ria
ble
1
Log
1..n
Undefined Fixed Participant or Role Variable Algorithm QoS and Context
11
Process
Structured
Activity
Atomic
Activity
Elements of the general
process meta model
Elements of the migration
data meta model
Selection
Type
Current
Value
Variable
Name
Initial
Value
Process
State
Security
Policy
Fixed Participant or Role
Undefined
QoS and Context
Algorithm
Encrypted Session Key
inactive ready executing executed
finishedskipped expired inError
Activity Lifecycle State Model
Created Option Running Finished
Termin-
ated
InError
Trans-
ferringTermin-
ating
Migratable Process Lifecycle State Model
Deleted
Suspen-
ded
1
1
1
*
1
0,1
11
0,1
1
1 *
11
0,1
0,1
1
*
*
1
1
1
1
0,1
11
StartActivity
1
1..n
Activity
State
1
1
ID
Activity
0,1
1
loca
l va
ria
ble
glo
ba
l va
ria
ble
1
Log
Variable
Data
Class
1
1
0,1
© UniHH, S-Cube – 14
Process
Structured
Activity
Atomic
Activity
Selection
Type
Current
Value
Variable
Name
Initial
Value
Process
State
Security
PolicyEncrypted Session Key
1
11
1
0,1
11
0,1
1
1 *
0,1
0,1
1
* *
1
1
1
1
0,1
1
1
StartActivity
1
1..n
Activity
State
1
1
ID
Activity
0,11
loca
l va
ria
ble
glo
ba
l va
ria
ble
1
Log
1..n
Undefined Fixed Participant or Role Variable Algorithm QoS and Context
11
Migration Metadata (3): Lifecycle Models
inactive ready executing executed
finishedskipped expired inError
Activity Lifecycle State Model
Created Option Running Finished
Termin-
ated
InError
Trans-
ferringTermin-
ating
Migratable Process Lifecycle State Model
Deleted
Suspen-
ded
• Each activity and the whole process have a state which is to be migrated
• Model based on the established lifecycle model
presented by Leymann and Roller
• New states for migration
Option (migration is possible), Transferring (process is currently migrated)
Frank Leymann, Dieter Roller:
Production Workflow: Concepts and
Techniques. PTR Prentice Hall, 2000
© UniHH, S-Cube – 15
Process
Structured
Activity
Atomic
Activity
Selection
Type
Current
Value
Variable
Name
Initial
Value
Process
State
Security
PolicyEncrypted Session Key
1
11
1
0,1
11
0,1
1
1 *
0,1
0,1
1
* *
1
1
1
1
0,1
1
1
StartActivity
1
1..n
Activity
State
1
1
ID
Activity
0,11
loca
l va
ria
ble
glo
ba
l va
ria
ble
1
Log
1..n
Undefined Fixed Participant or Role Variable Algorithm QoS and Context
11
Start activity: where to continue the process execution after migration
Variable – Current value: the current state of each process variable
Selection type: Which process engine should execute the activity/process?
– Fixed participant/role name
– Participant is referenced in variable
– Participant can be determined by a certain algorithm
– Participant will be selected according to its QoS and Context
Process
Structured
Activity
Atomic
Activity
Selection
Type
Current
Value
Variable
Name
Initial
Value
Process
State
Security
PolicyEncrypted Session Key
1
11
1
0,1
11
0,1
1
1 *
0,1
0,1
1
* *
1
1
1
1
0,1
1
1
StartActivity
1
1..n
Activity
State
1
1
ID
Activity
0,11
loca
l va
ria
ble
glo
ba
l va
ria
ble
1
Log
1..n
Undefined Fixed Participant or Role Variable Algorithm QoS and Context
11
Migration Metadata (4)
Process
Structured
Activity
Atomic
Activity
Selection
Type
Current
Value
Variable
Name
Initial
Value
Process
State
Security
PolicyEncrypted Session Key
1
11
1
0,1
11
0,1
1
1 *
0,1
0,1
1
* *
1
1
1
1
0,1
1
1
StartActivity
1
1..n
Activity
State
1
1
ID
Activity
0,11
loca
l va
ria
ble
glo
ba
l va
ria
ble
1
Log
1..n
Undefined Fixed Participant or Role Variable Algorithm QoS and Context
11
Process
Structured
Activity
Atomic
Activity
Selection
Type
Current
Value
Variable
Name
Initial
Value
Process
State
Security
PolicyEncrypted Session Key
1
11
1
0,1
11
0,1
1
1 *
0,1
0,1
1
* *
1
1
1
1
0,1
1
1
StartActivity
1
1..n
Activity
State
1
1
ID
Activity
0,11
loca
l va
ria
ble
glo
ba
l va
ria
ble
1
Log
1..n
Undefined Fixed Participant or Role Variable Algorithm QoS and Context
11
© UniHH, S-Cube – 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)
Process
Structured
Activity
Atomic
Activity
Selection
Type
Current
Value
Variable
Name
Initial
Value
Process
State
Security
PolicyEncrypted Session Key
1
11
1
0,1
11
0,1
1
1 *
0,1
0,1
1
* *
1
1
1
1
0,1
1
1
StartActivity
1
1..n
Activity
State
1
1
ID
Activity
0,11
loca
l var
iabl
e
glo
bal v
aria
ble
1
Log
1..n
Undefined Fixed Participant or Role Variable Algorithm QoS and Context
11
© UniHH, S-Cube – 17
Methodology (1): Overview
© UniHH, S-Cube – 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 – 19
Process variables (initial values):
IBAN (String): "DE68 2105 0172 3456 78"
OK (BOOLEAN): -
…
Example (Design Time)
buy
software
configure
software
test
software
receive
update
make
complaint
accoun-
tingpayment
consider
legal
action
assert
claim
X
X
ok
not
ok
ok
not
ok
write
report
ok
1. Process modeling
© UniHH, S-Cube – 20
Process variables (initial values):
IBAN (String): "DE68 2105 0172 3456 78"
OK (BOOLEAN): -
…
Process variables (current values):
IBAN (String): "DE68 2105 0172 3456 78"
OK (BOOLEAN): -
…
Example (Design Time)
buy
software
configure
software
test
software
receive
update
make
complaint
accoun-
tingpayment
consider
legal
action
assert
claim
X
X
ok
not
ok
ok
not
ok
write
report
ok
Process-Id: 1234567
Startactivity: buy software
ProcessState: created
inactive inactive inactive inactive inactive inactive
inactive inactive
inactive inactive
2. Generation of migration data (automatic)
© UniHH, S-Cube – 21
Process variables (initial values):
IBAN (String): "DE68 2105 0172 3456 78"
OK (BOOLEAN): -
…
Process variables (current values):
IBAN (String): "DE68 2105 0172 3456 78"
OK (BOOLEAN): -
…
Example (Design Time)
buy
software
configure
software
test
software
receive
update
make
complaint
accoun-
tingpayment
consider
legal
action
assert
claim
X
X
ok
not
ok
ok
not
ok
write
report
ok
Process-Id: 1234567
Startactivity: buy software
ProcessState: created
inactive inactive inactive inactive inactive inactive
inactive inactive
inactive inactive
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"
XXXXXXXXXXXXXXXXXX
2. Generation of migration data (manual)
© UniHH, S-Cube – 22
Process variables:
IBAN (String): "DE68 2105 0172 3456 78"
OK (BOOLEAN): -
…
Example (Runtime)
buy
software
configure
software
test
software
receive
update
make
complaint
accoun-
tingpayment
consider
legal
action
assert
claim
X
X
ok
not
ok
ok
not
ok
write
report
ok
Process-Id: 1234567
Startactivity: buy software
ProcessState: created
inactive inactive inactive inactive inactive inactive
inactive inactive
inactive inactive
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"
XXXXXXXXXXXXXXXXXXX
4. Instantiation
© UniHH, S-Cube – 23
Process variables:
IBAN (String): "DE68 2105 0172 3456 78"
OK (BOOLEAN): -
…
Example (Runtime)
buy
software
configure
software
test
software
receive
update
make
complaint
accoun-
tingpayment
consider
legal
action
assert
claim
X
X
ok
not
ok
ok
not
ok
write
report
ok
inactive inactive inactive inactive inactive
inactive inactive
inactive inactive
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"
XXXXXXXXXXXXXXXXXXX
executing
XY Consulting
Process-Id: 1234567
Startactivity: buy software
ProcessState: running
5. Assignment and process execution
© UniHH, S-Cube – 24
Process variables:
IBAN (String): "DE68 2105 0172 3456 78"
OK (BOOLEAN): -
…
Example (Runtime)
buy
software
configure
software
test
software
receive
update
make
complaint
accoun-
tingpayment
consider
legal
action
assert
claim
X
X
ok
not
ok
ok
not
ok
write
report
ok
inactive inactive inactive inactive inactive
inactive inactive
inactive inactive
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"
XXXXXXXXXXXXXXXXXXX
XY Consulting
finished
Process-Id: 1234567
Startactivity: configure software
ProcessState: option
5. Assignment and process execution
© UniHH, S-Cube – 25
Process variables:
IBAN (String): "DE68 2105 0172 3456 78"
OK (BOOLEAN): -
…
Example (Runtime)
buy
software
configure
software
test
software
receive
update
make
complaint
accoun-
tingpayment
consider
legal
action
assert
claim
X
X
ok
not
ok
ok
not
ok
write
report
ok
inactive inactive inactive inactive
inactive inactive
inactive inactive
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"
XXXXXXXXXXXXXXXXXXX
finished
Mobile user
executing
Process-Id: 1234567
Startactivity: configure software
ProcessState: running
5. Assignment and process execution
© UniHH, S-Cube – 26
Process variables:
IBAN (String): "DE68 2105 0172 3456 78"
OK (BOOLEAN): -
…
Example (Runtime)
buy
software
configure
software
test
software
receive
update
make
complaint
accoun-
tingpayment
consider
legal
action
assert
claim
X
X
ok
not
ok
ok
not
ok
write
report
ok
inactive inactive inactive inactive
inactive inactive
inactive inactive
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"
XXXXXXXXXXXXXXXXXXX
finished
Mobile user
executed
Process-Id: 1234567
Startactivity: test software
ProcessState: option
5. Assignment and process execution
© UniHH, S-Cube – 27
Example (Runtime)
Process variables:
IBAN (String): "DE68 2105 0172 3456 78"
OK (BOOLEAN): true
…
buy
software
configure
software
test
software
receive
update
make
complaint
accoun-
tingpayment
consider
legal
action
assert
claim
X
X
ok
not
ok
ok
not
ok
write
report
ok
inactive inactive inactive
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"
XXXXXXXXXXXXXXXXXXX
finished
Mobile user
Process-Id: 1234567
Startactivity: accounting
ProcessState: option
finished finished
skipped skipped
skipped skipped
5. Assignment and process execution
© UniHH, S-Cube – 28
Example (Runtime)
Process variables:
IBAN (String): "DE68 2105 0172 3456 78"
OK (BOOLEAN): true
…
buy
software
configure
software
test
software
receive
update
make
complaint
accoun-
tingpayment
consider
legal
action
assert
claim
X
X
ok
not
ok
ok
not
ok
write
report
ok
inactive inactive inactive
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"
XXXXXXXXXXXXXXXXXXX
finished
Process-Id: 1234567
Startactivity: accounting
ProcessState: option
Administration
finished finished
skipped skipped
skipped skipped
5. Assignment and process execution
© UniHH, S-Cube – 29
Example (Runtime)
Process variables:
IBAN (String): "DE68 2105 0172 3456 78"
OK (BOOLEAN): true
…
buy
software
configure
software
test
software
receive
update
make
complaint
accoun-
tingpayment
consider
legal
action
assert
claim
X
X
ok
not
ok
ok
not
ok
write
report
ok
inactive inactive
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"
XXXXXXXXXXXXXXXXXXX
finished
Administration
finished finished finished
Process-Id: 1234567
Startactivity: payment
ProcessState: option
skipped skipped
skipped skipped
5. Assignment and process execution
© UniHH, S-Cube – 30
Example (Runtime)
Process variables:
IBAN (String): "DE68 2105 0172 3456 78"
OK (BOOLEAN): true
…
buy
software
configure
software
test
software
receive
update
make
complaint
accoun-
tingpayment
consider
legal
action
assert
claim
X
X
ok
not
ok
ok
not
ok
write
report
ok
inactive
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"
XXXXXXXXXXXXXXXXXXX
finished
Administration
finished finished finished executing
Process-Id: 1234567
Startactivity: payment
ProcessState: running
skipped skipped
skipped skipped
5. Assignment and process execution
© UniHH, S-Cube – 31
Example (Runtime)
Process variables:
IBAN (String): "DE68 2105 0172 3456 78"
OK (BOOLEAN): true
…
buy
software
configure
software
test
software
receive
update
make
complaint
accoun-
tingpayment
consider
legal
action
assert
claim
X
X
ok
not
ok
ok
not
ok
write
report
ok
inactive
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"
finished
Administration
finished finished finished executing
Process-Id: 1234567
Startactivity: payment
ProcessState: running
skipped skipped
skipped skipped
5. Assignment and process execution
© UniHH, S-Cube – 32
Example (Runtime)
Process variables:
IBAN (String): "DE68 2105 0172 3456 78"
OK (BOOLEAN): true
…
buy
software
configure
software
test
software
receive
update
make
complaint
accoun-
tingpayment
consider
legal
action
assert
claim
X
X
ok
not
ok
ok
not
ok
write
report
ok
inactive
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"
XXXXXXXXXXXXXXXXXXX
finished
Administration
finished finished finished executing
Process-Id: 1234567
Startactivity: payment
ProcessState: running
skipped skipped
skipped skipped
5. Assignment and process execution
© UniHH, S-Cube – 33
Example (Runtime)
XXXXXXXXXXXXXXXXXX
Process variables:
IBAN (String): "DE68 2105 0172 3456 78"
OK (BOOLEAN): true
…
buy
software
configure
software
test
software
receive
update
make
complaint
accoun-
tingpayment
consider
legal
action
assert
claim
X
X
ok
not
ok
ok
not
ok
write
report
ok
inactive
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"
XXXXXXXXXXXXXXXXXXX
finished
Administration
finished finished finished finished
Process-Id: 1234567
Startactivity: write report
ProcessState: option
skipped skipped
skipped skipped
5. Assignment and process execution
© UniHH, S-Cube – 34
Example (Runtime)
XXXXXXXXXXXXXXXXXX
Process variables:
IBAN (String): "DE68 2105 0172 3456 78"
OK (BOOLEAN): true
…
buy
software
configure
software
test
software
receive
update
make
complaint
accoun-
tingpayment
consider
legal
action
assert
claim
X
X
ok
not
ok
ok
not
ok
write
report
ok
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"
XXXXXXXXXXXXXXXXXXX
finished
Administration
finished finished finished finished finished
Process-Id: 1234567
Startactivity: -
ProcessState: finished
skipped skipped
skipped skipped
5. Assignment and process execution
© UniHH, S-Cube – 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 – 36
Ad-hoc management capabilities (2)
Process management system as a manageable resource
Realized according to the Web Services Distributed
Management (WSDM) standard
process instance
process management system
information modification eventsmeta services
management interface
process model
instantiate
event
process history
terminate
context
intrinsic
context
extrinsic
context
deploy/undeploy
status
change
context change
© UniHH, S-Cube – 37
Ad-hoc management capabilities (3)
Interfaces
– Information: request status of processes
– Modification: manipulate the process execution
– Events: subscription to specific event types
– Meta services: information about management capabilities
Common models for processes
and process instances
process model
activity
transition
predefined
performer
data type
from to
1
1
1
*
*
*
* use
use
10..1
1 1
* *
1
**
*
model id1
1
data field
1
*condition
*
0..1
1
process instance
activity
transition
actual performer
from to
1
1
1
**
use
1
1
1 1
* *
**
*
instance id
1
1
status
history
1
1
1
data value
1
1
data type
1
*
1
*data field
status1
1
* usecondition
*
0..1
1
evaluation result
1
0..1
1
process instance
process management system
information modification eventsmeta services
management interface
process model
instantiate
event
process history
terminate
context
intrinsic
context
extrinsic
context
deploy/undeploy
status
change
context change
© UniHH, S-Cube – 38
Realizing Runtime Process Migration
Process engine needs to be extended in order to support
migration and/or ad-hoc management capabilities
Migration metadata model abstracts from concrete process
languages
Prototypical implementation done for two types of languages
– Graph-based: reference implementation for XPDL in DEMAC
– Block-structured: evaluation of WS-BPEL, realized in Sliver
© UniHH, S-Cube – 39
Background: DEMAC middleware platform
VirtualTransport
Transport Protocol
Adapter Adapter
Transport Protocol
Context Service
Applications
Process Service
Asynchronous Transport Service
Event Service
Transport Protocol Access Layer
Service Layer
Application Layer
Transport Layer
Christian P. Kunze. DEMAC: A Distributed Environment for Mobility-Aware Computing. In:
Adjunct Proceedings of the Third International Conference on Pervasive Computing (2005)
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
Middleware for mobile computing
Transport Service: abstracts from
concrete transport protocols,
spans an overlay network
Context Service: collects and
maintains all information about the
context of the device
Process Service: integrates process management
© UniHH, S-Cube – 40
Learning Package Overview
Problem Description
Runtime Process Migration
Discussion
Conclusions
© UniHH, S-Cube – 41
Existing Approaches
Current approaches for increasing dynamism and flexibility in
distributed business processes
Process fragmentation:
– Transformation of service granularity or
insertion of new services, e.g.
[Khalaf and Leymann, 2006],
[Baresi, Maurino and Modafferi, 2006].
– Development of choreography, e.g. CiAN
[Sen, Roman and Gill, 2008].
– Non-intrusive fragmentation, e.g.
[Martin, Wutke and Leymann, 2008]
Process migration:
– Introduced by [Cichocki and Rusinkiewicz, 1997].
– OSIRIS [Schuler, Weber, Schuldt and Schek,
2004].
– Pervasive and mobile applications, e.g. [Montagut
and Molva, 2005], [Kunze, Zaplata and
Lamersdorf, 2006].
– Dynamic partitioning, e.g.
[Atluri et al., 2007]
© UniHH, S-Cube – 42
Process Migration vs. Process Fragmentation Evaluation of XPDL
Tested XPDL elements Process migration Process fragmentation
Atomic activities activity possible possible
Structured activities activity set possible possible
branches (XOR) loops
branches (AND)
possible
possible
replication and synchronization required
possible (transfer of decision) coordination required
coordination and synchronization required
Other elements transaction (XPDL 2.0) for undo: to be avoided
for compensation: possible
coordination required
Dead path elimination - automatically coordination required
Privacy of process parts - artificial automatically
Splitting atomic activities - forbidden no known approach
Data replication - only for parallel execution (entire process)
always: data fields, data types, applications, participants
Design time distribution - possible (assign all activities in advance)
possible
Runtime distribution - during execution once after invocation
© UniHH, S-Cube – 43
Process Migration vs. Process Fragmentation Evaluation of WS-BPEL
© UniHH, S-Cube – 44
Advantages/Disadvantages
Runtime process migration as an
alternative to (physical) process
fragmentation
Benefits:
– More flexibility: advantageous in a
dynamic context
– Especially suited for dynamic non-
recurrent/ad-hoc process executions
Limitations:
– Limited flexibility for "receiving"
processes (e.g. messages, events)
Modification/development overhead
– Once for the process engine(s) or for
each process model/instance?
Fragmentation
Migration
© UniHH, S-Cube – 45
Learning Package Overview
Problem Description
Runtime Process Migration
Discussion
Conclusions
© UniHH, S-Cube – 46
Summary
There is an increasing need for dynamism and flexibility
in the distributed execution of business processes
The proposed approach tackles this challenge in providing a
methodology, mechanisms and models for the migration of
process instances at runtime
– Generic migration metadata model
– Consideration of security aspects
– Ad-hoc management capabilities
Evaluation for XPDL and WS-BPEL
– No change of existing process models required
– Process migration shows more flexibility than process fragmentation
– Especially advantageous in a dynamic context
© UniHH, S-Cube – 47
Further S-Cube Reading
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
Sonja Zaplata, Kristian Kottke, Matthias Meiners, Winfried Lamersdorf. Towards Runtime
Migration of WS-BPEL Processes. In: Service-Oriented Computing. ICSOC/ServiceWave 2009
Workshops (2010)
Sonja Zaplata, Kristof Hamann, Kristian Kottke, Winfried Lamersdorf. Flexible Execution of
Distributed Business Processes based on Process Instance Migration. In: Journal of Systems
Integration (JSI), Volume 1, Number 3, pp. 3-16 (2010)
Sonja Zaplata, Winfried Lamersdorf. Towards Mobile Process as a Service. In: Proceedings of
the 2010 ACM Symposium on Applied Computing (2010)
Sonja Zaplata, Daniel Straßenburg, Benjamin Wunderlich, Dirk Bade, Kristof Hamann, Winfried
Lamersdorf. Ad-hoc Management Capabilities for Distributed Business Processes. In: 3rd
International Conference on Business Process and Services Computing (2010)
© UniHH, S-Cube – 48
Acknowledgements
The research leading to these results has
received funding from the European
Community’s Seventh Framework
Programme [FP7/2007-2013] under grant
agreement 215483 (S-Cube).