Vous êtes sur la page 1sur 6

Définitions 

de J2EE/Java EE

De  nombreuses  possibilités  existent  pour  réaliser  des  applications  Internet  depuis  plusieurs  années.  Des  langages  ont 
été  créés,  des  architectures  et  des  environnements  de  travail  ont  été  conçus  pour  répondre  aux  besoins  et  faciliter  la 
tâche des développeurs. Sun (le concepteur de Java) a donc mis en place un ensemble de technologies pour réaliser des 
applications Web. Ces technologies sont regroupées sous le nom J2EE ( Java 2 Entreprise Edition), désormais Java EE. 

Depuis la version 5, le chiffre 2 a disparu pour faciliter la compréhension de la version et ne pas mélanger le chiffre 
2 avec le numéro de version. 

La  plate­forme  Java  EE  s’appuie  entièrement  sur  le  langage  Java.  Java  EE  est  donc  une  norme,  qui  permet  à  des 
développeurs,  entreprises  et  SSII  de  développer  leur  propre  application  qui  implémente  en  totalité  ou  partiellement  les 
spécifications de SUN. En simplifiant, il est possible de représenter Java EE comme un ensemble de spécifications d’API, 
une architecture, une méthode de packaging et de déploiement d’applications et la gestion d’applications déployées sur 
un serveur compatible Java. 

Une  API  est  un  ensemble  de  librairies  ou  bibliothèques  de  fonctions  destinées  à  être  utilisées  par  les 
programmeurs dans leurs applications. 

Java  Entreprise  Edition  est  destiné  aux  gros  (très  gros)  systèmes  d’entreprises.  Les  librairies  utilisées  fonctionnent 
difficilement  sur  un  simple  PC  et  requièrent  une  puissance  beaucoup  plus  importante  (notamment  au  niveau  de  la 
mémoire). 

Java  Entreprise  Edition  est  apparue  à  la  fin  des  années  90.  Cette  évolution  apporte  au  langage  Java  une  plate­forme 
logicielle robuste et complète pour le développement. La plate­forme Java EE a souvent été remise en cause, mal utilisée 
et mal comprise. Des outils OpenSource sont venus la concurrencer. Ces remarques et la concurrence ont permis à Sun 
d’améliorer  son  produit  et  d’éditer  des  versions  de  plus  en  plus  abouties.  Java  EE  ne  remplace  en  aucun  cas  J2SE.  Au 
contraire, J2SE est la base de Java EE qui est plus complet et qui est axé sur le Web. La plate­forme J2SE offre des outils 
de développement d’applications client/serveur, applications graphiques fenêtrées et Applets. 

La plate­forme J2SE est composée des éléments suivants : 

l La  machine  virtuelle  Java  (JVM)  :  permet  d’exécuter  des  applications  Java.  Elle  constitue  une  passerelle  et  permet  une 
portabilité entre les architectures (Windows, Linux, Mac...). 

l La bibliothèque de classes Java : un ensemble de composants logiciels prêt à l’emploi. 

l Les  outils  de  développement  :  le  compilateur  javac  ,  un  interpréteur  Java  nommé  java,  le  générateur  de  documentation 
javadoc, la console de supervisation Jconsole... La plate­forme Java EE est une extension de la plate­forme J2SE. Elle permet 
un  développement  d’applications  qui  vont  s’exécuter  sur  un  serveur  d’applications.  Les  applications  seront  utilisées  par  des 
clients légers (comme des navigateurs Web) ou bien des applications lourdes (IHM). La dernière version stable de Java EE est 
la version Java EE 5.0 et fonctionne avec le JDK 5.0 et 6.0. 

1. Pourquoi choisir Java EE

Il existe actuellement beaucoup d’autres plates­formes de développement qui sont basées sur d’autres langages (C#, 
PHP5, .NET...). Les principaux avantages d’utiliser Java EE (et donc Java) sont la portabilité, l’indépendance, la sécurité et 
la multitude de librairies proposées. 

Le développement d’applications d’entreprise nécessite la mise en œ uvre d’une infrastructure importante. Beaucoup de 
fonctionnalités  sont  utilisées  et  développées,  le  but  étant  de  produire  des  applications  sûres,  robustes  et  faciles  à 
maintenir.  Certains  services  sont  d’ailleurs  récurrents  comme :  l’accès  aux  bases  de  données,  l’envoi  de  mails,  les 
transactions, la gestion de fichiers, la gestion d’images, le téléchargement, le chargement ou upload, la supervision du 
système... 

