ASYNCHRONOUS AND DETERMINISTIC OBJECTS ASP: Asynchronous Sequential Processes l Distributed objects l Asynchronous method calls l Futures and Wait-by-necessity.

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

SCOOP: Simple Concurrent Object-Oriented Programming Extend the pure, strongly typed, object-oriented language Eiffel with a general and powerful concurrency.
Request Scheduling for Multiactive Objects StudentJustine Rochas SupervisorLudovic Henrio Research lab INRIA-I3S-CNRS-UNS Research teamOASIS Master Thesis.
Structured Thread Models Kahn Process Networks, CSP, Go 1Dennis Kafura – CS5204 – Operating Systems.
Robust Exception Handling in an Asynchronous Environment Denis Caromel, Guillaume Chazarain OASIS Research group, INRIA INRIA -- CNRS - I3S -- Univ. of.
Denis Caromel1 Joint work with Ludovic Henrio – Eric Madelaine et. OASIS members OASIS Team INRIA -- CNRS - I3S – Univ. of Nice Sophia-Antipolis, IUF.
Requirements on the Execution of Kahn Process Networks Marc Geilen and Twan Basten 11 April 2003 /e.
Model for Supporting High Integrity and Fault Tolerance Brian Dobbing, Aonix Europe Ltd Chief Technical Consultant.
1 Ludovic Henrio Paris, An Open Source Middleware for the Grid Programming Wrapping Composing Deploying.
The P-Calculus Supratik Mukhopadhyay PEMWS-2 April 6 th 2011.
CS 584. A Parallel Programming Model We need abstractions to make it simple. The programming model needs to fit our parallel machine model. Abstractions.
Chair of Software Engineering 1 Concurrent Object-Oriented Programming Arnaud Bailly, Bertrand Meyer and Volkan Arslan.
CS 582 / CMPE 481 Distributed Systems Replication.
Software Engineering and Middleware: a Roadmap by Wolfgang Emmerich Ebru Dincel Sahitya Gupta.
Concurrency CS 510: Programming Languages David Walker.
Chapter 11: Distributed Processing Parallel programming Principles of parallel programming languages Concurrent execution –Programming constructs –Guarded.
1 Static vs dynamic SAGAs Ivan Lanese Computer Science Department University of Bologna/INRIA Italy.
1 Ivan Lanese Computer Science Department University of Bologna Italy Concurrent and located synchronizations in π-calculus.
1 Formal Models for Distributed Negotiations From Petri Nets to Join Calculus Roberto Bruni Dipartimento di Informatica Università di Pisa XVII Escuela.
Mobile Ambients Luca Cardelli Digital Equipment Corporation, Systems Research Center Andrew D. Gordon University of Cambridge, Computer Laboratory Presented.
Message-Oriented Communication Synchronous versus asynchronous communications Message-Queuing System Message Brokers Example: IBM MQSeries 02 – 26 Communication/2.4.
Fabien Viale 1 Matlab & Scilab Applications to Finance Fabien Viale, Denis Caromel, et al. OASIS Team INRIA -- CNRS - I3S.
SDS Foil no 1 How to make real systems: Implementation design, deployment and realisation.
Lecture 4: Parallel Programming Models. Parallel Programming Models Parallel Programming Models: Data parallelism / Task parallelism Explicit parallelism.
Safe composition of distributed adaptable components A distributed component model Behavioural specification and verification Ludovic Henrio and Eric Madelaine.
Oct Multi-threaded Active Objects Ludovic Henrio, Fabrice Huet, Zsolt Istvàn June 2013 –
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.
- 1 - Embedded Systems - SDL Some general properties of languages 1. Synchronous vs. asynchronous languages Description of several processes in many languages.
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,
A Methodology for Architecture Exploration of heterogeneous Signal Processing Systems Paul Lieverse, Pieter van der Wolf, Ed Deprettere, Kees Vissers.
Denis Caromel1 Troisieme partie Cours EJC 2003, AUSSOIS, Denis Caromel OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis.
From Modeling to Deployment of Active Objects - A ProActive backend for ABS Ludovic Henrio, Justine Rochas With the contribution of: Fabrice Huet, Zsolt.
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.
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.
Programming Paradigms for Concurrency Pavol Cerny Vasu Singh Thomas Wies Part III – Message Passing Concurrency.
Asynchronous Components with Futures: Semantics, Specification, and Proofs in a Theorem Prover Components (Distributed) Futures Formalisations (and proofs)
1 Romain Quilici ObjectWeb Architecture meeting July 2nd 2003 ProActive Architecture of an Open Middleware for the Grid.
Denis Caromel1 Institut universitaire de France (IUF) INRIA Sophia-Antipolis – CNRS – I3S – Université de Nice Luis Mateu DCC – Universidad de Chile Eric.
Grid programming with components: an advanced COMPonent platform for an effective invisible grid © GridCOMP Grids Programming with components.
Actors: a model of concurrent computation in Distributed Systems Amin Saremi Hamid Mohamadi.
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.
Winter 2007SEG2101 Chapter 111 Chapter 11 Implementation Design.
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.
Denis Caromel1 Denis Caromel, et al. OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF October
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.
What’s Ahead for Embedded Software? (Wed) Gilsoo Kim
A Mechanized Model of the Theory of Objects 1.Functional  -calculus in Isabelle 2.Confluence Proof in Isabelle 3.Ongoing Work, Applications, Conclusion.
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.
Concurrent Object-Oriented Programming Languages Chris Tomlinson Mark Scheevel.
Mastère RSD - TC4 2005/20061 Distributed JAVA Aims and Principles The ProActive library Models of behaviours Generation of finite (parameterized) models.
1 Romain Quilici OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF July 2nd 2003 ProActive Architecture.
Agenda  Quick Review  Finish Introduction  Java Threads.
2. CALCULUS: A S P. A Theory of Distributed Objects D. Caromel, L. Henrio, Springer 2005, Monograph A Calculus: ASP: Asynchronous Sequential Processes.
Denis Caromel1 OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis -- IUF IPDPS 2003 Nice Sophia Antipolis, April Overview: 1. What.
An Efficient Compilation Framework for Languages Based on a Concurrent Process Calculus Yoshihiro Oyama Kenjiro Taura Akinori Yonezawa Yonezawa Laboratory.
Asynchronous Distributed Components: Concurrency and Determinacy I. Context: Distributed Components and Active Objects II. Asynchronous Distributed Components.
Behavioural Models for Distributed Hierarchical Components
Distributed Components and Futures: Models and Challenges
Frédéric Gava Bulk-Synchronous Parallel ML Implementation of the
Presentation transcript:

