Denis Caromel1 Denis Caromel, et al. www.inria.fr/oasis/ProActive OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF October 18 2004.

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

Self-Regenerative Middleware Service for Cross-Standards and Ubiquitous Services Activation Mengjie Yu ( )
Christian Delbe1 Christian Delbé OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis November Automatic Fault Tolerance in ProActive.
European Commission Directorate-General Information Society Unit F2 – Grid Technologies INSERT PROJECT ACRONYM HERE BY EDITING THE MASTER SLIDE (VIEW.
26 Mai 2004 Séminaire Croisé : Sécurité Informatique Ubiquitaire1 Security Architecture for GRID Applications Séminaire Croisé Sécurité Informatique Ubiquitaire.
Master/Slave Architecture Pattern Source: Pattern-Oriented Software Architecture, Vol. 1, Buschmann, et al.
Denis Caromel1 Joint work with Ludovic Henrio – Eric Madelaine et. OASIS members OASIS Team INRIA -- CNRS - I3S – Univ. of Nice Sophia-Antipolis, IUF.
The road to reliable, autonomous distributed systems
Denis Caromel, Arnaud Contes OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis 1. Introduction to the GRID.
Denis Caromel Denis Caromel 3 Clouds.
Denis Caromel 1 Denis Caromel, et al. OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF September 4.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB JavaForum.
G O B E Y O N D C O N V E N T I O N WORF: Developing DB2 UDB based Web Services on a Websphere Application Server Kris Van Thillo, ABIS Training & Consulting.
1 Ludovic Henrio Paris, An Open Source Middleware for the Grid Programming Wrapping Composing Deploying.
Denis Caromel1 Institut Universitaire de France (IUF) OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis ECCOMAS, July 2004 ProActive: Components.
Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field.
Sapana Mehta (CS-6V81) Overview Of J2EE & JBoss Sapana Mehta.
Chair of Software Engineering 1 Concurrent Object-Oriented Programming Arnaud Bailly, Bertrand Meyer and Volkan Arslan.
Monitoring OSGi platforms with ProActive Virginie Legrand OASIS Team - INRIA Sophia Antipolis.
Denis Caromel1 Denis Caromel, et al. OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF 3 rd ProActive User Group, Nov Model.
Communication in Distributed Systems –Part 2
1 Programming systems for distributed applications Seif Haridi KTH/SICS.
Object Based Operating Systems1 Learning Objectives Object Orientation and its benefits Controversy over object based operating systems Object based operating.
Fabien Viale 1 Matlab & Scilab Applications to Finance Fabien Viale, Denis Caromel, et al. OASIS Team INRIA -- CNRS - I3S.
Denis Caromel1 Institut universitaire de France (IUF) OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis REUNA, Santiago, May 2004 GRID.
1 Secure Distributed Objects for Grid Applications Laurent Baduel, Arnaud Contes, Denis Caromel OASIS team ProActive
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
Oct Multi-threaded Active Objects Ludovic Henrio, Fabrice Huet, Zsolt Istvàn June 2013 –
Flexibility and user-friendliness of grid portals: the PROGRESS approach Michal Kosiedowski
1 Update Strategies for First Class Futures Khan Muhammad, Ludovic Henrio INRIA, Univ. Nice Sophia Antipolis,CNRS.
Denis Caromel1 Troisieme partie Cours EJC 2003, AUSSOIS, Denis Caromel OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis.
Denis Caromel 1 Denis Caromel, et al. OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF Open Source.
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.
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.
Denis Caromel1 OASIS, Univ. of Nice Sophia-Antipolis, INRIA -- CNRS - I3S -- IUF October Web Services Resource Framework 2. Grid scalability.
Asynchronous Components with Futures: Semantics, Specification, and Proofs in a Theorem Prover Components (Distributed) Futures Formalisations (and proofs)
A High Performance Middleware in Java with a Real Application Fabrice Huet*, Denis Caromel*, Henri Bal + * Inria-I3S-CNRS, Sophia-Antipolis, France + Vrije.
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.
Denis Caromel1 Denis Caromel, Romain Quilici OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis Albufeira,
Emil Salageanu ProActive Parallel Suite ActiveEon March 2008 ActiveEon Hands On Programming.
Grid programming with components: an advanced COMPonent platform for an effective invisible grid © GridCOMP Grids Programming with components.
Transparent Mobility of Distributed Objects using.NET Cristóbal Costa, Nour Ali, Carlos Millan, Jose A. Carsí 4th International Conference in Central Europe.
1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface.
Denis Caromel 1 Denis Caromel, et al. OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF Strong Programming.
ProActive components and legacy code Matthieu MOREL.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
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.
1 OASIS Team, INRIA Sophia-Antipolis/I3S CNRS, Univ. Nice Christian Delbé Data Grid Explorer 15/09/03 Large Scale Emulation Mobility in ProActive.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
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.
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.
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 Institut universitaire de France (IUF) OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis JAOO, Cannes, May 2004 Programming,
© Oxford University Press 2011 DISTRIBUTED COMPUTING Sunita Mahajan Sunita Mahajan, Principal, Institute of Computer Science, MET League of Colleges, Mumbai.
Denis Caromel1 OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis -- IUF IPDPS 2003 Nice Sophia Antipolis, April Overview: 1. What.
ASYNCHRONOUS AND DETERMINISTIC OBJECTS ASP: Asynchronous Sequential Processes l Distributed objects l Asynchronous method calls l Futures and Wait-by-necessity.
Asynchronous Distributed Components: Concurrency and Determinacy I. Context: Distributed Components and Active Objects II. Asynchronous Distributed Components.
Behavioural Models for Distributed Hierarchical Components
DISTRIBUTED COMPUTING
Lecture 4: RPC Remote Procedure Call Coulouris et al: Chapter 5
Lecture 4: RPC Remote Procedure Call CDK: Chapter 5
Semantic Formalisms 3: Distributed Applications
ProActive Architecture of an Open Middleware for the Grid
Parallel programming in Java
Presentation transcript:

Denis Caromel1 Denis Caromel, et al. OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF October Open Source Middleware for the GRID 1. PLUGTESTS and the GRIDs 2. ProActive overview 3. Conclusion -- a Few Directions for ProActive

Denis Caromel2 Melbourne Nancy Metz Napoli Nancy Napoli Nice Metz Paris Pise Rennes Santiago San Diego Amsterdam Belfast Fribourg Grenoble Lille Manchester Melbourne Merida Metz Bombay

Denis Caromel3 GRIDs

Denis Caromel4 Enterprise Grids Internet EJBServlets Apache Databases

Denis Caromel5 Scientific Grids Internet Clusters Parallel Machine Large Equipment

Denis Caromel6 Internet Grids Internet Job management for embarrassingly parallel application (e.g. SETI)

Denis Caromel7 Intranet Grids - Desktop Grids Internet Using Spare Cycles of Desktops Potentially: - Non-embarrassingly parallel application - Across several sites

Denis Caromel8 The multiple GRIDs Scientific Grids Enterprise Grids Internet Grids Intranet Desktop Grids Strong convergence in process! At least at the infrastructure level, i.e. WS

Denis Caromel9 Grid: from enterprise... to regional Very hard deployment problems … right from the beginning

Denis Caromel10 Grid: from regional... to worldwide Communication Nice-San Diego: 70 ms Light Speed Challenge: Hide the latency ! Define adequate programming model

Denis Caromel11 Programming ProActive: a global solution for the GRID Composing Deploying W r a p p i n g Figures: Web Page Hits: ~ / month, Downloads: / month, Users: ??.us,.mx,.br,.cl,.ch,.it,.fr,...

Denis Caromel12 Distributed Objects ProActive Programming

Denis Caromel13 ProActive model Java RMI (Remote Method Invocation = Object RPC = o.foo(p) ) plus a few important features: Asynchronous Method calls towards Active Objects: Implicit Futures as RMI results Wait-By-Necessity: Automatic wait upon the use of an implicit future First-Class Futures: - Futures passed to other activities - Sending a future is not blocking

Denis Caromel14 A ProActive : Active objects Proxy Java Object A ag = newActive (“A”, […], VirtualNode) V v1 = ag.foo (param); V v2 = ag.bar (param);... v1.bar(); //Wait-By-Necessity V Wait-By-Necessity is a Dataflow Synchronization JVM A Active Object Future Object Request Req. Queue Thread v1 v2 ag WBN!

Denis Caromel15 Call between Objects: Parameter passing: Copy of Java Objects ba x Copy: at serializ ation (Deep) Copies evolve independently -- No consistency b.foo(x)

Denis Caromel16 Call between Objects: Parameter Passing: Active Objects ba x Copy: at serializ ation Object passed by Deep Copy - Active Object by Reference b.foo(x, c) c c Reference Passing

Denis Caromel17 Wait-By-Necessity: First Class Futures ba Futures are Global Single-Assignment Variables V= b.bar () c c c.gee (V) v v

Denis Caromel18 ProActive : Explicit Synchronizations Single Future Synchronization: ProActive.isAwaited (v); // Test if available.waitFor (v); // Wait if not available Vectors of Futures:.waitForAll (Vector); // Wait all of them.waitForAny (Vector); // Get One A ag = newActive (“A”, […], VirtualNode) V v = ag.foo(param);... v.bar(); // Wait-by-necessity

Denis Caromel19 ProActive : Intra-object synchronization Explicit control: Library of service routines: Non-blocking services,... serveOldest (); serveOldest (f); Blocking services, timed, etc. serveOldestBl (); serveOldestTm (ms); Waiting primitives waitARequest(); etc. class BoundedBuffer extends FixedBuffer implements RunActive { // Programming Non FIFO behavior runActivity (ExplicitBody myBody) { while (...) { if (this.isFull()) serveOldest("get"); else if (this.isEmpty()) serveOldest ("put"); else serveOldest (); // Non-active wait waitArequest (); } }} Implicit (declarative) control: library classes e.g. : Blocking Condition Abstraction for concurrency control: doNotServe ("put", "isFull");

Denis Caromel20 Standard system at Runtime: Asynchrony, WbN,... but no sharing Proofs of Determinism

Denis Caromel21 Conclusions and A Few Directions ProActive: A Strong Programming Model + A Strong Deployment A FEW WEAKNESSES: No Workflow … waiting for workflow maturity No specific IDE: Eclipse already good, better could be done... PERSPECTIVES: Better Error/Correction management: Exceptions, FT, Behavior Spec. Reinforcing interaction with Standards: Web Services, … OSGi A Grid Alchemy to watch for: Asynchrony / Wait By Necessity + Groups + Components

Denis Caromel22 Groups

Denis Caromel23

Denis Caromel24 Adaptive Feature: Multi-transports layer RMI, RMI-ssh, …, Ibis, HTTP XML,... Adaptive choice of transport layer between: RMI ssh/RMI Also available with static configuration: Ibis (TCP, Myrinet, etc.) HTTP … ssh/HTTP Short Term Perspective: Fully Adaptive Choice between all transports

Denis Caromel25 A uniform framework: An Active Object pattern A formal model behind: Determinism, Insensitivity to deployment Programming Model: Remote Objects (Classes, not only Interfaces, Dynamic) Asynchronous Communications, Automatic dataflow synchro: Futures Groups, Mobility, Components, Security Environment: XML Deployment Descriptors Interfaced with various protocols: rsh,ssh,LSF,Globus,Jini,RMIregistry Visualization and monitoring: IC2D In the www. ObjectWeb.org Consortium (Open Source middleware) since April 2002 (LGPL license) ProActive: A Java API + Tools for Parallel, Distributed Computing

Denis Caromel26 ProActive : model Active objects : coarse-grained structuring entities (subsystems) Each active object: - possibly owns many passive objects - has exactly one thread. No shared passive objects -- Parameters are passed by deep-copy Asynchronous Communication between active objects Future objects and wait-by-necessity. Full control to serve incoming requests (reification) JVM

Denis Caromel27 ProActive model (2) Java RMI (Remote Method Invocation = Object RPC = o.foo(p) ) plus a few important features: Sequential Object: a single thread with FIFO service Asynchronous Method calls towards Active Objects: Implicit Futures as method results Wait-By-Necessity: Automatic wait upon a strict operation on an unknown future First-Class Futures: - Futures can be passed to other activities - Sending a future to another machines is not blocking

Denis Caromel28 ProActive : Reuse and seamless Two key features: Polymorphism between standard and active objects Type compatibility for classes (and not only interfaces) Needed and done for the future objects also Dynamic mechanism (dynamically achieved if needed) Wait-by-necessity: inter-object synchronization Systematic, implicit and transparent futures Ease the programming of synchronizations, and the reuse of routines "A" "pA" a p_a foo (A a) { a.g (...); v = a.f (...);... v.bar (...); }

Denis Caromel29 ProActive : Reuse and seamless Two key features: Polymorphism between standard and active objects Type compatibility for classes (and not only interfaces) Needed and done for the future objects also Dynamic mechanism (dynamically achieved if needed) Wait-by-necessity: inter-object synchronization Systematic, implicit and transparent futures (“value to come”) Ease the programming of synchronizations, and the reuse of routines "A" "pA" a p_a foo (A a) { a.g (...); v = a.f (...);... v.bar (...); } O.foo(a) : a.g() and a.f() are « local » O.foo(p_a): a.g() and a.f()are «remote + Async.» O

Denis Caromel30 First-Class Futures Update

Denis Caromel31 Wait-By-Necessity: First Class Futures ba Futures are Global Single-Assignment Variables V= b.bar () c c c.gee (V) v v

Denis Caromel32 Future update strategies No partial replies and requests: No passing of futures between activities, more deadlocks Eager strategies: as soon as a future is computed Forward-based: –Each activity is responsible for updating the values of futures it has forwarded Message-based: –Each forwarding of future generates a message sent to the computing activity –The computing activity is responsible for sending the value to all Mixed strategy: Futures update any time between future computation and WbN Lazy strategy: On demand, only when the value of the future is needed (WbN on it)

Denis Caromel33 Wait-By-Necessity: Eager Forward Based ba AO forwarding a future: will have to forward its value V= b.bar () c c c.gee (V) v v b

Denis Caromel34 Wait-By-Necessity: Eager Message Based ba AO forwarding a future: send a message V= b.bar () c c c.gee (V) v v b

Denis Caromel35 Wait-By-Necessity: Lazy Strategy ba An Active Object requests a Future Value when needed V= b.bar () c c.gee (V) v v c