SlideShare una empresa de Scribd logo
1 de 49
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
Serveur
d’application
J2EE
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
Serveur
d’application
J2EE
Framework
applicatif
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
Serveur
d’application
J2EE
### ### ### ###### ### ###
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.2
dec 1999
J2EE 1.3
sep 2001
J2EE 1.4
nov 2003
Java EE 5
mai 2006
Standard
Propriétaire
Influence
Légende :
Spring → EJB3
Hibernate → 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.2
dec 1999
J2EE 1.3
sep 2001
J2EE 1.4
nov 2003
Java EE 5
mai 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 à
construire
Clé en main
Round 3 :
Cycle développement
Lent : redéploiement
fré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émarrage
contexte
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.2
dec 1999
J2EE 1.3
sep 2001
J2EE 1.4
nov 2003
Java EE 5
mai 2006
Java EE 6
sep 2009
© OCTO Technology - Université du Système d’Information
Profilcomplet
Le profil web de Java EE 6
22
EJB 3.1
Full
JAX-WS 2.2
…
WebBeans
1.0
JMS 1.1
Profil web
JSTL 1.2
Servlet 3.0
EJB 3.1
Lite
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
Traitements
Pré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.2
dec 1999
J2EE 1.3
sep 2001
J2EE 1.4
nov 2003
Java EE 5
mai 2006
Java EE 6
sep 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
Networking
Override
Mechanism
Security Serialization
Extension
Mechanism
XML
JAXP
lang and util Collections
Concurrency
Utilities
JAR Logging Management
Preferences API
Ref
Objects
Reflection
Regular
Expressions
Versioning 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
Networking
Override
Mechanism
Security Serialization
Extension
Mechanism
XML
JAXP
lang and util Collections
Concurrency
Utilities
JAR Logging Management
Preferences API
Ref
Objects
Reflection
Regular
Expressions
Versioning 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 NON
Le 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 physiques
Serveurs 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 App
Engine
• 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 6
sep 2009
Java EE 7 ?
2013 ?
?
mai 1998 J2EE 1.2
dec 1999
J2EE 1.3
sep 2001
J2EE 1.4
nov 2003
Java EE 5
mai 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

Más contenido relacionado

Destacado

Recommandations avec Neo4j et le GraphAware Recommendation Engine
Recommandations avec Neo4j et le GraphAware Recommendation EngineRecommandations avec Neo4j et le GraphAware Recommendation Engine
Recommandations avec Neo4j et le GraphAware Recommendation EngineChristophe Willemsen
 
Smart City - Le rôle stratégique des acteurs publics
Smart City - Le rôle stratégique des acteurs publicsSmart City - Le rôle stratégique des acteurs publics
Smart City - Le rôle stratégique des acteurs publicsJérémie34
 
Introduction au cloud computing
Introduction au cloud computingIntroduction au cloud computing
Introduction au cloud computingStéphane Traumat
 
Search Engine Optimization
Search Engine Optimization Search Engine Optimization
Search Engine Optimization ch.ch
 
LNG FUEL & DUAL FUEL ENGINE
LNG FUEL & DUAL FUEL ENGINELNG FUEL & DUAL FUEL ENGINE
LNG FUEL & DUAL FUEL ENGINENguyen Tri
 
Network Meeting - Integration von Camunda mit Liferay
Network Meeting - Integration von Camunda mit LiferayNetwork Meeting - Integration von Camunda mit Liferay
Network Meeting - Integration von Camunda mit Liferaycamunda services GmbH
 
JUG Luzern: Open Source BPM mit BPMN 2.0 und Java
JUG Luzern: Open Source BPM mit BPMN 2.0 und JavaJUG Luzern: Open Source BPM mit BPMN 2.0 und Java
JUG Luzern: Open Source BPM mit BPMN 2.0 und Javacamunda services GmbH
 
Introduction to Oracle Grid Engine
Introduction to Oracle Grid Engine Introduction to Oracle Grid Engine
Introduction to Oracle Grid Engine Morteza Zakeri
 
Slidedeck Datenanalysen auf Speed - Oracle R Enterprise (ORE) Demo - DOAG Big...
Slidedeck Datenanalysen auf Speed - Oracle R Enterprise (ORE) Demo - DOAG Big...Slidedeck Datenanalysen auf Speed - Oracle R Enterprise (ORE) Demo - DOAG Big...
Slidedeck Datenanalysen auf Speed - Oracle R Enterprise (ORE) Demo - DOAG Big...Nadine Schoene
 
