Par Benjamin Cabé (Anyware Technologies) : Déployer Eclipse avec l'outil de provisioning Equinox p2

La montée en puissance de l'infrastructure Eclipse génère de nouveaux besoins en matière de gestion des déploiements. Une problématique à laquelle répond Equinox p2.

La dernière version d'Eclipse annoncée l'année dernière s'est accompagnée de l'émergence d'une nouvelle plate-forme de provisioning baptisée p2. Pendant des années, Eclipse a été livré avec un composant appelé Update Manager, qui permettait aux utilisateurs de mettre à jour leur environnement Eclipse - presque - sans effort.

Cependant, au fil des évolutions successives, et en particulier avec l'arrivée de sa version 3.0, Eclipse est devenu bien plus qu'un simple environnement de développement : c'est désormais une véritable plate-forme logicielle, basée sur Equinox (l'implémentation Eclipse du standard OSGi). Les besoins en termes de déploiement ne sont donc plus limités à l'installation et la mise à jour de simples plugins...

Les concepteurs de logiciels basés sur Eclipse doivent pouvoir proposer un installeur de leur produit, qui nécessitera peut-être un gestionnaire de licences qu'il faudra également installer ... Et p2 est dans la plupart des cas la solution à ce type de problématique.

p2: une plate-forme de provisioning...

Pour être en mesure de provisionner tout type d'application, l'atout principal de p2 est de ne pas être exclusivement centré sur les environnements Eclipse, ni même sur les applications Java. Il s'agit d'un simple framework permettant de décrire des éléments à installer, ainsi que leurs dépendances.

Ce framework vient avec des implémentations-type permettant d'installer des modules OSGi ou des produits RCP, mais guère plus. Il appartient ensuite aux vendeurs de logiciels qui souhaiteraient, par exemple, installer un exécutable Windows en même temps que leur application Eclipse RCP, d'écrire du code spécifique (en fait, un plugin p2 !), pour réaliser cette installation correctement.

....en mesure de devenir le prochain standard de déploiement ?

Bien entendu, p2 est encore un jeune projet et peut ne pas sembler assez mature pour être utilisé dans une logique industrielle (pas toujours totalement fiable, outils parfois manquants...), mais la qualité de cette première version est particulièrement prometteuse.

Une communauté d'utilisateurs qui commence à dépasser les frontières d'Eclipse

Depuis sa sortie, p2 a su fédérer une communauté d'utilisateurs qui commence à le mettre à profit dans d'autres contextes que des projets purement Eclipse. Des entreprises comme Cloudsmith, EclipseSource, ou Anyware Technologies développent d'ores et déjà des outils basés sur p2 et IBM, entre autres, travaille activement à l'amélioration du noyau p2, ainsi qu'à la définition d'une véritable API.

L'adoption massive d'OSGi dans de nombreux environnements (technologies de runtime telles qu'Equinox ou RAP, serveurs d'applications comme Websphere ou Glassfish...) positionne p2 comme la solution la plus pertinente pour déployer des applications basées sur Eclipse, mais également toutes sortes d'applications scalables. En effet, dès qu'il s'agit de garantir une disponibilité importante des applications, il est indispensable de pouvoir installer ou mettre à jour des modules (parfois à distance) sans avoir à arrêter le système en cours d'utilisation.

Conclusion

Parce qu'il n'y a aucune alternative réelle pour des déploiements industriels (avez-vous déjà essayé d'utiliser Java Web Start pour installer autre chose qu'une application RCP basique...), p2 s'imposera vraisemblablement comme la technologie standard de déploiement pour des systèmes hétérogènes.

Benjamin Cabé est expert Eclipse au sein d'Anyware Technologies