Technologies Java

Effectué

Dans cette unité, nous faisons la distinction entre les différents types de frameworks, serveurs et plateformes Java.

Spring Framework

Spring Framework est un framework d’application et un conteneur d’inversion de contrôle (IoC). Spring a été utilisé historiquement pour compléter le modèle Enterprise JavaBeans (EJB). Ses principales fonctionnalités sont les suivantes :

  • Injection de dépendances
  • Programmation orientée aspect
  • Abstraction métier

Spring Boot

Spring Boot s'exécute sur le Spring Framework et possède une configuration automatique opinionnée. Les applications Spring Boot s’exécutent en mode autonome et sont idéales pour les microservices.

Spring Data

Spring Data simplifie l’accès aux données pour les bases de données relationnelles et non relationnelles, les frameworks MapReduce et les services de données basés sur le cloud.

Spring Security

Spring Security est la norme de facto pour sécuriser les applications spring. Il offre un niveau élevé d’authentification et de contrôle d’accès. Par exemple, Spring Security s’intègre bien à Active Directory.

Cloud Spring

Spring Cloud est utilisé pour les systèmes distribués. Spring Cloud est fourni avec la découverte de services, la gestion de la configuration, la supervision et une bonne expérience de développement.

Spring Batch

Spring Batch est une infrastructure légère pour les applications de traitement par lots robustes qui sont essentielles pour les opérations quotidiennes.

MicroProfile et Jakarta EE

Vous pouvez consulter MicroProfile et Jakarta Enterprise Edition (EE) comme suivi open source des spécifications Java EE.

MicroProfile est un ensemble de spécifications pour les architectures de microservice. Il s’appelle lui-même un forum ouvert pour optimiser Enterprise Java pour une architecture de microservices. MicroProfile vise à innover dans plusieurs implémentations et à collaborer sur des domaines d’intérêt communs.

Jakarta EE est un ensemble de spécifications pour la création d’applications d’entreprise. Sa structure modulaire permet aux développeurs de créer des solutions logicielles efficaces. Vous pouvez empaqueter des applications Jakarta EE en tant que fichiers EAR ou WAR.

Le profil web est un sous-ensemble de Jakarta EE pour les services principaux avec un focus web, mais ne vous inquiétez pas ! Vous pouvez ajouter des API spécifiques de la plateforme d’entreprise en plus de celle-ci.

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 Java Servlet. 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 pour le développement, le déploiement et l’exécution d’applications d’entreprise. Weblogic Server offre une implémentation robuste et mature de Java EE et Jakarta EE.

  • Red Hat JBoss Enterprise Application Platform (JBoss EAP) offre une sécurité et des performances d’entreprise pour les implémentations locales et virtuelles, ou dans des clouds privés, publics ou hybrides.

  • WildFly est la version amont open source de JBoss EAP. Cette variété pilotée par la communauté est idéale pour le développement et les tests.

  • IBM WebSphere Application Server (WAS) est un environnement de runtime de serveur Java flexible et riche en sécurité pour les applications d’entreprise. Il se concentre sur la fiabilité élevée. Il prend en charge les microservices et les modèles de programmation basés sur des normes. Vous pouvez moderniser à votre propre rythme, gagner en visibilité sur les charges de travail, analyser les applications d’entreprise et avancer votre parcours vers Kubernetes.

  • Open Liberty est la version open source basée sur la communauté de WAS.

  • Oracle GlassFish est l’implémentation de référence de nombreuses normes web Java EE (y compris Servlet et JSP).

Autres frameworks pour les architectures orientées microservice

  • Netty est une infrastructure client/serveur non bloquante (NIO). Il permet un développement rapide et facile d’applications réseau telles que les serveurs de protocole et les clients. Il simplifie et rationalise considérablement la programmation réseau, tels que les serveurs de socket TCP et UDP. Netty est une infrastructure d’application réseau asynchrone basée sur les événements pour le développement rapide de serveurs de protocole et de clients à haute performance pouvant être gérés.

  • Quarkus est une pile Java native Kubernetes conçue pour OpenJDK HotSpot et GraalVM. Quarkus gagne de plus en plus d’ampleur. De cette façon, il existe des frameworks plus axés sur les performances, comme 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 propose un runtime d'injection de dépendances et de programmation orientée aspect qui n’utilise pas de réflexion, ce qui facilite l’exécution des applications Micronaut sur GraalVM.