Objectifs
- Comprendre les principes d'OSGi
- Mettre en oeuvre OSGI en utilisant Eclipse pour le développement et les implémentations Equinox et Apache Felix pour l'exécution.
Programme
Présentation
- Les problèmes de modularisation des applications Java (fichiers Jar, gestion des classloaders…)
- La nécessité de réduire le couplage entre les composants
- Périmètre d’OSGi
- Principes de base d’OSGi : les bundles
- OSGi et les architectures orientées services (SOA)
- Les bundles
Structure d’un module
- Le fichier MANIFEST.MF
- Les interfaces BundleActivator et BundleContext
- Utilisation d’Eclipse pour développer des bundles
- Tester les bundles avec les implémentations Equinox et Felix
- OSGi et la gestion des versions
- Le cycle de vie d’un bundle
- Réagir aux évènements sur un bundle
- Chargement des classes et visibilité entre bundles
Les services OSGi
- Architectures orientées services (SOA) et OSGi
- Découplage entre fournisseur et utilisateur des services
- Implémentation d’un service OSGi
- Mise à disposition d’un service
- Utilisation d’un service
- Registre des services et suivi des modifications
- Gestion complexe des liens entre services
- Présentation et mise en oeuvre de Declarative Services
- Modèles de conception Extender et Whiteboard
La spécification OSGi Enterprise
- Présentation de la spécification Enterprise
- Solutions proposées pour l’interaction entre OSGi et Java EE
- Les services de base : Log, HTTP, Configuration Admin
- Blueprint Service : appliquer les principes de Spring dans le monde OSGi
- Intégration des applications Web Java EE dans un contexte OSGi : le format Web Application Bundle
- JTA Service et JMX Service
- JDBC Service et JPA Service
- Les implémentations disponibles
- Apache Aries et Karaf
- Eclipse Equinox et Gemini