l'écosystème java
TRANSCRIPT
L’écosystème Java
Tareq Abed Rabbo
Club Info Plus – Fac des sciences
28/4/2007
Plan
Java, c’est quoi ?
Java
Standard Edition (Java SE)
Enterprise Edition (Java EE)
Micro Edition (Java ME)
Plateforme
Java SE
JVM
API
Outils
JRE
JDK
Evolution de Java
Java SE 62006 - Scripting Language - JDBC 4.0 - JAXB 2.0JDK 1.0
1996 - Initial release
JDK 1.11997 - Java Beans - JDBC - RMI - Inner classes - AWT
J2SE 1.2 1998 - Reflection - JIT compiler - Collections - Swing - strictfp
Java SE 5.02004 - Generics - Metadata - Autoboxing - Enumerations - Varargs - Enhanced for loop - Concurrency utils - JMX
J2SE 1.42002 - assert - JAXP - regular expression - NIO
J2SE 1.32000 - HotSpot JVM - JNDI
Java SE 72008
1995Naissance de Java!
Caractéristiques
• Langage Objet– « Inspiré » par C++
– Simple
– Sûr
– Dynamique
• Machine virtuelle– Portable (Write Once Run Anywhere)
• Gestion automatique de la mémoire– Garbage Collector
• Bibliothèque standard massive– Internet
– IO
– Threads, concurrence
– Collections
– JDBC
Java Standard API
API Java standard
Multi Threads I/O
Collections XML
SQL Security
RMI Internet
Desktop Util
Critiques
• Choix langage– Pas d’héritage multiple
– Que des méthodes « virtuelles »
– Types primitifs
• Look and Feel– Applications Desktop
• Performance– Lent parce qu’interprété
Est-ce que Java est lent ?
• Java est plus récent que C, C++
• Benchmarks– Micro benchmarks
• GC générationnel
• Amélioration du compilateur– Optimisation des registres
• Amélioration du runtime– JIT
– Hot Spot
– Class Map En fait, Java n’est pas lent !
Java EE
• Spécifications standards
• Implémentations concurrentes
• Serveur d’application– Accès aux ressources (BD, Mail, …)
– Sécurité
– Transactions
– Internet
– CORBA/RMI
– Management & monitoring
Technologies Java EE Standards
API Java EE
JSP/Servlet JNDI
XML Transactions
Web Services Security
JMX JMS
JCA EJB
Qui fait Java ?
• Sun est propriétaire du trademark Java
• JCP : Java Community Process
• EC : Comité exécutive
• Membres– Entreprises
– Individus
• Groupes d’experts
• JSR: Java Specification Request – Initiation par un membre
– Approuvé pour développement par l’EC
– Early Draft
– Public Draft/Final Release
– Maintenance
JCP : EC pour Java SE et EE
Source : jcp.org
JCP
Source : jcp.org
Critiques
• Standardisation prématurée ou excessive– EJB
• Ou pas assez poussée– JTA
• Standards mort-nés– Java.util.logging
• Evolution lente– JSF
Open Source
• Communautés open source vibrants
• Souvent moteur d’innovation
• Standards de facto– Struts (maintenant dépassé)
– Spring
– Hibernate
Où va Java ?
• Langages dynamiques– Groovy
• Développement web composants– JSF
• JDK 7 : Open Source