L'Open Service Gateway initiative (l'OSGi) a été fondée en Mars 1999 par une quinzaine de sociétés "membres" et en compte actuellement près d'une centaine. L'intention originelle était de définir une norme pour développer et déployer des télé-services dans des passerelles domotiques (set-top-box, modems xDSL, freeBox...). La première version du standard (élaborée par les quinze membres fondateurs) était strictement orientée sur ce marché de niche. Mais ces premières spécifications se sont révélées très intéressantes par les nombreuses implémentations qu'elles ont encouragées et beaucoup d'autres sociétés se sont jointes pour l'élaboration d'une seconde version.
Nous avons aujourd'hui (après l'adoption de la version 3 du standard) un paradigme clair et bien délimité : le standard OSGi existe pour créer des spécifications ouvertes pour le déploiement "administré" de "services" depuis les réseaux étendus vers toutes sortes de réseaux locaux ou d'équipements rendus communicants. Il est aujourd'hui évident que ce standard est applicable dans tout environnement de déploiement de services et de télé-administration de plates-formes très "résilientes" sur de longs cycles de vie. OSGi est en passe de devenir un standard "de fait" pour l'exécution et l'administration des plates-formes de services opérées et déportées.
Ce module présentera les grandes lignes d'OSGi et en particulier ce qui concerne la gestion des composants logiciels et des services associés. Lors des travaux pratiques, nous essayerons une plate-forme d'implentation de la spécification qu'est Oscar.
Cours
I) Présentation générale d'OSGi
Contexte
Consortium
Objectifs
RoadMap
II) Outils de base
Java
Programmation Orientée Services (composant, usine, connecteur, conteneur...)
ClassLoader java (Architecture, URLClassLoader)
III) OSGi architecture interne
Description de la spécification
Elements du modèle à composants d'OSGi (bundle, service, package, dépendances)
Framework de base (bundlecontext, shell)
Services standards
TP
IV) Manipulation d'une plateforme
Installation / Lancement / Maintenance
Utilisation de services
Développement de services
Interdépendance de services
Exemple de projet OSGi : Structuration du développement, packaging
Copie des transparents de cours.