Ivy.pm, la version perl d`un bus logiciel multiplateforme, multilangage
Transcription
Ivy.pm, la version perl d`un bus logiciel multiplateforme, multilangage
Ivy.pm, la version perl d'un bus logiciel multiplateforme, multilangage Christophe Mertz ([email protected]) 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) (+) (°) (*) (#) (x) CENA Transiciel IntuiLab Apple 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 PseudoPilot 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