outil pour la conception dIHM approche « bus logiciel déchanges de messages» v.1.5 – 05 janvier 2010
Une architecture répartie ? les systèmes informatiques deviennent de plus en plus complexes en terme de périphériques utilisés dinformations échangées … Nécessité dune architecture répartie principe : communication interprocessus Aller au-delà du niveau de la socket avec des niveaux dabstraction de plus en plus complexe (RPC : appel procédures distantes, RMI : appel à des méthodes distantes, …)
Une architecture répartie ? inconvénients fréquents des approches … centralisation à un moment donné (où se trouve lobjet/ la méthode distante ?) coût dapprentissage élevé plates-formes souvent spécifiques (ex : RMI) incompatibilité des modèles darchitecture et dexécution
approche répartie pour lIHM ? la plupart de middlewares ne sont pas orienté interaction … de quoi a ton besoin ? de séparer le NF de linterface démettre et/ou de recevoir des événements et non pas dappeler des méthodes ! une solution : bus « événementiels »
approche répartie pour lIHM ? le travail se situe au niveau du protocole déchange entre agents (la « sémantique » de lévénement …) application protocole
objectifs de lapproche
intérêt pour la conception… modularité = réutilisabilité plusieurs plate-formes et langages passer rapidement de la phase « papier » au prototype moyenne/haute fidélité et pour la phase de test possibilité de tester les différents modules séparément : meilleure visibilité du système
objectifs de lapproche avantages … pour la conception réalisation dune plate-forme de SVI modulaire : SRAP compréhension contrôleur de dialogue générationsynthèse bus ivy
objectifs de lapproche avantages … pour la conception tests : utilisation de la modularité réalisation dun magicien dOz SRAP compréhension contrôleur de dialogue générationsynthèse bus ivy choix dans une liste de réponses possibles saisie clavier de la réponse
le bus ivy ivy est simple ( à comprendre, à mettre en œuvre et cest gratuit ;-) ivy est un bus logiciel qui permet un échange dinformations entre des applications réparties sur différentes machines tournant sous différents OS et écrites avec des langages différents …
le bus ivy ivy nest pas basé sur un serveur centralisé chaque agent propose un ou des services chaque agent réagit à un ou des événements proche de la programmation événementielle (java, X-window, visual studio…) adresse IP adresse de broadcast adresse de multicast port de communication
le bus ivy ivy est disponible en C, C++, C#, java, perl, perl/Tk, Tcl, Tcl/Tk, ocaml, ada95, python, VBA, Flash, objet COM, … sous MacOS, Win32, WinCE, Un*x, linux, Android, … conséquence : la conception est facilitée en profitant des avantages liés à chaque langage de programmation
utilisateurs (connus) Laboratoires Entreprises
le bus ivy le protocole déchanges de messages est purement textuel (abonnement par expressions régulières / regexp) exemples denvoi : ICAR command=back IMM media=SRAP action=previous Nom de lapplication émettrice du message Couples de variable/valeur
le bus ivy exemples dabonnement : ^ICAR command=(.*) ^IMM (.*) action=(.*) la syntaxe denvoi et de réception des messages est simplissime ! (sendMsg et bindMsg)
comment programmer avec ivy ? : développé au CENA librairie de « mise en réseau » dagents toutes APIs nécessaires au développement (ex : SAPI pour la parole [Windows], ARToolkit pour la réalité augmentée, toolkit piccolo pour de lanimation graphique, …)
(petite) démonstration piloter un robot modalités : joystick (directions) phidgets (commandes de moteurs + capteurs) langages : C, java
(petite) démonstration un IRC vocal modalités : reconnaissance de la parole synthèse de la parole langages : C++, java, perl
(petite) démonstration un IRC vocal (perl) (java)
conclusions lapproche « bus événementiel » permet : de se focaliser sur les problèmes de conception et non sur la façon de les implémenter et de prototyper très rapidement pour « donner à voir » et « donner à tester »
liens Sites officiels divy (Subversion) Site « ivystore » de lIRIT