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<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

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

Saved successfully!

Ooh no, something went wrong!