back to API     back to index     prev     next  

Principles

Seamless sequential, multithreaded and distributed

Most of the time, activities and distribution are not known at the beginning, and change over time. Seamless implies reuse, smooth and incremental transitions.


A huge gap yet exists between multithreaded and distributed Java applications which forbids code reuse in order to build distributed applications from multithreaded applications. Both JavaRMI and JavaIDL, as examples of distributed object libraries in Java, put a heavy burden on the programmer because they require deep modifications of existing code in order to turn local objects into remote accessible ones. In these systems, remote objects need to be accessed through some specific interfaces. As a consequence, these distributed objects libraries do not allow polymorphism between local and remote objects. This feature is our first requirement for a metacomputing framework. It is strongly required in order to let the programmer concentrate first on modeling and algorithmic issues rather than lower-level tasks such as object distribution, mapping and load balancing.

Active objects: Unifying threads and remote objects

Given a standard object, we provide the ability to give it:

==> only with modifications of the instanciation code !

Three ways to transform a standard object into an active one:

Class-based

Object[] params = new Object[] { new Integer (26), "astring" };
A a = (A) ProActive.newActive("example.A", params, node);

Instantiation-based

public class AA extends A implements Active {}

Object[] params = new Object[] { new Integer (26), "astring" };
A a = (A) ProActive.newActive("example.AA", params, node);

Object-based

Allows to turn active and remote objects for which you do not have the source code; a necessary feature in the context of code mobility.

A a = new A (26, "astring");
a = (A) ProActive.turnActive(a, node);
Notes: Node allows to control the mapping

Model of Computation: Based on previous works and studies

Reuse and Seamless: why and how do we achieve better reuse ?

Two key features :




Copyright © April 2004 INRIA All Rights Reserved.