Technologies Java
Dans cette unité, nous faisons la distinction entre les différents types d’infrastructures, de serveurs et de plateformes Java.
Spring Framework
Spring Framework est à la fois un framework d’application et un conteneur d’inversion de contrôle. Spring a été historiquement utilisé pour compléter le modèle Enterprise JavaBeans (EJB). Ses fonctionnalités principales sont les suivantes :
- Injection de dépendances
- Programmation orientée aspect
- Abstraction métier
Spring Boot
Spring Boot s’exécute par-dessus l’infrastructure Spring et a une configuration automatique stricte. Les applications Spring Boot s’exécutent de façon autonome et conviennent parfaitement aux microservices.
Spring Data
Spring Data simplifie l’accès aux données pour les bases de données relationnelles ou non, les infrastructures MapReduce et les services de données cloud.
Sécurité Spring
Spring Security est un standard de facto pour la sécurisation des applications basées sur Spring. Il offre un niveau élevé d’authentification et de contrôle d’accès. Par exemple, Spring Security s’intègre parfaitement à Active Directory.
Spring Cloud
Spring Cloud est utilisé pour les systèmes distribués. Spring Cloud est fourni avec la découverte de service, l’analyse de la gestion de la configuration et une bonne expérience de développement.
Spring Batch
Spring Batch est un framework léger destiné aux applications de traitement par lot robustes qui sont vitales pour les opérations quotidiennes.
MicroProfile et Jakarta EE
MicroProfile et Jakarta Enterprise Edition (EE) peuvent être considérés comme les successeurs open source des spécifications Java EE.
MicroProfile est un ensemble de spécifications pour les architectures de microservices, qui se qualifie de forum ouvert visant à optimiser Java en entreprise pour une architecture de microservices. MicroProfile a pour but d’innover sur plusieurs implémentations et de collaborer sur des domaines d’intérêt communs.
Jakarta EE est un ensemble de spécifications pour la génération d’applications d’entreprise. Sa structure modulaire permet aux développeurs de créer des solutions logicielles efficaces. Vous pouvez empaqueter les applications Jakarta EE en tant que fichiers EAR ou fichiers WAR.
WebProfile est un sous-ensemble de Jakarta EE pour les services back-end avec une orientation web, mais ne vous inquiétez pas ! Vous pouvez y ajouter des API de la plateforme d’entreprise.
Serveurs d’applications
Les applications Java EE doivent être déployées sur des serveurs d’applications compatibles Java EE (WebLogic, WebSphere, WildFly, GlassFish, Payara, etc.).
Apache Tomcat est un serveur HTTP et un conteneur de servlet Java. Il implémente les spécifications Servlet, Java Server Pages (JSP), Java Expression Language et Java WebSocket.
Oracle WebLogic Server est une plateforme unifiée et extensible de développement, de déploiement et d’exécution d’applications d’entreprise. WebLogic Server constitue une implémentation robuste et avancée de Java EE et Jakarta EE.
La plateforme d’application Red Hat JBoss Enterprise offre un niveau de sécurité et de performance adapté aux grandes entreprises, aussi bien pour des implémentations locales que virtuelles, dans un cloud privé, public ou hybride.
WildFly est la version open source en amont de JBoss EAP. Cette version communautaire est idéale pour le développement et les tests.
IBM WebSphere Application Server (WAS) est un environnement d’exécution de serveur Java flexible et sécurisé pour les applications d’entreprise. Il se concentre sur la haute fiabilité. Il prend en charge les microservices et les modèles de programmation basés sur des standards. Vous pouvez vous moderniser à votre rythme, obtenir une meilleure visibilité des charges de travail, analyser les applications d’entreprise et passer progressivement à Kubernetes.
Open Liberty, est la version open source et communautaire du WAS.
Oracle GlassFish est l’implémentation de référence de plusieurs normes web Java EE (y compris Servlet et JSP).
Autres frameworks pour les architectures orientées microservices
Netty est un framework client-serveur d’E/S non bloquantes (NIO). Il permet de développer rapidement et facilement des applications réseau telles que des clients et des serveurs de protocole. Il simplifie considérablement la programmation réseau, comme celle liée aux serveurs de sockets TCP et UDP. Netty est un framework d’application réseau asynchrone basé sur les événements, qui permet de développer rapidement des clients et des serveurs de protocole haute performance.
Quarkus est une pile Java native Kubernetes conçue pour OpenJDK HotSpot et GraalVM. Quarkus prend de plus en plus d’ampleur. Il existe au passage d’autres infrastructures axées sur les performances comme celles-ci, par exemple, Vert.x, Helidon, Payara Micro et KumuluzEE.
Micronaut est un framework moderne full-stack basé sur JVM qui permet de créer des applications modulaires et facilement testables de type microservice et serverless. Micronaut comprend une injection de dépendances et un runtime de programmation orientée aspect qui n’utilise aucune réflexion. Les applications Micronaut s’exécutent ainsi plus facilement sur GraalVM.