Asynchronous Distributed Components: Concurrency and Determinacy I. Context: Distributed Components and Active Objects II. Asynchronous Distributed Components.

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

Giving a formal meaning to “Specialization” In these note we try to give a formal meaning to specifications, implementations, their comparisons. We define.
Concurrency Important and difficult (Ada slides copied from Ed Schonberg)
Remote Procedure Call (RPC)
Denis Caromel1 Joint work with Ludovic Henrio – Eric Madelaine et. OASIS members OASIS Team INRIA -- CNRS - I3S – Univ. of Nice Sophia-Antipolis, IUF.
G Robert Grimm New York University Lightweight RPC.
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.
Software Engineering and Middleware: a Roadmap by Wolfgang Emmerich Ebru Dincel Sahitya Gupta.
Hierarchical Reconfiguration of Dataflow Graphs Stephen Neuendorffer UC Berkeley Poster Preview May 10, 2004.
16: Distributed Systems1 DISTRIBUTED SYSTEM STRUCTURES NETWORK OPERATING SYSTEMS The users are aware of the physical structure of the network. Each site.
Lecture 12 Synchronization. EECE 411: Design of Distributed Software Applications Summary so far … A distributed system is: a collection of independent.
Representing Systems Sixth Meeting. Modeling Systems Models block-diagram Used throughout engineering Represents behavior and structure of systems. Only.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 13 Slide 1 Application architectures.
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
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.
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.
Client Call Back Client Call Back is useful for multiple clients to keep up to date about changes on the server Example: One auction server and several.
Asynchronous Components with Futures: Semantics, Specification, and Proofs in a Theorem Prover Components (Distributed) Futures Formalisations (and proofs)
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.
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.
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.
Specifying Fractal and GCM Components With UML Solange Ahumada, Ludovic Apvrille, Tomás Barros, Antonio Cansado, Eric Madelaine and Emil Salageanu SCCC.
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.
© 2004 IBM Corporation WS-ResourceFramework Service Groups Tom Maguire.
2. CALCULUS: A S P. A Theory of Distributed Objects D. Caromel, L. Henrio, Springer 2005, Monograph A Calculus: ASP: Asynchronous Sequential Processes.
Operating Systems Distributed-System Structures. Topics –Network-Operating Systems –Distributed-Operating Systems –Remote Services –Robustness –Design.
ASYNCHRONOUS AND DETERMINISTIC OBJECTS ASP: Asynchronous Sequential Processes l Distributed objects l Asynchronous method calls l Futures and Wait-by-necessity.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
J. Gutleber, L. Orsini, 2005 March 15
Design Patterns: MORE Examples
Software Architecture
Main issues: • What do we want to build • How do we write this down
Chapter 8 ARP(Address Resolution Protocol)
Exercise I Implement in Java asynchronous communication between threads via unbounded FIFO buffers. Provide also a means to initialize these buffers.
Object-Oriented Network Communication (OOMI)
Dynamic Modeling of Banking System Case Study - II
Behavioural Models for Distributed Hierarchical Components
CHAPTER 3 Architectures for Distributed Systems
Distributed Components and Futures: Models and Challenges
CS551 UML for Distributed Objects (Engineering Distributed Objects)
Shanna-Shaye Forbes Ben Lickly Man-Kit Leung
DISTRIBUTED COMPUTING
An Introduction to Software Architecture
Remote Procedure Call Hank Levy 1.
Outline Review of Quiz #1 Distributed File Systems 4/20/2019 COP5611.
Remote Procedure Call Hank Levy 1.
Abstractions for Fault Tolerance
Remote Procedure Call Hank Levy 1.
The Grid Component Model and its Implementation in ProActive
Presentation transcript:

Asynchronous Distributed Components: Concurrency and Determinacy I. Context: Distributed Components and Active Objects II. Asynchronous Distributed Components III. Deterministic Distributed Components Denis CAROMEL Ludovic HENRIO TCS /08/2006

I. Context: Distributed Components and Active Objects II. Asynchronous Distributed Components III. Deterministic Distributed Components Content

Context l Fractal: a component model specification l An implementation in ProActive  Hierarchical composition  Asynchronous, distributed components  Non-functional aspects and lifecycle l Formal aspects  Kell calculus  component control (passivation)  ASP components  Communication, hierarchy and deterministic components

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, …

Services in ASP l Pending requests are stored in a queue. l 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):

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

I. Context: Distributed Components and Active Objects II. Asynchronous Distributed Components III. Deterministic Distributed Components Content

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 Input interfaces Output interfaces

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

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

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

I. Context: Distributed Components and Active Objects II. Asynchronous Distributed Components III. Deterministic Distributed Components Content

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

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

Summary and Results l A definition of components  Coarse grain components (activities)  Convenient abstraction for distribution and Concurrency  Structured asynchronous communications  Semantics as a translation to ASP  First class futures inherited from ASP l 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

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

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

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

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

foo   Sending Results( REPLY )

  foo

delta.send(result) result.bar()    Future Update Strategies 

delta.send( result )    Future Update Strategies: No partial replies and request

delta.send(result)result.bar()    Future Update Strategies: Message-based  Future Forwarded Messages

delta.send(result)result.bar()    Future Update Strategies: Forward-based 

delta.send(result)result.bar()    Future Update Strategies: Lazy Future Updates 