Cela fait exactement 5 ans que je travaille pour Red Hat et pour mon cadeau d’anniversaire Red Hat vient de sortir sa nouvelle version de son serveur d’application phare à savoir JBoss EAP 7. Cette nouvelle version de JBoss EAP 7 presente certaine evolutions interessantes par rapport à la version 6, tout en gradant la philosophie et l’architecture générale du serveur d’application. Nous allons voir dans ce post les principaux elements qui me semblent le plus interessant à retenir de cette nouvelle version.

Java EE7

  • JBoss EAP 7 implemente les standards Java EE 7
    • Batch 1.0
      • Pour la création et le management des services de batch en Java
    • WebSocket 1.1
      • Pour la creation d’application en mode push
    • JMS 2.0
      • Evolution du standard de JMS
    • JAX-WS 2.2
      • Pour le developpement des Webservices basés sur SOAP
    • JAX-RS 2.0
      • Pour le developpement des services REST
    • CDI 1.2
      • Injection de dependance via Weld
    • JSF 2.2
      • Pour les applications de type IHM / Web

Compatibilité et Interoperabilité

  • Les clients EJB, JMS et WS seront compatible entre toutes les versions mineures de JBoss EAP 7.
    • Cela va facilité les migrations progressives entre les versions mineures de JBoss EAP 7.
  • JBoss EAP 7 a la possibilité de manager des instances JBoss EAP 6 et des toutes les versions JBoss EAP 7.
    • Cela va aussi permettre la montée de version de la 6 vers la 7 pour les clients utilisants le mode domaine.
  • Outil de migration de la configuration EAP 6 vers EAP 7
    • Il est possible d’utiliser une configuration EAP 6 pour effectuer la migration de celle-ci vers une version EAP 7

Management

  • L’IHM de la console d’administration a été revue, simplifié et unifié.
    • La web console est plus claire et moins confuse.
  • Les fichiers de logs sont disponibles sous la forme d’une resource.
    • Il n’est pas necessaire de se connecter via SSH pour récuperer les fichiers de logs
  • Le mode offline autorise la modification du serveur via la CLI sans ouvrir de port TCP
    • Cette option securise et facilite la configuration interne des instances JBoss.

Moteur HTTP

  • Remplacement de JBoss Web (moteur tomcat) par Undertow
    • Undertow utilise nativement les lib NIO
  • Support des handlers bloquant ou non bloquant, des servlet syncrhone et asynchrone et websocket (JSR 356)
  • Configuration d’Undertow comme loadbalancer pour des intances en back office
    • Undertow permet dans ce cas de supprimer le traditionnel serveur Apache en frontal

Broker JMS

Java 8

  • La version JBoss EAP 7 necessite une machine virtuelle Java 8 à minima
    • Support de OpenJDK (RHEL / Linux), Oracle JDK (Windows), IBM JDK (AIX) et HP JDK (HP-UX)

Server Suspend Mode/Graceful Shutdown

  • JBoss EAP 7 permet maintenant de gerer correctement l’arret du serveur.
    • Le systeme dans ce mode refuse les nouvelles sessions (HTTP) mais laisse les anciennes toujours actives.
    • Cela va donc facilité la montée de version des applications et/ou du serveur sans arrêt complete des services (rolling upgrade).

Reduction des ports

  • Le serveur JBoss EAP 7 expose maintenant que 2 ports seulement
    • Un port de Management et un port Applicatif
  • Il utilise le mécanisme d’upgrade du protocole HTTP
  • Cela est relativement utile dans un monde conteneurisé (Docker / Openshift)

Tech preview

  • Support du protocole HTTP/2
  • Singleton MDB en mode cluster
    • Possibilité d’avoir un Message Driven Bean unique sur cluster
  • PowerShell Scripts
    • Possibilité de scripter avec le shell de Windows

Conclusion

Cette nouvelle version EAP 7 est c’est vrai plus un grosse evolution du produit qu’une revolution de paradigme. Cela va facilité les différents utilisateurs à migrer plus rapidement leur parc de JBoss EAP 6. Les nombreux quickstarts disponibles permettent aux developpeurs la prise en main rapide des différentes fonctionnalités de JBoss EAP 7.

Lien Utile