Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded...

29

Transcript of Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded...

Page 1: Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded container-Containeur EJB3 du serveur d’application JOnAS-Service OSGi pour JOnAS 5-RAR pour

Easybeans

[email protected]@serli.com

Page 2: Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded container-Containeur EJB3 du serveur d’application JOnAS-Service OSGi pour JOnAS 5-RAR pour

2 ©Bull, 2008 EasyBeans

Agenda

�Vue d’ensemble

�Modes « embedded »

�Zoom sur les plans de déploiement

�Pour conclure

Page 3: Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded container-Containeur EJB3 du serveur d’application JOnAS-Service OSGi pour JOnAS 5-RAR pour

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

Page 4: Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded container-Containeur EJB3 du serveur d’application JOnAS-Service OSGi pour JOnAS 5-RAR pour

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

Page 5: Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded container-Containeur EJB3 du serveur d’application JOnAS-Service OSGi pour JOnAS 5-RAR pour

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

Page 6: Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded container-Containeur EJB3 du serveur d’application JOnAS-Service OSGi pour JOnAS 5-RAR pour

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

Page 7: Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded container-Containeur EJB3 du serveur d’application JOnAS-Service OSGi pour JOnAS 5-RAR pour

7 ©Bull, 2008 EasyBeans

Web 2.0 console

Page 8: Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded container-Containeur EJB3 du serveur d’application JOnAS-Service OSGi pour JOnAS 5-RAR pour

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).

Page 9: Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded container-Containeur EJB3 du serveur d’application JOnAS-Service OSGi pour JOnAS 5-RAR pour

9 ©Bull, 2008 EasyBeans

Roadmap

Page 10: Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded container-Containeur EJB3 du serveur d’application JOnAS-Service OSGi pour JOnAS 5-RAR pour

10 ©Bull, 2008 EasyBeans

Agenda

�Vue d’ensemble

�Modes « embedded »

�Zoom sur les plans de déploiement

�Pour conclure

Page 11: Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded container-Containeur EJB3 du serveur d’application JOnAS-Service OSGi pour JOnAS 5-RAR pour

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)

Page 12: Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded container-Containeur EJB3 du serveur d’application JOnAS-Service OSGi pour JOnAS 5-RAR pour

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- …

Page 13: Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded container-Containeur EJB3 du serveur d’application JOnAS-Service OSGi pour JOnAS 5-RAR pour

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

Page 14: Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded container-Containeur EJB3 du serveur d’application JOnAS-Service OSGi pour JOnAS 5-RAR pour

14 ©Bull, 2008 EasyBeans

���������� ��� �

���������� ��� �

� ��� � �� ��� � �

�������������� ����� ��� � � � �� � � �� � ���� �� ���

� �

� �� � �� �

� �

� �� � �� �

� �

� �� � �� �

� �

� �� � �� �

� �������� �

� �� � �� �

� �������� �

� �� � �� �

� ��� � �� ��� � �

������

� � ��

������

� � ��

������

� � ��

�� �

� �

� � ��� �

������

� � ��

������

� � ��

������

� � ��

� �

� � ��� �

��� �� ����

��� �� ������ ������

� ��� ��

����������������� �

� ���� � ��� � ��� �� �� ������ � �� ��� � ��� ���������

� � � � � ! � � � ��� � ��" �� � �� � � ���� �� � ��� �� �� �� �

����� �� �� ��� �#

����� �#$ � � ��

#

% ��� �� � � �� ���

& � � ���� � � �� ���

� � � ���� � ��" �� �

'�� ���� � ��" �� �

����� �� � �� � ��� �� �

����� ��� ��� ( � ) ������� �

EasyBeans OSGi

Page 15: Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded container-Containeur EJB3 du serveur d’application JOnAS-Service OSGi pour JOnAS 5-RAR pour

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;

Page 16: Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded container-Containeur EJB3 du serveur d’application JOnAS-Service OSGi pour JOnAS 5-RAR pour

16 ©Bull, 2008 EasyBeans

Agenda

�Vue d’ensemble

�Modes « embedded »

�Zoom sur les plans de déploiement

�Pour conclure

Page 17: Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded container-Containeur EJB3 du serveur d’application JOnAS-Service OSGi pour JOnAS 5-RAR pour

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

Page 18: Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded container-Containeur EJB3 du serveur d’application JOnAS-Service OSGi pour JOnAS 5-RAR pour

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.

Page 19: Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded container-Containeur EJB3 du serveur d’application JOnAS-Service OSGi pour JOnAS 5-RAR pour

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é »).

Page 20: Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded container-Containeur EJB3 du serveur d’application JOnAS-Service OSGi pour JOnAS 5-RAR pour

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>

Page 21: Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded container-Containeur EJB3 du serveur d’application JOnAS-Service OSGi pour JOnAS 5-RAR pour

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>

Page 22: Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded container-Containeur EJB3 du serveur d’application JOnAS-Service OSGi pour JOnAS 5-RAR pour

22 ©Bull, 2008 EasyBeans

Illustration du fonctionnement

- Recherche d'une ressource

Page 23: Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded container-Containeur EJB3 du serveur d’application JOnAS-Service OSGi pour JOnAS 5-RAR pour

23 ©Bull, 2008 EasyBeans

Illustration du fonctionnement

- Fin des déploiements et validation du plan

Page 24: Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded container-Containeur EJB3 du serveur d’application JOnAS-Service OSGi pour JOnAS 5-RAR pour

24 ©Bull, 2008 EasyBeans

Déploiement sur un cluster

- Méthode habituelle

Exemple2 instances, 2 ressources

En bleu, les manipulations de l'administrateur.

Page 25: Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded container-Containeur EJB3 du serveur d’application JOnAS-Service OSGi pour JOnAS 5-RAR pour

25 ©Bull, 2008 EasyBeans

Déploiement sur un cluster

- Avec un plan de déploiement

Une seule ressource àmanipuler sur chaque serveur...

Page 26: Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded container-Containeur EJB3 du serveur d’application JOnAS-Service OSGi pour JOnAS 5-RAR pour

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>

Page 27: Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded container-Containeur EJB3 du serveur d’application JOnAS-Service OSGi pour JOnAS 5-RAR pour

27 ©Bull, 2008 EasyBeans

Agenda

�Vue d’ensemble

�Modes « embedded »

�Zoom sur les plans de déploiement

�Pour conclure

Page 28: Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded container-Containeur EJB3 du serveur d’application JOnAS-Service OSGi pour JOnAS 5-RAR pour

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)

Page 29: Easybeans - RMLL2008.rmll.info/IMG/pdf/Easybeans_rmll2008-v1.0.pdfEasyBeans, embedded container-Containeur EJB3 du serveur d’application JOnAS-Service OSGi pour JOnAS 5-RAR pour

29 ©Bull, 2008 EasyBeans

En savoir plus ?