Vous êtes sur la page 1sur 19

JOnAS Day

5.1
JOnAS : un serveur d'application OSGiTM
Agenda

- OSGi, mais qu'est ce que c'est ?


- JOnAS
- Une plateforme modulaire et extensible
- Un serveur d'application Java EE
- Une plateforme d'entreprise OSGi
- Un socle pour le SOA
- Une plateforme à la demande
- Un support d'applications hybrides
- Profils
- Java EE 6
- JOnAS

2 ©Bull, 2009 JOnAS : Un serveur d'application OSGi


OSGiTM
Système de modules dynamiques pour Java

- OSGi alliance (IBM, Oracle, Samsung,


Nokia, …)
- Créé à l'origine pour les besoins de la
domotique
- Mise à jour de services à chaud
- Embarqué
- Socle de l'IDE Eclipse
- Ce qui a fait connaître la technologie (plugins)
- Aujourd'hui très répandu dans les AS &
ESB car il facilite l'assemblage de briques
logicielles
- Modules
3 ©Bull, 2009 JOnAS : Un serveur d'application OSGi
OSGiTM : Bundles & Services
Concepts de base

- Les Bundles sont les unités de


déploiement OSGi (modules)
- Packaging: jar
- Méta-données: MANIFEST
• Identifiant
• Import/Export : liaisons avec d'autres bundles
- Contiennent des classes et des ressources
- Suivent un cycle de vie
- Offrent des services
- Un service OSGi est une instance de
classe Java
- Mise à disposition dans un registre
- Associé à une interface fonctionnelle ...
- … et à des propriétés pour faire du filtrage
4 ©Bull, 2009 JOnAS : Un serveur d'application OSGi
OSGiTM : Dynamisme
Services dynamiques

- Les bundles sont des unités désinstallables


- Nature dynamique
- Les services offerts par ces mêmes bundles sont donc
eux aussi dynamiques :
- Départ et arrivée durant l'éxécution de l'application
- Avantages
- Mise à jour incrémentales
- Services potentiellement interchangeables
- Contraintes
- Force les bonnes pratiques
• Utilisation d'APIs entre services
- L'application doit “gérer” le dynamisme

5 ©Bull, 2009 JOnAS : Un serveur d'application OSGi


OSGiTM : Dynamisme
Gestion du dynamisme

- OSGi offre des API très bas niveau pour gérer le


dynamisme
- BundleListener, ServiceListener, ...
- Fonctionnel mais peu pratique à utiliser
- Des modèles de services à composants ont vu le jour
pour pallier à ce probleme
- ServiceBinder, Declarative Service, Blueprint, iPOJO, …
- Approche de programmation déclarative
• Le conteneur s'occupe de gérer le dynamisme déclaré dans la
description du composant
• Ecriture simplifiée
• Risque d'erreurs réduit

6 ©Bull, 2009 JOnAS : Un serveur d'application OSGi


Agenda

- OSGi, mais qu'est ce que c'est ?


- JOnAS
- Une plateforme modulaire et extensible
- Un serveur d'application Java EE
- Une plateforme d'entreprise OSGi
- Un socle pour le SOA
- Une plateforme à la demande
- Un support d'applications hybrides
- Profils
- Java EE 6
- JOnAS

7 ©Bull, 2009 JOnAS : Un serveur d'application OSGi


JOnAS : Une plate-forme modulaire et extensible

8 ©Bull, 2009 JOnAS : Un serveur d'application OSGi


JOnAS : Une plate-forme modulaire et extensible

