WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Intégration de protocoles de sécurité pour la communication inter-agents dans la plate-forme Aglets


par Manel Sekma
Institut Supérieur d'Informatique et de Mathématiques de Monastir - Maitrise 2007
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

4.2.3 La création de l'aglet

La création d'un aglet se fait par l'appel de la méthode createAglet() du contexte. public abstract AgletProxy createAglet( URL codeBase, String code, Object init); Cette méthode retourne le proxy associé à l'aglet nouvellement crée.

CreateAgletØ

runØ

 
 

AgletØonCreationØ

Figure 3.6 Diagramme de Collaboration pour la création de l'Aglet.

L'exemple suivant montre comment un aglet peut créer un autre aglet : import agl et. *;

public class creationExample extends Aglet{

pubilc void run() {

try{

getAgletContext(). createAglet(getCodeBase(), 'CreationChild", null); }

Catch (Exception e){ System.out.println(e.getMessage()) ;}

}}

4.2.4 Le modèle événementiel de l'aglet

La programmation des aglets est basée sur la gestion des événements. Des notifications alertent l'aglet sur les actions influant sur son cycle de vie. Le programmeur a la possibilité d'implémenter des écouteurs (listeners) pour faire réagir l'aglet. Il existe trois catégories de notifications :

Notifications de clonage

Permettent la capture des événements liés au clonage de l'aglet. Cette fonctionnalité est obtenue par implémentation de l'écouteur (interface) CloneListener :

La méthode clone() permet de cloner un aglet. Elle retourne le proxy associé au clone. L'aglet qui fait l'objet du clonage reçoit alors les notifications suivantes :

public void CloneAdapter. onCloning(CloneEvent event);

Annonce de clonage de l'aglet. La surcharge de cette méthode donne la possibilité d'exécuter les actions en conséquence.

Le clonage est réalisé et nous obtenons deux aglets : Un original est un clone. L'original reçoit un événement de type :

public void CloneAdapter. onCloned(CloneEvent event);

Et l'agent cloné reçoit l'événement :

public void CloneAdapter.onClone(CloneEvent event);

Notifications de mobilité

Il existe deux façons de déplacer un aglet. La première est l'envoi vers un hôte distant; la seconde consiste à retirer un aglet d'un hôte distant. Plus précisément, il s'agit d'ordonner à l'aglet de partir où de venir.

Envoi: La méthode dispatch (URL destination) permet de demander à un aglet d'aller s'exécuter sur une autre plateforme. Dispatch (new URL ("atp :// unhote.fr"));

Le protocole utilisé est ATP : Aglet Transfer Protocol. Il est lié à l'API utilisée.

Les événements sont suivis par un MobilityListener. L'écouteur est ajouté et supprimé grâce aux méthodes addMobilityListener() et removeMobilityListener(). Un MobilityListener doit implémenter les méthodes suivantes :

public void onDispatching () : Cette méthode est appelée avant l'envoi de l'aglet. public void onArrival () : Cette méthode est appelée à la réception de l'aglet.

Retrait : Le principe de retrait est similaire au principe de l'envoi d'aglet. La méthode

retractAglet() permet de retirer un aglet de son contexte actuel.

AgletContext.retractAglet (URL contextAdress, AgletID id)

AgletID est un identifiant attribué à l'aglet. Il est obtenu à l'aide de la méthode getAgletID de la classe Aglet.

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy