1 Romain Quilici www.objectweb.org/ProActive ObjectWeb Architecture meeting July 2nd 2003 ProActive Architecture of an Open Middleware for the Grid.

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

RPC Robert Grimm New York University Remote Procedure Calls.
26 Mai 2004 Séminaire Croisé : Sécurité Informatique Ubiquitaire1 Security Architecture for GRID Applications Séminaire Croisé Sécurité Informatique Ubiquitaire.
Denis Caromel1 Joint work with Ludovic Henrio – Eric Madelaine et. OASIS members OASIS Team INRIA -- CNRS - I3S – Univ. of Nice Sophia-Antipolis, IUF.
Copyright © 2001 Qusay H. Mahmoud RMI – Remote Method Invocation Introduction What is RMI? RMI System Architecture How does RMI work? Distributed Garbage.
What iS RMI? Remote Method Invocation. It is an approach where a method on a remote machine invokes another method on another machine to perform some computation.
The road to reliable, autonomous distributed systems
Fabrice Huet Mobility of Active Objects Fabrice Huet INRIA-I3S-CNRS.
Denis Caromel, Arnaud Contes OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis 1. Introduction to the GRID.
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.
Rheeve: A Plug-n-Play Peer- to-Peer Computing Platform Wang-kee Poon and Jiannong Cao Department of Computing, The Hong Kong Polytechnic University ICDCSW.
Remote Method Invocation Chin-Chih Chang. Java Remote Object Invocation In Java, the object is serialized before being passed as a parameter to an RMI.
Software Engineering and Middleware: a Roadmap by Wolfgang Emmerich Ebru Dincel Sahitya Gupta.
Communication in Distributed Systems –Part 2
© DSRG 2001www.cs.agh.edu.pl Cross Grid Workshop - Kraków Krzysztof Zieliński, Sławomir Zieliński University of Mining and Metallurgy {kz,
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
Understanding the CORBA Model. What is CORBA?  The Common Object Request Broker Architecture (CORBA) allows distributed applications to interoperate.
XML in Development of Distributed Systems Tooling Programming Runtime.
The Grid Component Model: an Overview “Proposal for a Grid Component Model” DPM02 “Basic Features of the Grid Component Model (assessed)” -- DPM04 CoreGrid.
1 22 August 2001 The Security Architecture of the M&M Mobile Agent Framework P. Marques, N. Santos, L. Silva, J. Silva CISUC, University of Coimbra, Portugal.
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.
Cracow Grid Workshop, October 27 – 29, 2003 Institute of Computer Science AGH Design of Distributed Grid Workflow Composition System Marian Bubak, Tomasz.
Denis Caromel1 Troisieme partie Cours EJC 2003, AUSSOIS, Denis Caromel OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis.
Spring/2002 Distributed Software Engineering C:\unocourses\4350\slides\DefiningThreads 1 RMI.
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.
RMI remote method invocation. Traditional network programming The client program sends data to the server in some intermediary format and the server has.
A High Performance Middleware in Java with a Real Application Fabrice Huet*, Denis Caromel*, Henri Bal + * Inria-I3S-CNRS, Sophia-Antipolis, France + Vrije.
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.
Grid programming with components: an advanced COMPonent platform for an effective invisible grid © 2006 GridCOMP Grids Programming with components. An.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
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.
Chapter 5: Distributed objects and remote invocation Introduction Remote procedure call Events and notifications.
Distributed Objects and Remote Invocation Source: George Colouris, Jean Dollimore, Tim Kinderberg & Gordon Blair (2012). Distributed Systems: Concepts.
ProActive components and legacy code Matthieu MOREL.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Denis Caromel1 Denis Caromel, et al. OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF October
1 OASIS Team, INRIA Sophia-Antipolis/I3S CNRS, Univ. Nice Christian Delbé Data Grid Explorer 15/09/03 Large Scale Emulation Mobility in ProActive.
G.v. Bochmann, revised Jan Comm Systems Arch 1 Different system architectures Object-oriented architecture (only objects, no particular structure)
Institute for Visualization and Perception Research 1 © Copyright 1999 Haim Levkowitz Java-based mobile agents.
1 Distributed Systems Distributed Object-Based Systems Chapter 10.
April, 2005 ebSOA Based on FERA Reference Model Vasco Drecun Collaborative Product Development Associates, LLC Goran Zugic ebXMLsoft Inc.
A Theory of Distributed Objects Toward a Foundation for Component Grid Platforms Ludovic HENRIO l A Theory of Distributed Objects l Components l Perspectives.
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.
Typed Group Communication & Object-Oriented SPMD Laurent Baduel.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Extending Java RMI for Dynamic Reconfiguration
Programming Models for Distributed Application
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
DISTRIBUTED COMPUTING
Lecture 4: RPC Remote Procedure Call Coulouris et al: Chapter 5
Processes Chapter 3.
Lecture 4: RPC Remote Procedure Call CDK: Chapter 5
Processes Chapter 3.
Processes Chapter 3.
ProActive Architecture of an Open Middleware for the Grid
Java Remote Method Invocation
Distributed System using Web Services
The Grid Component Model and its Implementation in ProActive
Presentation transcript:

1 Romain Quilici ObjectWeb Architecture meeting July 2nd 2003 ProActive Architecture of an Open Middleware for the Grid

2 –A uniform framework: An Active Object pattern – A formal model behind: Prop. Determinism, insensitivity to deploy. Main features:  Remotely accessible Objects (RMI, JINI, --> UDDI)  Asynchronous Communications with synchro: automatic Futures  Group Communications, Migration (mobile computations)  XML Deployment Descriptors  Interfaced with various protocols: rsh,ssh,LSF,Globus,--> SOAP  Visualization and monitoring: IC2D In the ObjectWeb Consortium since April 2002 (LGPL License) ProActive A Java API + Tools for Parallel, Distributed Computing

3 Table of Contents  ProActive Runtime  Active Objects Model  Future Objects and Automatic Continuation  Groups Communication  Active Objects Migration  Abstract Deployment Model  Components Infrastructure  Security

4 ProActive Runtime  Transparently created when using ProActive  Only one by JVM -- Singleton pattern  Offer basics services to create or receive Active Objects  Accessible remotely  Partially hidden from users --> Use of Nodes (look like remote)  ProActive Nodes are defined on PART --> possibly N nodes by JVMs  Use of patterns to improve integration –Smart Proxy –Adapter –Factory ….

5 ProActive Runtime Architecture RMI case PART Smart Proxy PART PART Remote Node1 PART Stub Jvm1 Jvm2 Singleton Adapter Factory Node1 properties

6 Table of Contents

7 Active Object 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)