- Modularité :
- Chaque partie du serveur JOnAS est proprement découpée
• Inter-dépendances réduites et contrôlée par OSGi
- Résultat de recherches avancées dans le domaine des
composants et des services
• Apache Felix iPOJO (http://www.ipojo.org)

- Dynamisme :
- Les applications OSGi peuvent supporter
les liaisons dynamiques entre services
- Extensibilité
- Ajout et retrait dynamique de modules
- Flexibilité
- Services à la demande / Serveur "à la carte"
- Serveur "léger" (10M) : µJOnAS
9 ©Bull, 2009 JOnAS : Un serveur d'application OSGi
JOnAS : Un serveur d'application Java EE

- Certifié Java EE 5
- Chaque brique technique étant disponible sous forme
d'un (ou plusieurs) bundles
- Conteneur Web : Tomcat/Jetty
- Persistance EJB3/JPA : EasyBeans
• EclipseLink et Hibernate
- Transactions : JOTM
- Clustering : CMI
- Web Services : CXF/Axis2
- Messages asynchrones : JORAM

10 ©Bull, 2009 JOnAS : Un serveur d'application OSGi


JOnAS : Une plateforme d'entreprise OSGiTM

- Repose sur Apache Felix et iPOJO


- Supporte le déploiement d'applications pure OSGi
- S'appuie sur l'AS pour fournir des fonctions typé
entreprise aux applications OSGi
- Transaction, persistence, web, ...
- Fourniture de passerelles entre les
deux paradigmes
- Vers une nouvelle génération d'AS
• serveur “à la carte” optimisant l'empreinte
sur le système
• serveur “à la demande” optimisant la
consommation de ressources
• En ligne avec les besoins du Cloud Computing
• Qui satisfait les besoins de l'ambiant & ubiquitous computing

11 ©Bull, 2009 JOnAS : Un serveur d'application OSGi


JOnAS : Un socle priviligié pour le SOA

- Plate-forme d'intégration EasyBeans


- Un ensemble de services techniques horizontaux Tomcat
• Intégration aisée de composants technique CXF
annexes pour construire des applications SOA CAMEL
→ Ex : Camel, Drools
Registry

OSGi Platform
- Les applications sont intégrées et déployées JMX
comme des services verticaux JORAM
• Consommateurs des services techniques
Connecteur 1
Connecteur 2
for (IRulePackage rulePackage : rulePackages) {
// Write it to a file
File file = new File(rulePackage.getSystemName() + date + ".xml"); Java EE
FileOutputStream fileOutStream = new FileOutputStream(file);
fileOutStream.write( App
ruleEngineManager.exportRulePackageToXML(
rebuildPackage(rulePackage)
).getBytes() Service 1
);

}
fileOutStream.close(); Service 2

12 ©Bull, 2009 JOnAS : Un serveur d'application OSGi


JOnAS : Un serveur d'application à la demande

- Composition du serveur guidée par l'application


- L'application “déclenche” l'installation et le démarrage des
services
- Entrée du MANIFEST :

Require-JOnAS-Services: resource, mail


- Evite d'avoir à gérer la liste des services dans jonas.properties
- Configuration automatique du serveur
- Description des dépendances inter-services (même principe)
- Chargement différé du conteneur Web
- Au premier accès à une application web
- Les applications web sont aussi chargées au premier accès
- Démarrage du serveur en quelques secondes
13 ©Bull, 2009 JOnAS : Un serveur d'application OSGi
JOnAS : Pour les applications hybrides
Java EE vers OSGiTM et inversement

- Possibilité de déployer des application hybrides (Java EE


et OSGi)
- Les applications Java EE peuvent accéder au monde
OSGi™
- Les applications OSGi™ peuvent bénéficier des
fonctions Java EE
- Des Session Beans peuvent être exposés comme services OSGi™
• Les Stateless Bean offrent un point d'entrée au monde Java EE™
- Avantages :
• Accès à la persistance, aux transactions, aux objets Remote …
• Modèle de programmation connu

14 ©Bull, 2009 JOnAS : Un serveur d'application OSGi


Agenda

- OSGi, mais qu'est ce que c'est ?


- JOnAS
- Une plateforme modulaire et extensible
- Un serveur d'application Java EE
- Une plateforme d'entreprise OSGi
- Un socle pour le SOA
- Une plateforme à la demande
- Un support d'applications hybrides
- Profils
- Java EE 6
- JOnAS

15 ©Bull, 2009 JOnAS : Un serveur d'application OSGi


JOnAS : Profils Java EE 6

- Java EE 6
- Sonne la fin de l'approche du serveur d'application monolithique
- “On ne prend que ce dont on a besoin”
- "Full Profile"
- L'ensemble de toutes les spécification Java EE 6 (EJB 3.1,
Servlet 3.0, JAX-WS, ...)
- "Web Profile"
- Un sous-ensemble des spécifications (EJB 3.1 lite, Servlet
3.0, ...)
- Cible les fonctions essentielles pour les applications web
(présentation, métier local, persistance simple, transaction et
web services)

16 ©Bull, 2009 JOnAS : Un serveur d'application OSGi


JOnAS : Profils et JOnAS 5

- Dans la perspective de Java EE 6, JOnAS 5 offre déjà


la notion de profils
- Qu'est-ce qu'un profil JOnAS ?
- Un assemblage de bundles et ressources constituant un serveur
d'application exécutable
- Cet ensemble de ressources définit le niveau de fonctionnalité
offert
- Un ensemble de services techniques JOnAS (ejb, tx, ...)
- Profils disponibles
- Micro JOnAS
- Full JOnAS (certifié Java EE 5)
- Profil Web (à venir)

17 ©Bull, 2009 JOnAS : Un serveur d'application OSGi


JOnAS : Profils et JOnAS 5

- micro JOnAS
- JOnAS ultra light (< 9 Mo, OK pour set top box, PDA, …)
- Démarrage rapide (~3 secondes)
- Administrable (JMX, RMI Connector)
- Inclut une fabrique de bundles automatique
• Convertit un fichier jar file en un bundle (déposer le jar dans lib/ext/)
- Système de déploiement extensible (plans de déploiement)

- Exemples de profils web potentiels


- Micro + Tomcat + CXF + EasyBeans + EclipseLink
- Micro + Jetty + Axis2 + EasyBeans + Hibernate

18 ©Bull, 2009 JOnAS : Un serveur d'application OSGi

Vous aimerez peut-être aussi