C’est pour cela que l’architecture Java EE est intéressante car tous les éléments fondamentaux sont déjà en place. Pas 

© Editions ENI – Tous droits réservés – Copie personnelle de Yasmine MINA SYLLA - 1-
besoin de concevoir une architecture , des librairies et des outils spécialement adaptés. Cela nécessiterait un temps et 
un investissement considérables. 

Enfin, la plate­forme Java EE est basée sur des spécifications, ce qui signifie que les projets sont portables sur n’importe 
quel  serveur  d’applications  conforme  (Tomcat,  JBoss,  WebSphere...)  à  ces  spécifications.  Cette  implémentation  est 
gratuite et permet de bénéficier de la totalité de l’API sans investissement. La plate­forme Java EE est la plus riche des 
plates­formes  Java  et  offre  un  environnement  standard  de  développement  et  d’exécution  d’applications  d’entreprise 
multi­tiers. 

Le  fait  que  Java  EE  soit  standardisé  a  contribué  à  son  adoption  par  de  très  nombreux  éditeurs  de  logiciels/outils 
informatique. Ces éditeurs associés à Sun Microsystems font partie du JCP (Java Community Process). Le Java Community 
Process regroupe les entreprises suivantes : Sun, IBM, Oracle, Borland, Nokia, Sony, la fondation Apache, ObjectWeb... 
L’objectif du JCP est de définir les spécifications des technologies basées sur Java. 

Chaque demande de modification est appelée une JSR (Java Specification Request). 

2. L’API Java EE (JDBC, Servlets, JSP)

La plate­forme  Java  EE  est  composée  de  plusieurs  API  (ensemble  de  libraires  et  services).  Java  EE  fait  intervenir  trois 
types de composants logiciels (Servlets, JSP, EJB). 

a. Les Servlets

L’API Servlet fournit les éléments nécessaires à la conception de composants Web dynamiques avec le langage Java. 
Les  Servlets  sont  des  composants  logiciels  entièrement  écrits  en  Java.  Les  Servlets  effectuent  des  traitements  côté 
serveur en réponse aux requêtes des clients distants. Une Servlet est chargée en mémoire lors de son premier appel. 
De  même,  il  n’existe  qu’une seule instance d’une  Servlet  en  mémoire,  le  serveur  utilise  alors  un  thread  global  pour 
traiter les demandes émises par les clients. 

Cycle de vie d’une Servlet

Une Servlet est une classe Java. Cette classe doit être chargée puis interprétée par une machine virtuelle Java (celle 
du  serveur  d’applications).  La  Servlet  est  alors  prête  à  recevoir  des  requêtes  et  à  renvoyer  des  réponses.  Lorsque 
l’application ou le serveur s’arrête, la Servlet est détruite, puis son instance est nettoyée par le ramasse­miettes de la 
machine virtuelle. 

Les Servlets permettent de développer des pages dynamiques, dont le contenu est créé à la volée sur demande. C’est 
le  cas  par  exemple,  lorsqu’un  client  souhaite  obtenir  la  liste  des  articles  d’une  boutique  pour  une  plage  de  prix.  Les 

- 2- © Editions ENI – Tous droits réservés – Copie personnelle de Yasmine MINA SYLLA
pages HTML sont alors générées dynamiquement en fonction de critères spécifiques (prix, dates, recherches...). 

Une Servlet est un composant Java qui implémente l’interface javax.servlet.Servlet. Cette interface permet de gérer les 
requêtes du client, dirigées vers la Servlet en question. Le serveur reçoit une demande adressée à une Servlet sous la 
forme d’une requête HTTP. Il transmet alors la requête à la Servlet concernée par le traitement puis renvoie la réponse 
fournie par celle­ci au client. La Servlet est gérée par le conteneur de Servlets Java EE. Lorsque le serveur Web reçoit 
la requête du client, il charge la Servlet (si elle n’est pas encore chargée) et invoque l’interface  javax.servlet.Servlet afin 
de satisfaire la requête. 

