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.
Section 4.6. Déploiement <strong>de</strong>s applications<br />
L’instruction suivante permet l’instanciation d’un objet actif étendant la classe java standard<br />
"A" et localisé sur le nœud No<strong>de</strong>1 sur la machine noadcoco.inria.fr :<br />
// Creation d un objet actif sur le noeud No<strong>de</strong>1 localise sur<br />
// la machine noadcoco.inria.fr<br />
A a = (A) ProActive.newActive("A", params,"rmi://noadcoco.inria.fr/No<strong>de</strong>1" );<br />
Si le paramètre no<strong>de</strong> est null ou s’il est omis, l’instanciation se fera sur la machine virtuelle<br />
courante :<br />
// Creation d’un objet actif sur la machine virtuelle courante<br />
// dans le noeud courant<br />
A a = (A) ProActive.newActive("A", params, null);<br />
A a = (A) ProActive.newActive("A", params);<br />
Il est aussi possible <strong>de</strong> passer en paramètre un objet <strong>de</strong> type No<strong>de</strong> qui représente un nœud local<br />
ou distant :<br />
// Creation d’un objet actif sur le noeud represente par<br />
// l’objet No<strong>de</strong> no<strong>de</strong><br />
A a = (A) ProActive.newActive("A", params, no<strong>de</strong>);<br />
tel-00239252, version 1 - 5 Feb 2008<br />
Seule la <strong>de</strong>rnière métho<strong>de</strong> possè<strong>de</strong> <strong>une</strong> signature assez générique pour permettre <strong>de</strong> changer<br />
facilement le nœud qui accueillera le futur objet actif. Il nous faut maintenant un moyen <strong>de</strong><br />
changer selon nos besoins la valeur <strong>de</strong> la variable no<strong>de</strong> sans avoir à toucher au co<strong>de</strong> source afin<br />
<strong>de</strong> le recompiler, ni au byteco<strong>de</strong>. Par exemple, on veut pouvoir utiliser <strong>de</strong>s protocoles variés tels<br />
que rsh, ssh, LSF ou Globus pour créer les runtimes (JVMs) nécessaires à l’application. De la<br />
même manière, la découverte <strong>de</strong> ressources déjà existantes ou l’enregistrement <strong>de</strong> celles créées<br />
par l’application pourrait être fait via l’utilisation d’annuaires variées comme le RMIregistry,<br />
Jini, Globus, LDAP, etc.<br />
4.6.2 Nœuds virtuels et <strong>de</strong>scripteurs <strong>de</strong> déploiement<br />
Nous voulons obtenir un co<strong>de</strong> applicatif portable au niveau du déploiement et dans lequel<br />
nous avons retiré toutes les informations liées au déploiement physique <strong>de</strong>s nœuds (protocoles<br />
<strong>de</strong> connexion, noms <strong>de</strong>s machines, numéros <strong>de</strong> port, protocoles d’enregistrement et <strong>de</strong> recherche).<br />
Pour cela, nous allons distinguer les différents nœuds en leur attribuant un nom symbolique représenté<br />
par <strong>une</strong> chaîne <strong>de</strong> caractères. Le nom symbolique associé à un ou plusieurs nœuds<br />
porte le nom <strong>de</strong> nœud virtuel. De la même manière que les nœuds physiques qui permettent <strong>une</strong><br />
structuration bien précise <strong>de</strong> l’application, le nœud virtuel permet <strong>de</strong> structurer l’application en<br />
fonction d’<strong>une</strong> <strong>architecture</strong> virtuelle. Cette approche offre aussi la possibilité <strong>de</strong> décrire l’application<br />
<strong>de</strong> manière abstraite, en terme d’activités conceptuelles.<br />
Une fois l’application créée et architecturée autour <strong>de</strong>s nœuds virtuels, on peut se pencher sur<br />
la phase <strong>de</strong> déploiement <strong>de</strong> l’application. Le déploiement d’<strong>une</strong> application se fait en lui passant<br />
en paramètre le <strong>de</strong>scripteur <strong>de</strong> déploiement qui comme son nom l’indique va indiquer comment<br />
créer l’<strong>architecture</strong> dont l’application a besoin et où déployer les divers éléments constituant<br />
l’application. L’association entre les nœuds virtuels et les nœuds (le mapping) est spécifiée dans<br />
le <strong>de</strong>scripteur <strong>de</strong> déploiement. Les opérations pouvant être configurées dans un <strong>de</strong>scripteur <strong>de</strong><br />
déploiement sont les suivantes :<br />
– l’association <strong>de</strong>s nœuds virtuels sur <strong>de</strong>s nœuds <strong>de</strong>vant être créés ou acquisition <strong>de</strong> nœuds<br />
déjà existants ;<br />
– la manière <strong>de</strong> créer <strong>de</strong> nouveaux runtimes ou d’acquérir <strong>de</strong>s runtimes existants qui accueilleront<br />
les futurs nœuds ;<br />
– la manière <strong>de</strong> créer ou d’acquérir <strong>de</strong>s nœuds virtuels.<br />
Pour résumer, un nœud virtuel est :<br />
1. i<strong>de</strong>ntifié par un nom ;<br />
2. utilisé dans le co<strong>de</strong> source ;<br />
3. défini et configuré dans un <strong>de</strong>scripteur <strong>de</strong> déploiement.<br />
59