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<br />
Contexte : ProActive<br />
tel-00239252, version 1 - 5 Feb 2008<br />
ProActive est <strong>une</strong> bibliothèque Java pour le calcul parallèle, distribué et concurrent. La bibliothèque<br />
supporte la création d’objets distants, la mobilité <strong>de</strong>s applications, les appels <strong>de</strong> métho<strong>de</strong>s<br />
asynchrones, <strong>de</strong>s communications <strong>de</strong> groupe. Avec un ensemble réduit <strong>de</strong> primitives,<br />
ProActive fournit <strong>une</strong> API permettant la programmation d’applications distribuées pouvant être<br />
déployées aussi bien sur <strong>de</strong>s réseaux locaux (LAN) que sur un ensemble <strong>de</strong> grilles <strong>de</strong> calcul interconnectées<br />
via Internet.<br />
4.1 Modèle <strong>de</strong> programmation<br />
La bibliothèque ProActive est conçue pour déployer <strong>de</strong>s applications distribuées sur un nombre<br />
important d’ordinateurs à l’échelle planétaire si on le souhaite. On ne peut pas garantir l’uniformité<br />
ou la compatibilité <strong>de</strong>s binaires entre tous les systèmes d’exploitation <strong>de</strong> ces ordinateurs. Le<br />
choix d’un language utilisant <strong>une</strong> machine virtuelle s’est dès lors imposé. Il permet <strong>de</strong> fournir un<br />
framework unifié sur lequel les développeurs vont pouvoir co<strong>de</strong>r leurs applications sans avoir à<br />
se soucier <strong>de</strong> la compatibilité du co<strong>de</strong> qu’ils produisent. C’est dans cette optique que le language<br />
Java a été retenu. De plus, pour respecter ce souci <strong>de</strong> portabilité, la bibliothèque ProActive ne repose<br />
que sur <strong>de</strong>s outils java standards. ProActive ne modifie pas la sémantique du langage Java ni<br />
la machine virtuelle java (JVM, Java Virtual Machine). Il n’y a pas non plus <strong>de</strong> pré-traitement du<br />
co<strong>de</strong> source <strong>de</strong> l’application ou <strong>de</strong> modification <strong>de</strong> ce <strong>de</strong>rnier pendant l’exécution du programme.<br />
Les seules techniques employées sont l’utilisation d’un protocole à méta-objets utilisant <strong>de</strong>s techniques<br />
<strong>de</strong> réflexion pour manipuler les différentes séquences d’évènements pouvant survenir lors<br />
<strong>de</strong> l’exécution d’<strong>une</strong> application en environnement réparti.<br />
Il existait déjà <strong>de</strong>s bibliothèques java permettant la création d’objets accessibles à distance<br />
telles que Java Remote Metho<strong>de</strong> Invocation [113] ou encore Java IDL [73]. Cependant, les objets<br />
distants doivent soit être accédés au travers d’interfaces spécifiques, soit <strong>de</strong>man<strong>de</strong>r <strong>une</strong> profon<strong>de</strong><br />
modification du co<strong>de</strong> existant afin <strong>de</strong> transformer les objets locaux en objets distants. Il n’existe<br />
pas <strong>de</strong> polymorphisme entre les objets java standards et les objets accessibles à distance. C’est<br />
pourtant un prérequis essentiel qui permettrait au développeur <strong>de</strong> se concentrer sur l’amélioration<br />
<strong>de</strong> la structuration <strong>de</strong> son application plutôt que <strong>de</strong> s’occuper <strong>de</strong> tâches <strong>de</strong> bas niveau<br />
(distribution, équilibrage <strong>de</strong> charge, gestion <strong>de</strong> la migration, . . . ) qui <strong>de</strong>vraient être gérées par<br />
l’intergiciel. Afin <strong>de</strong> donner <strong>une</strong> vue homogène <strong>de</strong> l’application, la bibliothèque ProActive se base<br />
sur le concept <strong>de</strong>s objets actifs. La figure 4.1 montre comment <strong>une</strong> application initialement séquentielle<br />
et monothreadée peut évoluer en <strong>une</strong> application distribuée et multi-threadée sans<br />
changement dans la structure intrinsèque <strong>de</strong> l’application.<br />
4.2 Objets Actifs<br />
Une application construite avec la bibliothèque ProActive est composée d’entités <strong>de</strong> grain<br />
moyen appelées objet actif [19]. Etant donné un objet java standard, la bibliothèque permet <strong>de</strong><br />
49