Les réseaux domestiques: Plateforme OSGI

publicité
Les réseaux domestiques:
Plateforme OSGI
Présenté par:
Boubker KASMI
SOMMAIRE
„
„
„
„
„
„
Introduction
Définition de la plateforme OSGI
Vue d’ensemble de la plateforme
Fonctionnalités de la plateforme
Architecture d’OSGI
La plateforme OSGI dans les réseaux
domestiques
SOMMAIRE
„
„
Les services Standards d’OSGI
Conclusion
INTRODUCTION
„
„
Poussé par le succès énorme et grandissant des
services payants dans la téléphonie mobile, l’idée de
proposer des services à forte valeur ajoutée à la
demande sur les équipements communicants comme
les plateformes télématiques dans l’automobile ou les
points d’accès à la maison trouve plusieurs
demandeurs.
Afin de maîtriser la complexité logicielle de telles
plateformes, l’industrie a favorisé la définition d’un
environnement standard d’exécution, appelé OSGI
(Open Services Gateway Initiative).
„
„
„
„
„
Modèles à base de composants
(JavaBeans, EJB, .NET)
Qu’est ce qu’un composant?
Cycle de vie
Adaptation traditionnelle
Adaptation dynamique
DEFINITION DE LA PLATEFORME OSGI
„
„
„
„
„
Open Services Gateway Initiative (OSGI)
Spécification ouverte
Services hébergés dans des API de serveurs
embarqués
OSGI définit principalement le conditionnement
(bundle) des services, leur hébergement, la gestion
de leurs cycles de vie, les mécanismes de résolution
des dépendances de code, le courtage des services
actifs et l’activation de nouveaux services.
Figures
Vue d’ensemble de la plateforme OSGI
„
„
„
La plate-forme de service OSGI
comprend:
Le framework OSGI qui définit un
environnement hôte pour administrer
les Bundles (archive JAVA)
Des services standards (http, Jini,
device, …)
Bundle
„
„
„
„
Bundle: archive Java qui contient un
manifeste et un ensemble de classes
Identifiable de manière unique
Manifeste décrit les Meta données (attribut,
valeur)
Manifeste contient 1 attribut qui permet de
spécifier une classe d’activation du Bundle
« Activator »
Structure d’un Bundle
Exemple de fichier manifeste
La classe Activator
„
„
„
„
„
„
„
„
„
„
Classe publique:
• Implémente les 2 méthodes start() et stop() de
BundleActivator
• qui reçoivent une référence sur un contexte.
Start (BundleContext ctxt):
• recherche et obtient des services requis auprès du
contexte
et/ou positionne des listeners sur des événements
• enregistre les services fournis auprès du contexte
Stop (BundleContext ctxt):
• désenregistre les services fournis
• relâche les services requis
BundleContext
„
„
Interface vers le framework
Permet :
„
„
„
„
„
„
„
„
L’ enregistrement de services
Le courtage de services
L’ obtention et la libération des services
La souscription aux évènements du Framework.
L’ accès aux ressources du bundle
L’accès au propriétés du Framework
L’installation de nouveaux Bundles
L’accès à la liste des Bundles
Fonctionnalités de la plateforme
„
„
Gestion des composants logiciels (cycle de vie)
Administration à distance:
„
Environnement d’exécution sécurisé:
„
„
„
„
Niveau 1: JVM (plus de pointeurs, accès non
contrôlés aux tableaux)
Niveau 2: Code Java 2
Niveau 3: Permissions sur les Bundles
Niveau 4: Séparation des Bundles entre eux
par la Framework
„
„
„
„
„
„
„
Coopération entre les applications: Partage de code
Contributions des industriels
Déploiement simple: plateforme standard (difficile en
Java)
Interopérabilité entre les fabricants
Nature dynamique
Politique libre: administré a 100% / sans supervision
Certification
Architecture OSGI
„
La pile OSGI peut être définie par une architecture en
couche comme suit:
JVM
„
„
Les spécifications OSGI sont basées sur la
machine virtuelle Java, cela est été logique
puisque l’environnement Java pourvoit tout
les fonctionnalités requises pour un
environnement sécurisé, ouvert, fiable,
développable, riche et portatif.
Aujourd’hui le seul candidat probable de la
JVM est Microsoft.NET, mais Java a encore
l’avantage puisque .NET n’est disponible que
d’une seule source.
OSGI FRAMEWORK
„
Exécuter plusieurs applications dans la
même machine virtuelle crée plusieurs
résultats qui peuvent être partagés et
doivent être adressés. L’OSGI
Framework est le composant
responsable de l’adressage de ces
résultats, il a plusieurs responsabilités
qu’on verra dans les sections suivantes
de cette présentation.
Class Loading
„
„
„
„
„
„
Le contenu d’un Bundle est une archive JAR
qui contient des classes
Bundle Private: J2EE, MIDP
Partager les classes
Exporte:rend disponible plusieurs packages
pour les autres
Importe:a besoin de packages d’autres
bundles
Chaque Bundle à un numéro (Gestion des
versions)
Gestion de cycle de vie
„
„
L’API de la framework OSGI est définie
dans l’objet "BundleContext" qui
contient plusieurs méthodes pour
installer des nouveaux Bundles ou pour
lister ceux qui existent, il est fournit au
Bundle à son démarrage.
Le bundle peut avoir plusieurs états
durant son cycle de vie:
Registre des services
„
„
„
„
Nature dynamique d’OSGI
Nécessité que les registres d’écoute
« Listeners » soient attentifs aux
changements
Lie dynamiquement les Bundles
Grâce aux registres de services les Bundles
peuvent:
„
„
„
Enregistrer les services
Consulter le registre pour les objets recherchés
Recevoir des notifications(changement d’état)
„
„
Service:
„ Objet enregistré dans le registre des
services
„ Avec un nom d’interface, propriétés.
Service journal (LogService):
„ Interface
„
org.osgi.service.log.logservice
Propriété fournisseur=IBM
La plateforme OSGI dans les réseaux domestiques
„
„
„
Gestion et administration aisée
Connexion des appareils de la vie
quotidienne entre eux et à Internet
Opérationnel avec plusieurs standards
et protocoles:
Broadband
Network
Câble
Service
delivery
Local
Network
DSL
Powerline
Wireless
OSGi
802.11
HomeRF
JINI
Home Plug
Bluetooth
CEBus
UPnP
HAVi
„
Smart@Home: BSH plug & Use
Exemple
„
France telecom & Thomson multimedia
„
„
„
Accés aux réseaux de la maison
Middlewares : plug & play a la volée
IEEE 1394: HAVI
Services standards d’OSGI
„
Framework Services:
„
„
„
„
Permission Admin: permission des Bundles
Package Admin: Recalculer dépendances
Start Level : Bundles initiaux
System Serices:
„
„
„
„
Log Service: Journaliser les traces
Device Access: Correspondance materiel driver
User Admin: BD d’informations sur les utilisateurs
Preferences Service: BD hierrarchique de
propriétés
„
Services de protocoles:
„
„
„
http Service: Exécute les Servlets que
peuvent fournir les Bundles
UPnP Service :Universal Plug and Play est
un nouveau standard en électronique
Autres services:
„
„
XML Parser: Bundle localise un parseur
Wire Admin: expliciter les relations entre
Bundles
CONCLUSION
„
„
„
„
Bon point de départ pour construire et
déployer des applications dynamiques
programmation de l'enregistrement des
services et de la prise en compte de leur
retrait restent des tâches fastidieuses pour le
développeur.
Ne décrit pas l’architecture des applications
Démarrage des bundles (packages
nécessaires)
„
Merci de votre attention
„
A vos questions
Téléchargement