| Lors du développement d’applications, décharger le développeur des considérations liées aux services non fonctionnels est un objectif important. L’une des principales méthodes employées est l’approche "conteneur". Le conteneur intègre les composants applicatifs et prend en charge les connexions et les appels vers les services techniques. Les conteneurs Java EE (aussi bien Web que EJB) sont un exemple de cette approche. Le conteneur EJB est depuis récemment spécifié dans sa version 3.0 et pousse encore plus loin l’abstraction des services techniques. La tâche du développeur s’en trouve encore simplifiée.
Pour répondre à ces besoins de conteneurs Java simples et flexibles, Bull a développé en Open Source (au sein du consortium ObjectWeb) un conteneur Entreprise JavaBeans léger, innovant, modulaire et supportant la nouvelle spécification EJB 3 : "EasyBeans" (pour en savoir plus, lisez l'article de Florent Benoît dans Bull Direct d’avril). Son utilisation facilite le développement de composants métiers utilisés dans les applications distribuées. Grâce à sa modularité, ce conteneur peut venir s’intégrer sur des serveurs d'applications existants tels que JOnAS et Tomcat.
Néanmoins, la tendance actuelle est d’aller le plus possible vers des intergiciels flexibles, adaptables et faciles à déployer. Pour ce faire, le conteneur EasyBeans vient de se doter d’un ensemble de bundles OSGi pouvant permettre son exécution au-dessus de ce "framework" de service. Pour un conteneur EJB, il s'agit d'une première mondiale en Open Source.
La spécification OSGi définit une plate-forme Java qui supporte le déploiement d'unités de livraison, appelées "bundles", à l'intérieur d'un environnement d'exécution. Cet environnement permet à des composants contenus dans les bundles d'interopérer suivant l’approche orientée services. Il fournit des mécanismes permettant de réaliser des activités continues de déploiement qui incluent l'installation, l’activation, la désactivation, la mise à jour et le retrait des bundles. C'est donc un environnement très dynamique. De plus, le framework OSGi prend en charge la gestion de dépendances de code (utilisation de librairies par exemple) qui doivent être satisfaites après l'installation d'un bundle pour permettre de réaliser son activation. L'activation d'un bundle déclenche la création de l'instance du composant déployé dans le bundle.
Cette nouvelle version d’EasyBeans pour OSGi apporte de nouvelles capacités et propriétés. EasyBeans a été modularisé, c'est à dire que chaque composant est packagé indépendamment (un JAR/Java Archive) et peut être déployé au besoin. Ceci permet d’économiser les ressources système en ne déployant que les services techniques nécessaires à l’exécution des applications, tout en gardant la possibilité d’en déployer d’autres ultérieurement. Cette particularité est notamment intéressante lors d'une utilisation des EJB sur des matériels embarqués, aux ressources limitées. Grâce à ce design, EasyBeans devient également facilement embarquable dans des systèmes à "plug-in" tels qu’Eclipse (qui s’appuie également sur OSGi) afin de faciliter le développement d’EJB (tester ses EJB sans sortir d'Eclipse deviendrait extrêmement facile).
Un autre avantage de cette évolution est qu’EasyBeans peut bénéficier de tout l’écosystème des outils et services déjà disponibles sur OSGi (console d’administration, outils de déploiement, tout service OSGi existant, etc.). Les facilités de déploiement d’OSGi déchargent aussi l'utilisateur de la problématique d’accès au système de fichiers, OSGi prenant en charge téléchargement, mise en cache et exécution des bundles : une simple URL suffit !
Ces propriétés sont obtenues sans surcoût notable pour le développeur d’EJB. Côté applicatif, il est uniquement nécessaire de rajouter un fichier de meta-donnée (MANIFEST) dans le JAR contenant les beans (aucune modification de code ou de fichier de description XML n’est nécessaire).
Pour en savoir plus, lisez l'article dans InfoQ 
Pour plus d’information sur EasyBeans 
|