Modèle de connexion
Le modèle de connexion change pour distinguer un envoi multicast (à tous les composants connectés à un service de sortie) d'un envoi unicast (à un composant destinataire spécifié dans le message).
Le choix du mode se fait dans le message qui comporte un champ destinataire (adressee) : s'il est non nul, le mode unicast est choisi ; s'il est nul, le mode multicast est choisi.
Dans le cas unicast, on cherche à connecter l'entrée d'un composant spécifique à la sortie de notre composant. Il y a Un seul envoi de message pour un composant spécifique.
Dans le cas multicast, on cherche à connecter les services d'entrées d'un composant aux services de sorties de notre composant. Il y a un seul appel d'envoi de message par Remote DS pour chaque service de sortie, plus les envois de messages pour les composants locaux. Le fait de faire un seul appel est primordial pour optimiser l'envoi de messages sur le réseau.
Unicast
Le modèle de connexion unicast est dans le conteneur lui-même et est géré par connect et disconnect.
On cherche à connecter un composant à un autre composant, grâce à une Map<NomDuComposant?, ContainerProxy?>.
Multicast
Le modèle de connexion multicast est modélisé dans le conteneur, pour les composants locaux, et dans les DS réparti. Le conteneur modélise ces assocations avec une Map<NomDuService?, List<ContainerProxyLocal?>> et List<RemoteDS>.
Remote
Lorsqu'un composant local s'exporte a traver un DS (remote) alors le DS s'ajoute dans la List<RemoteDS> du composant.
Lors d'un envoi multicast, tous les RemoteDS de cette liste se chargeront d'envoyer le message aux composants connectés au service de sortie du composant source. Aux DSs de gérer la façon de connecter ce service.
Local
La méthode connect et disconnect fait la distinction d'un composant réparti et local grâce à "instanceof Container". Dans le cas où le composant est local, il fait un matching des services avec la Map<NomDuService?, List<ContainerProxyLocal?>>.
Ce modèle est celui utilisé dans la version 1.5.3 et avant. Il sera restreint seulement aux composants locaux et au multicast.
En plus de la délégation d'envoi aux RemoteDS, le conteneur envoie le message aux différents composants locaux connectés au service du message.