1 romain quilici objectweb architecture meeting july 2nd 2003 proactive architecture of an open...

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

Upload: janis-davis

Post on 04-Jan-2016

216 views

Category:

Documents


1 download

TRANSCRIPT

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

1

Romain Quiliciwww.objectweb.org/ProActive

ObjectWeb Architecture meetingJuly 2nd 2003

ProActive Architecture of an Open Middleware for

the Grid

Page 2: 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 Consortiumsince April 2002 (LGPL License)

ProActive A Java API + Tools for Parallel, Distributed Computing

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

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

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

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

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

5

ProActive Runtime Architecture

RMI case

PART Smart Proxy

PART

PART Remote

Node1

PART Stub

Jvm1 Jvm2

Singleton

Adapter

Factory

Node1 properties

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

6

Table of Contents ProActive RuntimeProActive Runtime

Active Objects Model

Future Objects and Automatic ContinuationFuture Objects and Automatic Continuation

Groups CommunicationGroups Communication

Active Objects MigrationActive Objects Migration

Abstract Deployment ModelAbstract Deployment Model

Components InfrastructureComponents Infrastructure

SecuritySecurity

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

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)

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

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

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

9

"A"

"pA"

ap_a

foo (A a){ a.g (...); v = a.f (...); ... v.bar (...);}

ProActive: Reuse and seamlessTwo 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.»

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

10

Active Object Components

Body

Object

Proxy

StubObject

Caller

Components of an Active Object

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

11

Active Object Architecture

RMI case Jvm1 Jvm2

Caller

Stub

Object

Proxy

Body

Smart Proxy

Body Stub Remote

Body

Body

Object

RMI Specific

Byte code generation with asm

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

12

Body

Request Receiver

Reply Receiver

Reply Sender

Service ObjectRequestLine

FuturePool

Body Architecture

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

13

1

1 - Call

2

2 - Reception of Request

3

3 - Selection of Request

4

4 - Execution

5

5 - Sending back the reply

Caller

Body

Request Receiver

Reply Receiver

Reply Sender

Service Objet

Request to an Active Object

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

14

Table of Contents ProActive RuntimeProActive Runtime

Active Objects ModelActive Objects Model

Future Objects and Automatic Continuation

Groups CommunicationGroups Communication

Active Objects MigrationActive Objects Migration

Abstract Deployment ModelAbstract Deployment Model

Components InfrastructureComponents Infrastructure

SecuritySecurity

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

15

Future Objects

A res = ActiveObject.foo();

FutureProxy

Stub_Ares

• 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

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

16

Object

• When the called object finish the computation of res, the value is returned to the caller

• Future is updated transparently

FutureProxy

Stub_AresCaller

Future Objects

A res = ActiveObject.foo();

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

17

Automatic Continuation

Caller

b

a

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

18

Caller

b

a

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()

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

19

Caller

b

a

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()

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

20

Caller

b

a

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)

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

21

Caller

b

a

Future_r1

Future_r1Future_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)

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

22

Caller

b

a

Future_r1

Future_r1Future_r2

Value_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)

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

23

Caller

b

a

Future_r1

Future_r1Future_r2

Value_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)

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

24

Caller

b

a

Future_r1

Future_r1Future_r2

Value_r1

UPDATE

Value_r1

Value_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)

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

25

Table of Contents ProActive RuntimeProActive Runtime

Active Objects ModelActive Objects Model

Future Objects and Automatic ContinuationFuture Objects and Automatic Continuation

Groups Communication

Active Objects MigrationActive Objects Migration

Abstract Deployment ModelAbstract Deployment Model

Components InfrastructureComponents Infrastructure

SecuritySecurity

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

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

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

27

Group Structure

Proxy for Group

RemoteOA

StubJvm1 Jvm2

Jvm3

Stub Proxy

Stub Proxy

RemoteOA

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

28

A

Construction of a Result Group

Typed Group Java or Active Object

A ag = newActiveGroup (…)V v = ag.foo(param); v.bar();

V

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

29

Table of Contents ProActive RuntimeProActive Runtime

