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 particulierement adapté au dévellopement 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 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éveloppment 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

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