Jakarta EE
# Jakarta EE

Jakarta EE (anciennement Java 2 Platform, Enterprise Edition, ou J2EE /ʒi.dø.ø.ø/, puis Java Platform, Enterprise Edition ou Java EE), est une spécification pour la plate-forme Java d'Oracle, destinée aux applications d'entreprise.

La plate-forme étend Java Platform, Standard Edition (Java SE) en fournissant une API de mapping objet-relationnel, des architectures distribuées et multitiers, et des services web. La plate-forme se fonde principalement sur des composants modulaires exécutés sur un serveur d'applications.

Pour ce faire, Java EE définit les éléments suivants :

* 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) ;
* un code script.

À chaque version de Java EE correspond notamment, comme toutes les éditions Java :

* les Java Specification Requests (JSR), constituant les spécifications de la version considérée ;
* 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).

## Positionnement de Java EE

Alors que Java SE constitue le framework de référence pour Java — avec des bibliothèques standards répondant à la plupart des besoins —, Java EE complète ce framework avec des bibliothèques logicielles additionnelles dédiées à des applications professionnelles, facilitant par exemple le développement d'applications pour architecture distribuée.

Les JDK spécifiques à Java EE sont conçus de façon qu'une application réalisée avec Java EE fonctionne sur le même JRE qu'une application écrite avec Java SE, mais nécessitera cependant qu'en complément, les bibliothèques exploitées soient fournies par un conteneur Java tel que Payara, JBoss ou JOnAS.

La première version des spécifications de Java EE fut publiée en 1999, la version 1.3 apparut en 2001, puis la version 1.4 en 2003 (support XML et services Web) et la version 1.5 (renommée Java EE 5) en 2007. Depuis le mois d'aout 2017 la version en cours est Java EE 8.

En 2018, le projet est confié par Oracle à la Fondation Eclipse, et le nom Jakarta EE est choisi par la communauté des développeurs à la place de Java EE.

## Interfaces de programmation

Ci-dessous, une liste de composants pouvant être contenus dans une implémentation Java EE :

* Servlet : Composant représentant le C (Controller) du paradigme MVC
* Portlet : Conteneur Web (extension de l'API Servlet)
* JavaServer Pages (JSP) : Framework Web
* Java Standard Tag Library (JSTL) : bibliothèque de balises pour les JSP
* JavaServer Faces (JSF) : Java Server Face, Framework Web
* EJB : Composants distribués transactionnels
* JNDI : API de connexion à des annuaires, notamment des annuaires LDAP, et espace de noms d'objet (ENC)
* JDBC : API de connexion à des bases de données
* Java Message Service (JMS) : API de communication asynchrone par message
* JCA : API de connexion, notamment à des PGI
* JavaMail : API de gestion des mails
* JMX : Extension d'administration des applications
* JPA : API de gestion de la persistance des données
* JTA : API de gestion des transactions
* Java API for XML Processing (JAXP) : API d'analyse XML
* JAXM : API de communication asynchrone par XML
* JAX-RPC / JAX-WS : API de communication synchrone par XML, par exemple à l'aide du protocole SOAP
* JAXB : API de sérialisation par XML
* JAXR : API de gestion des registres XML, permettant d'enregistrer des Web Services en ebXML
* Java RMI : API de communication distante entre des objets Java
* Java IDL : API de communication entre objets Java et objets non-Java, via le protocole CORBA

## Serveur d'applications certifiés

Une application Java EE s'exécute sur un serveur d'applications.

### Certifié Java EE 7

* Oracle GlassFish Server Open Source Edition $4.0^,$
* TmaxSoft TMAX JEUS 8
* RedHat Wildfly 8.0.0
* JBoss EAP 7.1

### Certifié Java EE 6

* Oracle GlassFish Enterprise Server v3, basé sur le serveur open-source GlassFish
* Oracle WebLogic Server 12c de Oracle Corporation
* JBoss AS 7.x (profil web uniquement pour la version 7.0.x), JBoss AS 6 (profil web uniquement)
* JEUS 7, un serveur d'applications de TmaxSoft
* Apache Geronimo 3.0
* IBM WebSphere Application Server 8.0
* IBM WebSphere Application Server Community Edition 3.0, basé sur Apache Geronimo
* Tomee 1.7.4 (profil web uniquement)
* Fujitsu Interstage Application Server
* Caucho Resin 4.0.17 (profil web uniquement)

### Certifié Java EE 5 / J2EE 1.5

* Sun Java System Application Server Platform Edition 9.0, basé sur le serveur open-source GlassFish
* Oracle WebLogic Server 10gR3 de Oracle Corporation
* SAP NetWeaver Application Server, Java EE 5 Edition de SAP
* JEUS 6, un serveur d'applications de TmaxSoft
* Apache Geronimo 2.0
* IBM WebSphere Application Server Community Edition 2.0, basé sur Apache Geronimo
* IBM WebSphere Application Server v7
* Oracle Containers for Java EE 11
* GlassFish
* Apache OpenEJB via Apache Geronimo
* JBoss 5.0.0
* JOnAS 5, un serveur d'applications open-source d'ObjectWeb

### Certifié J2EE 1.4

* Apache Geronimo, un serveur d'applications open-source.
* Pramati Server 5.0
* Oracle Application Server 10g
* Resin, un serveur d'applications intégrant le XML
* SAP NetWeaver Application Server, Java EE 5 Edition de SAP AG
* Sun Java System Web Server
* Sun Java System Application Server Platform Edition 8.2
* IBM WebSphere Application Server (WAS)
* BEA Systems WebLogic server 8
