Distributed Components and Futures: Models and Challenges A Distributed Component Model Distributed Reconfiguration Calculi for Components and Futures.

Slides:



Advertisements
Similar presentations
Elton Mathias and Jean Michael Legait 1 Elton Mathias, Jean Michael Legait, Denis Caromel, et al. OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis,
Advertisements

Denis Caromel1 Joint work with Ludovic Henrio – Eric Madelaine et. OASIS members OASIS Team INRIA -- CNRS - I3S – Univ. of Nice Sophia-Antipolis, IUF.
1 Concurrency Specification. 2 Outline 4 Issues in concurrent systems 4 Programming language support for concurrency 4 Concurrency analysis - A specification.
Eric MADELAINE1 E. Madelaine, Antonio Cansado, Emil Salageanu OASIS Team, INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis OSCAR meeting, Valparaiso,
Session 2: task 3.2 GCM, Kracow, June l Current status of GCM Denis Caromel (10 mn each talk) l Wrapping CCA Components as GCM Components Maciej.
1 The SOCK SAGA Ivan Lanese Computer Science Department University of Bologna Italy Joint work with Gianluigi Zavattaro.
Concurrency CS 510: Programming Languages David Walker.
1 Ivan Lanese Computer Science Department University of Bologna Italy Evolvable systems: some ideas for modelling With input from Davide Sangiorgi, Fabrizio.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
.NET Mobile Application Development Remote Procedure Call.
1 Joint work with Antonio Bucchiarone (Fondazione Bruno Kessler - IRST, Trento) and Fabrizio Montesi (University of Bologna/INRIA, Bologna) A Framework.
Asynchronous Components Asynchronous communications: from calculi to distributed components.
Safe composition of distributed adaptable components A distributed component model Behavioural specification and verification Ludovic Henrio and Eric Madelaine.
Formal Models for Programming and Composing Correct Distributed Systems Jury : Gordon BlairFabienne BoyerEric Madelaine Pascal PoizatMichel RiveillDavide.
Oct Multi-threaded Active Objects Ludovic Henrio, Fabrice Huet, Zsolt Istvàn June 2013 –
The Grid Component Model: an Overview “Proposal for a Grid Component Model” DPM02 “Basic Features of the Grid Component Model (assessed)” -- DPM04 CoreGrid.
Lifecycle Verification of the NASA Ames K9 Rover Executive Dimitra Giannakopoulou Mike Lowry Corina Păsăreanu Rich Washington.
Oct Active objects: programming and composing safely large-scale distributed applications Ludovic Henrio SCALE team, CNRS – Sophia Antipolis July.
The Grid Component Model and its Implementation in ProActive CoreGrid Network of Excellence, Institute on Programming Models D.PM02 “Proposal for a Grid.
Programming and Verifying Distributed and Adaptable Autonomous Components with GCM/ProActive Ludovic Henrio SCALE Team INRIA – UNS – I3S – CNRS Sophia.
1 Update Strategies for First Class Futures Khan Muhammad, Ludovic Henrio INRIA, Univ. Nice Sophia Antipolis,CNRS.
Formalism and Platform for Autonomous Distributed Components Bio-inspired Networks and Services A Distributed Component Model Formalisation in Isabelle.
Eric Madelaine FORTE ’04 -- Madrid sept /25 Parameterized Models for Distributed Java Objects Eric Madelaine work with Tomás Barros, Rabéa Boulifa.
Eric MadelaineOSMOSE -- WP2 -- Prague June 2004 Models for the Verification of Distributed Java Objects Eric Madelaine work with Tomás Barros, Rabéa Boulifa,
Denis Caromel1 Troisieme partie Cours EJC 2003, AUSSOIS, Denis Caromel OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis.
A Locally Nameless Theory of Objects 1.Introduction:  -calculus and De Bruijn notation 2.locally nameless technique 3.formalization in Isabelle and proofs.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
Eric MADELAINE1 T. Barros, L. Henrio, E. Madelaine OASIS Team, INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis (FACS’05), Fractal workshop, Grenoble.
A graphical specification environment for GCM component-based applications INRIA – I3S – CNRS – University of Nice-Sophia Antipolis EPC OASIS Oleksandra.
Lyra – A service-oriented and component-based method for the development of communicating systems (by Sari Leppänen, Nokia/NRC) Traditionally, the design,
Asynchronous Components with Futures: Semantics, Specification, and Proofs in a Theorem Prover Components (Distributed) Futures Formalisations (and proofs)
Behavioural Verification of Distributed Components Ludovic Henrio and Eric Madelaine ICE Florence 1.
Behavioural Verification of Distributed Components Ludovic Henrio and Eric Madelaine ICE
Grid programming with components: an advanced COMPonent platform for an effective invisible grid © GridCOMP Grids Programming with components.
Grid programming with components: an advanced COMPonent platform for an effective invisible grid © 2006 GridCOMP Grids Programming with components. An.
1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface.
A Component Platform for Experimenting with Autonomic Composition A component framework for supporting composition of autonomic services and bio-inspired.
ASPfun: A Distributed Object Calculus and its Formalization in Isabelle Work realized in collaboration with Florian Kammüller and Henry Sudhof (Technische.
Mastère RSD - TC4 2005/20061 Distributed Components –ProActive-Fractal : main concepts –Behaviour models for components –Deployment, management, transformations.
ProActive components and legacy code Matthieu MOREL.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
EGOS LLC CCSDS 14/ Question Question; Why a Service Viewpoint? Short Answer; Because a service viewpoint provides a useful additional level.
Eric MadelaineOSCAR Workshop -- Santiago Nov Verification of Distributed Applications Eric Madelaine work with Isabelle Attali, Tomás Barros, Rabéa.
A visualisation and debugging tool for multi-active objects Ludovic Henrio, Justine Rochas LAMHA, Nov 2015.
Transparent First-class Futures and Distributed Components Introduction: components, futures, and challenges Statically Representing Futures An Example.
Eric MADELAINE ---- OASIS1 E. Madelaine Oasis team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis RESECO ’08 Santiago – Nov. 24, 2008 Specification.
Eric MADELAINE1 A. Cansado, L. Henrio, E. Madelaine OASIS Team, INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis Fractal workshop, Nantes, 3 july.
RESECO - Montevideo - 22 nov 2007Reseco, Montevideo, 22 nov 2007 Eric Madelaine - OASIS Team1 Specifying and Generating Safe GCM Components INRIA – Sophia.
VERIFYING THE CORRECT COMPOSITION OF DISTRIBUTED COMPONENTS: FORMALISATION AND TOOL Ludovic Henrio 1, Oleksandra Kulankhina 1,2, Dongqian Liu 3, Eric Madelaine.
1 ProActive GCM – CCA Interoperability Maciej Malawski, Ludovic Henrio, Matthieu Morel, Francoise Baude, Denis Caromel, Marian Bubak Institute of Computer.
Secure Composition of Untrusted Code: Wrappers and Causality Types Kyle Taylor.
Specifying Fractal and GCM Components With UML Solange Ahumada, Ludovic Apvrille, Tomás Barros, Antonio Cansado, Eric Madelaine and Emil Salageanu SCCC.
Tomás BarrosMonday, April 18, 2005FIACRE Toulouse p. 1 Behavioural Models for Hierarchical Components Tomás Barros, Ludovic Henrio and Eric Madelaine.
A Mechanized Model of the Theory of Objects 1.Functional  -calculus in Isabelle 2.Confluence Proof in Isabelle 3.Ongoing Work, Applications, Conclusion.
A Theory of Distributed Objects Toward a Foundation for Component Grid Platforms Ludovic HENRIO l A Theory of Distributed Objects l Components l Perspectives.
Eric MADELAINE1 T. Barros, L. Henrio, E. Madelaine OASIS Team, INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis DCC, University.
Mastère RSD - TC4 2005/20061 Distributed JAVA Aims and Principles The ProActive library Models of behaviours Generation of finite (parameterized) models.
GCM/ProActive: a distributed component model, its implementation, and its formalisation Ludovic Henrio OASIS Team INRIA – UNS – I3S – CNRS Sophia Antipolis.
2. CALCULUS: A S P. A Theory of Distributed Objects D. Caromel, L. Henrio, Springer 2005, Monograph A Calculus: ASP: Asynchronous Sequential Processes.
Formal Models for Programming and Composing Correct Distributed Systems Ludovic Henrio OASIS Team INRIA – UNS – I3S – CNRS Sophia Antipolis.
ASYNCHRONOUS AND DETERMINISTIC OBJECTS ASP: Asynchronous Sequential Processes l Distributed objects l Asynchronous method calls l Futures and Wait-by-necessity.
Model Checking Early Requirements Specifications in Tropos Presented by Chin-Yi Tsai.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Asynchronous Distributed Components: Concurrency and Determinacy I. Context: Distributed Components and Active Objects II. Asynchronous Distributed Components.
Design Patterns: MORE Examples
Behavioural Models for Distributed Hierarchical Components
Distributed Components and Futures: Models and Challenges
Concurrency Specification
The Grid Component Model and its Implementation in ProActive
Presentation transcript:

Distributed Components and Futures: Models and Challenges A Distributed Component Model Distributed Reconfiguration Calculi for Components and Futures Behavioural Models Ludovic Henrio FMCO 2008

A DISTRIBUTED COMPONENT MODEL

What are (GCM) Components? Bindings Business code Server interfaces Client interfaces Primitive component Composite component NF (server) interfaces

A Primitive GCM Component CI.foo(p) Primitive components communicating by asynchronous remote method invocations on interfaces (requests)  Components abstract away distribution and concurrency in ProActive components are mono-threaded  simplifies concurrency but can create deadlocks

Composition in GCM Bindings: Requests = Asynchronous method invocations

Futures for Components f=CI.foo(p) ………. f.bar() Component are independent entities (threads are isolated in a component) + Asynchronous method invocations with results  Futures are necessary

Replies f=CI.foo(p) ……………… f.bar()

First-class Futures f=CI.foo(p) ……………… CI.foo(f) Only strict operations are blocking (access to a future) Communicating a future is not a strict operation

First-class Futures and Hierarchy Without first-class futures, one thread is systematically blocked in the composite component.

First-class Futures and Hierarchy … … … Almost systematic dead-lock in ProActive A lot of blocked threads otherwise

Reply Strategies In ASP / ProActive, the result is insensitive to the order of replies (shown for ASP-calculus) Ongoing experiments with different strategies

A Distributed Component Model with Futures Primitive components contain the business code Primitive components act as the unit of distribution and concurrency (each thread is isolated in a component) Communication is performed on interfaces and follows component bindings Futures allow communication to be asynchronous requests

RECONFIGURATION AND ASYNCHRONOUS COMPONENTS

Stopping GCM Components A preliminary step for reconfiguration Stop a component and all its subcomponents (recursive) Synchronise autonomous entities Deadlocks might appear if a component is stopped too early Reach a quiescent state = all the inner components have an empty request queue

Possible Deadlocks in a Stopping Algorithm Stopped Blocked Filtering

Principles of the Algorithm For the composite component to be stopped (master): First phase = mark outgoing requests Second phase: Filter incoming requests (only marked ones) Trigger final stop when all the subcomponents are ready For the inner components Only during the second phase 2 phases stop with a Ready to Stop intermediate state Watch the status of subcomponents and propagate the final stop signal

Implementation (ongoing) Require control on requests to:  Filter  Mark outgoing requests  Transmit marks  A tagging mechanism for component requests Extend Fractal’s / current GCM’s lifecycle controller Experiments have been conducted on a prototype, without automatic tagging Complete and general implementation ongoing. An algorithm synchronising the stopping process for GCM components: Asynchronous Hierarchical Reach a quiescent state

Distributed Reconfigurations Extension of Fscript+ component model Distributed interpretation of reconfiguration scripts Components can interpret reconfiguration scripts autonomously  Toward autonomic distributed components

Toward Autonomic Components Componentize the design of NF features NF interfaces are pluggable NB: The design of the component membrane can also be componentized Each GCM component is also independent from the management point of view  Autonomic distributed components

CALCULI FOR COMPONENTS AND FUTURES

ASP Calculus Summary An Asynchronous Object Calculus:  Structured asynchronous activities  Communications are asynchronous method calls with futures (promised replies)  Futures  data-driven synchronization ASP  Confluence Properties Future updates can occur at any time Execution characterized by the order of request senders Other calculi/languages with futures: AmbientTalk, Creol, λfut, ASPfun

Primitive Components A Primitive Component Server Interfaces Client Interfaces Requests Method names Fields Requests

Hierarchical Composition Composite component Primitive component PC CC Input interfaces Output interfaces Asynchronous method calls Export Binding Communications have a single destination:

Component Properties Semantics  Semantics as a translation to ASP  First class futures inherited from ASP (transparent channels + properties) Specification of deterministic components:  Deterministic primitive components  Deterministic composition of components  Components provide a convenient abstraction for statically ensuring determinism

BEHAVIOURAL MODELS

What Can Create Deadlocks? A race condition: Detecting deadlocks can be difficult  behavioural specification and verification techniques (cf Eric Madelaine)

Components and Futures for Analysis Components abstract distribution  Future creation points But future flow still to be inferred  component specification language (e.g. JDC) Components provide interface definition which can be complemented with future flow information

An Abstract Domain for Futures fut(a) represent an abstract value that can be a future, Lattice of abstract values: if a ≺ b, then a ≺ ′ b, a ≺ ′ fut(b), and fut(a) ≺ ′ fut(b) f=itf.foo(); // creation of a future if (bool) f.bar1(); // wait-by-necessity if bool is true  f.bar2(); // wait-by-necessity if bool is false

Behavioural Model for Components and Futures A generic model for futures o New lattice of abstract values o Behavioural spec of proxies for future, with modifications for forwarding futures as request/response o Applied to GCM components, but could be applied to other models (cf AmbientTalk, Creol, λfut) o A strategy that guarantees that all futures are updated To specify behaviours and prove properties, particularly deadlocks

CONCLUSION AND OPEN ISSUES

A Model + Framework for Distributed Components Asynchronous + Results + Components  Futures requests Autonomous Distributed Components Asynchronous requests Autonomous reconfigurations Componentized NF aspects As component abstract away concurrency, concurrent aspects are easier to program and reason about Futures are transparent and first-class

“Formal Results” Calculi for futures and components  language properties, e.g. determinacy Specification and verification of component behaviour: composition, NF aspects, and futures  program properties, e.g. absence of dead lock

Challenges Protocols involving futures and components, like the stopping algorithm are very difficult to prove  A general model for futures and components allowing to express protocols, i.e. manipulate requests and futures.  Show general properties on futures, dead-locks, in a component model Extend reconfiguration languages to introspect requests/futures status

Works Mentioned have been Realized with: Eric Madelaine Antonio Cansado Marcela Rivera Paul Naoumenko Muhammad Khan Boutheina Bannour Florian Kammueller Françoise Baude CoreGrid and GridComp partners Denis Caromel Bernard Serpette