Articles


"La méditation est une faculté ; l'inspiration est un don." Victor HUGO

DEVCON 2015 : OSGi

OSGi (Open Services Gateway initiative) est un framework pour développer des applications Java modulaires. Les composants OSGi, aussi appelés bundles, peuvent être installés, démarrés, arrêtés, mis à jour et désinstallés à distance sans que le redémarrage d’OSGi soit requis. Pour faciliter la gestion des dépendances, chaque bundle OSGi doit spécifier certains détails à propos de ces packages et classes Java.

Pour Liferay, OSGi permettra de gagner en performance grâce à la modularité et l’assemblage automatique des bundles OSGi à l’éxécution. Par ailleurs, la notion de « semantic versioning » permet d’importer des dépendances avec des versions différentes.

L’objectif est de passer outre la construction de monolithes et de les détruire petit à petit par l’utilisation d’OSGi. L’intérêt principal d’OSGi est de réutiliser et customiser des centaines de modules. Le développeur peut par exemple créer son propre module avec l’annotation @Component. Il pourra ainsi remplacer n’importe quel @Component existant par le sien.

La structuration des modules rend aussi la maintenance plus simple.

Liferay 7 permet le développement en bundles OSGi, mais aussi garde la possibilité de développer en packages war. Le développeur a donc le choix. L’objectif est tout de même de garder une logique d’infrastructure commune, pour éviter de se disperser.

Plusieurs outils que nous verrons par la suite suivent la logique de modularité : Liferay Lexicon, Liferay Screens, Maven, Gradle, Gulp, metal.js, Launchpad.

Les objectifs de la modularité peuvent être résumés en 3 grands points :

  • Permettre l’indépendance du développement, du déploiement et de l’évolution
  • Combiner/fusionner des morceaux existants ensemble
  • Réutiliser et permettre la customisation
Pour une représentation imagée, les modules peuvent être assimilés à des LEGOs.
osgi lego 1
osgi lego 2

Mots-clés : Indépendance, assemblage, réutilisation, customisation


VOIR AUSSI :
DEVCON 2015 : Présentation
DEVCON 2015 : OSGi
DEVCON 2015 : Outils modernes du développeur
DEVCON 2015 : Thèmes
DEVCON 2015 : Single Page Application avec Liferay
DEVCON 2015 : Upgrading to Liferay 7
DEVCON 2015 : Angular JS
DEVCON 2015 : Metal.js
DEVCON 2015 : Les outils de recherche dans Liferay 7
DEVCON 2015 : Lexicon
DEVCON 2015 : Formulaires
DEVCON 2015 : Launchpad Project