34
1

1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

Embed Size (px)

Citation preview

Page 1: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

1

Page 2: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

2

Objects to Distributed Components (1)

Typed Group Java or Active Object

ComponentIdentity Cpt = newActiveComponent (params);A a = Cpt … .getFcInterface ("interfaceName");V v = a.foo(param);

V

AExample of

component

instance

JVM

Truly

Distributed

Components

Page 3: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

3

getA()

getB()

getAandB()

Functionalities : Without First Class Futures

Or in the case of Synchronous method calls

getA()

getB()

getAandB()

getB()

getA()getAandB()

Page 4: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

4

getA()

getB()

getAandB() getA()

getB()

getAandB()

getB()

getA()getAandB()

Functionalities : With First Class Futures

Example 2 : Asynchronous method calls with full-fledge Wait-By-Necessity

Non-blocking method calls

value of A

value of B

Assemblage are not blocked with Asynchrony + WbN

Page 5: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

5

IC2DInteractive Control & Debug for Distribution

GUI for Distribution

Page 6: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

6

IC2D: Interactive Control and Debugging of Distribution

With any ProActive applicationFeatures:

Graphical and Textual visualization Monitoring and Control

Page 7: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

7

Monitoring of RMI, Globus, Jini, LSF cluster Nice -- Baltimore

ProActive IC2D:

Width of links

proportional

to the number

of com-

munications

Page 8: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

8

IC2D: Dynamic change of DeploymentDrag-n-Drop Migration

Drag-n-Drop

tasks

around the

world

Page 9: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

9

On-going work : GUI for Components

Page 10: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

10

Exampleof

Applications

Page 11: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

11

Jem3D

Page 12: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

12

JECS : A Generic Version of Jem3D

Page 13: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

13

JECS : A Generic Version of Jem3D

Page 14: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

JEM3D Components

Page 15: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

15

Code Coupling : Vibro Acoustic (courtesy of EADS)

Page 16: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

16

5. Model Checking:

VercorsBehavioral Specification

andModel Checking

Page 17: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

17

Formal verification and model checking

Principles of the VERCORS platform

Behaviour ofPrimitive

Components

Specification of the

Architecture

Par

amet

eriz

ed

Mod

el

Treeof

FiniteLTSs

ParameterizedLTS

Synchronisation networks + controllers

ModelChecking

Finite Abstraction of

parameter domains

Page 18: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

18

Behaviour of Primitives

Functional behaviour• Given by the user

• Static source code analysis (with ProActive primitives)

• Currently supported languages: FC2 and LOTOS

Usage• Parameterized LTS encoding the behaviour specification

Page 19: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

19

Vercors Status and Relation to GCM-ProActive

Current state of tools• Functional behaviour: Ready and available (ADL2N)

• NF controllers and ProActive's semantics

• To be released in ADL2N v1

Current state of model• Functional and Non-Functional distributed components

• Extensions still needed:

• Exception handling is mandatory• Collective interfaces• A few other features of ProActive

Future Work• Modeling and Specification Language for ProActive community: TTools+

Page 20: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

TTool+ for ProActive

• Design model of hierarchical components for ProActive:

High Level Design Tool mapped on a formal semantics,

Easy to understand, easy to use

• TTool+ :

An extension of TTool

(Developed by Ludovic Apvrille, ENST, LabSoC)

Page 21: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

TTool+ for ProActive Alpha Version Provides:

• User design of distributed components with asynchronous calls

• Interactions between distributed components:

build behavior models ( use model checkers)

Future work:

• High Level Design of ProActive components: automatic generation of controllers of component management

• GCM: Generation of multiple instances of components and managing Group Communications

• Generation of ADL files, ProActive Template Code

Page 22: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

Producer-Consumer System in TTool+ :a. First Level Component Design

Page 23: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

b. Adding Subcomponents

Page 24: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

c. Binding components through Interfaces

Page 25: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

d. Adding a new client (consumer)

Page 26: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

e. Defining behavior using State Machine Diagrams

Page 27: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

27

CONCLUSIONS

Page 28: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

28

Conclusion: Why does it scale?

Thanks to a few key features:

• Asynchrony: Connection-less,

• Messages rather than long-living interactions

RMI+JMS unified

Page 29: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

29

Conclusion: Why does it Compose?

Thanks to a few key features:

• Because it Scales: asynchrony !

• Because it is Typed: RMI with interfaces !

No unstructured Call Backs and Ports

Page 30: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

30

Very Last Conclusion: Key Aspects

Distributed Objects: Active Objects• Asynchronous Method Calls First-Class Futures

Calculus: ASP• Confluence (very General and Dynamic)• Determinism only based on Request-Sender Reception Order

Dist. Component Specification: GCM• Hierarchical and Runtime (Fractal)• Distributed (VN, …), Multicast, Gathercast

Middleware: ProActive• Programming, Composing, Deploying + GUI

Model Checking: Vercors• Hierarchical, Parameterized, • Practical (Multi. Source for Information, Checking vs. Telling)

Page 31: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

31

Perspectives

Page 32: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

32

Perspective for Components GUI Graphical Composition, Monitoring, Migration

Page 33: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

33

Perspective for Components - PSE Graphical Composition, Monitoring, Migration

Page 34: 1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface

34

PerspectivesPutting everything together (ASP, ProActive, Vercors):

Still a lot of work !

Collaborations Welcome!

Behavioral specification of component composition (ongoing)

Specify and Study Non-Functional Aspects

• More Specifically:

Life-Cycle, Reconfiguration in distributed environments

ProActive.ObjectWeb.org

inria.fr/oasis/Vercors

Vercors