these doctorat une architecture de securité
these doctorat une architecture de securité
these doctorat une architecture de securité
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