Java EE - EPSI POE mars 2017 - David Gayerie Licence Creative Commons

Java EE

  1. Les caractéristiques de Java EE
  2. Conteneurs et services
  3. Modèle d'architecture d'application

Tout au long des chapitres précédents, nous avons vu que Java Enterprise Edition (Java EE) est un ensemble de standards Java pour le développement d'application déployable dans un serveur d'applications.

Les standards sont définis à travers les Java Specification Requests (JSR) et approuvés par le Java Community Process (JCP).

Les caractéristiques de Java EE

Java EE se caractérise par :

Conteneurs et services

Java EE peut également être considéré comme l'intégration d'un ensemble de conteneurs et de services :

Conteneur

Un conteneur est une brique logicielle dans lequel sont déployés des composants. Les composants sont fournis par les développeurs d'application et sont regroupés en module.

Le conteneur a la charge de gérer le cycle de vie des composants, d'orchestrer leurs interactions et de leur donner accès à un ensemble de services.

Un environnement Java EE complet dispose de quatre conteneurs : le conteneur d'applet (dans le navigateur client), le conteneur d'application cliente, le conteneur Web et le conteneur EJB.

Service

Un service est simplement une bibliothèque logicielle qui est rendue accessible aux composants Java EE. Parmi les services disponibles, il y a : l'injection de dépendance (CDI), la validation de données (Bean Validation), la gestion des transactions (JTA), l'envoi et la réception de mail (JavaMail)...

Cette approche traditionnelle de Java EE comme intégration technique d'un ensemble de conteneurs et de services, devient de moins en moins pertinente au fil des versions de Java EE. D'abord, avec le succés des services Web et des applications Web riches (RIA), les conteneurs d'applet et d'application cliente ne sont plus vraiment utilisés. Ensuite, avec l'intégration de services tels que CDI (pour la dépendance d'injection et les managed beans) ou la possibilité d'embarquer un conteneur d'EJB au sein d'une application Web (EJB lite), les applications Java EE se sont nettement simplifiées dans leur structure et leur système de déploiement par rapport au modèle d'origine.

Modèle d'architecture d'application

Java EE est surtout un modèle prescriptif en terme d'architecture logicielle. Chaque composant Java EE est défini par ses responsabilités. L'ensemble de ces composants forme une application multi-couche (N-tiers).

Couche client (Client tier)
Pour une application Web, il s'agit des pages Web et du code Javascript téléchargés par le navigateur client. Cette couche est responsable de l'affichage et de l'interaction avec l'utilisateur.
Couche Web (Web tier)
Il s'agit du point d'échange entre le client et le serveur. Les composants principaux sont les Servlets/JSP et les Facelets JSF. La logique de ces composants se limite à valider les données en entrée et à produire une représentation des données en sortie.
Couche métier (Business tier)
Il s'agit de l'ensemble des traitements propres à l'application. Les composants sont les EJB.
Couche du système d'information (Enterprise Information System tier)
Il s'agit principalement des serveurs de bases de données. L'application interagit avec ces serveurs grâce au service JDBC ou aux Entity Beans (JPA).