Administration des services dans le projet Safari Atelier de travail OSGi CNAM Paris 5 septembre 2006 Abdelkrim Hebbar Bruno Mongazon D1-19/09/06
Projet Safari Résulte de la fusion de plusieurs propositions de projets Plate-forme de gestion de services dynamiques Intégration de réseaux Ad Hoc et filaire Adressage IPv6 Supporté par le RNRT (30 mois + 6 -> Mai 06) Réalisations de 2 démonstrateurs : en gare SNCF et au musée des Télécommunications de Bretagne Partenaires : FT R&D, SNCF, Alcatel, INRIA, LIP6, LRI, LSR-IMAG, ENST, LSIIT Focus : Gestion des services en gare SNCF D2-19/09/06
Scénario typique d un usager SNCF Différents services sont «contextuellement» proposés aux usagers Sur le quai: Montre la position du wagon et le siège attribué Annonces en gare: retards et informations destinées aux usagers A l entrée en gare: présente les informations concernant le voyage (heure, train,...); affiche un plan et fournit des aides aux déplacements D3-19/09/06
L usager entre dans la gare Connexion et fourniture du profile : E.g. ID voyageur, Langue, Voyage prévu NFM Serveur SNCF Travel info Stations info Preferred Services Welcome Mr Doe We wish you a nice trip to Cannes. Your train is scheduled on time, track 21. D4-19/09/06
L usager se déplace à l intérieur de la gare Des annonces personnalisées peuvent être directement diffusées à tous les voyageurs d un même train. Travel info Stations info Preferred Services WARNNG: Your train is announced with a delay of 15 minutes WiFi Ad-hoc NFM Si l usager n est pas dans une bulle NFM (escalators), les messages peuvent être routés entre les terminaux grâce au mode Ad Hoc. D5-19/09/06
L usager arrive sur le quai de départ Les services proposés à l usager peuvent changer en fonction de sa localisation. NFM Serveur SNCF Travel info Stations info Preferred Services Restaurant coach One of your buddies D6-19/09/06
Architecture du réseau Serveurs Locaux Passerelle Filaire/ad hoc Nœud faiblement Mobile INTERNET Nœud faiblement Mobile Nœuds Mobiles (WiFi ipaqs) D7-19/09/06
Terminal mobile cible Environnement Matériel ipaq WiFi H5550 Environnement Logiciel Linux (2.4.19) distribution Familiar (v.0.7.2) Machine virtuelle Java : CVM (basée sur J2ME1.0 optimisée pour PDAs) JXME 1.0 pour support de communication pair à pair entre terminaux et pour la découverte des services OSGI pour télécharger dynamiquement applications et services Routage IPv6 Basé sur Qolyester (une implémentation SAFARI du protocole OLSR) D8-19/09/06
NFM (Nœud Faiblement Mobile) Utilité des NFMs pour fourniture de : Zones de couverture minimale pour les clients Support pour services basés sur la localisation Contenu localisé, stabilité, puissance de calcul, sans problème de batterie Matériel Environnement Environnement Logiciel Type PC avec 2 interfaces Wifi (b/g) Linux (2.4.26) SunJava2-1.4.2 Machine virtuelle Java JXTA (2.1.1 modifié) : Publication des services et Proxy pour nœuds mobiles JXME 1.0 OSGI (Oscar 1.0.1) : gérer les services et les fournir aux clients Routage IPv6 : Qolyester D9-19/09/06
OSGI dans la plate-forme Safari Client NFM server HTTP Java Virtual Machine Platform Framework OSGi Applet des services sur JXTA JXTA JXME Applet server HTTP Platform Recherche / publication Framework OSGi Java Virtual Machine D10-19/09/06
Plate-forme de Services Safari (1/2) Basée sur 2 technologies : OSGI (Open Services Gateway Initiative) et JXTA/JXME (Sun) Requis : Les services doivent suivre un format standard «bundle» java Administrer les services et fournir un environnement d exécution Installation, désinstallation, mise à jour des bundles, télécharger à distance et lancer localement Modularité : partage de packages et services OSGI entre bundles Taille réduite pour tourner sur des terminaux à capacité réduite (PDAs) Nombreuses contributions sur le Web sans avoir à réadapter le code des bundles D11-19/09/06
Plate-forme de Services Safari (2/2) JXTA/JXME : Publication et Recherche des services Safari un nœud JXTA sur les serveurs pour publier les services Safari et router les messages des clients JXME vers d autres nœuds JXTA Un nœud JXME sur les terminaux mobiles JXTA Relay route les messages HTML HTTP binaire XML Terminaux messages de/vers les pairs JXME range les messages pour les pairs non joignables JXME JXTA Proxy range les publications de services traduit les messages de XML vers format binaire (et inversement) entre les pairs JXTA et JXME D12-19/09/06
Partie Serveur : basée sur OSGI Gestionnaire de services (localisés sur NFM / Passerelle) Plate-forme d administration des services applicatifs safari Installation, désinstallation, mise à jour des bundles de service : utilisation du GUI Oscar Gestion à distance via un serveur web embarqué : bundle service-admin Publication des services Réalisée par un bundle encapsulant un nœud JXTA avec les fonctions : -Relais (routage des messages des nœuds JXTA <-> JXME) -RDV/Proxy (gestion des données de publication des services et traduction des messages binaire <-> XML) Utilise des informations tirées du service Safari (au format bundle OSGI) pour fabriquer les données de publication («advertisement») à propager sur les nœuds JXTA et les rendre visibles aux clients mobiles D13-19/09/06
Gestion des services Safari : côté serveur Utilisation de OSGI via Oscar en mode graphique Gestion et Publication des services safari sur la machine Serveur D14-19/09/06
Gestion des services Safari côté serveur via Web Interface Web Safari Gestion à distance des services safari D15-19/09/06
Partie Client Côté Terminal Mobile Noyau Client en environnement d exécution OSGI Écoute du réseau et Recherche du NFM le «plus proche» (possibilité de s abonner aux évènements de détection, changement de NFM, perte de connectivité) Création d un nœud JXME connecté au nœud JXTA du NFM le plus proche Identification de l utilisateur (application) Présentation des services safari locaux : déjà installés sur le client Recherche des services safari publiés dans le réseau via le proxy du serveur installation, désinstallation, démarrage/arrêt des services trouvés IHM uniforme via un navigateur WEB D16-19/09/06
Identification de l utilisateur Login Le login et mot de passe sont stockés dans le bundle «Identification» et accessibles aux autres bundles (approche single sign-on) D17-19/09/06
Recherche de services Recherche de services Pattern matching sur le nom (*, sport* ) D18-19/09/06
Téléchargement et installation d un service Liste des services disponibles sur le réseau Téléchargement et installation locale depuis un NFM D19-19/09/06
Démarrage/arrêt/désinstallation d un service Installation et exécution des services Services installés localement Vert = service activé Rouge = service arrêté D20-19/09/06
Problèmes rencontrés WiFi Compatibilités des cartes en mode Ad-Hoc sous Linux Pertes de communication Maturité des drivers CVM 1.0 : Fonctionnalités réduites (CDC 1.0) basé sur JDK 1.3 : uniquement IPV4 -> démonstration ipv6 sur PC portable JXME 1.0 : Manque de maturité Communication entre pairs JXME uniquement à travers un pair JXTA intermédiaire (mode proxied) Problème de découverte de service (modification de la partie proxy) D21-19/09/06
Conclusion OSGI est bien adapté à la gestion des services spécification standard basé sur Java et Open-Source disponibilité de nombreuses contributions utilisable sur plusieurs types de plate-forme (Serveur, PDA, laptop ) JXTA/JXME relativement bien adapté pour les communications P2P système de publication et recherche générique et adaptable Couplage OSGI - JXTA/JXME démontre la faisabilité d une plate-forme de service en environnement ouvert et mobile sur la base de technologies existantes et portables D22-19/09/06
D23-19/09/06