outil pour la conception d’IHMapproche « bus logiciel
d’échanges de messages»
http://www.irit.fr/~Philippe.Truilletv.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• d’informations échangées• …
Nécessité d’une architecture répartie
• principe : communication interprocessus• Aller au-delà du niveau de la socket• avec des niveaux d’abstraction 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 l’objet/ la méthode distante ?)
• coût d’apprentissage élevé• plates-formes souvent spécifiques (ex : RMI)• incompatibilité des modèles d’architecture et
d’exécution
approche répartie pour l’IHM ?
• la plupart de middlewares ne sont pas orienté interaction …
• de quoi a t’on besoin ?• de séparer le NF de l’interface• d’émettre et/ou de recevoir des événements et non pas
d’appeler des méthodes !
une solution : bus « événementiels »
approche répartie pour l’IHM ?
• le travail se situe au niveau du protocole d’échange entre agents (la « sémantique » de l’événement …)
application
protocole
objectifs de l’approche
objectifs de l’approche
• 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 l’approche avantages … pour la conception
• réalisation d’une plate-forme de SVI modulaire :
SRAPcompréhension
contrôleur de dialogue génération synthèse
bus ivy
objectifs de l’approche avantages … pour la conception
• tests : utilisation de la modularité• réalisation d’un magicien d’Oz
SRAPcompréhension
contrôleur de dialogue génération synthèse
bus ivy
choix dans une liste deréponses possibles
saisie clavierde la réponse
le bus ivy
• ivy est simple (http://www.tls.cena.fr/products/ivy)• à comprendre,• à mettre en œuvre• et c’est gratuit ;-)
• ivy est un bus logiciel qui permet un échange d’informations 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 n’est 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 IPadresse de broadcastadresse 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 d’envoi :
ICAR command=back
IMM media=SRAP action=previous
Nom de l’application émettrice du message
Couples de variable/valeur
le bus ivy
• exemples d’abonnement :^ICAR command=(.*)^IMM (.*) action=(.*)
• la syntaxe d’envoi 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 » d’agents
• toutes APIs nécessaires au développement (ex : SAPI pour la parole [Windows], ARToolkit pour la réalité augmentée, toolkit piccolo pour de l’animation graphique, …)
(petite) démonstrationpiloter un robot
• modalités :• joystick (directions)• phidgets (commandes de moteurs + capteurs)
• langages :• C, java
(petite) démonstrationun IRC vocal
• modalités :• reconnaissance de la parole• synthèse de la parole
• langages :• C++, java, perl
(petite) démonstrationun IRC vocal
(perl) (perl)(java)
conclusions
• l’approche « 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 d’ivy• http://www.tls.cena.fr/products/ivy• http://svn.tls.cena.fr (Subversion)
• Site « ivystore » de l’IRIT• http://www.irit.fr/~Philippe.Truillet/ivystore
• http://marine.edu.ups-tlse.fr/~truillet/ens/m2si/id/ivy/ivy.2.14.pdf
• http://marine.edu.ups-tlse.fr/~truillet/ens/l2info/tp/ivy_tp_l2_1.2.pdf