http://www.irit.fr/diamant
Le bus ivy
(M. Raynal, Ph. Truillet)
mars 2005 – v. 1.5
1. introduction
Ivy est un bus logiciel [middleware] (http://www.tls.cena.fr/products/ivy) conçu au CENA dans le but de
connecter des applications interactives écrites avec différents toolkits/langages/plates-formes, tout en rendant
son utilisation simple : aucun serveur n’est à lancer.
Il s’agit d’un modèle de communication compatible avec la programmation événementielle classique des
interfaces graphiques. L’emploi du bus ivy vise principalement à faciliter le développement rapide de nouveaux
agents, et à en contrôler une collection dynamique : les agents apparaissent, émettent des messages et en
reçoivent, puis quittent le bus sans bloquer les autres agents présents.
Par opposition à d’autres bus logiciels, ivy ne se fonde pas sur un serveur central. Cela permet de concevoir des
agents adaptés spécifiquement aux besoins d’une personne indépendamment du système. Par exemple, on peut
avoir un agent affichant l’information renvoyée par le système sur un écran de PDA ; un autre peut remplacer
l’écran par un synthétiseur vocal, et finalement un troisième pourrait employer un afficheur Braille, ceci sans
faire un seul changement au cœur du système, qui se contenterait de lui renvoyer de l’information à donner aux
utilisateurs. Nous pourrions également imaginer des agents adaptés pour la reconnaissance vocale ou encore
pour interagir avec des dispositifs spéciaux.
La Figure 1 résume le fonctionnement d’ivy : le travail essentiel à effectuer est à faire au niveau du protocole
d’échanges de données entre agents : qui communique avec qui et envoie quoi comme flots de données ?
Figure 1 : connecter des applications avec ivy
En fait, le rôle d’ivy est principalement une convention de communication entre processus, mis en application
grâce à une collection de bibliothèques. Les messages sont échangés sous une forme textuelle, et la sélection
des messages récupérés ou non par les agents est basée sur des expressions régulières.
Les bibliothèques sont disponibles sur différents systèmes d’exploitation (Sun Solaris, Linux, Win*, WinCE, Mac
OS) pour plusieurs langages de programmation (C, C++, C#, Java, Perl, Perl-Tk, Tcl, Tcl-Tk, Ada, Python, Caml,
objets COM, …).
1.2 fonctionnement
Quel que soit le langage utilisé, les principes de fonctionnement restent les mêmes :
1. Création du bus
2. Connexion du bus
3. Envoi / réception des messages
4. Fermeture de la connexion
1.2.1 création du bus
Cela revient à allouer de la mémoire pour l’objet “bus”.