Components with STS : a Java Imple- mentation Components with Symbolic Transition Fabrício Fernandes, Systems: a Java Implementation Jean-Claude Royer, Robin Passama of Rendezvous Outline Introduction Fabrício de Alexandria Fernandes STS-oriented Component Jean-Claude Royer Robin Passama Model Model Imple- mentation Overview École des Mines de Nantes Department of Computer Science – OBASCO Group A Java Imple- mentation of INRIA Research Centre Rennes - Bretagne Atlantique – LINA Rendezvous Conclusions 10-07-2007 / CPA 2007 1 / 34
Components with STS : a Outline Java Imple- mentation Fabrício Fernandes, • Introduction Jean-Claude Royer, Robin • Motivation Passama • Our work Outline • STS-Oriented Component Model Introduction • STS Model STS-oriented Component • Example Model • Model Implementation Overview Model Imple- mentation • Implementation of the STS Overview • Implementation of the Process primitive component A Java Imple- mentation of • A Java Implementation of Rendezvous Rendezvous • Basic Barrier Principles Conclusions • Synchronization Barrier • Evolution of the mechanism development • Conclusions 2 / 34
Components with STS : a Outline Java Imple- mentation Fabrício Fernandes, • Introduction Jean-Claude Royer, Robin • Motivation Passama • Our work Outline • STS-Oriented Component Model Introduction • STS Model Motivation Our work • Example STS-oriented Component • Model Implementation Overview Model • Implementation of the STS Model Imple- mentation • Implementation of the Process primitive component Overview • A Java Implementation of Rendezvous A Java Imple- mentation of • Basic Barrier Principles Rendezvous • Synchronization Barrier Conclusions • Evolution of the mechanism development • Conclusions 3 / 34
Components with STS : a Motivation Java Imple- mentation Fabrício Fernandes, Jean-Claude Royer, Robin • Component Based Software Engineering (CBSE) Passama • Explicit protocols integrated to component interfaces to Outline describe their behaviour in a formal way Introduction Motivation • Need of formal analysis methods to analyze component Our work interactions STS-oriented Component • Behavioural Interface Description Languages (BIDLs): Model Model Imple- • Architectural analysis and verification issues mentation Overview • Relate efficiently design and implementation A Java Imple- • Problem: explicit protocols are often dissociated from mentation of Rendezvous component code (not ensured that component Conclusions execution will respect protocols rules) 4 / 34
Components with STS : a Our work Java Imple- mentation Fabrício Fernandes, Jean-Claude Royer, Robin Passama • Fill the gap between high-level formal models and implementation of protocols Outline Introduction • Ensure consistency between analysis and execution Motivation phases Our work STS-oriented • Link between specification or design models and Component Model programming languages: automated translation of Model Imple- models into programming code mentation Overview • Long term goal: formal component model with A Java Imple- mentation of executable protocols which includes associated tools: Rendezvous an STSLib, a formal ADL and analysis tools Conclusions 5 / 34
Components with STS : a Outline Java Imple- mentation Fabrício Fernandes, • Introduction Jean-Claude Royer, Robin • Motivation Passama • Our work Outline • STS-Oriented Component Model Introduction • STS Model STS-oriented Component • Example Model • Model Implementation Overview Introduction Example • Implementation of the STS Rendezvous principle • Implementation of the Process primitive component Model Imple- mentation • A Java Implementation of Rendezvous Overview • Basic Barrier Principles A Java Imple- mentation of • Synchronization Barrier Rendezvous • Evolution of the mechanism development Conclusions • Conclusions 6 / 34
Components with STS : a STS Model Java Imple- mentation Fabrício • Implementing STS requires to manage different Fernandes, development steps: Jean-Claude Royer, Robin • Implementing the data part Passama • Representing the protocol Outline • Gluing the data part and the protocol into a primitive Introduction component (intra-component composition) STS-oriented • Implementing components synchronization and Component Model communication (inter-component composition) Introduction Example • Primitive component made of ports and a protocol Rendezvous principle described in the STS formalism Model Imple- mentation • STS: states + transitions between states Overview • STS transition general syntax: [guard] event/action A Java Imple- mentation of • guard: condition to trigger the transition Rendezvous • event: dynamic event possibly with emission ! or receipt Conclusions ? (notification of the action execution) • action: action to be performed 7 / 34
Components with STS : a Example of STS component Java Imple- mentation Fabrício Fernandes, Jean-Claude Royer, Robin Passama Outline Introduction STS-oriented Component Model Introduction Example Rendezvous principle Model Imple- mentation Overview A Java Imple- mentation of Rendezvous Conclusions 8 / 34
Components with STS : a Composition architecture Java Imple- mentation Fabrício Fernandes, p1: process Jean-Claude / A:=0:int Royer, Robin Passama I ? think T:int / A:=T activityOut Outline end Introduction E activityIn STS-oriented [A==S] Component T ? use S:int Model use end think Introduction Example s: server Rendezvous givet principle ! givet T:int / S, T, C:=0:int / T:=(T+1)%MAXINT Model Imple- gives mentation [C==0] S Overview ! gives S:int / C:=C+1 end A Java Imple- mentation of end / S:=(S+1)%MAXINT think Rendezvous / C:=C−1 end use Conclusions p2: process Same STS as p1 9 / 34
Components with STS : a Rendezvous principle Java Imple- mentation Fabrício Fernandes, Jean-Claude • Synchronization of several events: triggering them in Royer, Robin Passama any real order but in the same logical time Outline • With communication: sender necessarily initiates a Introduction value computation and communicate it to the receivers STS-oriented Component • Primitive components involved in synchronization Model cannot trigger any other event during this Introduction Example synchronization Rendezvous principle • Provides execution actions of all the participants and 1 Model Imple- mentation to n communications Overview A Java Imple- • Guard with receipt: components can conditionally mentation of Rendezvous receive and synchronize on a value in the same logical Conclusions time 10 / 34
Components with STS : a Outline Java Imple- mentation Fabrício Fernandes, • Introduction Jean-Claude Royer, Robin • Motivation Passama • Our work Outline • STS-Oriented Component Model Introduction • STS Model STS-oriented Component • Example Model • Model Implementation Overview Model Imple- mentation • Implementation of the STS Overview • Implementation of the Process primitive component Implementation of the STS Implementation of • A Java Implementation of Rendezvous the Process Primitive Component • Basic Barrier Principles A Java Imple- mentation of • Synchronization Barrier Rendezvous • Evolution of the mechanism development Conclusions • Conclusions 11 / 34
Components with STS : a Implementation of the STS Java Imple- mentation Fabrício Fernandes, Jean-Claude Royer, Robin Passama • Dynamic part: states, transitions and some names Outline (guards, events, receipt variables, senders and actions) Introduction • Data part: Java class implementing the formal data part STS-oriented Component with a real implementation of the names with methods Model on the state machine part Model Imple- mentation Overview • Emitter: pure function computing the emitted value in a Implementation of the STS given state of the component Implementation of the Process Primitive Component • Guard: boolean function implementing a condition A Java Imple- mentation of Rendezvous Conclusions 12 / 34
Components with STS : a Implementation of the Process Java Imple- mentation Primitive Component Fabrício Fernandes, Jean-Claude Royer, Robin Passama Outline Data Part Introduction STS Protocol Component Interface STS-oriented Component Process.java Model Java Interface I ? think T:int class Process Model Imple- / think extends Data{ mentation activityOut Overview end ... E Implementation of / end the STS activityIn Implementation of } [check] the Process Primitive T Component ? use S:int / use A Java Imple- mentation of Rendezvous Conclusions 13 / 34
Recommend
More recommend