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.3. Sémantique <strong>de</strong>s communications<br />

4.3 Sémantique <strong>de</strong>s communications<br />

L’instanciation d’un objet actif retourne un objet polymorphiquement compatible avec le type<br />

<strong>de</strong> la classe d’origine. L’objet retourné est en fait <strong>une</strong> sous-classe <strong>de</strong> la classe d’origine. Cela nous<br />

permet <strong>de</strong> rendre transparente la distribution <strong>de</strong>s objets actifs. Un objet java peut ne pas avoir<br />

conscience qu’il s’adresse à un objet distant, il fera <strong>de</strong>s appels sur les métho<strong>de</strong>s publiques <strong>de</strong><br />

l’objet actif comme si ce <strong>de</strong>rnier était un objet java standard et local à la machine virtuelle.<br />

La communication entre objets actifs est assurée par un échange <strong>de</strong> messages. Les messages<br />

sont <strong>de</strong>s objets java sérialisables. On peut les comparer aux paquets utilisés par le protocole TCP.<br />

En effet, ces messages contiennent (1) <strong>une</strong> partie servant à leur routage par les divers éléments<br />

<strong>de</strong> la bibliothèque, (2) <strong>une</strong> partie contenant les données <strong>de</strong>vant être communiquées à l’objet distant.<br />

Si les possibilités <strong>de</strong> faire <strong>de</strong>s appels <strong>de</strong> métho<strong>de</strong>s restent les mêmes, la sémantique <strong>de</strong><br />

communication associée à <strong>une</strong> métho<strong>de</strong> variera selon la signature <strong>de</strong> cette <strong>de</strong>rnière.<br />

Le tableau 4.1 présente les différentes sémantiques <strong>de</strong> communication selon les différentes signatures<br />

<strong>de</strong>s métho<strong>de</strong>s.<br />

tel-00239252, version 1 - 5 Feb 2008<br />

Sémantique Signature <strong>de</strong> la métho<strong>de</strong> Nombre <strong>de</strong> messages échangés<br />

One-way<br />

Synchrone<br />

Asynchrone<br />

La métho<strong>de</strong> n’a pas <strong>de</strong> valeur <strong>de</strong> retour<br />

(void) et ne lève pas d’exception.<br />

– La métho<strong>de</strong> retourne un objet non<br />

reifiable : type primitif ou classe final,<br />

– La métho<strong>de</strong> peut lever <strong>une</strong> exception<br />

: on doit bloquer l’appelant<br />

pour éviter qu’il ne sorte du bloc<br />

try/catch<br />

Ne correspond ni au cas synchrone, ni<br />

au cas one-way : types réifiables, auc<strong>une</strong><br />

exception<br />

Un message envoyé <strong>de</strong> l’appelant vers<br />

l’appelé.<br />

Deux messages échangés, un lors<br />

<strong>de</strong> l’appel <strong>de</strong> métho<strong>de</strong>, le <strong>de</strong>uxième<br />

lorsque la métho<strong>de</strong> a été exécutée afin<br />

<strong>de</strong> renvoyer le résultat <strong>de</strong> l’appel <strong>de</strong><br />

métho<strong>de</strong>. La thread <strong>de</strong> l’appelant est<br />

bloquée jusqu’à réception du résultat<br />

<strong>de</strong> l’appel <strong>de</strong> métho<strong>de</strong>.<br />

Deux messages échangés, un lors<br />

<strong>de</strong> l’appel <strong>de</strong> métho<strong>de</strong>, le <strong>de</strong>uxième<br />

lorsque la métho<strong>de</strong> a été exécutée afin<br />

<strong>de</strong> renvoyer le résultat <strong>de</strong> l’appel <strong>de</strong><br />

métho<strong>de</strong>.<br />

TAB. 4.1 – Signature <strong>de</strong>s métho<strong>de</strong>s et sémantique <strong>de</strong>s appels<br />

Dans tout échange <strong>de</strong> messages, il existe <strong>une</strong> phase <strong>de</strong> ren<strong>de</strong>z-vous lors <strong>de</strong> l’envoi du message.<br />

Ce ren<strong>de</strong>z-vous assure à l’appelant que le message a été correctement délivré à l’objet actif appelé<br />

et qu’il a été placé dans la file d’attente <strong>de</strong>s requêtes que l’objet actif appelé doit servir.<br />

4.4 Migration <strong>de</strong>s activités<br />

La mobilité d’<strong>une</strong> application est un paradigme <strong>de</strong> programmation qui consiste à donner la<br />

possibilité aux divers éléments d’<strong>une</strong> application <strong>de</strong> changer <strong>de</strong> localisation en cours d’exécution<br />

[60]. La migration permet la migration <strong>de</strong>s objets actifs d’un noeud vers un autre nœud. La<br />

migration telle qu’elle a été implantée au sein <strong>de</strong> ProActive est dite faible ; le co<strong>de</strong> est mobile<br />

mais pas le contexte d’exécution. Le concept <strong>de</strong> migration faible s’oppose au concept <strong>de</strong> migration<br />

forte. La migration dite forte permet la migration d’un objet à n’importe quel moment pendant<br />

l’exécution <strong>de</strong> l’objet. Cette restriction est due au langage Java qui ne permet pas la capture <strong>de</strong>s<br />

contextes d’exécution <strong>de</strong>s Threads. La conséquence immédiate est l’impossibilité <strong>de</strong> faire migrer<br />

un objet tant que ce <strong>de</strong>rnier n’a pas atteint un état désigné comme stable.<br />

N’importe quel objet actif a la possibilité <strong>de</strong> migrer ou d’être migré. Si l’objet actif possè<strong>de</strong> un<br />

graphe d’objets passifs, ces <strong>de</strong>rniers seront déplacés également vers la nouvelle localisation. Le<br />

processus <strong>de</strong> migration repose actuellement sur la sérialisation Java pour transférer les objets<br />

53

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

Saved successfully!

Ooh no, something went wrong!