quelles évolutions fonderont l’avenir des serveurs d’application ?
Post on 05-Jul-2015
153 Views
Preview:
DESCRIPTION
TRANSCRIPT
Quelles évolutions fonderont l’avenir
des serveurs d’application ?
Marc Bojoly, Rudy Krol
Des concurrents au modèle de programmation JEE
Apparition des « Rails like »
Productivité des développements
Les conteneurs web en pleine expansion
Des serveurs d’application de plus en plus modulaires
Modularité dans les applications
L’architecture en grille : une alternative au 3-tiers ?
Google App Engine : le futur serveur d’application ?
Le cloud dans votre SI
Modèle de programmation
Modularité
Middleware
Des concurrents au modèle de programmation JEE
Apparition des « Rails like »
Productivité des développements
Les conteneurs web en pleine expansion
Des serveurs d’application de plus en plus modulaires
Modularité dans les applications
L’architecture en grille : une alternative au 3-tiers ?
Google App Engine : le futur serveur d’application ?
Le cloud dans votre SI
Du conteneur lourd au conteneur léger
4
Conteneur lourd
Serveurd’applicationJ2EE
EJB
Modèle de programmation J2EE
EJB EJB
JVM
### ### ### ###### ### ###Services support
© OCTO Technology - Université du Système d’Information
Du conteneur lourd au conteneur léger
5
JVM
POJO
Spring
POJO POJO
Conteneur lourd
Serveurd’applicationJ2EE
Frameworkapplicatif
Conteneur léger
EJB
Modèle de programmation J2EE
EJB EJB
JVM
### ### ### ###### ### ###Services support
© OCTO Technology - Université du Système d’Information
Du conteneur lourd au conteneur léger
6
JVM
Conteneur lourd
Serveurd’applicationJ2EE
### ### ### ###### ### ###Services support
Conteneur léger
EJB
Modèle de programmation J2EE
EJB EJB
JVM
### ### ### ###### ### ###Services support
JVM
POJO
Spring
POJO POJO
POJO
Spring
POJO POJO
© OCTO Technology - Université du Système d’Information
Java EE et les frameworks OpenSource
7
JCP
Frameworks OpenSource
mai 1998 J2EE 1.2dec 1999
J2EE 1.3sep 2001
J2EE 1.4nov 2003
Java EE 5mai 2006
Standard
Propriétaire
Influence
Légende :
Spring → EJB3Hibernate → JPA
© OCTO Technology - Université du Système d’Information
Que reste-t-il aux serveurs d’application?
Gérer l’accès aux ressources
Fournir un cadre pour l’administration
Fournir des services de middleware
8
Pool de threads
Packaging & déploiement
HTTP
© OCTO Technology - Université du Système d’Information
Notre vision
Les standards de fait
• Forment l’état de l’art
• Inspirent le standard
• Testables en dehors du middleware
9
Performance
Productivité
Scalabilité
© OCTO Technology - Université du Système d’Information
Des concurrents au modèle de programmation JEE
Apparition des « Rails like »
Productivité des développements
Les conteneurs web en pleine expansion
Des serveurs d’application de plus en plus modulaires
Modularité dans les applications
L’architecture en grille : une alternative au 3-tiers ?
Google App Engine : le futur serveur d’application ?
Le cloud dans votre SI
Influence de « Ruby on Rails »
11
JCP
Standard
Propriétaire
Influence
Légende :
Frameworks OpenSource
Ruby on Rails
JRuby on Rails
mai 1998 J2EE 1.2dec 1999
J2EE 1.3sep 2001
J2EE 1.4nov 2003
Java EE 5mai 2006
© OCTO Technology - Université du Système d’Information
Expressivité de Grails face à Java
12© OCTO Technology - Université du Système d’Information
Les « Rails like » plus productifs que Java
13
Java « Rails like »
Round 1 : Langage
Beaucoup de code Java et XML
Langage de scripting concis
Round 2 : Architecture logicielle
Assemblage de frameworks à
construireClé en main
Round 3 :Cycle développement
Lent : redéploiementfréquent
Rapide : sauvegarder/tester
versus
© OCTO Technology - Université du Système d’Information
Notre vision
Les « Rails like »
• Rails et JEE : deux utilisations complémentaires
• Pas de nouveauté au niveau middleware
14
Performance
Productivité
Scalabilité
© OCTO Technology - Université du Système d’Information
Des concurrents au modèle de programmation JEE
Apparition des « Rails like »
Productivité des développements
Les conteneurs web en pleine expansion
Des serveurs d’application de plus en plus modulaires
Modularité dans les applications
L’architecture en grille : une alternative au 3-tiers ?
Google App Engine : le futur serveur d’application ?
Le cloud dans votre SI
Les contraintes en développement
16
• HotSwap : mise à jour par le débugger
Build Debug API Test
→ 1 seconde…
© OCTO Technology - Université du Système d’Information
Les contraintes en développement
17
Redémarragecontexte
TestLoginDéploiementBuild .ear
• HotDeploy : redémarrage du conteneur par l’IDE
• HotSwap : mise à jour par le débugger
Build Debug API Test
→ entre 30 secondes et 2 minutes !
→ 1 seconde…
© OCTO Technology - Université du Système d’Information
Des solutions existent
18
• JavaRebel : mise à jour par un plugin de JVM
Build Plugin JavaRebel Test
→ 1 seconde !
© OCTO Technology - Université du Système d’Information
Notre vision
JavaRebel
• Des développeurs plus concentrés
• Indépendant du serveur utilisé
• Ne résout pas tout
19
Performance
Productivité
Scalabilité
© OCTO Technology - Université du Système d’Information
Des concurrents au modèle de programmation JEE
Apparition des « Rails like »
Productivité des développements
Les conteneurs web en pleine expansion
Des serveurs d’application de plus en plus modulaires
Modularité dans les applications
L’architecture en grille : une alternative au 3-tiers ?
Google App Engine : le futur serveur d’application ?
Le cloud dans votre SI
L’évolution des conteneurs web
21
JCP
Standard
Propriétaire
Influence
Légende :
Conteneurs web
Tomcat
mai 1998 J2EE 1.2dec 1999
J2EE 1.3sep 2001
J2EE 1.4nov 2003
Java EE 5mai 2006
Java EE 6sep 2009
© OCTO Technology - Université du Système d’Information
Profil complet
Le profil web de Java EE 6
22
EJB 3.1Full
JAX-WS 2.2
…
WebBeans1.0
JMS 1.1
Profil webJSTL 1.2
Servlet 3.0
EJB 3.1Lite
JPA 2.0JSP/EL 2.2
JSF 2.0 JTA 1.1
…
© OCTO Technology - Université du Système d’Information
Notre vision
Conteneurs web
• Moins de problèmes d’intégration
• Vous n’utilisez que ce dont vous avez besoin
• Meilleure maîtrise générale
23
Performance
Productivité
Scalabilité
© OCTO Technology - Université du Système d’Information
Des concurrents au modèle de programmation JEE
Apparition des « Rails like »
Productivité des développements
Les conteneurs web en pleine expansion
Des serveurs d’application de plus en plus modulaires
Modularité dans les applications
L’architecture en grille : une alternative au 3-tiers ?
Google App Engine : le futur serveur d’application ?
Le cloud dans votre SI
Les enjeux de la modularité
25
Des spécifications JavaEE de plus en plus nombreuses
(45)
Beaucoup de fonctionnalités hors standard
Serveur d’application complexe
(configuration, temps de démarrage, performance, etc.)
© OCTO Technology - Université du Système d’Information
OSGi dans tous les serveurs d’applications
26
Environnement d’exécution
© OCTO Technology - Université du Système d’Information
Notre vision
Serveur d’application modulaire
• Flexibilité du middleware
• Vous n’utilisez que ce dont vous avez besoin
• Différents niveaux de modularité
27
Performance
Productivité
Scalabilité
© OCTO Technology - Université du Système d’Information
Des concurrents au modèle de programmation JEE
Apparition des « Rails like »
Productivité des développements
Les conteneurs web en pleine expansion
Des serveurs d’application de plus en plus modulaires
Modularité dans les applications
L’architecture en grille : une alternative au 3-tiers ?
Google App Engine : le futur serveur d’application ?
Le cloud dans votre SI
Pourquoi modulariser une application ?
29
Enjeux
Hot maintenance
Plusieurs versions
d’une librairie
Architecture plus flexible
© OCTO Technology - Université du Système d’Information
De nouvelles contraintes à tous les niveaux
30
Feuille de route
Conception et implémentation
Qualification d’application complète
Mise en production
© OCTO Technology - Université du Système d’Information
Notre vision
Les applications modulaires
• Réservé aux progiciels
• Intérêt si vous maintenez plusieurs versions en parallèle
• Impact fort sur la conception
31
Performance
Productivité
Scalabilité
© OCTO Technology - Université du Système d’Information
Des concurrents au modèle de programmation JEE
Apparition des « Rails like »
Productivité des développements
Les conteneurs web en pleine expansion
Des serveurs d’application de plus en plus modulaires
Modularité dans les applications
L’architecture en grille : une alternative au 3-tiers ?
Google App Engine : le futur serveur d’application ?
Le cloud dans votre SI
Limite de scalabilité du 3-tiers
33
v2
Schéma relationnel
Base de données
Présentation& traitements
Données temporaires
Clients Web
© OCTO Technology - Université du Système d’Information
L’alternative : l’architecture grille de données
34
Données dans la grille
TraitementsPrésentation
Données persistantes
Données temporaires
eXtreme Scale
Weblogic Application Grid
eXtreme Application Platform
© OCTO Technology - Université du Système d’Information
Notre vision
L’architecture en grille
• Nouveau middleware
• Pour distribuer la donnée
• Complexe
35
Performance
Productivité
Scalabilité
© OCTO Technology - Université du Système d’Information
Des concurrents au modèle de programmation JEE
Apparition des « Rails like »
Productivité des développements
Les conteneurs web en pleine expansion
Des serveurs d’application de plus en plus modulaires
Modularité dans les applications
L’architecture en grille : une alternative au 3-tiers ?
Google App Engine : le futur serveur d’application ?
Le cloud dans votre SI
La brèche Google App Engine
37
JCP
Standard
Propriétaire
Influence
Légende :
Google App Engine
mai 1998 J2EE 1.2dec 1999
J2EE 1.3sep 2001
J2EE 1.4nov 2003
Java EE 5mai 2006
Java EE 6sep 2009
© OCTO Technology - Université du Système d’Information
Les contraintes de Google App Engine
38
Google Datastore :Un stockage non relationnel
Votre SI : Un goulet d’étranglement
IDL JDBC™ JNDI™ RMI RMI-IIOP Scripting
Beans Intl Support I/O JMX JNI Math
NetworkingOverride
MechanismSecurity Serialization
Extension
Mechanism
XML
JAXP
lang and util CollectionsConcurrency
UtilitiesJAR Logging Management
Preferences APIRef
ObjectsReflection
Regular
ExpressionsVersioning Zip
Instrume
nt
Google JRE :
JPA
Support partiel
Secure
Data Connector
© OCTO Technology - Université du Système d’Information
Les contraintes de Google App Engine
39
Secure
Data Connector
Google JRE :
Google Datastore :Un stockage non relationnel
Votre SI : Un goulet d’étranglement
JPA
Support partiel
IDL JDBC™ JNDI™ RMI RMI-IIOP Scripting
Beans Intl Support I/O JMX JNI Math
NetworkingOverride
MechanismSecurity Serialization
Extension
Mechanism
XML
JAXP
lang and util CollectionsConcurrency
UtilitiesJAR Logging Management
Preferences APIRef
ObjectsReflection
Regular
ExpressionsVersioning Zip
Instrume
nt
Pas de réflexion
Pas d’accès au système (fichier, console)
Pas de threads…
© OCTO Technology - Université du Système d’Information
Les contraintes de Google App Engine
40
Google JRE :
Google Datastore :Un stockage non relationnel
Votre SI : Un goulet d’étranglement
JPA
Support partiel
Spring
GWT
JMS
JDBCJSF
Log4j
Supporté?
OUI NON
Secure
Data Connector
Peut-être
© OCTO Technology - Université du Système d’Information
Les contraintes de Google App Engine
41
Secure
Data Connector
Google JRE :
Google Datastore :Un stockage non relationnel
Votre SI : Un goulet d’étranglement
JPA
Support partiel
Spring
GWT
JMS
JDBCJSF
Log4j
Supporté?OUI NONLe portage d’une application
existante s’apparente à une
réécriture
© OCTO Technology - Université du Système d’Information
Notre vision
Google App Engine
• Ne remplace pas un serveur d’application
• Utile pour des catalogues, des événements à forte consultation
• Utile uniquement si la charge de l’application n’est pas maîtrisable
42
Performance
Productivité
Scalabilité
© OCTO Technology - Université du Système d’Information
Des concurrents au modèle de programmation JEE
Apparition des « Rails like »
Productivité des développements
Les conteneurs web en pleine expansion
Des serveurs d’application de plus en plus modulaires
Modularité dans les applications
L’architecture en grille : une alternative au 3-tiers ?
Google App Engine : le futur serveur d’application ?
Le cloud dans votre SI
Etat de l’art : clustering et virtualisation
Virtualisation
Clustering
44
Switch L7
Console D’administration
Machines physiquesServeurs d’application
Machines virtuelles& Serveurs
d’application
Serveurs physiques
Console D’administration
© OCTO Technology - Université du Système d’Information
Le cloud dans l’entreprise
45
Appliance de serveur d’application
Images virtuelles : Système d’exploitation
& Serveur d’application
Switch L7
Console D’administration
CloudBurst Appliance
Weblogic Virtual Edition
© OCTO Technology - Université du Système d’Information
Notre vision
Mon infrastructure sous forme de cloud
• Moindre contrainte que Google AppEngine
• Scalabilité plus limitée
• Valeur ajoutée faible par rapport à la virtualisation
46
Performance
Productivité
Scalabilité
© OCTO Technology - Université du Système d’Information
Conclusion
Quel modèle de programmation ?
48
JCP
Frameworks OpenSource
Standard
Propriétaire
Influence
Légende :
Java EE 6sep 2009
Java EE 7 ?2013 ?
?
mai 1998 J2EE 1.2dec 1999
J2EE 1.3sep 2001
J2EE 1.4nov 2003
Java EE 5mai 2006
Le modèle de programmation le plus adapté à l’équipe de développement
Rails Like
© OCTO Technology - Université du Système d’Information
Quel serveur d’application ?
• Des middlewares
spécialisés apparaissent
pour répondre à des
besoins divergents
• Le serveur d’application
devient une plateforme
49
Serveur d’application
Conteneur web
RMI
JTA
JMS
Cloud
Grille
Choisir une typologie de middleware
© OCTO Technology - Université du Système d’Information
top related