Testgetriebene Geschäftsprozessmodellierung
Testgetriebene GeschäftsprozessmodellierungTestgetriebene Geschäftsprozessmodellierung
Testgetriebene GeschäftsprozessmodellierungZambrovski Simon
 
WJAX 2012: Dreamteam "BPM + Java EE"
WJAX 2012: Dreamteam "BPM + Java EE"WJAX 2012: Dreamteam "BPM + Java EE"
WJAX 2012: Dreamteam "BPM + Java EE"camunda services GmbH
 
Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN
Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMNEin Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN
Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMNComsysto Reply GmbH
 

Destacado (12)

Recommandations avec Neo4j et le GraphAware Recommendation Engine
Recommandations avec Neo4j et le GraphAware Recommendation EngineRecommandations avec Neo4j et le GraphAware Recommendation Engine
Recommandations avec Neo4j et le GraphAware Recommendation Engine
 
Smart City - Le rôle stratégique des acteurs publics
Smart City - Le rôle stratégique des acteurs publicsSmart City - Le rôle stratégique des acteurs publics
Smart City - Le rôle stratégique des acteurs publics
 
Introduction au cloud computing
Introduction au cloud computingIntroduction au cloud computing
Introduction au cloud computing
 
Search Engine Optimization
Search Engine Optimization Search Engine Optimization
Search Engine Optimization
 
LNG FUEL & DUAL FUEL ENGINE
LNG FUEL & DUAL FUEL ENGINELNG FUEL & DUAL FUEL ENGINE
LNG FUEL & DUAL FUEL ENGINE
 
Network Meeting - Integration von Camunda mit Liferay
Network Meeting - Integration von Camunda mit LiferayNetwork Meeting - Integration von Camunda mit Liferay
Network Meeting - Integration von Camunda mit Liferay
 
JUG Luzern: Open Source BPM mit BPMN 2.0 und Java
JUG Luzern: Open Source BPM mit BPMN 2.0 und JavaJUG Luzern: Open Source BPM mit BPMN 2.0 und Java
JUG Luzern: Open Source BPM mit BPMN 2.0 und Java
 
Introduction to Oracle Grid Engine
Introduction to Oracle Grid Engine Introduction to Oracle Grid Engine
Introduction to Oracle Grid Engine
 
Slidedeck Datenanalysen auf Speed - Oracle R Enterprise (ORE) Demo - DOAG Big...
Slidedeck Datenanalysen auf Speed - Oracle R Enterprise (ORE) Demo - DOAG Big...Slidedeck Datenanalysen auf Speed - Oracle R Enterprise (ORE) Demo - DOAG Big...
Slidedeck Datenanalysen auf Speed - Oracle R Enterprise (ORE) Demo - DOAG Big...
 
Testgetriebene Geschäftsprozessmodellierung
Testgetriebene GeschäftsprozessmodellierungTestgetriebene Geschäftsprozessmodellierung
Testgetriebene Geschäftsprozessmodellierung
 
WJAX 2012: Dreamteam "BPM + Java EE"
WJAX 2012: Dreamteam "BPM + Java EE"WJAX 2012: Dreamteam "BPM + Java EE"
WJAX 2012: Dreamteam "BPM + Java EE"
 
Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN
Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMNEin Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN
Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN
 

Similar a Quelles évolutions fonderont l’avenir des serveurs d’application ?

TechDays 2012 - Windows Azure
TechDays 2012 - Windows AzureTechDays 2012 - Windows Azure
TechDays 2012 - Windows AzureJason De Oliveira
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Microsoft
 
Saas Libre
Saas LibreSaas Libre
Saas Libregrolland
 
Exadays cloud – Enjeux et Transformation du SI
Exadays   cloud – Enjeux et Transformation du SIExadays   cloud – Enjeux et Transformation du SI
Exadays cloud – Enjeux et Transformation du SISamir Arezki ☁
 
Keynote change 2013
Keynote change 2013Keynote change 2013
Keynote change 2013rbschange
 
Je passe au cloud computing Que faire de l'existant
Je passe au cloud computing Que faire de l'existantJe passe au cloud computing Que faire de l'existant
Je passe au cloud computing Que faire de l'existantJean-François Caenen
 
Sw 100 fr docker conteneurisation des applications
Sw 100 fr docker conteneurisation des applicationsSw 100 fr docker conteneurisation des applications
Sw 100 fr docker conteneurisation des applicationsStephane Woillez
 
