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

49
Quelles évolutions fonderont l’avenir des serveurs d’application ? Marc Bojoly, Rudy Krol

description

Quelles évolutions fonderont l'avenir des serveurs d'application ? Depuis 10 ans les serveurs d'applications se sont imposés dans l'informatique de gestion. Mais aujourd'hui des offres innovantes bousculent les anciennes règles et standards. Les architectures cloud et grid rompent avec le découpage en 3 tiers. Des offres modulaires s'opposent aux outils dotés de multiples fonctionnalités. Des nouveaux frameworks java mais également Grails ou JRuby on Rails challengent les API JEE tout en s'appuyant sur l'existant. En nous basant sur la plateforme Java, nous balaieront les principales innovations qui dessinent le futur des serveurs d'application. Que peuvent-elles apporter ? Que vont-elles remettre en cause ou remplacer ?

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

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

Quelles évolutions fonderont l’avenir

des serveurs d’application ?

Marc Bojoly, Rudy Krol

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Expressivité de Grails face à Java

12© OCTO Technology - Université du Système d’Information

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

OSGi dans tous les serveurs d’applications

26

Environnement d’exécution

© OCTO Technology - Université du Système d’Information

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

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

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

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

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

Pourquoi modulariser une application ?

29

Enjeux

Hot maintenance

Plusieurs versions

d’une librairie

Architecture plus flexible

© OCTO Technology - Université du Système d’Information

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Conclusion

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

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

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

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