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

Slides:



Advertisements
Similar presentations
Copyright 2000 Cadence Design Systems. Permission is granted to reproduce without modification. Introduction An overview of formal methods for hardware.
Advertisements

CommUnity, Tiles and Connectors joint work with Roberto Bruni José Luiz Fiadeiro Antónia Lopes Ugo Montanari Ivan Lanese Dipartimento di Informatica Università.
Connectors and Concurrency joint work with Ugo Montanari Roberto Bruni Dipartimento di Informatica Università di Pisa Dagstuhl Seminar #04241, September.
Rigorous Software Development CSCI-GA Instructor: Thomas Wies Spring 2012 Lecture 11.
Event structures Mauro Piccolo. Interleaving Models Trace Languages:  computation described through a non-deterministic choice between all sequential.
Background information Formal verification methods based on theorem proving techniques and model­checking –to prove the absence of errors (in the formal.
Roberto Pisa, Italy 13 June 2008 WADT Tiles for Reo Roberto Bruni Dipartimento di Informatica Università di Pisa WADT th International.
1 Ivan Lanese Computer Science Department University of Bologna Italy Exploiting user-definable synchronizations in graph transformation.
1 The SOCK SAGA Ivan Lanese Computer Science Department University of Bologna Italy Joint work with Gianluigi Zavattaro.
1 Ivan Lanese Computer Science Department University of Pisa (moved to Bologna) Synchronization strategies for global computing models Ph.D. thesis discussion.
1 Synchronization strategies for global computing models Ivan Lanese Computer Science Department University of Bologna.
1 Ivan Lanese Computer Science Department University of Bologna Roberto Bruni Computer Science Department University of Pisa A mobile calculus with parametric.
Synchronization Algebras with Mobility for Graph Transformations joint work with Ugo Montanari Dipartimento di Informatica Università di Pisa Ivan Lanese.
1 Ivan Lanese Computer Science Department University of Pisa (moved to Bologna) Synchronization strategies for global computing models Ph.D. thesis discussion.
1 Ivan Lanese Computer Science Department University of Bologna Italy Behavioural Theory for SSCC Joint work with Luis Cruz-Filipe, Francisco Martins,
1 Formal Models for Distributed Negotiations Concurrent Languages Translation Roberto Bruni Dipartimento di Informatica Università di Pisa XVII Escuela.
1 Ivan Lanese Computer Science Department University of Bologna Italy Evolvable systems: some ideas for modelling With input from Davide Sangiorgi, Fabrizio.
Bridging the gap between Interaction- and Process-Oriented Choreographies Talk by Ivan Lanese Joint work with Claudio Guidi, Fabrizio Montesi and Gianluigi.
1 Section 10.1 Boolean Functions. 2 Computers & Boolean Algebra Circuits in computers have inputs whose values are either 0 or 1 Mathematician George.
1 GT-VC 2005, San Francisco, August 22, 2005 Ugo Montanari Università di Pisa Ivan Lanese Università di Pisa Hoare vs. Milner: Comparing Synchronizations.
Bridging the gap between Interaction- and Process-Oriented Choreographies Talk by Ivan Lanese Joint work with Claudio Guidi, Fabrizio.
Bridging the gap between Interaction- and Process-Oriented Choreographies Talk by Ivan Lanese Joint work with Claudio Guidi, Fabrizio Montesi and Gianluigi.
1 Static vs dynamic SAGAs Ivan Lanese Computer Science Department University of Bologna/INRIA Italy.
Taylor Expansion Diagrams (TED): Verification EC667: Synthesis and Verification of Digital Systems Spring 2011 Presented by: Sudhan.
1 Ivan Lanese Computer Science Department University of Pisa Prof. Ugo Montanari Synchronization strategies for global computing Relator: Thesis Progress.
1 Ivan Lanese Computer Science Department University of Bologna Italy Concurrent and located synchronizations in π-calculus.
1 CoMeta, final workshop, /12/2003 Ivan Lanese Dipartimento di Informatica Università di Pisa Ugo Montanari A graphical Fusion Calculus Joint work.
Modeling Community with Tiles joint work with Ivan Lanese Ugo Montanari Dipartimento di Informatica Università di Pisa Roberto Bruni Dipartimento di Informatica.
1 Ivan Lanese Computer Science Department University of Bologna Italy Behavioural Theory at Work: Program Transformations in a Service-centred Calculus.
An algebra of Connectors for modeling CommUnity with Tiles joint work with Roberto Bruni Ugo Montanari Dipartimento di Informatica Università di Pisa Ivan.
1 Ivan Lanese Computer Science Department University of Bologna Synchronization strategies for global computing models.
Complete Axioms for Stateless Connectors joint work with Roberto Bruni and Ugo Montanari Dipartimento di Informatica Università di Pisa Ivan Lanese Dipartimento.
Synchronizations with Mobility for Graph Transformations joint work with Ugo Montanari Dipartimento di Informatica Università di Pisa Ivan Lanese Dipartimento.
Propositional Calculus Math Foundations of Computer Science.
Behaviour-Preserving Model Transformation Arend Rensink, University of Twente IPA Spring Days, 18 April 2012.
Systems Architecture I1 Propositional Calculus Objective: To provide students with the concepts and techniques from propositional calculus so that they.
Introduction to Formal Methods Based on Jeannette M. Wing. A Specifier's Introduction to Formal Methods. IEEE Computer, 23(9):8-24, September,
Advanced Topics in SE Spring Process Algebra Hossein Hojjat Formal Methods Lab University of Tehran.
CS6133 Software Specification and Verification
Reactive systems – general
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Amending Choreographies Joint work with Fabrizio Montesi and Gianluigi Zavattaro.
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Causal-Consistent Reversibility in a Tuple-Based Language Joint work with Elena.
On Reducing the Global State Graph for Verification of Distributed Computations Vijay K. Garg, Arindam Chakraborty Parallel and Distributed Systems Laboratory.
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
Natallia Kokash (Accepted for PACO’2011) ACG, 31/05/ Input-output conformance testing for channel-based connectors 1.
Requirements Specification. Welcome to Software Engineering: “Requirements Specification” “Requirements Specification”  Verb?  Noun?  “Specification”
Propositional Calculus CS 270: Mathematical Foundations of Computer Science Jeremy Johnson.
Programming Languages and Design Lecture 3 Semantic Specifications of Programming Languages Instructor: Li Ma Department of Computer Science Texas Southern.
Weak Bisimilarity Coalgebraically Andrei Popescu Department of Computer Science University of Illinois.
UML Activity Diagrams.
Properties as Processes : FORTE slide Properties as Processes: their Specification and Verification Joel Kelso and George Milne School of Computer.
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Process Algebra (2IF45) Abstraction Parallel composition (short intro) Suzana Andova.
Operational Semantics Mooly Sagiv Tel Aviv University Sunday Scrieber 8 Monday Schrieber.
Process Algebra (2IF45) Basic Process Algebra Dr. Suzana Andova.
An Object-Z / CSP Based Approach for the Specification of Architectural Connectors Mourad Maouche Philadelphia University Jordan Mohamed Bettaz MESRS Algeria.
Architectural Design Rewriting as Architectural Description Language R. Bruni A. LLuch-Lafuente U. Montanari E. Tuosto.
Π-AAL: An Architecture Analysis Language for Formally Specifying and Verifying Structural and Behavioral Properties of Software Architectures Presented.
Certifying and Synthesizing Membership Equational Proofs Patrick Lincoln (SRI) joint work with Steven Eker (SRI), Jose Meseguer (Urbana) and Grigore Rosu.
Complexity of Compositional Model Checking of Computation Tree Logic on Simple Structures Krishnendu Chatterjee Pallab Dasgupta P.P. Chakrabarti IWDC 2004,
Formal methods: Lecture
Propositional Calculus: Boolean Functions and Expressions
Activity and State Transition Diagram
Graph-Based Operational Semantics
Propositional Calculus: Boolean Functions and Expressions
UML Activity Diagrams.
Logical architecture refinement
Internet of Things A Process Calculus Approach
Event-Based Architecture Definition Language
Presentation transcript:

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, 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 is in x, z out v, n do a: true  v:= x+z | n:=v+x [] b: n>MIN  n:=n-x [] c: v<MAX  v:=n+z input/output channels actionsguardsconcurrent assignments

New insights on architectural connectors Morphisms channels of P 1 to channels of P 2 actions of P 2 to actions of P 1 P1P1 P2P2 actions of P 1 correspond to disjoint sets of actions of P 2 output channels cannot be merged (names are not important)

New insights on architectural connectors Example design P 1 is in … out … do a … [] b … design P 2 is in … out … do f … [] g … [] h … design P 3 is in … out … do p … [] q … [] r … [] s … f,g  a  p,q,r h  b  s design P is in … 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 cables no 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 parallel composition Configurations input interface output interface sequential composition (interfaces can be typed)

New insights on architectural connectors Configurations input interface output interface parallel composition sequential composition symmetries

New insights on architectural connectors Observations initial interface final interface 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 xx 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 or glue Channel fusion Action synchro nization Role or glue Role or glue … … Anchored configuration

New insights on architectural connectors Structure of a configuration State Role or glue Channel fusion 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 Constructors for roles and state cm[ ] i i i i i b actionschannels channel manager o gm[p] i i i i i b actionchannels guard manager state [ ] 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 y 1 =x 2 >3 and x 3 <4 and x 1 y 2 =x 2 +1 y 1 =x 2 <4 and x 1 y 1 =x 2 >3 and x 1 y 2 =x iibbboo

New insights on architectural connectors Tile for channel manager cm [<x 2 =x 2 +x 1, x 2 =x 2 -x 1 >] i b o   cm [<x 2 =x 2 +x 1, x 2 =x 2 -x 1 >] i b o x 2 =x 2 +x 1 x 3 =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 categorical AlgebraicCategorical Basic constructorsObjects Aux. constructorsMorphisms RepresentativeColimit 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