Open Data Ready ! Libérez vos données avec OData et le Cloud
Open Data Ready ! Libérez vos données avec OData et le CloudOpen Data Ready ! Libérez vos données avec OData et le Cloud
Open Data Ready ! Libérez vos données avec OData et le CloudMicrosoft
 
architectureNTiers.pdf
architectureNTiers.pdfarchitectureNTiers.pdf
architectureNTiers.pdfbetxso156
 
De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)Restlet
 
Azure Services Platform
Azure Services PlatformAzure Services Platform
Azure Services PlatformGregory Renard
 
Architecture Cloud Hybride
Architecture Cloud HybrideArchitecture Cloud Hybride
Architecture Cloud HybrideMicrosoft
 
Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"Nazih Heni
 
Déploiement d’applications
Déploiement d’applicationsDéploiement d’applications
Déploiement d’applicationsMohammed Jaafar
 
Architecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinArchitecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinThierry Buisson
 

Similar a Quelles évolutions fonderont l’avenir des serveurs d’application ? (20)

TechDays 2012 - Windows Azure
TechDays 2012 - Windows AzureTechDays 2012 - Windows Azure
TechDays 2012 - Windows Azure
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
 
Adopter le cloud avec microsoft
Adopter le cloud avec microsoftAdopter le cloud avec microsoft
Adopter le cloud avec microsoft
 
Google appengine&guice
Google appengine&guiceGoogle appengine&guice
Google appengine&guice
 
CV REBAI Hamida
CV REBAI HamidaCV REBAI Hamida
CV REBAI Hamida
 
Saas Libre
Saas LibreSaas Libre
Saas Libre
 
RIA
RIARIA
RIA
 
Exadays cloud – Enjeux et Transformation du SI
Exadays   cloud – Enjeux et Transformation du SIExadays   cloud – Enjeux et Transformation du SI
Exadays cloud – Enjeux et Transformation du SI
 
Keynote change 2013
Keynote change 2013Keynote change 2013
Keynote change 2013
 
Je passe au cloud computing Que faire de l'existant
Je passe au cloud computing Que faire de l'existantJe passe au cloud computing Que faire de l'existant
Je passe au cloud computing Que faire de l'existant
 
Sw 100 fr docker conteneurisation des applications
Sw 100 fr docker conteneurisation des applicationsSw 100 fr docker conteneurisation des applications
Sw 100 fr docker conteneurisation des applications
 
Open Data Ready ! Libérez vos données avec OData et le Cloud
Open Data Ready ! Libérez vos données avec OData et le CloudOpen Data Ready ! Libérez vos données avec OData et le Cloud
Open Data Ready ! Libérez vos données avec OData et le Cloud
 
architectureNTiers.pdf
architectureNTiers.pdfarchitectureNTiers.pdf
architectureNTiers.pdf
 
De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)
 
Azure Services Platform
Azure Services PlatformAzure Services Platform
Azure Services Platform
 
Architecture Cloud Hybride
Architecture Cloud HybrideArchitecture Cloud Hybride
Architecture Cloud Hybride
 
Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"
 
Déploiement d’applications
Déploiement d’applicationsDéploiement d’applications
Déploiement d’applications
 
Architecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinArchitecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et Xamarin
 
Java Server Faces - Beyond
Java Server Faces - BeyondJava Server Faces - Beyond
Java Server Faces - Beyond
 

Más de Marc Bojoly

Restructurer un legacy comment et pourquoi
Restructurer un legacy comment et pourquoiRestructurer un legacy comment et pourquoi
Restructurer un legacy comment et pourquoiMarc Bojoly
 
Perfug BOF devoxx2017.pptx
Perfug BOF devoxx2017.pptxPerfug BOF devoxx2017.pptx
Perfug BOF devoxx2017.pptxMarc Bojoly
 
PerfUG Comment tester et optimiser la performance d'un SI ?
PerfUG Comment tester et optimiser la performance d'un SI ?PerfUG Comment tester et optimiser la performance d'un SI ?
PerfUG Comment tester et optimiser la performance d'un SI ?Marc Bojoly
 
Softshake 2015 comment tester et optimiser la performance d'un si
Softshake 2015   comment tester et optimiser la performance d'un siSoftshake 2015   comment tester et optimiser la performance d'un si
Softshake 2015 comment tester et optimiser la performance d'un siMarc Bojoly
 
Petit-déjeuner MapReduce-La révolution dans l’analyse des BigData
Petit-déjeuner MapReduce-La révolution dans l’analyse des BigDataPetit-déjeuner MapReduce-La révolution dans l’analyse des BigData
Petit-déjeuner MapReduce-La révolution dans l’analyse des BigDataMarc Bojoly
 
