400 likes | 559 Views
Outils de Prototypage Rapide Multi-Dispositifs : Wcomp .NET. Jean-Yves Tigli, tigli@essi.fr Enseignant Chercheur Université de Nice Sophia Antipolis Polytech’Nice Sophia Antipolis Département Informatique Filière Systèmes Embarqués et Applications Mobiles Equipe Rainbow,
E N D
Outils de Prototypage Rapide Multi-Dispositifs : Wcomp .NET Jean-Yves Tigli, tigli@essi.fr Enseignant Chercheur Université de Nice Sophia Antipolis Polytech’Nice Sophia Antipolis Département Informatique Filière Systèmes Embarqués et Applications Mobiles Equipe Rainbow, laboratoire I3S UMR 6070 CNRS UNSA
Wcomp .NET (2004-2005) Avec le soutien de Daniel Cheung Foo Wo, cheung@essi.fr Doctorant Rainbow Samuel Weibel, weibel@essi.fr ingénieur ESSI - Polytech Nice Sophia Antipolis Wagner De Morais demorais@essi.fr Etudiant de Master recherche ESSI - Polytech Nice Sophia Antipolis Et un grand nombre de projets d’étudiants du Département d’Informatique de l’Ecole Polytechnique de l’Université de Nice Sophia Antipolis…
Futur : un grand nombre de dispositifs • Exemples : • Pour les ordinateurs « portables » du futur • Pour les bâtiments • Contexte les systèmes Multi-dispositifs
Wearable Computer • “Controllable by the user, is always on, always accessible and do not disturbs the user attention. [Mann]”
Multi-dispositifs Alternatifs • Dispositifs d’entrée textuelle • Chord Keyboard - Wrist Keyboard - Virtual keyboard • Dispositifs de pointage • Essential Reality P5 Glove
Multi-dispositifs Alternatifs • Dispositifs de sortie • Eyeglasses
Même problématique dans le BHT … • Collaboration avec le CSTB Sophia Antipolis
RAD dans les IHMs • Cycle en spyral • Bien connu Pour les GUI … Mais aussi pour les systèmes multi-dispositifs en général
RAD et Programmation Evénementielle • Programmation Evénementielle << L’approche événementielle intervient principalement dans l’interface entre le logiciel et l’utilisateur, mais aussi dans la liaison dynamique du logiciel avec le système, et enfin dans la sécurité. >>
RAD et Programmation Visuelle • Programmation Visuelle • Deux approches : • Basée sur le Rendu Graphique (Visual Studio) • Nous aide et simplifie notre tâche dans la construction du dialogue homme-machine • Approche multi-dispositifs [Phidget] • Basée sur le Graphe événementiel (notre approche) • Intéressante pour la perspectives multi-dispositifs car pas forcémment de fonction graphique [ICON, WComp]
Approche Wcomp … • Objectifs : • Outils de programmation visuelle et événementielle orienté graphe événementiel • Utilisant des composants Mixtes logiciel/matériel
Approche Wcomp … • Vers une méthodologie de RAD matériel / logiciel : • Connecter les dispositifs utilisés pour utiliser les composants logiciels associés • Construire, si besoin est, de nouveaux composants logiciels • Créer le graphe événementiel de l’application
Les Outils • Wcomp Dev Center • Visual Studio Add-On
Architecture Générale Wcomp Dev Center • Générateur de Code • Import / Export XML • Générateur de Bean SOAP
DEMO …. • Wcomp Dev Center • Création d’un lien simple • Connexion d’un lien incompatible • Visual Studio Add Ons • Création d’un Beanet • Exemple : • Texttospeech
Partie 4 : Quelques éléments d’implémentation … De Wcomp Java à .Net
Les événements en Java • Une première approche basée sur les Beans en Java est le pattern « observateur » ou source/listener
Les événements en .Net • Déjà pris en charge grâce à la délégation : • Un abonné est une méthode • Un événement est un délégué particulier
La Délégation • Declarer un delegate • Instancier un delegate • Appeler un delegate delegate void MyDelegate1(string s); MyDelegate1 a = new MyDelegate1(MyClass.Hello); MyClass p = new MyClass(); MyDelegate1 b = new MyDelegate1(p.AMethod); a("World");
Les événements • Déclarer un événement • Souscrire à un événement • Emettre un événement public delegate void MouseClickedEventHandler(); public class Mouse { public static event MouseClickedEventHandler MouseClickedHandler;} private void MouseClicked() {...} Mouse.MouseClickedHandler += new MouseClickedEventHandler(MouseClicked); if (MouseClickedHandler != null) MouseClickedHandler();
Les attributs personnalisés • On peut étendre le .NET Framework avec ses propres attributs appelés attributs personnalisés • Ecrire une classe dérivant de System.Attribute • les informations contenues dans les métadonnées sont accessibles via les méthodes des classes proposées par l'espace de nom System.Reflection
Les attributs personnalisés • Déclaration d’un attribut personnalisé • Utilisation d’un attribut personnalisé public class MyAttribute :Attribute { } public class MyClass { [MyAttribute] public virtual void MyMethod() { //... } }
Le Bean .Net • Evénements Attribut Personnalisé Evénement
Le Bean .Net • Propriétés Attribut Personnalisé Propriété
Le Bean .Net • Méthodes
Partie 5 : Application Sur une idée d’Eric Mittelette (Microsoft France)…
Dirigeable : Evolution 1 http://www.plantraco.com/main.html http://www.airpubimpact.com
Limites de Wcomp .Net • Extension Compact .Net Framework : absence de mécanisme de réflexion • .Net Framework 2.0, enfin SerialCom en code managé ! • …
Perspectives de Wcomp .Net [Pédagogie] • Wearable Computer ou Ordinateur Porté, Xybernaut MA V sous windows XP [Recherche] • Vers Wcomp supérieures pour l’adaptation dynamique des applications
Remerciements • Pierre Louis Xech, MSR • Eric Mittelette, Laurent Ellerbach, Laurent Herbulot, Microsoft France … • Les étudiants de Polytech’ Nice Sophia Antipolis : Daniel, Samuel, Wagner, Geoffroy, etc.
Quelques Références • Equipe Rainbow : http://rainbow.essi.fr • Wcomp : http://parpaouin.essi.fr • Wcomp Java • Wcomp .NET • Mann Steeve, http://wearcam.org/steve.html • Phidget : http://www.phidgets.com/ • ICON : http://liihs.irit.fr/dragice/icon/ • Steve Mann,” Definition of Wearable Computer”,http://wearacam.org/wearcompdef.html • “What's a Wearable?”, http://wearables.www.media.mit.edu/projects/wearables/ • M. Billinghurst, J. Bowskill, N. Dyer and J. Morphett, “An Evaluation of Wearable Information Spaces”