java ee, un ami qui vous veut du bien
Post on 21-Jan-2017
418 Views
Preview:
TRANSCRIPT
JAVA EE UN AMI QUI VOUS VEUT DU BIENAntoine Sabot-Durand: @antoine_sd
ANTOINE SABOT-DURAND
• Senior Software Engineer @Red Hat
• Java & OSS :
• CDI co-spec lead
• CDI community development
• Apache Deltaspike committer
• @antoine_sd
AGENDA
• Retour sur Java EE
• Mythes et réalités Java EE
• Conclusion
Previously on Java EE
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
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
JAVA EE 7 SERVERS
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
MYTHES ET RÉALITÉSSUR JAVA EE
JAVA EE EST LOURD ET LENT
Faux
JAVA EE EST LOURD ET LENTDepuis 2010
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
LE DÉVELOPPEMENT JAVA EEEST LENT, CONFUS ET COMPLIQUÉ
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)
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
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
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é
DEMO
JAVA EE EST MONOLITHIQUE
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
UNE APPROCHE “LAZY”
• WildFly n’active plus les services non utilisés.
• De même pour GlassFish et Websphere
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" : {} } $
DEMO
JAVA EE N’EST PAS ASSEZ RICHE ETEVOLUE TRES LENTEMENT
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
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
JAVA EE A UNE ARCHITECTURE BLOQUANTE
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
CONCLUSION
top related