10.5. Transport des messages :
Le transport des messages est un point important dans les SMAs :
les agents "dialoguent" uniquement par echange de message, donc les
performances du transport de messages influencent directement les performances
du SMA.
Le transport des messages peut se faire de diverses manieres :
- a l'aide d'objets CORBA ou des sockets pour la couche de
transport des donnees.
- D'autres systemes proprietaires permettent aussi de
transporter des messages : PRC en C/C++ , RMI en Java, COM/DCOM sous
Windows...,
- Par appel de methode directe sur l'agent ou appel de
methodes sur un objet proxy de l'agent (celui-ci permettant aux autres
objets/agents de ne jamais connaitre directement l'agent) ,
- Par utilisation d'un MOM (Message Oriented Middleware) qui
agit comme un facteur et distribue les messages aux agents interesses.
Nous venons d'evoquer les methodes de transport susceptibles
d'etres utilisees pour la communication directe entre deux agents, pour la
communication multicast, on peut rajouter d'autres points :
- la gestion des differents sujets des listes de diffusion,
- la diffusion des messages d'un point de vue materiel : on peut
utiliser la couche de transport de messages directs ou utiliser des protocols
multicast, comme les multicast socket. Il faut aussi noter que dans le cas
d'une implementation reseau , il faut definir un "reseau virtuel" logiciel
au-dessus de la couche reseau materielle. En effet il faut pouvoir donner une
adresse (equivalent a de l'adresse IP pour les machines) a tous les agents
presents dans le systeme. Il faut aussi pouvoir router les messages afin que
n'importe quel agent puisse dialoguer avec n'importe quel(s) autre(s) agent(s).
Plusieurs solutions sont envisageables pour resoudre ce probleme :
- Un objet distribue unique qui attribue les adresses (objet
CORBA par exemple) et qui gere le routage des messages,
- Une architecture du type reseau Ethernet (il me semble) ,
c'est a dire avec des routeurs (gateway) a differents niveaux. Par exemple un
routeur par SMA puis un routeur pour un groupe de SMA. Cette architecture peut
etre auto-configurable (en se basant en partie sur les adresses IP des machines
par exemple) ou etre configuree par des fichiers d'initialisations par
exemple.
|