L'avenir de Java : Erlang, Haskell ou Ruby
L'avenir de Java : Erlang, Haskell ou RubyL'avenir de Java : Erlang, Haskell ou Ruby
L'avenir de Java : Erlang, Haskell ou RubyMarc Bojoly
 
Les grilles transactionnelles, enfin des solutions pour l’informatique de ges...
Les grilles transactionnelles, enfin des solutions pour l’informatique de ges...Les grilles transactionnelles, enfin des solutions pour l’informatique de ges...
Les grilles transactionnelles, enfin des solutions pour l’informatique de ges...Marc Bojoly
 
Université de la performance - Devoxx France
Université de la performance - Devoxx FranceUniversité de la performance - Devoxx France
Université de la performance - Devoxx FranceMarc Bojoly
 
Performance ug#2 hands-on lab
Performance ug#2 hands-on labPerformance ug#2 hands-on lab
Performance ug#2 hands-on labMarc Bojoly
 
Performance ug#1
Performance ug#1Performance ug#1
Performance ug#1Marc Bojoly
 

Más de Marc Bojoly (10)

Restructurer un legacy comment et pourquoi
Restructurer un legacy comment et pourquoiRestructurer un legacy comment et pourquoi
Restructurer un legacy comment et pourquoi
 
Perfug BOF devoxx2017.pptx
Perfug BOF devoxx2017.pptxPerfug BOF devoxx2017.pptx
Perfug BOF devoxx2017.pptx
 
PerfUG Comment tester et optimiser la performance d'un SI ?
PerfUG Comment tester et optimiser la performance d'un SI ?PerfUG Comment tester et optimiser la performance d'un SI ?
PerfUG Comment tester et optimiser la performance d'un SI ?
 
Softshake 2015 comment tester et optimiser la performance d'un si
Softshake 2015   comment tester et optimiser la performance d'un siSoftshake 2015   comment tester et optimiser la performance d'un si
Softshake 2015 comment tester et optimiser la performance d'un si
 
Petit-déjeuner MapReduce-La révolution dans l’analyse des BigData
Petit-déjeuner MapReduce-La révolution dans l’analyse des BigDataPetit-déjeuner MapReduce-La révolution dans l’analyse des BigData
Petit-déjeuner MapReduce-La révolution dans l’analyse des BigData
 
L'avenir de Java : Erlang, Haskell ou Ruby
L'avenir de Java : Erlang, Haskell ou RubyL'avenir de Java : Erlang, Haskell ou Ruby
L'avenir de Java : Erlang, Haskell ou Ruby
 
Les grilles transactionnelles, enfin des solutions pour l’informatique de ges...
Les grilles transactionnelles, enfin des solutions pour l’informatique de ges...Les grilles transactionnelles, enfin des solutions pour l’informatique de ges...
Les grilles transactionnelles, enfin des solutions pour l’informatique de ges...
 
Université de la performance - Devoxx France
Université de la performance - Devoxx FranceUniversité de la performance - Devoxx France
Université de la performance - Devoxx France
 
Performance ug#2 hands-on lab
Performance ug#2 hands-on labPerformance ug#2 hands-on lab
Performance ug#2 hands-on lab
 
Performance ug#1
Performance ug#1Performance ug#1
Performance ug#1
 

