Java EE, un ami qui vous veut du bien

29
JAVA EE UN AMI QUI VOUS VEUT DU BIEN Antoine Sabot-Durand: @antoine_sd

Transcript of Java EE, un ami qui vous veut du bien

Page 1: Java EE, un ami qui vous veut du bien

JAVA EE UN AMI QUI VOUS VEUT DU BIENAntoine Sabot-Durand: @antoine_sd

Page 2: Java EE, un ami qui vous veut du bien

ANTOINE SABOT-DURAND

• Senior Software Engineer @Red Hat

• Java & OSS :

• CDI co-spec lead

• CDI community development

• Apache Deltaspike committer

• @antoine_sd

Page 3: Java EE, un ami qui vous veut du bien

AGENDA

• Retour sur Java EE

• Mythes et réalités Java EE

• Conclusion

Page 4: Java EE, un ami qui vous veut du bien

Previously on Java EE

Page 5: Java EE, un ami qui vous veut du bien

JAVA EE HISTORY

1998 1999 2000 2001 2002 2003 2004 2005

Java Professional Edition

J2EE 1.212/12/1999

J2EE 1.309/24/2001

J2EE 1.411/11/2003

2008 2009 2010 2011

Java EE 505/11/2006

Java EE 612/10/2009

2012 2013

Java EE 706/22/2013

2014 2015

2006

2016

2007

2017

Java EE 8… 2017

Page 6: Java EE, un ami qui vous veut du bien

JAVA EE 7 JSR

EJB 3.2

Servlet 3.1

CDI Extensions

Bea

n Va

lidat

ion

1.1

Batch 1.0

Web Fragments

JCA 1.7JMS 2.0JPA 2.1

Managed Beans 1.0

Concurrency 1.0Common Annotations 1.1

Interceptors 1.2, JTA 1.2CDI 1.1

JSF 2.2,JSP 2.3,EL 3.0

JAX-RS 2.0, JAX-WS 2.2 JSON 1.0 WebSocket

1.0

Page 7: Java EE, un ami qui vous veut du bien

JAVA EE 7 SERVERS

Page 8: Java EE, un ami qui vous veut du bien

JBOSS WILDFLY• Nouveau nom de JBoss AS

• Dénomination pour éviter la confusion avec JBoss EAP

• Supporte Java EE 7

• Rapide, Léger, administration polyvalente

• Developer Friendly

• Open Source

Page 9: Java EE, un ami qui vous veut du bien

MYTHES ET RÉALITÉSSUR JAVA EE

Page 10: Java EE, un ami qui vous veut du bien

JAVA EE EST LOURD ET LENT

Page 11: Java EE, un ami qui vous veut du bien

Faux

JAVA EE EST LOURD ET LENTDepuis 2010

Page 12: Java EE, un ami qui vous veut du bien

Temps de démarrage à vide Server Java EE JBoss

JBoss AS 5.1.0Java EE 5

JBoss AS 7.1.1Java EE 6

Wildfly 9.0.1Java EE 7

0ms 4000ms 8000ms 12000ms 16000ms

2 346

2 960

16 000

Page 13: Java EE, un ami qui vous veut du bien

LE DÉVELOPPEMENT JAVA EEEST LENT, CONFUS ET COMPLIQUÉ

Page 14: Java EE, un ami qui vous veut du bien

LES CRITIQUES

• Modèle de programmation pas clair

• Code difficile à tester ou débuger

• Le redéploiement systématique de l’appli est pénalisant (parce que Java EE c’est lent)

Page 15: Java EE, un ami qui vous veut du bien

MODÈLE DE PROGRAMMATION

• Depuis Java EE 6, CDI est le modèle de programmation par défaut

• Adopté ou supportant les spécifications majeure (JPA, JAX-RS, Servlet, JSF…), il est devenu le ciment de la plateforme

Page 16: Java EE, un ami qui vous veut du bien

TEST ET DEBUG

• Eclipse, NetBeans et IntelliJ permettent tous de débuger du code s’exécutant dans dans un navigateur

• JBoss Arquillian est la solution pour pouvoir tester du code nécessitant un ou plusieurs container

Page 17: Java EE, un ami qui vous veut du bien

REDÉPLOIEMENT

• JRebel permet de réduire considérablement le redéploiement de l’application

• Version personnelle gratuite

• Fonctionne avec les 3 principaux IDE du marché

Page 18: Java EE, un ami qui vous veut du bien

DEMO

Page 19: Java EE, un ami qui vous veut du bien

JAVA EE EST MONOLITHIQUE

Page 20: Java EE, un ami qui vous veut du bien

SUR LE TERRAIN…

• Aujourd’hui, tous les serveurs d’application sont modulaires et permettent de définir sa propre stack

• GlassFish a ouvert la voie avec son architecture OSGi

• WildFly utilise un mécanisme similaire (JBoss Module)

• Websphere Liberty a également sa solution

Page 21: Java EE, un ami qui vous veut du bien

UNE APPROCHE “LAZY”

• WildFly n’active plus les services non utilisés.

• De même pour GlassFish et Websphere

Page 22: Java EE, un ami qui vous veut du bien

WILDLFY EST PATCHABLE

$ jboss-cli.sh --command="patch apply ~/Downloads/wildfly-10.0.0.Beta2-weld-3.0.0.Alpha13-patch.zip" { "outcome" : "success", "result" : {} } $

Page 23: Java EE, un ami qui vous veut du bien

DEMO

Page 24: Java EE, un ami qui vous veut du bien

JAVA EE N’EST PAS ASSEZ RICHE ETEVOLUE TRES LENTEMENT

Page 25: Java EE, un ami qui vous veut du bien

JAVA EE N’EST PAS ASSEZ RICHE

• C’est vrai, mais la plateforme n’a pas vocation à être complète

• Chaque serveur dispose de spécificité qui viennent compléter la plateforme

• Java EE est la base de la plateforme, le standard sur lequel les éditeurs construisent leur plateforme

Page 26: Java EE, un ami qui vous veut du bien

JAVA EE EVOLUE LENTEMENT

• C’est vrai… et faux depuis Java EE 6

• L’arrivée de CDI marque l’ajout dans Java EE d’un système d’extension portable

• Java EE a désormais un ADN de mutable

Page 27: Java EE, un ami qui vous veut du bien

JAVA EE A UNE ARCHITECTURE BLOQUANTE

Page 28: Java EE, un ami qui vous veut du bien

SUR LE TERRAIN…• Servlet 3.0 (Java EE 6) → servlet asynchrones

• EJB 3.1 (Java EE 6) → traitement asynchrone avec @Asynchronous

• Servlet 3.1 (Java EE 7) → utilisation des API I/O non bloquantes

• JAX-RS 2.0 (Java EE 7) → traitement asynchrone avec callback

• Concurrent utilities (Java EE 7) → Création de threads managées

Page 29: Java EE, un ami qui vous veut du bien

CONCLUSION