OSGi

OSGi est une spécification de l'OSGi Alliance pour la définition d'applications Java modulaires pouvant être mises à jour durant leur exécution. OSGi est particulièrement adapté au développement et au déploiement d'applications à plugins et des applications sensibles au contexte (Context-awareness). Contrairement à la JVM standalone, OSGi contrôle les versions des dépendances entre les différents modules (appelés bundles)de l'application. OSGi introduit aussi le paradigme des architectures orientées service (SOA) dans la programmation Java. Les services dans OSGi permet ainsi le couplage faible, la liaison retardée, la substitution dynamique, la sensibilité aux contexte. Cependant, l'API OSGi reste difficile d'utilisation : il est recommandé d'utiliser des modèles de composants logiciels comme Declarative Services (aka SCR), Blueprint ou iPOJO pour le développement des applications (centralisées ou distribuées). Les principales plateformes open-source sont Apache Felix, Eclipse Equinox (qui est intégré à l'IDE Eclipse) et Knopflerfish. OSGi est devenu le standard de-facto pour la conception des intergiciels et les applications modulaires comme les IDE Eclipse, les serveurs JavaEE (comme JOnAS 5, Glassfish 3, Apache Geronimo ...), les passerelles M2M (comme OpenHAB, Eclipse M2M Kura), pour les applications distribuées (Eclipse ECF) ...

Liens

 * transparents de cours en français sur OSGi
 * Tutorial OSGi avec Apache Felix
 * OSGi Users Group France

Livres

 * Neil Bartlett, OSGi in Practice, en ligne et gratuit
 * Richard S. Hall, Karl Pauls, Stuart McCulloch, and David Savage, OSGi in action, Manning
 * Holly Cummins and Timothy Ward, Enterprise OSGi in Action, March, 2013, 400 pages, ISBN: 9781617290138, http://www.manning.com/cummins/ (chapitre 2, chapitre 10)
 * Jérôme Molière, OSGi Conception d'applications modulaires en Java, Eyrolles