Sitedetout - Tutoriels informatiques

Infrastructure Java EE

Voulez vous s’introduire dans le monde JAVA / JAVA EE. Pour plusieurs personnes JAVA EE signifie encore des pages Servlets ou JSPs, ce qui n’est pas tout à fait juste !

Par ce tutoriel, On va essayer de vous poser sur le bon chemin pour maitriser le langage JAVA et la plateforme ou la spécification JAVA EE en commençant par la théorie.

OUI !! Ce sont deux appellations différentes et ne désignent pas la même chose. JAVA est un langage de programmation orienté objet, tandis que JAVA EE fait partie des plateformes de JAVA permettant de développer et d’exécuter des programmes écrits en langage Java indépendamment de tout processeur et de tout système d’exploitation.

“… fait partie des plateformes JAVA …” ! Mais combien y a-t-il de plateforme JAVA ?

Très bonne question ! JAVA possède quatre plateformes principales :

Tout d’abord, il y a la JAVA SE anciennement appelée J2SE. C’est la plateforme de référence de JAVA et s’adresse aux postes clients, à chaque version du JAVA SE correspond notamment :

  • Une Java Specification Requests (JSR), chaque version de la plate-forme JAVA SE répond à des spécifications normalisées dans les JSR;
  • Un Java Development Kit (JDK) contenant les bibliothèques logicielles;
  • Un Java Runtime Environment (JRE) contenant le seul environnement d’exécution (compris de base dans le JDK).

Puis vient ensuite la Java ME qui est une plateforme JAVA destinée aux appareils mobiles à petits écrans (tel les smartphones), elle propose des API dérivées de Java SE, et une petite JVM.

N’oublions pas la plateforme Java FX qui est orientée RIA et qui est devenu avec l’apparition de JAVA 8 en mars 2014 la bibliothèque de création d’interface graphique officielle du langage Java pour toutes les sortes d’applications (applications mobiles, applications sur poste de travail, applications Web), le développement de son prédécesseur Swing étant abandonné.

JavaFX contient des outils très divers, notamment pour les médias audio et vidéo, le graphisme 2D et 3D, la programmation Web et la programmation multi-fils.

Le SDK de JavaFX étant désormais intégré au JDK standard de JAVA SE, il n’y a pas besoin de réaliser d’installation spécifique pour JavaFX.

On trouve enfin et qui nous intéresse dans cet article, la plateforme JAVA EE synonyme de Enterprise Edition, elle est nommée ainsi car la plateforme JAVA EE est une plateforme standardisée destinée à créer des applications robustes, fiables et sécurisés à travers le réseau et permettant de résoudre les problèmes rencontrés dans les grandes entreprises. Ces applications sont généralement distribuées ou multi niveau.

La spécification JAVA EE comprend :

  • Une plate-forme (Java EE Platform), pour héberger et exécuter les applications, incluant outre Java SE, des bibliothèques logicielles additionnelles du Java Development Kit (JDK) ;
  • Une suite de tests (Java EE Compatibility Test Suite) pour vérifier la compatibilité ;
  • Une réalisation de référence (Java EE Reference Implementation), dénommée GlassFish ;
  • Un catalogue de bonnes pratiques (Java EE BluePrints);
  • code scripte.

Pourquoi on dit que JAVA EE est une plateforme standardisée ?

  • La plateforme JAVA EE est constituée de plusieurs spécifications ‘standard’ ou APIs.
  • Ce sont des sortes de contrats définis par un groupement d’organisations reconnu mondialement, Exemple : Enterprise Java Beans (EJB), Java Persistence API (JPA), Java Message Service (JMS) etc.

Que voulez-vous dire par Conteneurs ?

  • Un conteneur peut être vu comme étant une partition logique/virtuelle.
  • Chaque conteneur supporte un ensemble de spécifications/APIs définis par la plateforme Java EE.
  • Ceci fourni un environnement de démarrage (RunTime) aux applications qu’héberge le serveur.

Image

La spécification Java EE liste quatre types de conteneurs :

  • Un conteneur Web;
  • Un conteneur EJB;
  • Un conteneur d’application Client;
  • Un conteneur d’applet.

 

Services ?

  • Un ‘services’ est le résultat de l’implémentation des spécifications standards par un fournisseur. Exemple de spécifications : Jersey for JAX-RS (RESTFul Services), Tyrus (Web Sockets), EclipseLink (JPA) etc.
  • Un conteneur n’est que l’interface entre l’application déployée et le serveur d’application.

Nous avons compris le rôle d’un conteneur, voici maintenant une liste non exhaustive de services fournis par ces conteneurs aux autres composants :

  • Persistence – Offert par la Java Persistence API (JPA) qui fourni un Mapping Objet-Relationel (ORM) et une abstraction aux opérations sur la base de données.
  • Messaging – Offert par la Java Message Service (JMS) qui fourni un transfert de messages asynchrones entre les différentes parties de l’application.
  • Contexts & Dependency Injection – CDI fourni un couplage léger et une injection de dépendances entre composants dynamique et plus sûre.
  • Web Services – JAXRS et JAXWS offre le support des architecture web-service REST et SOAP.
  • Transaction –  Offert par la Java Transaction API (JTA) et fourni tout les outils nécessaires pour la gestion des transactions dans l’application.

Maintenant qu’on a survolé l’environnement global des applications JAVA EE, concentrons-nous sur ces dernières.

Les applications JAVA EE sont construites par différents composants, ces derniers sont supportés par leur ‘conteneurs‘ correspondants.

Les composants supportés sont :

  • les application d’enterprise –  Elles utilisent les spécifications EJB, JMS, JPA etc, et sont exécutées au sein d’un conteneur EJB;
  • les applications web – Elles utilisent API Servlet, JSP, JSF etc et sont supportées par le conteneur Web;
  • Les application cliente – Elles sont exécutées au niveau client. Elle nécessitent un conteneur d’application client Container qui contient un ensemble de librairies exécutes dans l’environnement Java SE;
  • Les applets – Ce sont des application graphiques exécutées dans un navigateur.

Comment les applications Java EE sont structurées ?

Les applications JAVA EE récentes sont souvent développées suivant une architecture n-tiers ou multi niveaux, généralement, on parle de l’architecture 3-tiers.

L’architecture trois tiers, 3-tiers, à trois niveaux ou architecture à trois couches est logiquement divisée en trois niveaux ou couches  :

overview-multitieredApplications

  • Couche présentation – correspondant à l’affichage, la restitution sur le poste de travail, le dialogue avec l’utilisateur
  • Couche métier – correspondant à la mise en œuvre de l’ensemble des règles de gestion et de la logique applicative.
  • Couche accès aux données – correspondant aux données qui sont destinées à être conservées sur la durée, voire de manière définitive.

On va entamer dans un prochain tutoriel comment débuter un programme en JAVA, restez branchés.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

Menu Title
Chargement...

Powered by sitedetout.com