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

( Télécharger le fichier original )
par Manel Sekma
Institut Supérieur d'Informatique et de Mathématiques de Monastir - Maitrise 2007
  

précédent sommaire suivant

Deuxième partie

Spécification et réalisation

Chapitre 5

Communication inter Aglets

5.1 Introduction

La "communication" est le processus de transmission d'informations. Ce terme provient du latin « communicare » qui signifie « mettre en commun ». La communication peut donc être considérée comme un processus pour la mise en commun d'informations et de connaissances.

Une propriété importante des aglets est qu'ils peuvent communiquer entre eux via un environnement dans lequel les aglets qui ne connaissent pas peuvent échanger des messages. C'est-à- dire, un aglet doit être capable de coopérer avec des aglets développés par d'autres développeurs.

Dans cette partie, nous allons décrire les différentes techniques de communication par messages entre aglets. Plusieurs moyens de communication inter aglets sont supportés; ainsi qu'une description des failles da la plateforme Aglets au niveau de la communication sera donnée.

5.2 Types de communication

Les aglets d'IBM fournissent un modèle d'interface pour la communication plus flexible, et plus extensible que l'invocation normale de méthodes.

L'aglet supporte un environnement de communication (Figure4.1) qui est:

· extensible

· indépendant de la localisation

· synchrone / asynchrone

_
_

_
_

___
___

_
_

Message Object

Agletcontext Communication

AgletAglet
message

Figure 4.1 L'environnement Aglet.

5.2.1 Communication simple

Le principal moyen pour les aglets de communiquer est l'envoi de messages. La méthode d'appel du service de messagerie dans la classe Aglet s'appelle handleMessage(). Ce n'est pas une méthode à utiliser directement pour envoyer un message à un aglet, les méthodes sendMessage() ou sendAsyncMessage() sont utilisées à la place. Ces 2 méthodes ont l'avantage d'abstraire l'emplacement de l'aglet. Ce qui signifie que peu importe où se trouve l'aglet, l'interface (sendMessage) reste identique.

5.2.2 Communication synchrone

La communication synchrone entre aglet est assurée par la fonction getReply(). Après avoir envoyé un message, on peut attendre la réponse du destinataire par cette fonction. Cette dernière reste bloquante jusqu'à ce que la réponse soit retournée (Figure 4.2). La méthode sendMessage (Message msg) permet l'envoi de messages synchrones. Elle est bloquante car elle retourne la réponse du destinataire. Ensuite le destinataire du message doit implémenter un gestionnaire des messages reçus. Cette fonctionnalité est rendue possible par la surcharge de la méthode : Agl et.handleMessage (Message msg). Puis la méthode Message.sendReply() permet de retourner une réponse à l'émétteur. Elle supporte plusieurs constructions (Figure 4.2) :

public void Message.sendReply ()

public void Message.sendReply (boolean reply)

public void Message.sendReply (Object reply)

handleMessage(Message msg) getReplyØ handleMessage(Message msg)

sendMessage(Message msg) sendMessage(Message msg)

Figure 4.2 Communications synchrones.

5.2.3 Communication asynchrone

Dans le cas d'une communication asynchrone, après avoir envoyé le message, l'Aglet doit vérifier régulièrement s'il y a eu réponse ou non. L'envoi est non bloquant (Figure 4.3).

handleMessage(Message msg)

sendMessage(Message msg) sendMessage(Message msg)

Figure 4.3 Communications Asynchrones.

Ce type de communication est implémenté grâce à la notion de future Objet.Un ensemble de méthodes de la classe FutureReply concernent la recherche de la réponse d'un message. La transmission non bloquante ou asynchrones des messages permet de poursuivre l'exécution jusqu'à ce que la réponse soit arrivée.

public FutureReply AgletProxy. sendFutureMessage (Message msg) La classe FutureReply offre des méthodes pour la récupération des messages.

public boolean FutureReply.isAvailable() Vérifie si la réponse est arrivée ou non.

public void FutureReply. waitForReply(long duration) Attente de l'arrivée de la réponse pour la durée duration.

public void FutureReply. waitForReply() Blocage en attente de l'arrivée de la réponse. public Object FutureReply. getReply() Récupère la réponse.

Un agent peut avoir besoin de communiquer avec son propriétaire, avec d'autres agents (locaux ou distants), ou avec des services. La communication avec le propriétaire, identifiée

dans les attributs de l'agent, doit être asynchrone. Dans le cas de communication avec un agent ou un service distant, le choix entre la communication distante et la migration sur le site distant est un problème complexe (compromis entre le coût de communication et le coût de migration) dont la résolution est laissée au programmeur dans les systèmes actuels.

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