63
New insights on architectural connectors 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 Ivan Lanese Computer Science Department University of Pisa IFIP TCS 2004, Toulouse, 22-27 August 2004

New insights on architectural connectors joint work with Roberto Bruni University of Pisa, Italy Ugo Montanari University of Pisa, Italy José Luiz Fiadeiro

  • View
    217

  • Download
    1

Embed Size (px)

Citation preview

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

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

Channel connectors

i

i

i i b

o

o b

b

!i

New insights on architectural connectors

Action synchronization connectors

! 1

New insights on architectural connectors

Translating the glue

!i

!i

!i

!i

!i

1

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

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

Tiles for mutual exclusion

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

New insights on architectural connectors