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
- Batch 1.0
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
- JBoss EAP 7 integre maintenant ActiveMQ/Artemis
- Il s’agit d’une donation d’HornetQ à la communauté Apache ActiveMQ
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
- Evolution du standard HTTP 1.1 vers HTTP 2 (voir mes posts modulo quelque modifications 1 ou 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.