Java EE, un ami qui vous veut du bien
-
Upload
antoine-sabot-durand -
Category
Software
-
view
420 -
download
1
Transcript of Java EE, un ami qui vous veut du bien
![Page 1: Java EE, un ami qui vous veut du bien](https://reader038.fdocuments.net/reader038/viewer/2022103104/58835d771a28ab42678b6b6d/html5/thumbnails/1.jpg)
JAVA EE UN AMI QUI VOUS VEUT DU BIENAntoine Sabot-Durand: @antoine_sd
![Page 2: Java EE, un ami qui vous veut du bien](https://reader038.fdocuments.net/reader038/viewer/2022103104/58835d771a28ab42678b6b6d/html5/thumbnails/2.jpg)
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](https://reader038.fdocuments.net/reader038/viewer/2022103104/58835d771a28ab42678b6b6d/html5/thumbnails/3.jpg)
AGENDA
• Retour sur Java EE
• Mythes et réalités Java EE
• Conclusion
![Page 4: Java EE, un ami qui vous veut du bien](https://reader038.fdocuments.net/reader038/viewer/2022103104/58835d771a28ab42678b6b6d/html5/thumbnails/4.jpg)
Previously on Java EE
![Page 5: Java EE, un ami qui vous veut du bien](https://reader038.fdocuments.net/reader038/viewer/2022103104/58835d771a28ab42678b6b6d/html5/thumbnails/5.jpg)
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](https://reader038.fdocuments.net/reader038/viewer/2022103104/58835d771a28ab42678b6b6d/html5/thumbnails/6.jpg)
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](https://reader038.fdocuments.net/reader038/viewer/2022103104/58835d771a28ab42678b6b6d/html5/thumbnails/7.jpg)
JAVA EE 7 SERVERS
![Page 8: Java EE, un ami qui vous veut du bien](https://reader038.fdocuments.net/reader038/viewer/2022103104/58835d771a28ab42678b6b6d/html5/thumbnails/8.jpg)
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](https://reader038.fdocuments.net/reader038/viewer/2022103104/58835d771a28ab42678b6b6d/html5/thumbnails/9.jpg)
MYTHES ET RÉALITÉSSUR JAVA EE
![Page 10: Java EE, un ami qui vous veut du bien](https://reader038.fdocuments.net/reader038/viewer/2022103104/58835d771a28ab42678b6b6d/html5/thumbnails/10.jpg)
JAVA EE EST LOURD ET LENT
![Page 11: Java EE, un ami qui vous veut du bien](https://reader038.fdocuments.net/reader038/viewer/2022103104/58835d771a28ab42678b6b6d/html5/thumbnails/11.jpg)
Faux
JAVA EE EST LOURD ET LENTDepuis 2010
![Page 12: Java EE, un ami qui vous veut du bien](https://reader038.fdocuments.net/reader038/viewer/2022103104/58835d771a28ab42678b6b6d/html5/thumbnails/12.jpg)
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](https://reader038.fdocuments.net/reader038/viewer/2022103104/58835d771a28ab42678b6b6d/html5/thumbnails/13.jpg)
LE DÉVELOPPEMENT JAVA EEEST LENT, CONFUS ET COMPLIQUÉ
![Page 14: Java EE, un ami qui vous veut du bien](https://reader038.fdocuments.net/reader038/viewer/2022103104/58835d771a28ab42678b6b6d/html5/thumbnails/14.jpg)
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](https://reader038.fdocuments.net/reader038/viewer/2022103104/58835d771a28ab42678b6b6d/html5/thumbnails/15.jpg)
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](https://reader038.fdocuments.net/reader038/viewer/2022103104/58835d771a28ab42678b6b6d/html5/thumbnails/16.jpg)
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](https://reader038.fdocuments.net/reader038/viewer/2022103104/58835d771a28ab42678b6b6d/html5/thumbnails/17.jpg)
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](https://reader038.fdocuments.net/reader038/viewer/2022103104/58835d771a28ab42678b6b6d/html5/thumbnails/18.jpg)
DEMO
![Page 19: Java EE, un ami qui vous veut du bien](https://reader038.fdocuments.net/reader038/viewer/2022103104/58835d771a28ab42678b6b6d/html5/thumbnails/19.jpg)
JAVA EE EST MONOLITHIQUE
![Page 20: Java EE, un ami qui vous veut du bien](https://reader038.fdocuments.net/reader038/viewer/2022103104/58835d771a28ab42678b6b6d/html5/thumbnails/20.jpg)
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](https://reader038.fdocuments.net/reader038/viewer/2022103104/58835d771a28ab42678b6b6d/html5/thumbnails/21.jpg)
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](https://reader038.fdocuments.net/reader038/viewer/2022103104/58835d771a28ab42678b6b6d/html5/thumbnails/22.jpg)
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](https://reader038.fdocuments.net/reader038/viewer/2022103104/58835d771a28ab42678b6b6d/html5/thumbnails/23.jpg)
DEMO
![Page 24: Java EE, un ami qui vous veut du bien](https://reader038.fdocuments.net/reader038/viewer/2022103104/58835d771a28ab42678b6b6d/html5/thumbnails/24.jpg)
JAVA EE N’EST PAS ASSEZ RICHE ETEVOLUE TRES LENTEMENT
![Page 25: Java EE, un ami qui vous veut du bien](https://reader038.fdocuments.net/reader038/viewer/2022103104/58835d771a28ab42678b6b6d/html5/thumbnails/25.jpg)
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](https://reader038.fdocuments.net/reader038/viewer/2022103104/58835d771a28ab42678b6b6d/html5/thumbnails/26.jpg)
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](https://reader038.fdocuments.net/reader038/viewer/2022103104/58835d771a28ab42678b6b6d/html5/thumbnails/27.jpg)
JAVA EE A UNE ARCHITECTURE BLOQUANTE
![Page 28: Java EE, un ami qui vous veut du bien](https://reader038.fdocuments.net/reader038/viewer/2022103104/58835d771a28ab42678b6b6d/html5/thumbnails/28.jpg)
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](https://reader038.fdocuments.net/reader038/viewer/2022103104/58835d771a28ab42678b6b6d/html5/thumbnails/29.jpg)
CONCLUSION