ASYNCHRONOUS AND DETERMINISTIC OBJECTS ASP: Asynchronous Sequential Processes l Distributed objects l Asynchronous method calls l Futures and Wait-by-necessity l Determinism properties Denis CAROMEL, Ludovic HENRIO, Bernard Paul SERPETTE I3S - INRIA - Univ Nice Sophia-Antipolis

Context  -calculus  Objects, not concurrent  Some concurrent extensions, not our way to determinism l  -calculus  Communications, channel based, not object structured  Linear(ized) channels(  o  ), no implicit synchronization l Process Networks  Processes, channel based, not object oriented  Determinism, no implicit synchronization Context

Contents 1 - ASP Principles 2 - Syntax and Semantics 3 - Confluence and Determinacy 4 - Conclusion

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

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

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

foo   beta.foo(b) Serve(foo);... result Serving Requests( SERVE ) Serve(foo);... bar 1- ASP Principles

  beta.foo(b) result Serving Requests( SERVE ) Serve(foo) bar foo... foo 1- ASP Principles Serve(foo);...

...foo   End of Service( ENDSERVICE ) value 1- ASP Principles

foo   End of Service( ENDSERVICE ) ASP Principles

foo   Sending Results( REPLY ) 1- ASP Principles

  Sending Results( REPLY ) foo 1- ASP Principles

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

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

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

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

2 - Syntax and Semantics 3 - Confluence and Determinacy 4 - Conclusion Contents

ASP Syntax : source terms 2- Syntax and Semantics Imperative  -calculus l ASP parallelism primitives

2- Syntax and Semantics Local Creating Activity Sending request Receiving replies Service

Contents 1 - ASP Principles 2 - Syntax and Semantics 3 - Confluence and Determinacy 4 - Conclusion

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

Confluence l Potential services: 3- Confluence and Determinacy P0 PQ R l RSL definition: Compatibility  Confluence l Configuration Compatibility: Execution characterized by the order of Request Senders Execution characterized by the order of Request Senders

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

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} 3- Confluence and Determinacy g

Contents 1 - ASP Principles 2 - Syntax and Semantics 3 - Confluence and Determinacy 4 - Conclusion

Conclusion An Asynchronous Object Calculus :  Structured asynchronous activities  Structured communications with 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, … 4- Conclusion Thank You Any Question? Thank You Any Question?

Perspectives l Approximation of confluence property  Static analysis l Generalization of confluence property  Functional behavior  Scheduling of requests l Extensions of ASP  Group communication  Component calculus  Mobility and other features

Related Work l Futures and Wait by Necessity:  MultiLisp by Halstead  Wait-By-Necessity by Caromel l Determinism:   by Jones  Linearized channels  Process Networks by Kahn and MacQueen l Objects and concurrency:  Obliq, Gordon-Hankin-Lassen  Actors   -calculus, blue calculus, join-calculus

l Terms: l Configuration: l Request queue: l Futures list: l Store: Intermediate Structures

Static DON versus Process Networks  {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 put get

   Active(a) newact=Active(a) newact Activity Creation( NEWACT )

  Objects Topology

Equivalence Modulo Futures Updates  f1  f2  f3

More Futures    ...result.bar()

More Futures     result.bar()

More Futures     result.bar()

More Futures     result.bar()

More Futures     result.bar() Futures updates can occur at any time Futures updates can occur at any time

Concurrent Constraint Programming l Constraint programming, different notion of store l Shared memory l No internal state in the store (functional agents) l Data-driven / constraint driven synchronization: Blocking Ask l Determinate case

  Active(a,s) newact=Active(a,s) Activity Creation( NEWACT )

  Active(a,s) newact=Active(a,s) newact Activity Creation( NEWACT ) ao.s()

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

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

 Store Partitioning

 Serve(foo) Serve(foo);... bar foo Request Service( SERVE )

Serve(foo) bar foo Serve(foo);... ... foo Request Service( SERVE )

Objectives l Model of the following features  Object orientation (activities, communications)  Asynchronous communications with futures  Service policy l Confluence and determinacy  Identify sources of non-determinism  Characterize equivalent executions  Give general properties  Find some properties easy to verify

value foo bar ... End Of Service( ENDSERVICE )

value bar foo ... End Of Service( ENDSERVICE )