8  Instantiation-based: A a = (A)ProActive.newActive(«A», params, node); To get a non-FIFO behavior (Class-based): class pA extends A implements RunActive { … }  Object-based: A a = new A (obj, 7);... a = (A)ProActive.turnActive (a, node); Creating active objects

9 "A" "pA" a p_a foo (A a) { a.g (...); v = a.f (...);... v.bar (...); } 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 O.foo(a) : a.g() and a.f() are « local » O.foo(p_a): a.g() and a.f()are remote + Async.»

10 Active Object Components Body Object Proxy Stub Object Caller Components of an Active Object

11 Active Object Architecture RMI case Jvm1 Jvm2 Caller Stub Object Proxy Body Smart Proxy Body Stub Remote Body Object RMI Specific Byte code generation with asm

12 Body Request Receiver Reply Receiver Reply Sender Service Object RequestLine FuturePool Body Architecture

Call Reception of Request Selection of Request Execution Sending back the reply Caller Body Request Receiver Reply Receiver Reply Sender ServiceObjet Request to an Active Object

14 Table of Contents

15 Future Objects A res = ActiveObject.foo(); Future Proxy Stub_A res The caller receives a Future : it continues its execution If it tries to access to the value or res, it is blocked in the future proxy (Wait By Necessity), until this value is available Caller