Ce type de programmation est très proche du développement CGI mais offre les outils pour gérer les cookies, sessions, 
accès aux bases de données et autres avec une excellente portabilité. 

Exemple de Servlet simple : 

public class PremiereServlet extends HttpServlet


{
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, java.io.IOException
{
}

protected void doPost(HttpServletRequest request,


HttpServletResponse response) throws ServletException, java.io.IOException
{
doGet(request, response);
}
}

b. Les JSP (Java Server Page)

L’API JSP permet de développer des pages Web dynamiques rapidement à partir d’un squelette HTML et de données 
incluses directement dans chaque page. Les JSP permettent d’insérer des bouts de code Java (scriptlets) directement 
dans le code HTML. 

Du point de vue de la structure, une JSP est très proche d’une page PHP ou bien ASP. Une page JSP est un fichier qui 
porte l’extension .jsp ou .jspf (pour les fragments de code). 

Lors  de  la  création  de  Servlets,  le  but  est  de  construire  des  composants  capables  de  produire  un  service 
(essentiellement  du  code  HTML).  Toutefois,  ce  principe  est  parfois  complexe  pour  des  personnes  qui  ne  sont  pas 
habituées à la programmation objet et au code 100% Java. C’est pour ces raisons que les développeurs de chez SUN 
ont inventé JSP. 

La page JSP est transformée en classe Java puis compilée en Servlet par le serveur d’applications. Ce traitement est 
réalisé par le serveur d’applications au premier appel de la page et à chaque fois que cette page est modifiée par un 
programmeur. 

C’est cette étape qui nécessite un serveur d’applications Java EE, un compilateur Java et qui par conséquent nécessite 
pour la majorité l’installation de Java avec un JDK plutôt qu’un JRE. 

Cycle de vie d’une JSP

© Editions ENI – Tous droits réservés – Copie personnelle de Yasmine MINA SYLLA - 3-
 

Le résultat de la compilation (essentiellement du code HTML) est renvoyé au client. Cette technologie est simple, légère 
et rapide. Les développeurs de pages JSP peuvent ainsi mélanger du contenu statique et du contenu dynamique. 

<%
System.out.println("Ma première Servlet");
out.println("<h1>Ma première Servlet<h1>");
%>

Il est donc possible d’avoir des équipes de développement séparées avec une personne spécialiste de HTML/XHTML et 
du design et un programmeur Java qui réalise les scriptlets. Les JSP sont exécutées sous la forme de Servlets, elles 
disposent donc des mêmes fonctionnalités que celles­ci et peuvent ainsi manipuler les sessions, les bases de données, 

- 4- © Editions ENI – Tous droits réservés – Copie personnelle de Yasmine MINA SYLLA
les mails... 

c. LES EJB (Entreprise Java Bean)

Les EJB sont des composants métier distribués, c’est­à­dire qu’ils sont invocables par le réseau. Un composant EJB est 
une  classe  qui  possède  des  attributs  et  méthodes  pour  mettre  en  application  la  logique  métier.  L’API  EJB  fournit  un 
ensemble de services (persistance, transaction...) de gestion de composants. Il existe plusieurs (trois) types d’EJB : les 
beans sessions, les beans entités et les beans contrôlés par message. 

l EJB session : il permet de maintenir des informations sur les clients et les traitements qu’ils réalisent. 

l EJB entité : c’est un composant persistant, son état est sauvegardé dans une base de données. 

l EJB piloté par message : les EJB message sont semblables aux EJB session mais sont invoqués différemment (par le biais 
de Java Message Service). 

La  mise  en  place  d’EJB  nécessite  l’utilisation  d’un  serveur  d’applications  capable  de  gérer  ces  EJB. 
Actuellement, les serveurs GlassFish, JBoss et Jonas existent dans le domaine du libre. Le serveur Tomcat ne 
permet pas d’utiliser les EJB. 

Il existe ensuite au sein de Java EE, la plate­forme de Services avec JDBC, JNI, JavaMail, JTA, RMI, JAAS et XML. 

JDBC (Java DataBase Connectivity)

L’API JDBC permet de faciliter l’obtention de connexions JDBC vers des sources de données (essentiellement des bases 
de données, mais également annuaire...). L’API fournit les librairies pour se connecter aux bases de données et pour la 
gestion des transactions. 

