Java EE - qu'est-ce que c'est ?
Java EE est une plate-forme construite sur Java SE qui fournit une API et un environnement d'exécution pour développer et exécuter des applications réseau à grande échelle, multiniveaux, évolutives, fiables et sécurisées. De telles applications sont appelées applications d'entreprise car elles résolvent les problèmes rencontrés par les grandes entreprises. Cependant, les grandes entreprises et les agences gouvernementales ne sont pas les seules à pouvoir bénéficier de ces types d'applications et des avantages offerts par Java EE. Les solutions proposées par la plate-forme Java EE sont utiles, et parfois simplement nécessaires, pour les développeurs individuels et les petites organisations.Développement JavaEE
Java EE est développé via le Java Community Process (JCP), créé en 1998. Il permet aux parties intéressées de participer à l'élaboration des futures versions des spécifications de la plateforme de langage Java. La base de ce processus est la JSR (Java Spécification Request), des documents formels décrivant les spécifications et les technologies qu'il est proposé d'ajouter à la plateforme Java. Ces demandes sont faites par des membres de la communauté – des développeurs ordinaires et des entreprises. Ces derniers incluent Oracle, Red Hat, IBM, Apache et bien d'autres. Ceux. les gars proposent de nouvelles fonctionnalités et des goodies qu'ils aimeraient inclure dans Java. Et puis ils procèdent à un vote, sur la base duquel une décision est prise sur ce qu'il faut inclure dans la prochaine version. L'historique des versions de Java EE ressemble à ceci :- J2EE 1.2 (décembre 1999)
- J2EE 1.3 (septembre 2001)
- J2EE 1.4 (novembre 2003)
- Java EE 5 (mai 2006)
- Java EE 6 (décembre 2009)
- Java EE 7 (mai)
- Java EE 8 (août 2017)
- Jakarta EE 8 (septembre 2019)
Architecture des applications Java EE
Une brève introduction. Pour faciliter la compréhension, parlons de la structure des applications Java EE et de certains des termes que nous utiliserons plus loin. Les applications Java EE ont une structure qui présente deux qualités clés :- Premièrement, à plusieurs niveaux. Les applications Java EE sont à plusieurs niveaux, et nous en parlerons plus en détail ;
- deuxièmement, la nidification. Il existe un serveur Java EE (ou serveur d'applications), avec des conteneurs de composants situés à l'intérieur. Ces conteneurs abritent (bingo !) des composants.
Niveaux d'application
Les applications multi-niveaux sont des applications divisées selon des principes fonctionnels en modules isolés (niveaux, couches). Généralement (y compris dans le contexte du développement Java EE), les applications d'entreprise sont divisées en trois niveaux :- client;
- niveau moyen;
- niveau d'accès aux données.
-
La couche client est une application qui demande des données au serveur Java EE (couche intermédiaire). Le serveur, à son tour, traite la demande du client et lui renvoie une réponse. L'application client peut être un navigateur, une application autonome (mobile ou de bureau) ou d'autres applications serveur sans interface graphique.
-
Le niveau intermédiaire est divisé, à son tour, en niveau Web et niveau logique métier.
-
La couche Web se compose de certains composants qui assurent l'interaction entre les clients et la couche de logique métier.
Les technologies Java EE suivantes sont utilisées au niveau Web :
- Technologie JavaServer Faces (JSF);
- Pages du serveur Java (JSP) ;
- Langage d'expression (EL);
- Servlets ;
- Contextes et injection de dépendances pour Java EE (CDI).
-
La couche de logique métier est constituée de composants qui implémentent toute la logique métier de l'application. La logique métier est un code qui fournit des fonctionnalités qui couvrent les besoins d'un domaine d'activité spécifique (secteur financier, banque, commerce électronique). Ce niveau peut être considéré comme le cœur de l’ensemble du système.
Technologies impliquées à ce niveau :
- Entreprise JavaBeans (EJB) ;
- Services Web RESTful JAX-RS ;
- Entités API de persistance Java ;
- Service de messagerie Java.
-
-
Niveau d'accès aux données. Ce niveau est parfois appelé niveau des systèmes d'information d'entreprise (EIS). EIS se compose de divers serveurs de bases de données, de systèmes de planification des ressources d'entreprise ERP (Enterprise Resource Planning) et d'autres sources de données. La couche de logique métier accède à cette couche pour les données.
A ce niveau, vous pouvez trouver des technologies telles que :
- API de connectivité de base de données Java (JDBC) ;
- API de persistance Java ;
- Architecture de connecteur Java EE ;
- API de transactions Java (JTA).
Serveurs d'applications, conteneurs, composants
Jetons un coup d'œil à la définition de Java EE sur Wikipédia. Java EE est un ensemble de spécifications et de documentation associée pour le langage Java, décrivant l'architecture de la plateforme serveur pour les tâches des moyennes et grandes entreprises. Pour mieux comprendre ce que signifie dans ce contexte un « ensemble de spécifications », faisons une analogie avec une interface Java. L'interface Java elle-même est dépourvue de fonctionnalités. Il définit simplement un contrat selon lequel certaines fonctionnalités sont implémentées. Mais d'autres classes implémentent l'interface. De plus, une interface peut avoir plusieurs implémentations, chacune pouvant différer les unes des autres sur certains détails. Avec les spécifications, tout est exactement pareil. Naked Java EE n'est qu'un ensemble de spécifications. Ces spécifications sont implémentées par différents serveurs Java EE. Un serveur Java EE est une application serveur qui implémente les API de la plateforme Java EE et fournit des services Java EE standard. Les serveurs Java EE sont parfois appelés serveurs d'applications. Les données du serveur peuvent contenir des composants d'application, chacun correspondant à son propre niveau dans une hiérarchie à plusieurs niveaux. Le serveur Java EE fournit divers services à ces composants sous la forme d'un conteneur. Les conteneurs constituent l'interface entre les composants qu'ils hébergent et la fonctionnalité de bas niveau indépendante de la plate-forme qui prend en charge le composant. Les conteneurs fournissent des services spécifiques aux composants qu'ils hébergent. Par exemple, la gestion du cycle de vie du développement, l’injection de dépendances, la concurrence, etc. Les conteneurs masquent la complexité technique et augmentent la portabilité. Il existe quatre types différents de conteneurs dans Java EE :-
Les conteneurs d'applets sont implémentés par la plupart des navigateurs. Lors du développement d'applets, vous pouvez vous concentrer sur le côté visuel de l'application, tandis que le conteneur offre un environnement sécurisé.
-
L'Application Client Container (ACC) contient un ensemble de classes Java, de bibliothèques et d'autres fichiers nécessaires à la mise en œuvre de fonctionnalités telles que l'injection, la gestion de la sécurité et les services de noms dans les applications Java SE.
-
Le conteneur Web fournit les services de base pour la gestion et l'exécution des composants Web (servlets, composants EJB Lite, pages JSP, filtres, écouteurs, pages JSF et services Web). Il est responsable de l'instanciation, de l'initialisation et de l'appel des servlets, ainsi que de la prise en charge des protocoles HTTP et HTTPS. Ce conteneur est utilisé pour servir des pages Web aux navigateurs clients.
-
Le conteneur EJB (Enterprise Java Bean) est responsable de la gestion et de l'exécution des composants du modèle EJB qui contiennent la couche de logique métier de l'application. Il crée de nouvelles entités de bean EJB, gère leur cycle de vie et fournit des services tels que des capacités de transaction, de sécurité, de concurrence, de distribution, de dénomination ou d'appel asynchrone.
-
Les applets sont des applications d'interface utilisateur graphique (GUI) qui s'exécutent dans un navigateur. Ils exploitent la riche API Swing pour produire des interfaces utilisateur puissantes.
-
Les applications sont des programmes qui s'exécutent côté client. Il s'agit généralement d'une interface utilisateur graphique (GUI) utilisée pour le traitement par lots.
-
Applications Web (composées de servlets et de leurs filtres, écouteurs d'événements Web, pages JSP et JSF) - s'exécutent dans un conteneur Web et répondent aux requêtes HTTP des clients Web. Les servlets prennent également en charge les points de terminaison des services Web SOAP et RESTful.
-
Les applications d'entreprise (construites avec Enterprise Java Beans, Java Message Service, Java Transaction API, Asynchronous Calls, Time Services) s'exécutent dans un conteneur EJB. Les EJB gérés par conteneur gèrent la logique métier transactionnelle. Ils sont accessibles localement ou à distance via RMI (ou HTTP pour les services Web SOAP et RESTful).
Les technologies
Nous avons donc réglé l'architecture. La structure globale doit être claire. Dans le processus de description des composants architecturaux, nous avons abordé certaines technologies Java EE telles que EJB, JSP, etc. Le tableau ci-dessous présente les technologies utilisées principalement au niveau client :Technologie | But |
---|---|
Servlets | Classes Java qui traitent dynamiquement les demandes des clients et génèrent des réponses (généralement des pages HTML). |
Visages du serveur Java (JSF) | Un framework pour créer des applications Web avec une interface utilisateur. Vous permet d'inclure des composants d'interface utilisateur (par exemple, des champs et des boutons) sur une page, de transformer et de valider ces composants, et de stocker ces données dans un stockage côté serveur. |
Technologie Java Server Faces Facelets | C'est un sous-type d'application JSF qui utilise des pages XHTML au lieu de pages JSP. |
Pages du serveur Java (JSP) | Documents texte compilés en servlets. Vous permet d'ajouter du contenu dynamique aux pages statiques (telles que les pages HTML) |
Bibliothèque de balises standard des pages Java Server (JSTL) | Une bibliothèque de balises qui encapsule les fonctionnalités de base dans le contexte des pages JSP. |
Langage d'expression | Un ensemble de balises standard utilisées dans les pages JSP et Facelets pour accéder aux composants Java EE. |
Contextes et injection de dépendances pour Java EE (CDI) | Représente un ensemble de services fournis par les conteneurs Java EE pour gérer le cycle de vie des composants, ainsi que pour injecter des composants dans les objets clients de manière sécurisée. |
Composants des beans Java | Objets qui servent de stockage de données temporaire pour les pages d'application. |
Technologie | But |
---|---|
Composants Enterprise Java Beans (bean entreprise) | Les EJB sont des beans gérés qui contiennent les fonctionnalités de base d'une application. |
Services Web RESTful JAX-RS | Il s'agit d'une API permettant de développer des services Web conformes au style architectural REST. |
Points de terminaison du service Web JAX-WS | API pour créer et consommer des services Web SOAP. |
Entités Java Persistence API (JPA) | Une API permettant d'accéder aux données dans les magasins de données et de convertir ces données en objets de langage de programmation Java et vice versa. |
Beans gérés Java EE | Beans gérés qui fournissent la logique métier de l'application mais ne nécessitent pas les fonctionnalités transactionnelles ou de sécurité de l'EJB. |
Service de messagerie Java | L'API Java Message Service (JMS) est une norme de messagerie qui permet aux composants d'application Java EE de créer, d'envoyer, de recevoir et de lire des messages. Cela garantit une communication distribuée, fiable et asynchrone entre les composants. |
Technologie | But |
---|---|
L'API de connectivité de base de données Java (JDBC) | API de bas niveau pour accéder et récupérer des données à partir de magasins de données. Une utilisation typique de JDBC consiste à écrire des requêtes SQL sur une base de données spécifique. |
L'API de persistance Java | Une API permettant d'accéder aux données dans les magasins de données et de convertir ces données en objets de langage de programmation Java et vice versa. API de niveau beaucoup plus élevé que JDBC. Cache toute la complexité de JDBC au développeur sous le capot. |
L'architecture du connecteur Java EE | API pour connecter d'autres ressources de l'entreprise, telles que :
|
L'API de transactions Java (JTA) | Une API permettant de définir et de gérer les transactions, y compris les transactions distribuées et les transactions sur plusieurs magasins de données. |
GO TO FULL VERSION