Présentation de la spécification OSGI
- Les limites actuelles des applications Java.
- La modularité des applications.
- La notion de conteneur et de bundle (composant) OSGi.
- Le modèle en couche (Module, Lifecycle, Service).
Les implémentations OSGi existantes
- Présentation des outils Open Source : Eclipse Equinox, Apache Felix...
- Présentation des projets s'appuyant sur OSGI : Eclipse, Jboss, ServiceMix...
Travaux pratiques
Installation d'une implémentation du Framework OSGi. Utilisation de la console d'administration.
La gestion des bundles
- Mise en oeuvre des bundles dans un conteneur.
- Le fichier MANIFEST.MF et sa syntaxe.
- La gestion des dépendances.
- Les chargeurs de classe.
- La notion de package.
- La visibilité des composants.
- La sécurité.
Le cycle de vie des bundles
- Les différents états (installed, resolved, active, ...).
- Initialisation et interaction avec le conteneur OSGI.
- Les API standardisées : BundleActivator, BundleContext, BundleTracker,...
Travaux pratiques
Création et exécution d'un bundle avec Eclipse. Exécution sur serveur OSGi standalone.
Les services OSGi
- Les services standard d'OSGi.
- Les services systèmes : Logging, IO, Connector...
- Les services liés aux protocoles : http Services, DMT Admin...
- Les services divers : Wire Admin, XML parser.
- Mise en application des services.
- La gestion des services : enregistrement et mise à disposition.
- Les API standardisées : ServiceRegistration, ServiceReference, ServiceTracker, ...
- Apache Felix, Equinox OSGi, Spring OSGi ...
Travaux pratiques
Implémentation et usage de services OSGi standard et spécifiques.
Guide des bonnes pratiques
- Directives de codage et règles syntaxiques.
- Les recommandations liées aux différentes couches : Module, LifeCycle, Service.
Utilisation distante
- Distributed OSGi versus Remote OSGi.
- Import / export de code. Contrainte temporelle sur l'appel de méthodes distantes. Intégration dans un bus applicatif (ESB).
Travaux pratiques
Mise en oeuvre avec l'implémentation de référence Apache CXF Distributed OSGi ou Remote OSGi.
Spring Dynamic Modules for OSGi Service Platforms
- OSGi dans Spring.
- Les apports en matière de déploiement.
- Extension du Framework Spring DM : les annotations.
Travaux pratiques
Déploiement dynamique d'une application web dans Spring DM.