13.05.2014 Views

these doctorat une architecture de securité

these doctorat une architecture de securité

these doctorat une architecture de securité

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Chapitre 4. Contexte : ProActive<br />

tel-00239252, version 1 - 5 Feb 2008<br />

FIG. 4.4 – Communication entre <strong>de</strong>ux objets actifs<br />

1. L’approche Class-based est la plus statique. Elle implique la création d’<strong>une</strong> nouvelle classe<br />

qui implémente l’interface marqueur Active et hérite le cas échéant d’<strong>une</strong> classe préalablement<br />

existante. Active étant <strong>une</strong> interface marqueur pure, elle n’impose auc<strong>une</strong><br />

contrainte au développeur. Il existe cependant <strong>de</strong>s interfaces (EndActive, InitActive,<br />

RunActive étendant l’interface Active. Ces interfaces comportent <strong>de</strong>s métho<strong>de</strong>s permettant<br />

<strong>de</strong> modifier le comportement par défaut <strong>de</strong>s méta-objets <strong>de</strong> l’objet actif.<br />

Le co<strong>de</strong> d’instanciation d’un objet actif selon l’approche Class-based est le suivant :<br />

public class PA extends A implements Active {...}<br />

Object[] params = { new Integer(2), "salut"};<br />

A a = (A) ProActive.newActive("PA", params, no<strong>de</strong>);<br />

Le premier paramètre est le nom qualifié <strong>de</strong> la classe ( nom du package + nom <strong>de</strong> la classe).<br />

Le <strong>de</strong>uxième paramètre est un tableau d’objets qui contient les paramètres à passer au<br />

constructeur lors <strong>de</strong> la création <strong>de</strong> l’objet actif. Le troisième paramètre spécifie le nœud sur<br />

lequel l’objet actif va être créé. Ce nœud peut être local ou distant.<br />

2. L’approche Instanciation-based permet d’utiliser <strong>une</strong> classe java standard et d’instancier<br />

un objet actif sans avoir à modifier ni le co<strong>de</strong>, ni le byteco<strong>de</strong> <strong>de</strong> la classe.<br />

Object[] params = { new Integer(2), "salut"};<br />

A a = (A) ProActive.newActive("A", params, no<strong>de</strong>);<br />

3. L’approche Object-based permet <strong>de</strong> rendre actif un objet java déjà instancié. Il est ainsi<br />

possible <strong>de</strong> rendre actif un objet java dont le source n’est pas disponible. Cette approche<br />

réalise <strong>une</strong> copie profon<strong>de</strong> <strong>de</strong> l’objet passé en paramètre qui continuera d’exister au sein <strong>de</strong><br />

la machine virtuelle. Si <strong>de</strong>s objets avaient <strong>de</strong>s références sur l’objet avant son activation,<br />

les références pointeront toujours sur l’objet initial et non sur la copie rendue active.<br />

A a = new A (2, "salut" );<br />

a = (A) ProActive.turnActive(a, no<strong>de</strong>);<br />

52

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!