Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded...
Transcript of Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded...
Easybeans
[email protected]@serli.com
2 ©Bull, 2008 EasyBeans
Agenda
�Vue d’ensemble
�Modes « embedded »
�Zoom sur les plans de déploiement
�Pour conclure
3 ©Bull, 2008 EasyBeans
Java EE & Conteneur EJB3
Applet Container
Applet
Web Container
ServletJSP
EasyBeans
EJB 3
ApplicationClient Container
Java EE Architecture Diagram
RMISSL
RMISSL
Applicationclient
Database
HTTPSSL
HTTPSSL
4 ©Bull, 2008 EasyBeans
Pourquoi les EJB 3.0 ?
- EJB 2.x : Trop complexe- Des projets émergent pour simplifier le
développement :- XDoclet : utilisation de tags javadoc en remplacement des
fichiers XML et des interfaces. • http://xdoclet.sourceforge.net
- Hibernate : Simplification du modèle de persistance.• http://www.hibernate.org
- Faciliter le développement:- Ease of Development (EoD) �- Utilisation de métadonnées : les annotations
5 ©Bull, 2008 EasyBeans
EasyBeans
- http://www.easybeans.net & http://www.easybeans.org
- Projet démarré en Décembre 2005- Conteneur Léger & pluggable
- Tomcat/Jetty/JOnAS/OSGi
- Livré avec différentes implémentations de JPA - Hibernate Entity Manager, Apache OpenJPA, TopLink
Essentials/EclipseLinks
- Documentation mature- Intégration avec Eclipse
6 ©Bull, 2008 EasyBeans
Fonctionnalités avancées
- Facilité de déploiement- Des archives
• Mode “exploded”• Rechargement automatique• Plan de déploiement
- Des clients • API réduite (smartfactory, 30kb)
- Mode cluster supporté avec CMI v2- Load-balancing des SSB
- JAX-WS 2.0 avec Apache CXF
7 ©Bull, 2008 EasyBeans
Web 2.0 console
8 ©Bull, 2008 EasyBeans
Communauté active
- Plus de 3000 downloads de la V1.0
- Près de 100 abonnés sur la mailing list
- Plusieurs contributions notables- Notamment sur le package OSGi- Par exemple, intégration dans Eclipse RCP (Persistance).
9 ©Bull, 2008 EasyBeans
Roadmap
10 ©Bull, 2008 EasyBeans
Agenda
�Vue d’ensemble
�Modes « embedded »
�Zoom sur les plans de déploiement
�Pour conclure
11 ©Bull, 2008 EasyBeans
Qu’est ce qu’un container EJB3 “embedded”
- Container léger- Facilement pluggable- Correspond aux besoins des utilisateurs (cf Spring)
- Utiliser les fonctionnalités EJB3 dans tous les environnements- Programme java standalone- Client lourd/riche (RCP, Swing, …)- Tests JUnit- Container Web (Tomcat/Jetty)�- Passerelle OSGi (Felix, Eclipse Equinox, …)- Serveur d’application Java EE (JOnAS)
12 ©Bull, 2008 EasyBeans
Pourquoi utiliser EJB3 en dehors d’un serveur Java EE
- Support des transactions distribuées et de la persistance
- Facilité pour le développement d’applications àétat
- Support des WS JAX-WS 2.0- Support du messaging fiable- Modèle pour construire des applications
distribuées (JNDI)- Framework AOP (Intercepteurs)- Annotations- …
13 ©Bull, 2008 EasyBeans
EasyBeans, embedded container
- Containeur EJB3 du serveur d’applicationJOnAS- Service OSGi pour JOnAS 5- RAR pour JOnAS 4
- Peut être intégré aux serveurs Web Jetty &Tomcat- webapp
- Fonctionne en mode standalone (application java)
- Fonctionne sur une passerelle OSGi (Apache Felix, Eclipse Equinox, Knopflerfish)- EZB OSGi
14 ©Bull, 2008 EasyBeans
���������� ��� �
���������� ��� �
� ��� � �� ��� � �
�������������� ����� ��� � � � �� � � �� � ���� �� ���
� �
� �� � �� �
� �
� �� � �� �
� �
� �� � �� �
� �
� �� � �� �
� �������� �
� �� � �� �
� �������� �
� �� � �� �
� ��� � �� ��� � �
������
� � ��
������
� � ��
������
� � ��
�� �
� �
� � ��� �
������
� � ��
������
� � ��
������
� � ��
� �
� � ��� �
��� �� ����
��� �� ������ ������
� ��� ��
����������������� �
� ���� � ��� � ��� �� �� ������ � �� ��� � ��� ���������
� � � � � ! � � � ��� � ��" �� � �� � � ���� �� � ��� �� �� �� �
����� �� �� ��� �#
����� �#$ � � ��
#
% ��� �� � � �� ���
& � � ���� � � �� ���
� � � ���� � ��" �� �
'�� ���� � ��" �� �
����� �� � �� � ��� �� �
����� ��� ��� ( � ) ������� �
EasyBeans OSGi
15 ©Bull, 2008 EasyBeans
Passerelle EJB3 / OSGi
- EJB ™ 3.0 peut utiliser le BundleContext- Ecoute des événements OSGi™ (framework, bundle,
service)- Accès aux services to OSGi™
/** Bundle context that will be injected by the EZB container.*/@OSGiResourceBundleContext bundleContext = null;
16 ©Bull, 2008 EasyBeans
Agenda
�Vue d’ensemble
�Modes « embedded »
�Zoom sur les plans de déploiement
�Pour conclure
17 ©Bull, 2008 EasyBeans
Objectifs
- Organiser un déploiement sur un serveur- Avantages
• garantie sur l'ordre de déploiement • persistance
- Organiser un déploiement sur un cluster.- Ressources entreposées sur plusieurs serveurs ou centralisées- Nombre d'opérations plus faible pour des déploiements
comportant un grand nombre de ressources
18 ©Bull, 2008 EasyBeans
Plans de déploiement : principes
- Un plan (fichier xml)- Une liste de ressources ;- À déployer dans l'ordre voulu ;- Les ressources sont présentes dans des dépôts où il faudra les
récupérer.
19 ©Bull, 2008 EasyBeans
Dans les faits
- Deux nouveaux types de ressources :- Un pour enregistrer des dépôts ;- Un pour décrire les plans de déploiement.
- Trois types de dépôts :- URL (protocoles file, http, ...)�- Maven 2- OBR (en environnement OSGi : Easybeans/OSGi ou JOnAS)�
- Autres fonctionnalités :- Surveillance de dépôts et redéploiement- Permettre ou non des réussites partielles pour les déploiements
de plan (« atomicité »).
20 ©Bull, 2008 EasyBeans
Nouvelles ressources
�Listes de dépôts<?xml version="1.0" encoding="UTF-8"?><repositories
xmlns="http://jonas.ow2.org/ns/deployment-plan/repositories/1.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<repository id="http-repo"><type>url</type><url>http://localhost/</url>
</repository>
<repository id="maven-repo1"><type>maven2</type><url>http://repo1.maven.org/maven2/</url>
</repository>
</repositories>
21 ©Bull, 2008 EasyBeans
Nouvelles ressources
- Plans de déploiement<?xml version="1.0" encoding="UTF-8"?><deployment-plan
xmlns="http://jonas.ow2.org/ns/deployment-plan/1.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:url="http://jonas.ow2.org/ns/deployment-plan/url/1.0"
xmlns:m2="http://jonas.ow2.org/ns/deployment-plan/maven2/1.0">
<deployment xsi:type="url:url-deploymentType" id="depl-1"><url:resource>statelessbean-1.0.0.jar</url:resource><repository-ref>http-repo</repository-ref>
</deployment>
<deployment xsi:type="m2:maven2-deploymentType" id="depl-2"><m2:groupId>org.ow2.easybeans</m2:groupId><m2:artifactId>easybeans-example-entitybean</m2:artifactId><m2:version>1.0.0</m2:version>
</deployment>
</deployment-plan>
22 ©Bull, 2008 EasyBeans
Illustration du fonctionnement
- Recherche d'une ressource
23 ©Bull, 2008 EasyBeans
Illustration du fonctionnement
- Fin des déploiements et validation du plan
24 ©Bull, 2008 EasyBeans
Déploiement sur un cluster
- Méthode habituelle
Exemple2 instances, 2 ressources
En bleu, les manipulations de l'administrateur.
25 ©Bull, 2008 EasyBeans
Déploiement sur un cluster
- Avec un plan de déploiement
Une seule ressource àmanipuler sur chaque serveur...
26 ©Bull, 2008 EasyBeans
Un dernier exemple
- Imbrication des plans de déploiement<?xml version="1.0" encoding="UTF-8"?><deployment-plan atomic= "true">
<deployment xsi:type="url:url-deploymentType" id="rep-1"><url:resource>repositories.xml</url:resource>
</deployment>
<deployment xsi:type="url:url-deploymentType" id="depl-2"><url:resource>deployment-plan-1.xml</url:resource>
</deployment>
<deployment xsi:type="url:url-deploymentType" id="depl-3"><url:resource>deployment-plan-2.xml</url:resource>
</deployment>
<deployment xsi:type="url:url-deploymentType" id="depl-4"><url:resource>deployment-plan-3.xml</url:resource>
</deployment></deployment-plan>
27 ©Bull, 2008 EasyBeans
Agenda
�Vue d’ensemble
�Modes « embedded »
�Zoom sur les plans de déploiement
�Pour conclure
28 ©Bull, 2008 EasyBeans
Pourquoi choisir EJB 3.0 / EasyBeans
- Utilisation de standards Java EE- Spring = framework non standard
- EasyBeans fonctionne dans plusieurs serveurs- JOnAS, Tomcat, Jetty, ...
- Utilisation de la manipulation de bytecode (avec la bibliothèque ASM d'OW2)�
- Gagne en rapidité- Augmente performance
- Peut être embarqué facilement- Support avancé de OSGi- Console Web 2.0- Flexibilité de déploiement- Standardisation du mode Embedded
- Dans la ligne des profiles Java EE 6 et d’EJB Lite (EJB 3.1)
29 ©Bull, 2008 EasyBeans
En savoir plus ?