2. CALCULUS: A S P. A Theory of Distributed Objects D. Caromel, L. Henrio, Springer 2005, Monograph A Calculus: ASP: Asynchronous Sequential Processes.

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

Pontus Boström and Marina Waldén Åbo Akademi University/ TUCS Development of Fault Tolerant Grid Applications Using Distributed B.
Architecture Representation
Giving a formal meaning to “Specialization” In these note we try to give a formal meaning to specifications, implementations, their comparisons. We define.
European Commission Directorate-General Information Society Unit F2 – Grid Technologies INSERT PROJECT ACRONYM HERE BY EDITING THE MASTER SLIDE (VIEW.
Denis Caromel1 Joint work with Ludovic Henrio – Eric Madelaine et. OASIS members OASIS Team INRIA -- CNRS - I3S – Univ. of Nice Sophia-Antipolis, IUF.
Eric MADELAINE1 E. Madelaine, Antonio Cansado, Emil Salageanu OASIS Team, INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis OSCAR meeting, Valparaiso,
1 Ludovic Henrio Paris, An Open Source Middleware for the Grid Programming Wrapping Composing Deploying.
Architecture Modeling and Analysis for Embedded Systems Oleg Sokolsky CIS700 Fall 2005.
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 Synchronization strategies for global computing models Ivan Lanese Computer Science Department University of Bologna.
Software Engineering and Middleware: a Roadmap by Wolfgang Emmerich Ebru Dincel Sahitya Gupta.
1 Ivan Lanese Computer Science Department University of Bologna Italy Evolvable systems: some ideas for modelling With input from Davide Sangiorgi, Fabrizio.
1 Static vs dynamic SAGAs Ivan Lanese Computer Science Department University of Bologna/INRIA Italy.
Communication in Distributed Systems –Part 2
What is Architecture  Architecture is a subjective thing, a shared understanding of a system’s design by the expert developers on a project  In the.
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.
An Introduction to Software Architecture
INRIA Sophia-Antipolis, Oasis team INRIA Rhône-Alpes, Vasy team Feria–IRIT/LAAS, SVF team Toulouse GET - ENST Paris, LTCI team FIACRE Models and Tools.
The Grid Component Model: an Overview “Proposal for a Grid Component Model” DPM02 “Basic Features of the Grid Component Model (assessed)” -- DPM04 CoreGrid.
The Grid Component Model and its Implementation in ProActive CoreGrid Network of Excellence, Institute on Programming Models D.PM02 “Proposal for a Grid.
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.
OASIS OASIS Active Objects, Semantics, Internet, and Security Team: 30 persons Research Themes: Grid Computing Objects and Components Practice and Theory.
Eric MADELAINE1 T. Barros, L. Henrio, E. Madelaine OASIS Team, INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis (FACS’05), Fractal workshop, Grenoble.
Asynchronous Components with Futures: Semantics, Specification, and Proofs in a Theorem Prover Components (Distributed) Futures Formalisations (and proofs)
1 Qualitative Reasoning of Distributed Object Design Nima Kaveh & Wolfgang Emmerich Software Systems Engineering Dept. Computer Science University College.
1 Romain Quilici ObjectWeb Architecture meeting July 2nd 2003 ProActive Architecture of an Open Middleware for the Grid.
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.
Chapter 4 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University Building Dependable Distributed Systems.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
SelfCon Foil no 1 Variability in Self-Adaptive Systems.
A visualisation and debugging tool for multi-active objects Ludovic Henrio, Justine Rochas LAMHA, Nov 2015.
SSS Build and Configuration Management Update February 24, 2003 Narayan Desai
GYTE - Bilgisayar Mühendisliği Bölümü Bilgisayar Mühendisliği Bölümü GYTE - Bilgisayar Mühendisliği Bölümü AN ARCHITECTURE FOR NEXT GENERATION MIDDLEWARE.
Transparent First-class Futures and Distributed Components Introduction: components, futures, and challenges Statically Representing Futures An Example.
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.
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.
Distributed Components and Futures: Models and Challenges A Distributed Component Model Distributed Reconfiguration Calculi for Components and Futures.
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.
1 Romain Quilici OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF July 2nd 2003 ProActive Architecture.
ASYNCHRONOUS AND DETERMINISTIC OBJECTS ASP: Asynchronous Sequential Processes l Distributed objects l Asynchronous method calls l Futures and Wait-by-necessity.
Grid programming with components: an advanced COMPonent platform for an effective invisible grid © GridCOMP Grids Programming with components.
Asynchronous Distributed Components: Concurrency and Determinacy I. Context: Distributed Components and Active Objects II. Asynchronous Distributed Components.
SOFTWARE DESIGN AND ARCHITECTURE
Behavioural Models for Distributed Hierarchical Components
Distributed Components and Futures: Models and Challenges
EEC 688/788 Secure and Dependable Computing
An Introduction to Software Architecture
EEC 688/788 Secure and Dependable Computing
ProActive Architecture of an Open Middleware for the Grid
EEC 688/788 Secure and Dependable Computing
The Grid Component Model and its Implementation in ProActive
Presentation transcript:

2. CALCULUS: A S P

A Theory of Distributed Objects D. Caromel, L. Henrio, Springer 2005, Monograph A Calculus: ASP: Asynchronous Sequential Processes l Based on Sigma-Calculus (Abadi-Cardelli) l Formal Proofs of determinism l Releases a few important implementation constraints THEORY

 -calculus

Why calculi? Prove properties on languages, typing Programs (equivalence), execution strategies, … Why calculi? Prove properties on languages, typing Programs (equivalence), execution strategies, …

Review (informal classification of calculi)

Asynchronous and Deterministic Objects ASP: Asynchronous Sequential Processes l Distributed objects l Asynchronous method calls (  towards components) l Futures and Wait-by-necessity è Determinism properties A Theory of Distributed Objects

ASP Syntax : Source Terms Imperative  -calculus l ASP parallelism primitives 1- ASP

Local Creating an Activity Sending a Request Sending a Reply Service 1- ASP

    f3 f1 Structure 1- ASP foo f2 Active(a)

foo   beta.foo(b) result=beta.foo(b) Sending Requests( REQUEST ) 1- ASP

foo   beta.foo(b) result Sending Requests( REQUEST ) 1- ASP result=beta.foo(b)

delta.send(result)    Wait-by-necessity 1- ASP

delta.send(result) result.bar()    Wait-by-necessity 1- ASP

delta.send(result) result.bar()    Wait-by-necessity 1- ASP

   Wait-by-necessity result.bar() Futures updates can occur at any time Futures updates can occur at any time 1- ASP

Confluence and Determinacy

 Store Partitioning

Deterministic Object Networks    {foo,bar}, {foo,gee} delta.gee(a) gee delta.bar(a) bar {bar,gee}, {foo} gee barbar gee DON(P):

ASP theory: Summary and Results ASP  Confluence and Determinacy Proved Properties: Future updates can occur at any time, in any order Asynchronous FIFO point-to-point is enough for Requests Execution characterized by the order of request senders Applications: Determinacy of programs based on a dynamic property: DON Determinacy of programs communicating over Trees, SDON, and Deterministic Components, …

Static DON  {foo,bar}, {gee}   {gee}, {f,g}  {bar}, {gee}  {foo,bar}, {gee} foo bar f {foo}, {bar} {gee}, {f,g} {f,g} {gee}, {f,g} f g gee f g {gee}, {f,g} g The difficulty is to statically approximate activities, method calls and potential services The difficulty is to statically approximate activities, method calls and potential services

From 2. to 3.: CALCLUS to COMPONENTS Components in ASP Objective: Deterministic Components

Content Controller Using the Fractal model: Hierarchical Component Defined by E. Bruneton, T. Coupaye, J.B. Stefani, INRIA & FT

Content Controller Hierarchical model : Composites encapsulate Primitives, Primitives encapsulate Code

Content Controller Binding = in an external file (XML ADL), Not in programs

Content Controller Binding = in an external file (XML ADL), Not in programs

Context and Challenge - Asynchronous, - Distributed components, yet  Deterministic Components

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

Invalid composition Interface exported twiceOutput plugged twice Except with group communication …  s is a function  C is a function  is a function

Valid Compositions Non-confluent Input interfaces Output interfaces

Valid Compositions Input interfaces Output interfaces

Semantics: “Static” Translation to ASP Input interfaces Output interfaces

Semantics: “Dynamic” Translation to ASP Input interfaces Output interfaces

Deterministic Primitive Component Requirement on potential services: Each Potential service is entirely included in a single SI A Primitive Component Serve(M)

Deterministic Composition (SDON) Non-confluent Each SI is only used once, either bound or exported:

Component Model: Summary and Results A definition of components  Coarse grain components (activities)  Convenient abstraction for distribution and Concurrency: Primitive components as an abstraction for activities  Structured asynchronous communications Requests = Asynchronous method calls  Well defined interfaces: served methods  Semantics as translations to ASP  First class futures inherited from ASP Specification of deterministic components:  Deterministic primitive components  Deterministic composition of components Components provide a convenient abstraction for statically ensuring determinism Components provide a convenient abstraction for statically ensuring determinism

Towards Parallel and Deterministic Components Groups in ASP

 Group.foo() Groups of Active Objects 3 – More Features Part IV

 Group.foo() Groups of Active Objects    foo result 3 – More Features Part IV

 Group.foo() Groups of Active Objects    foo  Group.bar() bar 3 – More Features Part IV

 Group.foo() Groups of Active Objects: Atomic Communications    foo  Group.bar() bar Some programs become deterministic with Atomic Group Communications Non Det. Prog.  Det. Prog. with Groups

3. Distributed Component Specification Cp. in Practice GCM: Grid Component Model

 GCM Being defined in the NoE CoreGRID (42 institutions)  Open Source ObjectWeb ProActive implements a preliminary version of GCM GridCOMP takes:  GCM as a first specification,  ProActive as a starting point, and Open Source reference implementation. GCM Components Scopes and Objectives: - Grid Codes that Compose and Deploy - No programming, No Scripting, … No Pain The vision: GCM to be the GRID GSM for Europe

Collective Interfaces

Simplify the design and configuration of component systems Expose the collective nature of interfaces  Cardinality attribute  Multicast, Gathercast, gather-multicast The framework handles collective behaviour at the level of the interface Based on Fractal API :  Dedicated controller  Interface typing  Verifications

Multicast interfaces Transform a single invocation into a list of invocations Multiple invocations  Parallelism  Asynchronism  Dispatch Data redistribution (invocation parameters)  Parameterisable distribution function  Broadcast, scattering  Dynamic redistribution (dynamic dispatch) Result = list of results

Multicast interfaces Results as lists of results Invocation parameters may also be distributed from lists

Gathercast interfaces Transform a list of invocations into a single invocation Synchronization of incoming invocations  ~ “join” invocations  Timeout / Drop policy  Bidirectional Bindings (callers  callee) Data gathering Aggregation of parameters into lists Result: redistribution of results Redistribution function

Virtual Nodes Permits a program to generate automatically a deployment plan: find the appropriate nodes on which processes should be launched. In the future, we envisage the adjunction of more sophisticated descriptions of the application needs with respect to the execution platform: topology, QoS, …

Virtual Nodes in the ADL l Renames a VN l Exports a VN name è The final version of the GCM specification will precisely define the syntax for the virtual node definition, and their composition.

NEXT: Part 4. Middleware: ProActive

Services in ASP Pending requests are stored in a queue. Request service in ASP: Serve(foo,bar) serves the oldest request on the method foo or bar. Potential Service : an approximation of the set of services (set of methods M) that can appear in the Serve(M) instructions that an activity  may perform in the future. = {{foo,bar},{gee}}

Perspectives: Distributed Components Behavioral specification of component composition (ongoing) Specify and study non-functional aspects  in particular life-cycle and reconfiguration in a distributed environment A Formal basis fo the Grid Component Model (GCM) -- together with the kell-calculus  Collective interfaces  Grid specifics (distribution and heterogeneity)  Put together hierarchy, structured communications and non-functional aspects Perspectives Part VI

Equivalence Modulo Futures Updates  f1  f2  f3 Part III

Appendices

ASP Components: Characteristics Well defined interfaces: served methods (should correspond to potential services) Structured communications: Requests = Asynchronous method calls Concurrent and Distributed: Primitive components as an abstraction for activities (threads) Inherit futures, data-driven synchronization and asynchrony from ASP Components Part IV

A Deterministic Component l Based on deterministic primitive components. l One-to-one mapping from Server to client interface Components Part IV

Equivalence Modulo Futures Updates (1)   f3   2 - Confluence and Determinacy Part III

Equivalence Modulo Futures Updates (2)  f1  f2  f3  f1  f2  2 - Confluence and Determinacy Part III

Equivalence Modulo Future Updates (2)   f2  f3   f1  f2 f1 2 - Confluence and Determinacy Part III

Compatibility  delta.foo() foo  …. Serve(foo,bar) … Serve(foo,gee) bar gee   2 - Confluence and Determinacy Serves the oldest request on foo OR bar Part III

Confluence l Potential services: 2 - Confluence and Determinacy P0 PQ R …. Serve(foo,bar) … Serve(foo,gee) {foo,bar}, {foo,gee} Part III

Confluence l Potential services: 2 - Confluence and Determinacy l RSL definition:  foo,  bar,  bar,  gee P0 PQ R {foo,bar}, {foo,gee} Part III

Confluence l Potential services: 2 - Confluence and Determinacy l RSL definition: l Configuration Compatibility: P0 PQ R {foo,bar}, {foo,gee}  foo,  bar,  bar,  gee  foo,  bar,  gee,  bar  foo,  bar,  bar,  gee  foo,  bar,  gee,  bar  foo,  bar,  bar,  gee  foo,  bar,  gee,  bar Part III

Confluence l Potential services: 2 - Confluence and Determinacy l RSL definition: Compatibility  Confluence l Configuration Compatibility: Execution characterized by the order of request senders Execution characterized by the order of request senders P0 PQ R Part III

Deterministic Object Networks    {foo,bar}, {foo,gee} delta.gee(a) gee delta.bar(a) bar {bar,gee}, {foo} gee barbar gee 2 - Confluence and Determinacy DON(P): Part III

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 and Determinacy Future updates can occur at any time Execution characterized by the order of request senders Determinacy of programs communicating over trees, …

Contents l A Theory of Distributed Objects 1 - ASP 2 - Confluence and Determinacy 3 - More Features: Groups 4 – Implementation Strategies: Future Updates l ASP Components l Perspectives

Implementation Strategies l ProActive l Future Update Strategies  Futures are first class and can be returned at any time  Lazy / Forward-based / Message-based. l Loosing Rendez-Vous  Ensuring causal ordering with one-to-all FIFO ordering  Comparison with other strategies, e.g. point-to-point FIFO l Controlling Pipelining 4 – Implementation Strategies Part V

Future Updates Summary l Mixed strategies are possible l All strategies are equivalent (modulo dead-locks) Part V, VI 4 – Implementation Strategies

Overview of Implementation Strategies: Queues, Buffering, Pipelining, and Strategies Perspectives: Organize and synchronize implementation strategies Design a global adaptative evaluation strategy Perspectives: Organize and synchronize implementation strategies Design a global adaptative evaluation strategy Part VI 4 – Implementation Strategies

Services in ASP Pending requests are stored in a queue. Request service in ASP: Serve(foo,bar) serves the oldest request on the method foo or bar. Potential Service: an approximation of the set of services (set of methods M) that can appear in the Serve(M) instructions that an activity  may perform in the future. = {{foo,bar},{gee}}

Deterministic Object Networks    {foo,bar}, {foo,gee} delta.gee(a) gee delta.bar(a) bar {bar,gee}, {foo} gee barbar gee DON(P):