Magazine High tech

Présentation d'OSGi

Publié le 26 juillet 2008 par Mederic

OSGi_Logo.gifOSGI est une organisation indépendante. Fondée en 1999, on lui attribua la JSR 8 pour la définition d’un système à composants dynamiques pour la plateforme Java : OSGI pour Open Services Gateway Initiative.

Son but principal est de proposer un modèle pour la modularité de composants ainsi qu’un modèle de collaboration inter-composant. Et les avantages que l’on peut en tirer aujourd’hui ne manque pas :

Une meilleure cohabitation

OSGI propose de partager la machine virtuelle Java aux applications dans un une architecture modulaire, en isolant en toute sécurité les applications les unes des elles. En introduisant le bundle comme l’unité de déploiement, OSGI y impose la déclaration explicite des dépendances.

Une collaboration à base de service

OSGI préconise dès 2000 un modèle collaboratif dynamique à base de service. Cette architecture permet un couplage faible entre bundles et un suivi de service à l’exécution grâce aux notifications d’évènements d’apparition ou de disparition de service. C’est un modèle SOA intra JVM.

Du dynamisme dans Java

Dans une optique de qualité de service, la plateforme Java se doit d’être disponible et donc éviter les redémarrages. OSGI spécifie un modèle dynamique. Les bundles ont un cycle de vie indépendant de celui de la plateforme Java. Il est alors possible de les installer, désinstaller, mettre à jour, arrêter, démarrer sans redémarrer la plateforme Java. Il en est de même pour la gestion des configurations et de la sécurité entre autres que l’on peut modifier dynamiquement.

Quelques exemples d’utilisation

Eclipse est un très bel exemple du potentiel qu’offre la spécification OSGI. En effet, Eclipse 2 proposait un modèle de composant propriétaire et il a été décidé en 2003 de basculer sur le modèle OSGI pour Eclipse 3.0. Aujourd’hui, Eclipse compte des milliers de bundles disponibles pour étendre ces fonctionnalités. Et il est très simple de construire une application modulaire grâce à Eclipse PDE.

On peut trouver d’autres exemples dans l’industrie automobile avec BMW et son déploiement de d’application avec la plateforme Prosyst (OSGI R4), dans l’industrie internet avec CISCO et ses routeurs administrable à distance grâce à OSGI, mais aussi avec le projet M@jordom d’EDF pour offrir au consommateur un ensemble de services accessibles par divers sources (Mobile, ordinateur, compteur…).

L’industrie logicielle n’est pas en reste : BEA offre un serveur léger Event-Driven le WebLogic Event Server, IBM à basculer sa plateforme Notes sous OSGI (en se basant sur Eclipse), le serveur GlassFish 3 de Sun, le serveur Jonas 5.0 également…

D’autres projets sont à l’étude et permettent à OSGI d’étendre son rayonnement. On peut citer Spring et son serveur d’application Springsource Application Platform.

Les implémentations OSGI. On dénombre aujourd’hui quatre acteurs majeurs pour les plateformes OSGI R4 open-source :

  • Eclipse Equinox
  • Apache Felix
  • MAKEWAVE Knopflerfish
  • Prosyst mBedded Server Editions (Basé sur Eclipse Equinox)

Conclusion

OSGI apporte de l’organisation à l’exécution à la plateforme Java. C’est un transfert de responsabilité du développeur au Framework OSGI. Le développeur est ainsi libérer de certaines tâches non essentielles et peut se consacrer pleinement au cœur de son métier : répondre aux exigences de son client. Il n’est plus dans une intention constante d’écriture de ligne de code, mais de composition et de réutilisation. Cette architecture de haut niveau a pour avantage d’apporter de la discipline et de la lisibilité dans les développements des applications d’entreprise.


Retour à La Une de Logo Paperblog

A propos de l’auteur


Mederic 82 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte