Jakarta EE est défini par sa spécification . Celle-ci définit les API (interfaces de programmation d'applications) et leurs interactions. Comme pour les autres spécifications du Java Community Process , les fournisseurs doivent satisfaire à certaines exigences de conformité pour que leurs produits soient déclarés conformes à Jakarta EE .
Voici quelques exemples de contextes dans lesquels les environnements d'exécution référencés Jakarta EE sont utilisés : commerce électronique , comptabilité , systèmes d'information bancaire .
Sun Microsystems était connue sous le nom de Java 2 Platform, Enterprise Edition ou J2EE à partir de la version 1.2, jusqu'à ce que son nom soit changé en Java Platform, Enterprise Edition ou Java EE dans la version 1.5.Après l'acquisition de Sun en 2009 , Java EE a été maintenu par Oracle dans le cadre du Java Community Process . Le 12 septembre 2017, Oracle Corporation a annoncé son intention de confier Java EE à la Fondation Eclipse . Le projet Eclipse de haut niveau a été nommé Eclipse Enterprise for Java (EE4J). La Fondation Eclipse n'a pas pu s'entendre avec Oracle concernant l'utilisation des Java et capitale de l'Indonésie . Il ne faut pas confondre ce nom avec l'ancien projet Jakarta , qui a soutenu plusieurs projets Java, actuels et anciens, au sein de la Fondation Apache .
| Version de la plateforme | Version | Spécification | Sécurité basée sur HTTP/2 et CDI | |
|---|---|---|---|---|
| Java EE 7 | 28/05/2013 | JSR 342 | Java SE 7 | Prise en charge de WebSocket , JSON et HTML5 |
| Java EE 6 | 10 décembre 2009 | JSR 316 | Java SE 6 | Beans gérés par CDI et REST |
| Java EE 5 | 11 mai 2006 | JSR 244 | Java SE 5 | Annotations Java et génériques en Java |
| J2EE 1.4 | 11 novembre 2003 | JSR 151 | J2SE 1.4 | Services Web interopérables WS-I |
| J2EE 1.3 | 24/09/2001 | JSR 58 | J2SE 1.3 | Architecture du connecteur Java |
| J2EE 1.2 | 17 décembre 1999 | 1.2 | J2SE 1.2 | Version initiale des spécifications |
Caractéristiques
Jakarta EE comprend plusieurs spécifications qui servent différents objectifs, comme la génération de pages web, la lecture et l'écriture dans une base de données de manière transactionnelle et la gestion des files d'attente distribuées.
Les API Jakarta EE incluent plusieurs technologies qui étendent les fonctionnalités des API Java SE de base , telles que Jakarta Enterprise Beans , les connecteurs , les servlets , Jakarta Server Pages et plusieurs technologies de services Web .
Spécifications Web
- Jakarta Servlet : définit la manière de gérer les requêtes HTTP, de façon synchrone ou asynchrone. Il s’agit d’un composant de bas niveau dont dépendent d’autres spécifications Jakarta EE ;
- Jakarta WebSocket : spécification d’API qui définit un ensemble d’API pour gérer les connexions WebSocket ;
- Jakarta Faces : une technologie permettant de construire des interfaces utilisateur à partir de composants ;
- Jakarta Expression Language ( EL ) est un langage simple conçu initialement pour répondre aux besoins spécifiques des développeurs d'applications web. Il est utilisé notamment dans Jakarta Faces pour lier les composants aux beans (de support) et dans Contexts et l'injection de dépendances aux beans nommés, mais peut être utilisé sur l'ensemble de la plateforme.
Spécifications des services Web
- Jakarta RESTful Web Services fournit une assistance pour la création de services Web selon le modèle architectural de transfert d'état représentationnel (REST) ;
- Jakarta JSON Processing est un ensemble de spécifications permettant de gérer les informations encodées au format JSON ;
- Jakarta JSON Binding fournit des spécifications pour convertir des informations JSON en ou depuis des classes Java ;
- Jakarta XML Binding permet de mapper du XML vers des objets Java ;
- Les services Web XML Jakarta peuvent être utilisés pour créer des services Web SOAP.
Spécifications d'entreprise
- Jakarta Activation ( JAF ) spécifie une architecture permettant d'étendre les composants Beans en fournissant le typage des données et les liaisons de ces types.
- Jakarta Contexts and Dependency Injection ( CDI ) est une spécification visant à fournir un conteneur d'injection de dépendances ;
- La spécification Jakarta Enterprise Beans ( EJB ) définit un ensemble d'API légères qu'un conteneur d'objets (le conteneur EJB) prend en charge pour gérer les transactions (via JTA ), les appels de procédure distante (via RMI ou RMI-IIOP ), le contrôle de la concurrence , l'injection de dépendances et le contrôle d'accès aux objets métier. Ce package contient les classes et interfaces Jakarta Enterprise Beans qui définissent les contrats entre l'Enterprise Bean et ses clients, ainsi qu'entre l'Enterprise Bean et le conteneur EJB.
- Jakarta Persistence ( JPA ) sont des spécifications concernant le mappage objet-relationnel entre les tables de bases de données relationnelles et les classes Java.
- Jakarta Transactions ( JTA ) contient les interfaces et les annotations permettant d'interagir avec la prise en charge des transactions offerte par Jakarta EE. Bien que cette API fasse abstraction des détails de bas niveau de l'implémentation de la norme X/Open XA , les interfaces sont également considérées comme étant de bas niveau et le développeur d'applications moyen dans Jakarta EE est supposé soit s'appuyer sur une gestion transparente des transactions par les abstractions EJB de plus haut niveau, soit utiliser les annotations fournies par cette API en combinaison avec des beans gérés par CDI.
- Jakarta Messaging ( JMS ) fournit un moyen commun aux programmes Java de créer, d'envoyer, de recevoir et de lire les messages d'un système de messagerie d'entreprise.
Autres spécifications
- Validation Jakarta : ce package contient les annotations et les interfaces pour la prise en charge de la validation déclarative offerte par l’ API JSF le fait dans la couche de présentation.
- Jakarta Batch offre les moyens de réaliser un traitement par lots dans les applications afin d'exécuter des tâches de fond de longue durée impliquant potentiellement un grand volume de données et pouvant nécessiter une exécution périodique.
- Jakarta Connectors est un outil Java permettant de connecter les serveurs d'applications et les systèmes d'information d'entreprise ( SIE ) dans le cadre de l'intégration d'applications d'entreprise ( EAI ). Il s'agit d'une API de bas niveau destinée aux fournisseurs avec lesquels le développeur d'applications moyen n'a généralement pas de contact.
Profil Web
Afin de limiter l'encombrement des conteneurs web, tant physique que conceptuel, le profil web a été créé ; il s'agit d'un sous-ensemble des spécifications Jakarta EE. Le profil web Jakarta EE comprend les éléments suivants :
| Spécification | Java EE 6 | Java EE 7 | Java EE 8 Jakarta EE 8 | Jakarta EE 9 Jakarta EE 9,1 | Jakarta EE 10 | Jakarta EE 11 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Servlet Jakarta | 3.0 | 3.1 | 4.0 | 5.0 | 6.0 | 6.1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Pages serveur Jakarta ( JSP ) | 2.2 | 2.3 | 2.3 | 3.0 | 3.1 | 4.0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Langue d'expression de Jakarta ( EL ) | 2.2 | 3.0 | 3.0 | 4.0 | 5.0 | 6.0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Bibliothèque de balises standard Jakarta ( JSTL ) | 1.2 | 1.2 | 1.2 | 2.0 | 3.0 | 3.0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Visages de Jakarta | 2.0 | 2.2 | 2.3 | 3.0 | 4.0 | 4.1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Services Web RESTful de Jakarta ( JAX-RS ) | 1.1 | 2.0 | 2.1 | 3.0 | 3.1 | 4.0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Jakarta Enterprise Beans ( EJB ) | 3.1 Lite | 3.2 Lite | 3.2 Lite | 4.0 Lite | 4.0 Lite | 4.0 Lite | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Transactions de Jakarta ( JTA ) | 1.1 | 1.2 | 1.2 | 2.0 | 2.0 | 2.0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Persistance de Jakarta ( JPA ) | 2.0 | 2.1 | 2.2 | 3.0 | 3.1 | 3.2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Validation des beans Jakarta | 1.0 | 1.1 | 2.0 | 3.0 | 3.0 | 3.1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| N / A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Contextes et injection de dépendances Jakarta ( CDI ) | 1.0 | 1.1 | 2.0 | 3.0 | 4.0 | 4.1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
les connecteurs , le clustering , la tolérance aux pannes , la haute disponibilité , la sécurité , etc.), la taille installée, l'empreinte mémoire , le temps de démarrage, etc.Jakarta EE
Java EE
|