Dynamic Composition of Pervasive Process Fragments
Adina Sirbu, Annapaola Marconi, Marco Pistore
Bruno Kessler Foundation, Trento, Italy
Hanna Eberle, Frank Leymann, Tobias Unger
Institute of Architecture of Application Systems, Stuttgart, Germany
Outline
1.
introduction
2.
application representation
object diagrams
goals
pervasive process fragments
3.
solution
4.
evaluation
5.
conclusions and future work
Dynamic Composition of Pervasive Process Fragments
Introduction
in a pervasive computing environment it is critical to allow for
process knowledge
to be discovered at runtime
to be used depending on the context
can be achieved with an underlying service-based application
services can be discovered, selected, and composed dynamically
Dynamic Composition of Pervasive Process Fragments
Introduction
process fragments [Eberle et al., 2009]
model incomplete and local process knowledge
can be integrated dynamically at design time or run time if:
processes are enriched with goals
fragments are enriched with information on how they contribute to the
outcome of the process
adaptable pervasive flows
dynamic workflows modeling the behavior and goals of physical entities
context-aware: special modeling elements representing context
information
=> pervasive process fragments: by applying the definition of process
fragments to adaptable pervasive flows
Dynamic Composition of Pervasive Process Fragments
Introduction
research problem:
to compose pervasive process fragments at run time based on
context and goals
comparison to Web service composition:
components are not orchestrated, but integrated into a
complete flow model
important issues from Web service composition do not appear
in fragment composition – e.g., message exchange
new problems: fragments can overlap, or can have gaps in the
specification
Dynamic Composition of Pervasive Process Fragments
Introduction
Box at the airport scenario
Box at the Airport Flow
Goal: Release box
Check box origin
Take to baggage claim
Charge and collect tax
Unload from airplane
Dynamic Composition of Pervasive Process Fragments
Check box content
Outline
1.
introduction
2.
application representation
object diagrams
goals
pervasive process fragments
3.
solution
4.
evaluation
5.
conclusions and future work
Dynamic Composition of Pervasive Process Fragments
Process knowledge
Domain knowledge
Application Representation
Object diagrams
Stable and
abstract
Goals
Pervasive process fragments
E: …
P: …
P: …
E: …
annotated with preconditions and
effects (domain knowledge)
Dynamic Composition of Pervasive Process Fragments
Dynamic and
concrete
Object diagrams
box at the
airport
Dynamic Composition of Pervasive Process Fragments
tax
invoice
Goals
box at the
airport
Primary Goal
tax
invoice
Recovery Goal
Composition goal
T => readys(box) ≻ disposeds(box)
Dynamic Composition of Pervasive Process Fragments
Pervasive process fragments
adaptable pervasive flows
specified in APFL = BPEL + extensions for the pervasive domain
process fragments -> incomplete process knowledge:
control connectors may have either no source or no target activity
modeler has the freedom to not model control connectors at all
can contain gaps -> Region element
pervasive process fragments -> process fragment properties
applied to APFL:
not required to have a start activity
pick connectors may be left dangling
can contain Regions
Dynamic Composition of Pervasive Process Fragments
Pervasive process fragments
P: unloadeds(box)
E: approvee(box)
Check box origin
P:
Receive EU
origin ack
unloadeds(box)
Check EU
origin
Check box origin
Receive EU
origin nack
Content
ack
Check box content
Charge
tax
Check
content
P: unloadeds(box)
E: rejecte(box)
P: rejecteds(box)
E: disposee(box)
Dispose
Charge and collect tax
P: unloadeds(box) ʌ not-exists(inv)
E: {evaluatee(box), createe(inv)}
P: evaluateds(box) ʌ opens(inv)
E: {taxe(box), closee(inv)}
P: opens(inv)
Charge tax
with invoice
Send notice of
assessment
Payment
completed
Unload box
Unload box
P: inits(box)
E: unloade box)
P: inits(box)
Unload from
airplane
Bring to claim
P: approveds(box)
Bring to claim
Mark
box
P: unloadeds(box)
Content
nack
Charge and collect tax
P: taxeds(box)
E: approvee(box)
P: unloadeds(box)
E: evaluatee(box)
Check box content
Take to
baggage claim
Box on
carrier
P: approveds(box)
E: releasee(box)
Box at
baggage claim
Bring to
terminal
Box at
terminal
Pervasive process fragments
Check box origin
P:
box at the
airport
P: unloadeds(box)
E: approvee(box)
Receive EU
origin ack
unloadeds(box)
Check EU
origin
Receive EU
origin nack
P: taxeds(box)
E: approvee(box)
P: unloadeds(box)
E: evaluatee(box)
Check box content
Content
ack
Charge
tax
Mark
box
P: unloadeds(box)
Check
content
P: unloadeds(box)
E: rejecte(box)
P: rejecteds(box)
E: disposee(box)
Content
nack
Dispose
Charge and collect tax
P: unloadeds(box) ʌ not-exists(inv)
E: {evaluatee(box), createe(inv)}
P: evaluateds(box) ʌ opens(inv)
E: {taxe(box), closee(inv)}
P: opens(inv)
Charge tax
with invoice
Send notice of
assessment
Payment
completed
Unload box
P: inits(box)
E: unloade box)
P: inits(box)
Unload from
airplane
Bring to claim
P: approveds(box)
Take to
baggage claim
Box on
carrier
P: approveds(box)
E: releasee(box)
Box at
baggage claim
Bring to
terminal
Box at
terminal
Pervasive process fragments
- overlapping activities
1.
consistent preconditions
P:
unloadeds(box)
box at the
airport
E: evaluatee(box)
Charge tax
P: unloadeds(box) ʌ not-exists(inv)
E: {evaluatee(box), createe(inv)}
Charge tax with invoice
tax
invoice
Consistent!
Dynamic Composition of Pervasive Process Fragments
Pervasive process fragments
- overlapping activities
1.
2.
consistent preconditions
consistent effects
P:
unloadeds(box)
box at the
airport
E: evaluatee(box)
Charge tax
P: unloadeds(box) ʌ not-exists(inv)
E: {evaluatee(box), createe(inv)}
Charge tax with invoice
tax
invoice
Consistent!
Dynamic Composition of Pervasive Process Fragments
Pervasive process fragments
- overlapping activities
1.
2.
3.
consistent preconditions
consistent effects
common object diagram for
which effects non-empty
P:
unloadeds(box)
box at the
airport
E: evaluatee(box)
Charge tax
P: unloadeds(box) ʌ not-exists(inv)
E: {evaluatee(box), createe(inv)}
Charge tax with invoice
tax
invoice
Overlapping!
Dynamic Composition of Pervasive Process Fragments
Outline
1.
introduction
2.
application representation
object diagrams
goals
pervasive process fragments
3.
solution
4.
evaluation
5.
conclusions and future work
Dynamic Composition of Pervasive Process Fragments
Solution overview
STS
Planning
domain
(4)
(2)
STS
STS
(5)
G-2-STS
Goals
GOAL
Construction
(3)
STS
Dynamic Composition of Pervasive Process Fragments
Planning
goal
ρ
Controlled
domain
STS-2-APFL
(7)
Planner
Object
diagrams
(6)
OD-2-STS
Action
Table
Pervasive process
fragments
APFL-2-STS
(1)
Composed
flow
Solution
(1) pervasive process fragments to STS
Check box origin
P: unloadeds(box)
P: unloadeds(box)
E: approvee(box)
Receive EU
origin ack
STS
Check EU
origin
Receive EU
origin nack
Action table entry
<unloads(box), !Receive_EU_origin_ack, {approvee(box)}>
Dynamic Composition of Pervasive Process Fragments
Solution
(2) object diagrams to STS
New STS:
- no events
- all states are final
- labels for states
Dynamic Composition of Pervasive Process Fragments
Solution
(3 & 5) goals to STS
Composition goal
T => readys(box) ≻ disposeds(box)
STSs
l0
!eT
!er
[readys(box) ]
?eT
!ed
[disposeds(box)]
?eT
l1
?eT
?er ?ed
ρc = (l0, l1, l2)
Dynamic Composition of Pervasive Process Fragments
l2
Solution
(4) building the planning domain: the parallel product
Check content (f1)
Dynamic Composition of Pervasive Process Fragments
Charge and collect tax (f2)
Solution
(4) building the planning domain: the parallel product
Check content (f1)
Charge and collect tax (f2)
For <f1.s3, f2.s0> we have 2 possible transitions:
<(f1.s3, f2.s0), unloadeds(box) & not-exists(inv), ?Charge_tax || ?Charge_tax_with_invoice, (f1.s4, f2.s1)>
<(f1.s3, f2.s0), unloadeds(box) & ¬not-exists(inv), ?Charge_tax, (f1.s4, f2.s0)>
Unload box
Solution
(6) result as STS
Charge and collect tax
Bring to claim
Check box content
Dynamic Composition of Pervasive Process Fragments
Bring to claim
Solution
(7) result as APFL
Dynamic Composition of Pervasive Process Fragments
Outline
1.
introduction
2.
application representation
object diagrams
goals
pervasive process fragments
3.
solution
4.
evaluation
5.
conclusions and future work
Dynamic Composition of Pervasive Process Fragments
Evaluation
- Experiment 1
tradeoff regarding the number of
activities in a fragment:
large => higher burden on the designer
small => longer composition time
intuitively: most visible on hard
composition problems
new scenario:
group of 3 people is traveling to ICWS’11
conference has events that overlap in time
up to 3 events running concurrently
goal: every event is attended by exactly one
person
scenario equivalent to a graph 3-coloring
problem, which is NP-complete
Dynamic Composition of Pervasive Process Fragments
Evaluation
- Experiment 2
set of available fragments can
contain more fragments then
actually necessary
idea: test how the number of
available fragments influences
the performance
Box at the airport scenario
28
Dynamic Composition of Pervasive Process Fragments
Outline
1.
introduction
2.
application representation
object diagrams
goals
pervasive process fragments
3.
solution
4.
evaluation
5.
conclusions and future work
Dynamic Composition of Pervasive Process Fragments
Conclusions and future work
approach for composing pervasive process fragments according to
context and goals:
object diagrams -> properties of domain entities
used object diagrams to define goals and annotate fragments
encoded object diagrams, goals and fragments into a planning problem
result: a complete adaptable pervasive flow which satisfies the goals
future work:
extend composition mechanism with APFL adaptation constructs:
abstract activities
built-in adaptation tools
evaluate on a real-world scenario developed in ALLOW: vehicle logistics
until now only control-flow requirements => add data to our models
Dynamic Composition of Pervasive Process Fragments
Thank you!
Questions?
© Copyright 2026 Paperzz