Jakarta EE
En informatique Jakarta EE (connu, avant la version 8, sous le nom de Java EE ; et avant la version 5, sous le nom de Java 2 Enterprise Edition ou J2EE ) est un ensemble de spécifications dont les implémentations sont principalement développées dans le langage de programmation Java et largement utilisé dans la programmation Web .
Fonctionnalités
Le logiciel qui implémente cette spécification s'appelle Referencing Runtimes Jakarta EE. Auparavant, ils étaient appelés serveurs d'applications. Le changement de nom de serveur d'application en runtime de référence est dû au fait qu'avec l'architecture des microservices, une application Java autonome est lancée, sans avoir besoin d'un serveur d'application. L'implémentation peut être totale (dans ce cas appelée Full Platform) ou limitée au Web Profile, c'est-à-dire le sous-ensemble de spécifications qui a été conçu spécifiquement pour les applications Web [1] .
Initialement, la spécification encourageait la création d'applications qui suivaient une architecture multi-tiers . Cette architecture avait pour but de séparer les fonctions relatives à l'affichage des pages web de celles de gestion de la logique métier et de sauvegarde des informations sur la base de données . Depuis peu, avec des technologies comme Eclipse MicroProfile, WildFly Swarm et Payara Micro, il est également possible de développer des microservices. Cela a également conduit à un changement dans le nom donné aux implémentations : avant elles s'appelaient serveurs d'applications, faisant désormais référence à des runtimes.
Cet ensemble de spécifications a été initialement créé par Sun Microsystems, présenté par Oracle, et transféré au second semestre 2017 à la Fondation Eclipse, sous le nom d'Eclipse Enterprise for Java. [2]
EE
L'ensemble de spécifications Jakarta EE comprend de nombreuses technologies qui étendent les fonctionnalités de base de la plate -forme Java . La liste suivante ne montre pas tous les composants, mais seulement ceux qui sont les plus importants. Les seuls composants qui nécessitent strictement l'utilisation d'un runtime de référencement sont ceux d'entreprise, c'est-à-dire ceux qui nécessitent, par exemple, des transactions distribuées et des files d'attente distribuées. Les composants pour le Web et la base de données peuvent également être utilisés au sein d'un simple serveur Web .
Spécifications Web
Les composants qui entrent dans cette catégorie sont ceux liés à l'affichage des pages Web. Si vous souhaitez n'utiliser que les composants côté web, il n'est pas nécessaire de recourir à un runtime de référencement de profil complet complexe, mais il suffit d'utiliser un runtime de référencement Web Profile ou un Web Server plus épuré.
- Servlet , c'est-à-dire la technologie qui permet de transmettre des pages HTML (par exemple en utilisant la technologie Java Server Pages ) au client et d'exposer des services web ;
- Java Server Faces , un framework Web basé sur des composants qui permet le développement de sites avec des fonctionnalités AJAX.
Spécifications d'entreprise
Dans cette catégorie se trouvent les composants spécifiques à Jakarta EE. L'utilisation de ces composants n'est requise que dans les applications moyennes et grandes.
- Contextes et injection de dépendances qui vous permettent d'utiliser l'inversion de contrôle d'une manière très similaire à la façon dont vous le faites avec le framework Spring et fournissent la plupart des fonctionnalités fournies par Enterprise JavaBeans ;
- Les Enterprise JavaBeans définissent un système de composants distribués qui était au cœur de la spécification Java EE. Ce système, en fait, fournissait les caractéristiques typiques requises par les applications d' entreprise , telles que l' évolutivité , la sécurité, la persistance des données, etc. Bon nombre de ces fonctionnalités sont désormais également disponibles avec les contextes et l'injection de dépendances ;
- Le Java Message Service décrit un système d'envoi et de gestion de messages ;
- L'API de sécurité Java EE définit la gestion des utilisateurs, des mots de passe, des groupes et de l'authentification.
Spécifications du service Web
Dans Jakarta EE, il est possible de créer à la fois des services Web de type REST et de type SOAP . Les spécifications sont :
- Traitement JSON , pour traiter les informations encodées au format JavaScript Object Notation ;
- JSON Binding , pour transformer des objets Java en chaînes JavaScript Object Notation et vice versa ;
- RESTful Web Services , pour créer des services Web à l'aide d'une architecture de transfert d'état représentatif
- JAX-WS pour les services Web SOAP
- Java Architecture for XML Binding pour transformer des objets Java en chaînes XML et vice versa.
Spécifications pour interagir avec la base de données
Cette catégorie regroupe les technologies qui permettent la persistance des données au sein d'une base de données relationnelle. Les composants de cette catégorie peuvent également être utilisés en dehors d'un environnement d'exécution de référence.
- L' API Java Transaction est un système de prise en charge des transactions distribuées ;
- Java DataBase Connectivity est une interface permettant d'accéder à tout type de base de données (également incluse dans Java Platform, Standard Edition );
- L' API Java Persistence est l'ensemble des classes qui peuvent être utilisées pour gérer la persistance des données.
Programmes de base
Applet
La plate-forme Java a été l'un des premiers systèmes à fournir un support étendu pour l'exécution de code à partir de sources distantes. Une applet Java est un type spécial d'application qui peut être lancée dans le navigateur de l'utilisateur en exécutant du code téléchargé à partir d'un serveur Web distant. Ce code est exécuté dans une zone hautement restreinte ( sandbox ) pour protéger l'utilisateur du code malveillant ou qui a un comportement indésirable ; qui publie le code peut appliquer un certificat qu'il utilise pour signer numériquement les applets les déclarant "sûrs", leur donnant la permission de sortir de la zone restreinte et d'accéder au système de fichiers et au réseau, vraisemblablement avec l'approbation et sous le contrôle de l'utilisateur. En réalité, les applets n'ont pas eu beaucoup de chance. En fait, on suppose que le client sur lequel ils sont exécutés a installé le JRE qui doit exécuter le code de l'applet. Les applications qui incluent le soi-disant client léger, c'est-à-dire un client «léger» qui n'a pas besoin d'outils spéciaux pour exécuter du code à distance, parfois seul le navigateur est nécessaire, ont eu de la chance.
Servlet
En informatique , dans le cadre de la programmation Web , les servlets sont des objets écrits en langage Java qui fonctionnent au sein d'un serveur Web (ex. Tomcat , Jetty ) ou d'un serveur d'application (ex. WildFly , GlassFish ) permettant la création d' applications Web [3 ] ( traitement côté serveur ).
Le nom dérive des applets Java , de petits programmes écrits en langage Java qui s'exécutent dans le navigateur de l'utilisateur client ( traitement côté client ).
L'utilisation la plus fréquente des servlets est la génération de pages Web dynamiques en fonction des paramètres de requête envoyés par le client navigateur de l'utilisateur au serveur. Ces dernières années, aucune programmation directe des servlets n'a été effectuée, mais nous préférons utiliser des frameworks Web qui implémentent la spécification des servlets, ou des pages JavaServer qui sont ensuite traduites (compilées) en servlets au moment de l' exécution .
Implémentations certifiées
Il existe plusieurs runtimes de référencement open source, qui sont également souvent utilisés dans l'environnement de production.
Parmi les open source, on trouve :
- Apache TomEE , dont il existe une version prise en charge commercialement appelée Tomitribe
- WildFly , anciennement connu sous le nom de JBoss
- GlassFish , est l'implémentation de référence, maintenue par Oracle. Il existe une version qui a un support commercial et qui s'appelle Payara
Parmi les commerciaux, en plus de ceux listés ci-dessus :
- WebLogic d'Oracle ;
- WebSphere d'IBM ;
- Cosminexus d'Hitachi;
- le serveur d'applications Interstage de Fujitsu ;
- InfoSuite par InforBus ;
- Jeux par TmaxSoft ;
- WebOTX de NEC ;
Microservices et Eclipse MicroProfile
Eclipse MicroProfile est un projet visant à innover les spécifications Jakarta EE et à les rendre plus adaptées à une architecture de microservice, également appelée architecture de microservice [4] . L'idée est de n'exécuter que les composants de Jakarta EE strictement nécessaires à l'application en cours de développement.
Parmi les implémentations disponibles, on retrouve :
Critiques
En décembre 2016, Gartner a déclaré dans un rapport que les entreprises informatiques avaient besoin de nouvelles fonctionnalités et que Java EE n'avait pas réussi à suivre. Le rapport recommandait de développer une stratégie pour gérer l'obsolescence de Java EE. Ils s'attendent à ce que d'ici 2019, moins de 35 % des applications métier soient exécutées sur des serveurs d'applications Java EE. Cette critique a répondu que Java EE continue d'évoluer et de développer des fonctionnalités qui le rendent plus léger, en utilisant des technologies telles que MicroProfile, WildFly Swarm et Payara Micro. [dix]
Alternatives
Plusieurs autres logiciels offrent des fonctionnalités similaires, notamment :
- Framework Spring qui a des fonctionnalités extrêmement similaires à celles de Java EE;
- ASP.NET , qui peut être utilisé avec des langages tels que C # et Visual Basic.net ;
- Les frameworks Akka et Play , écrits en Scala, peuvent également être utilisés en Java ;
- Node.js , une plate-forme événementielle pour le moteur JavaScript du navigateur ;
- Vert.X, un ensemble d'outils pour développer des applications réactives sur la JVM
Remarques
- ^ Présentation du profil Web Java EE
- ^ FAQ sur Eclipse Enterprise pour Java
- ^ Présentation de la technologie Java Servlet , sur oracle.com . Consulté le 12 janvier 2014 .
- ^ Eclipse MicroProfile , sur microprofile.io . Consulté le 29 août 2017 .
- ^ WildFly Swarm , sur wildfly-swarm.io . Consulté le 29 août 2017 .
- ^ Open Liberty , sur openliberty.io . Consulté le 20 septembre 2017 .
- ^ Série Microservices : MicroProfile et Apache TomEE , sur javacodegeeks.com . Consulté le 20 septembre 2017 .
- ^ Payara Micro , sur payara.fish . Consulté le 20 septembre 2017 .
- ^ kumuluzEE , sur ee.kumuluz.com . Consulté le 20 septembre 2017 .
- ^ Le rapport de Gartner sur la disparition de Java EE est-il grandement exagéré ? , sur infoq.com . Consulté le 29 août 2017 .
Bibliographie
- ( FR ) Antonio Goncalves, Début Java EE 7 , Apress, 2013.
- Arun Gupta, Java EE 7 Essentials , O'Reilly, 2013.
Objets associés
- application Web
- Java (langage de programmation)
- JAX-WS
- Servlet
- Pages du serveur Java
- JUnit
- WAR (format de fichier)
- Cadre Web
- Persistance (informatique)
- Base de données
- Langage de requêtes structurées
- Service de messagerie Java
Liens externes
- JEE 7 : aperçu des fonctionnalités ,sur html.it. Consulté le 29 août 2017 .
- Java EE 8 : Enfin le tournant ? , sur mokabyte.it . Consulté le 29 août 2017 .
- ( FR ) Portail Java EE officiel , sur oracle.com .
- ( FR ) Tutoriel pour Java EE 7 , sur docs.oracle.com .
- ( FR ) API pour Java EE 7 , sur docs.oracle.com .