JNDI (Java Naming and Directory Interface)

L’API JNDI permet d’accéder à des services de nommage ou d’annuaire (LDAP par exemple). Cette API est par exemple 
utilisée  pour  se  connecter  à  une  source  de  données  pour  des  accès  à  la  base  de  données  ou  la  gestion  des  accès 
(associée aux Realms). JNDI permet d’implémenter un service de nommage. L’ensemble des ressources que le serveur 
d’applications met à disposition via ces API de services, doit être enregistré avec un nom logique unique, permettant 
aux applications de rechercher cette ressource dans le serveur. 

JavaMail

L’API  JavaMail  fournit  des  fonctionnalités  de  gestion  de  courrier  électronique  (transfert,  type  de  contenu,  pièces 
jointes...). JavaMail permet la création et l’envoi de messages électroniques via Java. Cette API permet de manipuler 
les protocoles de messagerie Internet comme POP, IMAP, SMTP. JavaMail n’est pas un serveur de courrier mais plutôt 
un outil qui permet d’interagir avec ce type de serveur. 

JPA (Java Persistance API)

Les entités Beans ont été développées pour le modèle de persistance en Java EE. Ce modèle de composants avait de 
nombreux détracteurs. Pour apporter des solutions à ce problème, de nouvelles spécifications, des outils de mapping 
objet/relationnel  comme  TopLink  et  Hibernate  ont  été  développés.  Java  EE  apporte  donc  un  nouveau  modèle  de 
persistance  nommé  JPA.  JPA  s’appuie  sur  JDBC  pour  communiquer  avec  la  base  de  données  mais  permet  d’éviter de 
manipuler directement les fonctionnalités de JDBC et le langage SQL. 

3. Les autres API

Parmi les autres API Java EE, il faut citer : 

© Editions ENI – Tous droits réservés – Copie personnelle de Yasmine MINA SYLLA - 5-
JMS (Java Message Service) permet d’accéder à un service de messages pour une gestion asynchrone des composants. Le 
composant appelant poste un message (en arrière­plan) à destination d’une file d’attente de messages hébergés par le 
serveur d’applications puis continue son traitement sans attendre. 

RMI  (Remote  Method  Invocation)  permet  de  concevoir  des  applications  distribuées  en  Java.  RMI  permet  l’appel  de 
fonctionnalités à distance par le biais de la communication réseau. 

JTA  (Java  Transaction  API)  permet  de  mettre  en  place  une  gestion  des  transactions  dans  des  applications  distribuées 
(commit, rollback...). Le principe des transactions est de considérer un ensemble d’opérations comme une seule. Ce type 
de service est obligatoire pour des traitements bancaire. Par exemple, une application bancaire qui permet de réaliser 
des virements entre deux comptes va d’abord débiter le premier compte et ensuite créditer le second compte. Si le débit 
puis le crédit aboutissent sans problème, alors la transaction est validée. JDBC permet de gérer les transactions sur une 
base  de  données  locale  mais  si  les  données  sont  réparties,  il  faudra  alors  utiliser  les  transactions  JTA.  JTA  permet  en 
effet de gérer les transactions distribuées qui font intervenir différentes bases de données. 

JCA (J2EE Connector Architecture) : ce connecteur permet à Java EE d’utiliser des gros systèmes tels que les mainframes. 

JAAS (Java Authentication and Autorisation Service) est un mécanisme de sécurité géré par le serveur d’applications. 

XML  n’est  pas  véritablement  une  API  Java  mais  il  est  très  utilisé  pour  la  mise  en  place  et  la  configuration  des 
applications. De même, XML est la base d’un nouveau mode de communication entre les applications qui est appelé Web 
Service. Par exemple, JAXP (Java API for XML Parsing) analyse des fichiers ou données XML, JAX­RPC (Java API for XML based 
RPC ) utilise des Web Services et JAXB (Java API for XML Binding) permet de générer des classes Java à partir de schémas 
XML ou inversement. 

Actuellement, la version de Java EE est 5.0 associée à l’API Servlet 2.5, et à l’API JSP 2.1 (et à Apache­Tomcat 5.X­6.X). 

- 6- © Editions ENI – Tous droits réservés – Copie personnelle de Yasmine MINA SYLLA

Vous aimerez peut-être aussi