16 Object When the called object finish the computation of res, the value is returned to the caller Future is updated transparently Future Proxy Stub_A res Caller Future Objects A res = ActiveObject.foo();

17 Automatic Continuation Callerba

18 Callerba r1=a.foo() Automatic Continuation A Future can be passed by parameter or by result: chains of futures will be updated by Automatic Continuation. … r1=a.foo() …

19 Callerba Future_r1 Automatic Continuation A Future can be passed by parameter or by result: chains of futures will be updated by Automatic Continuation. … r1=a.foo() …

20 Callerba Future_r1 r2=b.bar(r1) Automatic Continuation A Future can be passed by parameter or by result: chains of futures will be updated by Automatic Continuation. … r1=a.foo() … r2=b.bar(r1)

21 Callerba Future_r1 Future_r2 Automatic Continuation A Future can be passed by parameter or by result: chains of futures will be updated by Automatic Continuation. … r1=a.foo() … r2=b.bar(r1)

22 Callerba Future_r1 Future_r2Value_r1 UPDATE Automatic Continuation A Future can be passed by parameter or by result: chains of futures will be updated by Automatic Continuation. … r1=a.foo() … r2=b.bar(r1)

23 Callerba Future_r1 Future_r2Value_r1 UPDATE Value_r1 Automatic Continuation A Future can be passed by parameter or by result: chains of futures will be updated by Automatic Continuation. … r1=a.foo() … r2=b.bar(r1)

24 Callerba Future_r1 Future_r2Value_r1 UPDATE Value_r1Value_r2 Automatic Continuation A Future can be passed by parameter or by result: chains of futures will be updated by Automatic Continuation. … r1=a.foo() … r2=b.bar(r1)

25 Table of Contents

26 Group Communication  Manipulate groups of Active Objects in a simple and typed manner –Typed groups of active and remote objects. –Maintain the ‘dot ’ notation, language property –Dynamic generation of groups of results  Be able to express high-level collective communication –broadcast –scatter, gather  Based on the ProActive communication mechanism –Replication of N ‘ single ’ communications –Preservation of the « rendez-vous » –Asynchronous

27 Group Structure Proxy for Group Remote OA Stub Jvm1 Jvm2 Jvm3 StubProxyStubProxy Remote OA

28 A Construction of a Result Group Typed Group Java or Active Object A ag = newActiveGroup (…) V v = ag.foo(param); v.bar(); V

29 Table of Contents

30 Migration of Active Objects Migration is initiated by the active object itself through a primitive: migrateTo Can be initiated from outside through any public method The active object migrates with: all pending requests all its passive objects all its future objects Automatic and transparent forwarding of: requests (remote references remain valid) replies (its previous queries will be fullfilled)

31 Characteristics and optimizations  Same semantics guaranteed (RDV, FIFO order point to point, asynchronous)  Safe migration (no agent in the air!)  Local references if possible when arriving within a VM  Tensionning (removal of forwarder)

32 Characteristics and optimizations  Same semantics guaranteed (RDV, FIFO order point to point, asynchronous)  Safe migration (no agent in the air!)  Local references if possible when arriving within a VM  Tensionning (removal of forwarder)

33 direct Characteristics and optimizations  Same semantics guaranteed (RDV, FIFO order point to point, asynchronous)  Safe migration (no agent in the air!)  Local references if possible when arriving within a VM  Tensionning (removal of forwarder)

34 direct Characteristics and optimizations  Same semantics guaranteed (RDV, FIFO order point to point, asynchronous)  Safe migration (no agent in the air!)  Local references if possible when arriving within a VM  Tensionning (removal of forwarder)

35 direct forwarder Characteristics and optimizations  Same semantics guaranteed (RDV, FIFO order point to point, asynchronous)  Safe migration (no agent in the air!)  Local references if possible when arriving within a VM  Tensionning (removal of forwarder)

36 direct forwarder Characteristics and optimizations  Same semantics guaranteed (RDV, FIFO order point to point, asynchronous)  Safe migration (no agent in the air!)  Local references if possible when arriving within a VM  Tensionning (removal of forwarder)

