new insights on architectural connectors joint work with roberto bruni university of pisa, italy ugo...
Post on 21-Dec-2015
217 views
TRANSCRIPT
New insights on architectural connectors
joint work withRoberto Bruni University of Pisa, ItalyUgo Montanari University of Pisa, ItalyJosé Luiz Fiadeiro University of Leicester, UKAntónia Lopes University of Lisbon, Portugal
Ivan LaneseComputer Science Department University of Pisa
IFIP TCS 2004, Toulouse, 22-27 August 2004
New insights on architectural connectors
Roadmap Goal Background: CommUnity Background: tile logic Standard decomposition
for CommUnity From CommUnity to tiles Conclusion and future
work
New insights on architectural connectors
Roadmap Goal Background: CommUnity Background: tile logic Standard decomposition
for CommUnity From CommUnity to tiles Conclusion and future
work
New insights on architectural connectors
General motivation I Comparing the categorical and the algebraic
approach to systems Categorical approach Algebraic approach
New insights on architectural connectors
General motivation II Comparing the categorical and the algebraic
approach to systems Categorical approach
objects are system components morphisms express simulation, refinement, … complex systems are modeled as diagrams composition via universal construction (colimit)
Algebraic approach
New insights on architectural connectors
General motivation III Comparing the categorical and the algebraic
approach to systems Categorical approach Algebraic approach
System represented by an algebra constants are basic components operations compose smaller systems into larger ones structural axioms collapse structurally equivalent
systems operational semantics (SOS style) abstract semantics (bisimilarity)
New insights on architectural connectors
Specific aim Reconcile two selected representatives
CommUnity (categorical) architectural description language distinction between computation and
coordination Tile model (algebraic)
operational model for concurrent systems co-existence of horizontal (space) and vertical
(time) dimensions
New insights on architectural connectors
Specific aim: advantages Advantage: transfer of concepts and
techniques Semantic model for CommUnity Observational equivalence of CommUnity
configurations CommUnity-like connectors in the tile
model Separation between computation and
coordination for tiles
New insights on architectural connectors
Roadmap Goal Background: CommUnity Background: tile logic Standard decomposition
for CommUnity From CommUnity to tiles Conclusion and future
work
New insights on architectural connectors
CommUnity
Program Colimit
Morphisms “Denotational semantics”
s
System configurations are diagrams Components compute locally Interactions as architectural connectors
New insights on architectural connectors
CommUnity programs
design foo isin x, zout v, ndo a: true v:= x+z | n:=v+x[] b: n>MIN n:=n-x[] c: v<MAX v:=n+z
input/output channels
actionsguards concurrent assignments
New insights on architectural connectors
Morphisms
channels of P1 to channels of P2
actions of P2 to actions of P1
P1
P2
actions of P1
correspond todisjoint sets of actions of P2
output channels cannot be merged
(names are not important)
New insights on architectural connectors
Exampledesign P1 isin … out …do a …[] b …
design P2 isin … out …do f …[] g …[] h …
design P3 isin … out …do p …[] q …[] r …[] s …
f,g a p,q,r
h b s
design P isin … out …do f|a|p …[] f|a|q …[] f|a|r …
[] g|a|p …[] g|a|q …[] g|a|r …
[] h|b|s …
New insights on architectural connectors
Star-shaped diagrams
roles
cablesno output channels
actions are true skip
glue
New insights on architectural connectors
Roadmap Goal Background: CommUnity Background: tile logic Standard decomposition
for CommUnity From CommUnity to tiles Conclusion and future
work
New insights on architectural connectors
Tile model Operational and abstract semantics of
open concurrent systems Compositional in space and time Deals uniformly with closed and open
systems Congruence results for particular formats
Category based but compositionality dealt with algebraic methods
New insights on architectural connectors
parallelcomposition
Configurations
inputinterface
outputinterface
sequentialcomposition
(interfaces can be typed)
New insights on architectural connectors
Configurations
inputinterface
outputinterface
parallelcomposition
sequentialcomposition
symmetries
New insights on architectural connectors
Observationsinitial
interface
finalinterface
concurrent
computation
New insights on architectural connectors
Tiles Combine horizontal and vertical
structures through interfaces
initial configuration
final configuration
trigger effect
New insights on architectural connectors
Tiles Compose tiles
horizontally (also vertically and in parallel)
New insights on architectural connectors
Operational semantics Structural equivalence
Axioms on configurations (e.g. symmetries) LTS
states = configurations transitions = tiles labels = (trigger,effect) pairs
f
a
g
b f g(a,b)
New insights on architectural connectors
Abstract semantics Tile bisimilarity
Standard bisimilarity applied to previous transition system
Systems are bisimilar iff they can mutually simulate transitions
More powerful than trace equivalence
x
y z
x x
y z≈∕
New insights on architectural connectors
Roadmap Goal Background: CommUnity Background: tile logic Standard decomposition
for CommUnity From CommUnity to tiles Conclusion and future
work
New insights on architectural connectors
Standard decomposition The decomposition of a program is a
star-shaped diagram It highlights the algebraic structure of
CommUnity programs It is the first step of the translation
into the tile model
New insights on architectural connectors
Standard decomposition illustrated•n output channels•m actions
•n channel managers•m guard managers•n+m cables•1 glue
P
channel managers and guard managers
New insights on architectural connectors
Elements of the decomposition
Glue Channel managers Guard managers Cables Morphisms
New insights on architectural connectors
Elements of the decomposition
Glue all the channels as input channels all the actions as true skip
Channel managers Guard managers Cables Morphisms
New insights on architectural connectors
Elements of the decomposition
Glue Channel managers
one for each output channel the assignments to that channel as actions the input channels needed to evaluate the
assignments Guard managers Cables Morphisms
New insights on architectural connectors
Elements of the decomposition
Glue Channel managers Guard managers
one for each guard one action of the form pred skip the input channels needed to evaluate the guard
Cables Morphisms
New insights on architectural connectors
Elements of the decomposition
Glue Channel managers Guard managers Cables
all the channels needed by the role, as input channels
all the actions needed by the role, as true skip Morphisms
New insights on architectural connectors
Elements of the decomposition
Glue Channel managers Guard managers Cables Morphisms
maps the actions and channels of the cables to the corresponding ones in the glue and in the roles
New insights on architectural connectors
Properties of the decomposition
Correctness the colimit of the decomposed program is
equal to the starting program Possible generalization
a diagram can be decomposed by decomposing each role
morphisms entering a program become morphisms entering the glue
New insights on architectural connectors
Roadmap Goal Background: CommUnity Background: tile logic Standard decomposition
for CommUnity From CommUnity to tiles Conclusion and future
work
New insights on architectural connectors
What we need We have to define a tile logic from a
CommUnity program We need to define
objects configurations observations tiles
to specify the behavior
New insights on architectural connectors
Objects channels
with a type and a modality (input/output) special boolean objects
for the evaluation of guards synchronization objects
representing actions
New insights on architectural connectors
Structure of a configuration
State
Role orglue
Channelfusion
Actionsynchronization
Role orglue
Role orglue
……
Anchored configuration
New insights on architectural connectors
Structure of a configuration
State
Role orglue
Channelfusion
Actionsynchronization
Role orglue
Role orglue
……
Unanchored configuration
New insights on architectural connectors
How to build a configuration
We translate roles and glues We build the system using the “parallel
composition through one cable” operation this allows to build the whole system thanks to
the property of the decomposition we fix an order ≤ on cables for translating them the operation adds the channel fusion and action
synchronization parts Eventually we add the state
New insights on architectural connectors
Constructors for roles and state
cm[<fi>]
i
i
i
i
i
b
actionschannels
channel manager
o
gm[p]
i
i
i
i
i
b
actionchannels
guard managerstate
state[<val:typ>]
channels
i
o
o
o
o
b
New insights on architectural connectors
Parallel composition through one cable
Channel part: channels in the image of the same channel of the cable are merged using channel connectors
Action part: we have to synchronize in all the possible ways the actions of the two groups mapped to each action of the cable
New insights on architectural connectors
Observations
For the action part: tick (action performed) or untick (action forbidden)
For the channel part terms assigning: to each output variable its data term to each special boolean object a predicate to each input variable a * term, standing
for a guess on the actual value
New insights on architectural connectors
Tiles
Specify the semantics of each part of the configuration
Tiles for state channel connectors channel managers guard managers action synchronization connectors
New insights on architectural connectors
Tiles
Specify the semantics of each part of the configuration
Tiles for state
update the values with the assignments and check the validity of predicates
channel connectors channel managers guard managers action synchronization connectors
New insights on architectural connectors
Tiles
Specify the semantics of each part of the configuration
Tiles for state channel connectors
apply consistent substitutions to data terms channel managers guard managers action synchronization connectors
New insights on architectural connectors
Tiles
Specify the semantics of each part of the configuration
Tiles for state channel connectors channel managers
produce the assignments to the left and a tick on the performed action to the right
guard managers action synchronization connectors
New insights on architectural connectors
Tiles
Specify the semantics of each part of the configuration
Tiles for state channel connectors channel managers guard managers
produce the predicate to the left and a tick to the right action synchronization connectors
New insights on architectural connectors
Tiles
Specify the semantics of each part of the configuration
Tiles for state channel connectors channel managers guard managers action synchronization connectors
select the allowed combinations of tick and untick in the interfaces
New insights on architectural connectors
Tile for channel fusion
y1=x2>3and x3<4
and x1
y2=x2+1
y1=x2<4and x1
y1=x2>3and x1
y2=x2+1
2
ii bbb oo
111 22 3
New insights on architectural connectors
Tile for channel manager
cm[<x2=x2+x1,x2=x2-x1>]
i
b
o
cm[<x2=x2+x1,x2=x2-x1>]
i
b
o
x2=x2+x1
x3=true
New insights on architectural connectors
Notation dia: CommUnity diagram DS(dia): standard decomposition of
dia TS(dia,≤): tile configuration for dia
where cables have been translated in the order specified by ≤, without state
TS(dia,≤,val): as before, but with state with values val
New insights on architectural connectors
Properties of the encoding I
TS(dia,≤,val) initial configuration of a tile val’. TS(dia,≤,val’) is the final configuration
Such a tile (with empty observation) exists iff there exists a computation of colim(dia) with starting state val and final state val’
New insights on architectural connectors
Properties of the encoding II
To deal with tiles without state we need a permutation ρ to rearrange the interface
Bisimilarity results: TS(dia,≤,val) ≈ TS(dia,≤’,val) for each ≤,
≤’ TS(dia,≤) ≈ ρ;TS(dia,≤’) for each ≤, ≤’ TS(dia,≤,val) ≈ TS(colim(dia),≤’,val) TS(dia,≤) ≈ ρ;TS(colim(dia),≤’,val)
New insights on architectural connectors
Roadmap Goal Background: CommUnity Background: tile logic Standard decomposition
for CommUnity From CommUnity to tiles Conclusion and future
work
New insights on architectural connectors
Algebraic vs categoricalAlgebraic Categorical
Basic constructors Objects
Aux. constructors Morphisms
Representative Colimit
up to equivalence
Operat. semantics ?
? Architectural aspects
New insights on architectural connectors
Future work Further analyze the correspondence
axiomatize connectors to have a correspondence between normal form and colimit
Deal with other aspects of CommUnity localities mobility dynamic reconfiguration
Mutual transfer of concepts and techniques between the two approaches
Apply the approach to other formalisms