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