Ivy.pm, la version perl d'un bus logiciel multiplateforme, multilangage Christophe Mertz (mertz@intuilab.com) IntuiLab
Préambule Cette présentation s'appuie sur le travail de nombreuses personnes: Marcellin Buisson (+, ) Alexandre Bustico (+) Stéphane Chatty (+ puis *) François Régis Colin (+) Yannick Jestin (+) Sébastien Maury (+ puis #) Christophe Mertz (+, puis *) Philippe Truillet (+,x) (+) CENA ( ) Transiciel (*) IntuiLab (#) Apple (x) IRIT 2
Préambule Cette présentation s'appuie largement sur une présentation faite à IHM 2002: Le bus logiciel Ivy: contribution au prototypage de logiciels interactifs par Yannick Jestin disponible à www.tls.cena.fr/products/ivy/documentation/ et à www.tls.cena.fr/divisions/pii/rapports/nr02-734/nr02-734.pdf Mais centrée sur une démo d'ivy en Perl 3
Pourquoi Ivy? Fédérer des composants IHM et ATC Mode de développement Prototypage itératif Travail en équipe Langages différents Etudier de nouveaux moyens d interaction sur des plateformes différentesn 4
Pourquoi Ivy? Flight Simulator Image radar Tk Zinc Pseudo- Pilot Visualisation Météo Rejeu de trafic Météo Bus Ivy 2002 5
Des méthodes de prototypage d'ihm Centré utilisateur, itératif Cognitive walktrough Basse fidélité / Haute fidélité Itérations rapides Laisser la conception émerger 6
Les difficultés Pas d outil miracle «taille unique» Réutiliser le savoir faire sans y être confiné Niveau d abstraction des échanges entre concepteurs Pas forcément de plate-forme commune Les outils sont souvent liés à leur plateforme La «synergie» entre les composants ne se fait pas 7
Une solution: le bus logiciel Principe: communication interprocessus ne pas rester au niveau de la socket métaphore du bus : agents, messages, abonnements Exemples koalatalk, tooltalk, OAA, AppleEvents, SOAP, Corba Inconvénients centralisation coût d apprentissage élevé plates-formes spécifiques incompatibilité des modèles d architecture et d exécution 8
Le bus logiciel Ivy 5 ans d utilisation Environnements de démonstration Environnement de bureau Vers une communauté autour du logiciel libre Google (bus ivy cena) 9
Principe de fonctionnement Pas de serveur centralisé: des agents Communication par messages textuels (conventions entre applications) Abonnement sur expression régulières simplifiées Exécution de comportement à la réception des messages Modèle d exécution événementiel simple à comprendre inclus dans les boucles d événements des boites à outils utilisées 10
Quelques agents En entrée reconnaissance de la parole, du geste, du mouvement infra rouge, boite à boutons, tablette midi, stylo Anoto système de fichier, IRC, En sortie synthèse vocale, rejeu audio événements X, «on screen display» Applications «métier» images radar, rejeu radar, flight simulator, simulation de traitement de plan de vol, trafic réel, météo gestion d expérimentation 11
Les plateformes supportées Unix/Linux, Win32, WinCE, MacOS, Java C, C++, Java, Javascript, TCL, Perl, Python, ADA, CAML, COM Outils existants de développement: ivyprobe, ivymon, enregistrement et rejeu de scénarios Traductions de messages Réutilisation facile de tout le logiciel déjà développé 12
Démonstration tictac.pl : un émetteur de messages : tic $time tac $time horloge.pl : abonné aux messages tic/tac, pause/finpause, affiche des informations et on va jouer sur les abonnements ivyprobe.pl : suivre / envoyer des messages ivymon : application Perl/Tk pour monitorer 13
Limites Vocabulaire des messages à inventer, pas de dictionnaire Nommer les agents Modèle d'événement Performances? On a découvert récemment qu'ivy.pm sous winxp ne fonctionne pas (mais cela va être corrigé) Toujours pas sur le CPAN (Ivy vs Net::Ivy) => Parfait pour le prototypage 14
Conclusions Fonctionnalités Mécanisme de communication entre objets interactifs Connaissance faible ou inexistante des autres objets Support au travail en équipe Simplicité d apprentissage Ouvert aux nouveaux composants Respecte le savoir faire existant Support à l innovation interaction répartie interaction multimodale contexte 15