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.

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

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

Saved successfully!

Ooh no, something went wrong!