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