Quelles évolutions fonderont l’avenir des serveurs d’application ?

  • 1. Quelles évolutions fonderont l’avenir des serveurs d’application ? Marc Bojoly, Rudy Krol
  • 2. 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
  • 3. 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
  • 4. Du conteneur lourd au conteneur léger 4 Conteneur lourd Serveur d’application J2EE EJB Modèle de programmation J2EE EJB EJB JVM ### ### ### ###### ### ### Services support © OCTO Technology - Université du Système d’Information
  • 5. Du conteneur lourd au conteneur léger 5 JVM POJO Spring POJO POJO Conteneur lourd Serveur d’application J2EE Framework applicatif Conteneur léger EJB Modèle de programmation J2EE EJB EJB JVM ### ### ### ###### ### ### Services support © OCTO Technology - Université du Système d’Information
  • 6. Du conteneur lourd au conteneur léger 6 JVM Conteneur lourd Serveur d’application J2EE ### ### ### ###### ### ### 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
  • 7. Java EE et les frameworks OpenSource 7 JCP Frameworks OpenSource mai 1998 J2EE 1.2 dec 1999 J2EE 1.3 sep 2001 J2EE 1.4 nov 2003 Java EE 5 mai 2006 Standard Propriétaire Influence Légende : Spring → EJB3 Hibernate → JPA © OCTO Technology - Université du Système d’Information
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. 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.2 dec 1999 J2EE 1.3 sep 2001 J2EE 1.4 nov 2003 Java EE 5 mai 2006 © OCTO Technology - Université du Système d’Information
  • 12. Expressivité de Grails face à Java 12© OCTO Technology - Université du Système d’Information
  • 13. 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 à construire Clé en main Round 3 : Cycle développement Lent : redéploiement fréquent Rapide : sauvegarder/tester versus © OCTO Technology - Université du Système d’Information
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. Les contraintes en développement 17 Redémarrage contexte 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
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. L’évolution des conteneurs web 21 JCP Standard Propriétaire Influence Légende : Conteneurs web Tomcat mai 1998 J2EE 1.2 dec 1999 J2EE 1.3 sep 2001 J2EE 1.4 nov 2003 Java EE 5 mai 2006 Java EE 6 sep 2009 © OCTO Technology - Université du Système d’Information
  • 22. Profilcomplet Le profil web de Java EE 6 22 EJB 3.1 Full JAX-WS 2.2 … WebBeans 1.0 JMS 1.1 Profil web JSTL 1.2 Servlet 3.0 EJB 3.1 Lite JPA 2.0JSP/EL 2.2 JSF 2.0 JTA 1.1 … © OCTO Technology - Université du Système d’Information
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. OSGi dans tous les serveurs d’applications 26 Environnement d’exécution © OCTO Technology - Université du Système d’Information
  • 27. 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
  • 28. 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
  • 29. Pourquoi modulariser une application ? 29 Enjeux Hot maintenance Plusieurs versions d’une librairie Architecture plus flexible © OCTO Technology - Université du Système d’Information
  • 30. 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
  • 31. 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
  • 32. 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
  • 33. 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
  • 34. L’alternative : l’architecture grille de données 34 Données dans la grille Traitements Présentation Données persistantes Données temporaires eXtreme Scale Weblogic Application Grid eXtreme Application Platform © OCTO Technology - Université du Système d’Information
  • 35. 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
  • 36. 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
  • 37. La brèche Google App Engine 37 JCP Standard Propriétaire Influence Légende : Google App Engine mai 1998 J2EE 1.2 dec 1999 J2EE 1.3 sep 2001 J2EE 1.4 nov 2003 Java EE 5 mai 2006 Java EE 6 sep 2009 © OCTO Technology - Université du Système d’Information
  • 38. 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 Networking Override Mechanism Security Serialization Extension Mechanism XML JAXP lang and util Collections Concurrency Utilities JAR Logging Management Preferences API Ref Objects Reflection Regular Expressions Versioning Zip Instrume nt Google JRE : JPA Support partiel Secure Data Connector © OCTO Technology - Université du Système d’Information
  • 39. 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 Networking Override Mechanism Security Serialization Extension Mechanism XML JAXP lang and util Collections Concurrency Utilities JAR Logging Management Preferences API Ref Objects Reflection Regular Expressions Versioning 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
  • 40. 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
  • 41. 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 NON Le portage d’une application existante s’apparente à une réécriture © OCTO Technology - Université du Système d’Information
  • 42. 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
  • 43. 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
  • 44. Etat de l’art : clustering et virtualisation Virtualisation Clustering 44 Switch L7 Console D’administration Machines physiques Serveurs d’application Machines virtuelles & Serveurs d’application Serveurs physiques Console D’administration © OCTO Technology - Université du Système d’Information
  • 45. 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
  • 46. Notre vision Mon infrastructure sous forme de cloud • Moindre contrainte que Google App Engine • Scalabilité plus limitée • Valeur ajoutée faible par rapport à la virtualisation 46 Performance Productivité Scalabilité © OCTO Technology - Université du Système d’Information
  • 48. Quel modèle de programmation ? 48 JCP Frameworks OpenSource Standard Propriétaire Influence Légende : Java EE 6 sep 2009 Java EE 7 ? 2013 ? ? mai 1998 J2EE 1.2 dec 1999 J2EE 1.3 sep 2001 J2EE 1.4 nov 2003 Java EE 5 mai 2006 Le modèle de programmation le plus adapté à l’équipe de développement Rails Like © OCTO Technology - Université du Système d’Information
  • 49. 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