37 direct forwarder Characteristics and optimizations  Same semantics guaranteed (RDV, FIFO order point to point, asynchronous)  Safe migration (no agent in the air!)  Local references if possible when arriving within a VM  Tensionning (removal of forwarder)

38 direct forwarder Characteristics and optimizations  Same semantics guaranteed (RDV, FIFO order point to point, asynchronous)  Safe migration (no agent in the air!)  Local references if possible when arriving within a VM  Tensionning (removal of forwarder)

39 API for Mobile Agents  Basic primitive: migrateTo public static void migrateTo (String u) public static void migrateTo (Node n) // String or ProActive node (VM) public static void migrateTo (Object o) // joinning another active object  Primitive to automatically execute action upon migration public static void onArrival (String r) // execute r upong arrival on a new Node public static void onDeparture (String r)

40 Migration Body Request Receiver Reply Receiver Reply Sender Service Object RequestLine FuturePool Migration Manager Body Request Receiver Reply Receiver Reply Sender Service Object RequestLine FuturePool Migration Manager Caller

41 Body Request Receiver Reply Receiver Body Request Receiver Reply Receiver Reply Sender Service Object RequestLine FuturePool Migration Manager Caller Forwarder Migration

42 Table of Contents

43 Abstract Deployment Model Objectives  Problem: –Difficulties and lack of flexibility in deployment –Avoid scripting for: configuration, getting nodes, connecting, etc.  A key principle: –Abstract Away from source code: Machines Creation Protocols Lookup and Registry Protocols  Context: –Grid –Distributed Objects, Java –Not legacy-code driven, but adaptable to it

44 Descriptors: based on Virtual Nodes  Virtual Node (VN): Identified as a string name Used in program source Configured (mapped) in an XML descriptor file --> Nodes  Operations specified in descriptors: Mapping of VN to JVMs (leads to Node in a JVM on Host) Register or Lookup VNs, Create or Acquire JVMs Components Definition, Security Settings Program Source Descriptor (RunTime) | | | | Activities (AO) --> VN VN --> JVMs --> Hosts Runtime structured entities: 1 VN --> n Nodes in n JVMs

45 Definitions and mapping Definition of Virtual Nodes Mapping of Virtual Nodes Mapping Virtual Nodes: example

46 Mapping Virtual Nodes: example <rshProcess class="org.objectweb.proactive.core.process.rsh.RSHJVMProcess" hostname="sea.inria.fr"> Infrastructure informations JVM on the current Host JVM started using RSH

47 Virtual Nodes in Programs 1. Load the descriptor file Descriptor pad = ProActive.getDescriptor ("file://ProActiveDescriptor.xml"); 2. Activate the mapping VirtualNode vn = pad.activateMapping ("Dispatcher"); // Triggers the JVMs 3. Use nodes Node node = vn.getNode();... C3D c3d = ProActive.newActive("C3D", param, node); log (... "created at: " + node.name() + node.JVM() + node.host() );

48 Table of Contents

49 D C Components based on Fractal Model

50 Distributed and Parallel Components Group proxy A B C D A A B C P

51 a b body mobility asynchronism Stub_a proxy JVM1 JVM2 component meta - objects component representative Components Infrastructure

52 Components Infrastructure a b body mobility asynchronism proxy JVM1 JVM2 component meta - objects component representative

53 Components Request a b body proxy component meta - objects component representative method calls are reified

54 Table of Contents

55 Security  Non-functionnal security –located inside the meta-level, transparent for applications.  Hierarchical domains  Dynamic policy negotiation  Certification chain to identify users, JVMs, objects –User certificate => Application certificate => active object certificate –User private key used only once for generating application certificate  Security policies set by deployment descriptors

56 Request to an Active Object Body Request Receiver Reply Receiver Service Object Security Manager Reply Sender Body Request Receiver Reply Receiver Service Object Security Manager Reply Sender Proxy Request Sender Policy computation Keys exchange Request pathSecurity mechanims encrypt decrypt