630 likes | 809 Views
IFIP TCS 2004, Toulouse, 22-27 August 2004. New insights on architectural connectors. Ivan Lanese Computer Science Department University of Pisa. joint work with Roberto Bruni University of Pisa, Italy Ugo Montanari University of Pisa, Italy
E N D
IFIP TCS 2004, Toulouse, 22-27 August 2004 New insights on architectural connectors Ivan Lanese Computer Science Department University of Pisa joint work with Roberto Bruni University of Pisa, Italy Ugo Montanari University of Pisa, Italy José Luiz Fiadeiro University of Leicester, UK Antónia Lopes University of Lisbon, Portugal
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
Morphisms Colimit s CommUnity • System configurations are diagrams • Components compute locally • Interactions as architectural connectors “Denotational semantics” Program New insights on architectural connectors
actions guards concurrent assignments CommUnity programs design foo is in x, z out v, n doa: true v:= x+z | n:=v+x [] b: n>MIN n:=n-x []c: v<MAX v:=n+z input/output channels New insights on architectural connectors
Morphisms output channels cannot be merged P1 channels of P1 to channels of P2 (names are not important) actions of P2 to actions of P1 actions of P1 correspond to disjoint sets of actions of P2 P2 New insights on architectural connectors
Example design P1is in … out … doa … [] b … design P is in … out … dof|a|p … [] f|a|q … [] f|a|r … [] g|a|p … [] g|a|q … [] g|a|r … [] h|b|s … f,g a p,q,r h b s design P2is in … out … dof … [] g … [] h … design P3is in … out … dop … [] q … [] r … [] s … New insights on architectural connectors
Star-shaped diagrams glue cables no output channels actions are true skip roles 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
parallel composition sequential composition Configurations output interface input interface (interfaces can be typed) New insights on architectural connectors
Configurations output interface input interface parallel composition symmetries sequential composition New insights on architectural connectors
concurrent computation Observations initial interface final interface New insights on architectural connectors
initial configuration trigger effect final configuration Tiles • Combine horizontal and vertical structures through interfaces New insights on architectural connectors
Tiles • Compose tiles • horizontally New insights on architectural connectors
Tiles • Compose tiles • horizontally • (also vertically and in parallel) New insights on architectural connectors
f (a,b) f g a b g Operational semantics • Structural equivalence • Axioms on configurations (e.g. symmetries) • LTS • states = configurations • transitions = tiles • labels = (trigger,effect) pairs New insights on architectural connectors
x x x ≈ ∕ y y z z 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 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
channel managers and guard managers Standard decomposition illustrated • n output channels • m actions P • n channel managers • m guard managers • n+m cables • 1 glue 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 Channel fusion Role or glue Action synchro nization Role or glue … … Role or glue Anchored configuration New insights on architectural connectors
Structure of a configuration State Channel fusion Role or glue Action synchro nization Role or glue … … Role or glue 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
channel manager guard manager state i i state [<val:typ>] cm[<fi>] gm[p] i i i o i i o i i o i i o o b b b channels channels actions channels action Constructors for roles and state New insights on architectural connectors
i i i ! Channel connectors b i o b o b i New insights on architectural connectors
! Action synchronization connectors 1 New insights on architectural connectors
! ! ! ! ! Translating the glue i i i 1 i i 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
! ! ! ! ! ! Synchronizing actions 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 a r 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