Active Objects ModelActive Objects Model

Future Objects and Automatic ContinuationFuture Objects and Automatic Continuation

Groups CommunicationGroups Communication

Active Objects Migration

Abstract Deployment ModelAbstract Deployment Model

Components InfrastructureComponents Infrastructure

SecuritySecurity

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

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)

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

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)

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

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)

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

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)

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

34

direct

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)

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

35

direct

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)

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

36

direct

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)

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

37

direct

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)

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

38

direct

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)

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

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)

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

40

Migration

Body

Request Receiver

Reply Receiver

Reply Sender

Service ObjectRequestLine

FuturePool

Migration Manager

Body

Request Receiver

Reply Receiver

Reply Sender

Service ObjectRequestLine

FuturePool

Migration Manager

Caller

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

41

Body

Request Receiver

Reply Receiver

Body

Request Receiver

Reply Receiver

Reply Sender

Service ObjectRequestLine

FuturePool

Migration Manager

Caller

Forwarder

Migration

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

42

Table of Contents ProActive RuntimeProActive Runtime

Active Objects ModelActive Objects Model

Future Objects and Automatic ContinuationFuture Objects and Automatic Continuation

Groups CommunicationGroups Communication

Active Objects MigrationActive Objects Migration

Abstract Deployment Model

Components InfrastructureComponents Infrastructure

SecuritySecurity

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

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

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

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

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

45

<virtualNodesDefinition>

<virtualNode name="Dispatcher"/>

</virtualNodesDefinition>

<map virtualNode="Dispatcher">

<jvmSet>

<vmName value="Jvm1"/>

</jvmSet>

</map>

<jvm name="Jvm1">

<acquisition method="rmi"/>

<creation>

<processReference refid="jvmProcess"/>

</creation>

</jvm>

Definitions

and mapping

Definition of Virtual Nodes

Mapping of Virtual Nodes

Mapping Virtual Nodes: example

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

46

Mapping Virtual Nodes: example<processDefinition id="jvmProcess">

<jvmProcess class="org.objectweb.proactive.core.process.JVMNodeProcess"/>

</processDefinition>

<processDefinition id="rshProcess">

<rshProcess class="org.objectweb.proactive.core.process.rsh.RSHJVMProcess"

hostname="sea.inria.fr">

<processReference refid="jvmProcess"/>

</rshProcess>

</processDefinition>

Infrastructure

informations

JVM on the current Host

JVM started using RSH

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

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() );

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

48

Table of Contents ProActive RuntimeProActive Runtime

Active Objects ModelActive Objects Model

Future Objects and Automatic ContinuationFuture Objects and Automatic Continuation

Active Objects MigrationActive Objects Migration

Groups CommunicationGroups Communication

Abstract Deployment ModelAbstract Deployment Model

Components Infrastructure

SecuritySecurity

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

49

D

C

Components based on Fractal Model

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

50

Distributed and Parallel Components

Group proxy

A

B

C

D

A

A

B

C

P

Group proxy

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

51

ab

body

mobility

asynchronism

Stub_a

proxy

JVM1 JVM2

component meta - objects

component representative

Components Infrastructure

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

52

Components Infrastructure

ab

body

mobility

asynchronism

proxy

JVM1 JVM2

component meta - objects

component representative

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

53

Components Request

ab

bodyproxy

component meta - objects

component representative

method calls are reified

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

54

Table of Contents ProActive RuntimeProActive Runtime

Active Objects ModelActive Objects Model

Future Objects and Automatic ContinuationFuture Objects and Automatic Continuation

Active Objects MigrationActive Objects Migration

Groups CommunicationGroups Communication

Abstract Deployment ModelAbstract Deployment Model

Components InfrastructureComponents Infrastructure

Security

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

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

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

56

Request to an Active Object

Body

Request Receiver

Reply Receiver

Service

Object

Security Manager

Reply Sender

Body

Request Receiver

Reply Receiver

ServiceObject

Security Manager

Reply Sender

Proxy

Request Sender

Request Sender

•Policy computation

• Keys exchange

Request path Security mechanims

encrypt decrypt