This document proposes a method to synthesize a decentralized system from a specification of Live Sequence Charts (LSCs). It introduces distributed LSCs (dLSCs) which use partial orders and local states instead of global states. A two-step process first synthesizes a Petri net structure from LSC main charts, then adds guards to tokens based on LSC precharts. This extracts autonomous components while preserving behaviors. A prototype tool demonstrates the approach on an emergency management example. Future work includes code generation and increasing dLSC expressiveness.
13. LSC and distributed components
A
a a
b
B C
c
a
trace: a b c a
a conflicts the LSC
12
14. LSC and distributed components
A
a a “block d”
b
B C
c
a
trace: a b c a
a conflicts the LSC: LSC is no longer relevant
abort chart block ‘d’
13
15. LSC and distributed components
A
a a coordinate
b
B C
c
a
trace: a b c a
a conflicts the LSC: LSC is no longer relevant
may C execute d?
14
16. LSC and distributed components
A
a a coordinate
b
B C
c
LSC semantics maintains global state
requires additional interaction or central controller
15
17. Contribution
X Z decentralized system
extract
specification:
a set of LSCs
with
non-global
states
components
16
18. Central Fragment of LSC
Partial-order representation of LSCs event a by
X Y
component X
X.a
a
causal
b c X.b Y.c
dependency
X Y Y.c
c
d Y.d
a
X.a
17
19. Semantics: distributed LSC (dLSC)
construct partially ordered runs
if run ends with a pattern
pre
that matches the prechart run
main
then concatenate pre
the main chart locally
main
preserves causal dependencies in runs
needs no global state
no other auxiliary notions
18
24. Complex precharts
C.
treat
if prechart occurs at the end of the run
continue with main chart
23
25. Outline
X Z decentralized system
extract
specification:
a set of dLSCs
with
non-global
states
components
24
26. How hard is synthesis?
X Z Petri net
for each low-level Petri net
specification: exists a dLSC spec with the same runs
a set of dLSCs cannot (effectively) translate all dLSC specs
to Petri nets, reason: complex precharts
25
27. …need tokens with memory
history
X Z Token History
Petri net
each token records history of past events
specification: transitions have guards wrt. token
a set of dLSCs histories
can express complex precharts of
dLSC
26
28. Synthesis in 2 steps
main charts net structure
precharts guards
history
X Z Token History
Petri net
separate nodes
specification:
a set of dLSCs
polynomial time complexity
components
complete for local choice specs
27
33. Prototype Tool (SAM)
Components are extracted as a CPN-Tools model
• Supports simulation & analysis
• http://www.win.tue.nl/~dfahland/tools/sam/
32
34. Conclusion
X Z dLSC = central fragment of Token History PN
LSC with non-global states
more expressive than extract
low-level Petri nets
dLSC synthesis + prototype tool
components
33
35. Possible Research Directions
Code generation (for components)
• Erlang actors
• Java components/threads
Operations on scenarios
• Scenario (de)composition
• scenario refinement
Increasing expressive power of dLSC
• mandatory (hot) events
• data
• etc.
34
36. Dirk Fahland
Amir Kantor
From LSC
to Distributed Components
Weizmann Institute
of Science