1
Tour d’horizon de Java EE 6
De nos jours, les entreprises évoluent dans une compétition à l’échelle mondiale.
Elles ont besoin pour résoudre leurs besoins métiers d’applications qui deviennent
de plus en plus complexes. À notre époque de mondialisation, les sociétés sont pré-
sentes sur les différents continents, fonctionnent 24heures sur24, 7jours sur 7via
Internet et dans de nombreux pays; leurs systèmes doivent être internationalisés
et savoir traiter plusieurs monnaies et des fuseaux horaires différents tout ceci
en réduisant les coûts, en améliorant le temps de réponse des services, en stockant
les données sur des supports ables et sécurisés et en offrant différentes interfaces
graphiques à leurs clients, employés et fournisseurs.
La plupart des sociétés doivent combiner ces dés innovants avec leur système
d’information existant tout en veloppant en même temps des applications B2B
(business to business) pour communiquer avec leurs partenaires. Il n’est pas rare
non plus qu’une société doive coordonner des données stockées à divers endroits,
traitées par plusieurs langages de programmation et acheminées via des protocoles
différents. Évidemment, ceci ne doit pas faire perdre d’argent, ce qui signie qu’il
faut empêcher les pannes du système et toujours rester disponible, sécurisé et évo-
lutif. Les applications d’entreprise doivent faire face aux modications et à la com-
plexité tout en étant robustes. C’est précisément pour relever ces dés qu’a été créé
Java Enterprise Edition (Java EE).
La première version de Java EE (connue sous le nom de J2EE) se concentrait sur les
problèmes que devaient résoudre les sociétés en 1999: les composants distribués.
Depuis, les logiciels ont s’adapter à de nouvelles solutions techniques comme les
services web SOAP ou REST. La plate-forme a donc évolué pour tenir compte de
ces besoins en proposant plusieurs mécanismes standard sous forme de spécica-
tions. Au cours des années, Java EE a évolué pour devenir plus riche, plus léger, plus
simple d’utilisation et plus portable.
© 2010 Pearson Education France – Java EE 6 et GlassFish 3 – Antonio Goncalves
6 Java EE 6 et GlassFish 3
Ce chapitre fait un tour d’horizon de Java EE. Après une présentation rapide de son
architecture interne, il présentera les nouveautés de Java EE6. La seconde partie du
chapitre est consacrée à la mise en place de votre environnement de développement
pour que vous puissiez vous-même mettre en œuvre les extraits de code présentés
dans ce livre.
Présentation de Java EE
Lorsque l’on veut traiter une collection d’objets, on ne commence pas par velop-
per sa propre table de hachage: on utilise l’API des collections. De même, lorsque
l’on a besoin d’une application transactionnelle, sécurisée, interopérable et distri-
buée, on ne développe pas des API de bas niveau: on utilise la version entreprise de
Java (JavaEE). Tout comme l’édition standard de Java (JavaSE, Standard Edition)
permet de traiter les collections, JavaEE fournit des moyens standard pour traiter les
transactions via Java Transaction API (JTA), les messages via Java Message Service
(JMS) ou la persistance via Java Persistence API (JPA). JavaEE est un ensemble de
spécications pour les applications d’entreprise; il peut donc être considéré comme
une extension de Java SE destinée à faciliter le veloppement d’applications
distribuées, robustes, puissantes et à haute disponibilité.
Java EE6 est une version importante. Non seulement elle marche dans les pas de
Java EE5 pour fournir un modèle de veloppement simplié, mais elle ajoute
également de nouvelles spécications et apporte des prols et de l’élagage pour
alléger ce modèle. La sortie de Java EE6 coïncide avec le dixième anniversaire de la
plate-forme entreprise: elle combine donc les avantages du langage Java avec l’ex-
périence accumulée au cours de ces dix dernières années. En outre, elle tire prot
du dynamisme de la communauté open-source et de la rigueur du JCP. Désormais,
Java EE est une plate-forme bien documentée, avec des développeurs expérimentés,
une communauté d’utilisateurs importante et de nombreuses applications déployées
sur les serveurs d’entreprises. C’est un ensemble d’API permettant de construire des
applications multi-tier reposant sur des composants logiciels standard; ces compo-
sants sont déployés dans différents conteneurs offrant un ensemble de services.
Un peu d’histoire
Dix ans permettent de se faire une idée de l’évolution de JavaEE (voir Figure1.1),
qui s’est d’abord appelé J2EE. La première version, J2EE1.2, a été initialement ve-
loppée par Sun et est apparue en 1999 sous la forme d’une spécication contenant dix
© 2010 Pearson Education France – Java EE 6 et GlassFish 3 – Antonio Goncalves
Chapitre 1
Tour d’horizon de Java EE 6
7
Java Specication Requests (JSR). À cette époque, on parlait beaucoup de CORBA:
c’est la raison pour laquelle J2EE1.2 a été créé en ayant à l’esprit la création de sys-
tèmes distribués. Les Enterprise Java Beans (EJB) introduits alors permettaient de
manipuler des objets service distants avec ou sans état et, éventuellement, des objets
persistants (beans entités). Ils étaient construits selon un modèle distribué et tran-
sactionnel utilisant le protocole sous-jacent RMI-IIOP (Remote Method Invocation-
Internet Inter-ORB Protocol). La couche web utilisait les servlets et les JavaServer
Pages (JSP) et les messages étaient envoyés via JMS.
Project JPE
J2EE 1.2
J2EE 1.3
J2EE 1.4
Java EE 5
Java EE 6
Application
d'entreprise
Mai 1998 Dec 1999
10 specs
Sept 2001
13 specs
Nov 2003
20 specs
Mai 2006
23 specs
Q3 2009
28 specs
Robuste,
évolutif
Services
web
Facilité de
développement
Profil Web
EoD
Élagage
Conteneur
intégrable
JAX-RS
Validation
des beans
Annotations
Injection
JPA
WS-*
JSF
Services web
Gestion
Déploiement
EJB CMP
JCA
Servlet
JSP
EJB
JMS
RMI/IIOP
Profil web
INFO
CORBA est apparu vers 1988, précisément parce que les systèmes d’entreprise commençaient
à être distribués (Tuxedo, CICS, par exemple). Les EJB puis J2EE lui ont emboîté le pas, mais dix
ans plus tard. Lorsque J2EE est apparu pour la première fois, CORBA avait déjà gagson sta-
tut industriel, mais les sociétés commençaient à utiliser des solutions "tout-Java" et l’approche
neutre de CORBA vis-à-vis des langages de programmation est donc devenu redondante.
À partir de J2EE 1.3, la spécication a été veloppée par le Java Community Pro-
cess (JCP) en réponse à la JSR58. Le support des beans entité est devenu obliga-
toire et les EJB ont introduit les descripteurs de déploiement XML pour stocker les
métadonnées (qui étaient jusqu’alors sérialisées dans un chier avec EJB1.0). Cette
version a également réglé le problème du surcoût induit par le passage des para-
mètres par valeur avec les interfaces distantes en introduisant les interfaces locales
Figure1.1
Historique de J2EE/Java EE.
© 2010 Pearson Education France – Java EE 6 et GlassFish 3 – Antonio Goncalves
8 Java EE 6 et GlassFish 3
et en passant les paramètres par référence. J2EE Connector Architecture (JCA) a été
ajoutée an de connecter J2EE aux EIS (Enterprise Information Systems).
INFO
JCP est une organisation ouverte créée en 1998 an de dénir les évolutions de la plate-
forme Java. Lorsqu’il identie le besoin d’un nouveau composant ou d’une nouvelle API,
l’initiateur (appelé "leader de la spécication") crée une JSR et forme un groupe d’experts.
Ce groupe, formé de représentants de diverses sociétés ou organisations, ainsi que de per-
sonnes privées, est responsable du développement de la JSR et doit délivrer: 1) une spé-
cication qui explique les détails et dénit les bases de la JSR; 2) une implémentation de
référence (RI, Reference Implementation); et 3) un kit de test de compatibilité (TCK, Tech-
nology Compatibility Kit), c’est-à-dire un ensemble de tests que devront satisfaire toutes les
implémentations avant de pouvoir prétendre qu’elles sont conformes à la spécication. Une
fois qu’elle a été acceptée par le comité exécutif (EC, Executive Committee), la spécication
est fournie à la communauté pour être implémentée. En réalité, Java EE est une JSR qui
chapeaute d’autres JSR et c’est la raison pour laquelle on parle souvent de JSR umbrella.
J2EE1.4 (JSR151), qui est sorti en 2003, a ajouté vingt spécications et le support
des services web. EJB2.1 permettait ainsi d’invoquer des beans de session à partir
de SOAP/HTTP. Un service de temporisation a également été ajouté pour permettre
aux EJB d’être appelés à des moments précis ou à intervalles donnés. Cette version
fournissait un meilleur support pour l’assemblage et le déploiement des applications.
Bien que ses supporters lui aient prédit un grand avenir, toutes les promesses de
J2EE ne se sont pas réalisées. Les systèmes créés grâce à lui étaient trop complexes
et les temps de développement, souvent sans commune mesure avec les exigences
de l’utilisateur. J2EE était donc considéré comme un modèle lourd, difcile à tester,
à déployer et à exécuter. C’est à cette époque que des frameworks comme Struts,
Spring ou Hibernate ont commencé à émerger et à proposer une nouvelle approche
dans le développement des applications. Heureusement, Java EE5 (JSR244) t son
apparition au deuxième trimestre de 2006 et améliora considérablement la situa-
tion. Il s’inspirait des frameworks open-source en revenant à un bon vieil objet Java
(POJO, Plain Old Java Object). Les métadonnées pouvaient désormais être dénies
grâce à des annotations et les descripteurs XML devenaient facultatifs. Du point de
vue des développeurs, EJB3 et la nouvelle spécication JPA représentèrent donc
plus un bond prodigieux qu’une évolution de la plate-forme. JSF (JavaServer Faces)
t également son apparition comme framework standard de la couche présentation
et JAX-WS2.0 remplaça JAX-RPC comme API pour les services web SOAP.
© 2010 Pearson Education France – Java EE 6 et GlassFish 3 – Antonio Goncalves
Chapitre 1
Tour d’horizon de Java EE 6
9
Aujourd’hui, Java EE6 (JSR316) poursuit sur cette voie en appliquant les concepts
d’annotation, de programmation POJO et la politique "convention plutôt que con-
guration" à toute la plate-forme, y compris la couche web. Il fournit également un
grand nombre d’innovations comme la toute nouvelle API JAX-RS1.1, simplie
des API matures comme EJB3.1 et en enrichit d’autres comme JPA2.0 ou le service
de temporisation. Les thèmes principaux de Java EE6 sont la portabilité (en standar-
disant le nommage JNDI, par exemple), la dépréciation de certaines spécications
(via l’élagage) et la création de sous-ensembles de la plate-forme au moyen de pro-
ls. Dans ce livre, nous présenterons toutes ces améliorations et montrerons com-
ment Java Enterprise Edition est devenu à la fois bien plus simple et bien plus riche.
Standards
Java EE repose sur des standards. C’est une spécication centrale qui chapeaute un cer-
tain nombre d’autres JSR. Vous pourriez vous demander pourquoi les standards sont si
importants puisque certains des frameworks Java les plus utilisés (Struts, Spring, etc.)
ne sont pas standardis. La raison est que les standards, depuis l’aube des temps,
facilitent la communication et les échanges des exemples de standards bien connus
concernent les langues, la monnaie, le temps, les outils, les trains, les unités de mesure,
l’électricité, le téléphone, les protocoles réseau et les langages de programmation.
Quand Java est apparu, le veloppement d’une application web ou d’entreprise passait
néralement par l’utilisation d’outils proprtaires: on créait son propre framework
ou l’on s’enfermait en choisissant un framework commercial proprtaire. Puis vint
l’époque des frameworks open-source, qui ne reposent pas toujours sur des stan-
dards ouverts. Vous pouvez donc utiliser une solution open-source qui vous enferme
dans une seule implémentation ou en choisir une qui implémente les standards et qui
sera alors portable. Java EE fournit des standards ouverts implémentés par plusieurs
frameworks commerciaux (WebLogic, Websphere, MQSeries, etc.) ou open-source
(GlassFish, JBoss, Hibernate, Open JPA, Jersey, etc.) pour gérer les transactions, la
sécurité, les objets à état, la persistance des objets, etc. Aujourd’hui plus que jamais
dans l’histoire de Java EE, votre application peut être déployée sur n’importe quel
serveur d’applications conforme, moyennant quelques modications mineures.
Architecture
Java EE est un ensemble de spécications implémentées par différents conteneurs.
Ces conteneurs sont des environnements d’exécution Java EE qui fournissent cer-
© 2010 Pearson Education France – Java EE 6 et GlassFish 3 – Antonio Goncalves
1 / 8 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !