SlideShare une entreprise Scribd logo
1  sur  63
Télécharger pour lire hors ligne
INTRODUCTION À JAVA EE
Cours Master 2 - Java EE
1
LA NÉBULEUSE JAVA
• Java Micro Edition (JME)
• développement d’applications embarquées
• Java Standard Edition (JSE)
• développement d’applications classiques
• Java Enterprise Edition (JEE)
• développement d’applications d’entreprise
2
APPLICATIONS D’ENTREPRISE
réduction des temps et coûts de développement
qualité du code
portables
adaptables
montée en charge
sûres
sécurisée intégrables
disponibles
Cours Master 2 - Java EE
3
extensibles
maintenables
répondent aux besoins exprimés par les utilisateurs !
ARCHITECTURES
APPLICATIVES
4
• applications centralisées
• applications clients / serveurs
• applications distribuées
LES BESOINS EXPRIMÉS
5
• Besoins de normalisation
• Etablir un ensemble de règles ayant pour objet de simplifier et de
rationaliser la production
• Besoins d’abstraction
• Opération de désolidariser un objet de son contexte
• Besoins de communication
• Besoins de composants
Cours Master 2 - Java EE
BESOINS DE NORMALISATION
• intégrables
• communicantes / distribuées
• adaptables
• maintenables
• portables
6
Pour que les applications soient:
Cours Master 2 - Java EE
BESOINS D’ABSTRACTION
• portables
• maintenables
• extensibles
• intégrables / distribuées
• adaptables
7
Pour que les applications soient :
Cours Master 2 - Java EE
BESOINS DE
COMMUNICATION
• intégrables
• sécurisée
• distribuées
8
Pour que les applications soient :
Cours Master 2 - Java EE
BESOINS DE COMPOSANTS
• maintenables
• sûres
• extensibles
• adaptables
• portables
• disponibles / distribuées
9
Pour que les applications soient :
Cours Master 2 - Java EE
10
et surtout...
Cours Master 2 - Java EE
Comment réduire les temps et les coûts de
développement et d’évolutions d’une
application ?
Cours Master 2 - Java EE
11
Quelques principes....
Cours Master 2 - Java EE
12
PRINCIPE D’OUVERTURE/
FERMETURE
Les composantes d’une application doivent être ouvertes à
extension mais fermées à modification !
Cours Master 2 - Java EE
13
PRINCIPE DE SUBSTITUTION
DE LISKOV
Si S est un sous-type de T, alors les objets de type T peuvent être
remplacés avec des objets de type S
Cours Master 2 - Java EE
14
PRINCIPE DE SUBSTITUTION
DE LISKOV
• Préconditions ne peuvent être plus fortes dans une sous-
classe
• Postconditions ne peuvent être plus faibles dans une
sous-classe
Programmation par contrat:
Cours Master 2 - Java EE
15
UNE SEULE RESPONSABILITÉ
Chaque objet ne doit avoir qu’une seule responsabilité !
Cours Master 2 - Java EE
16
Comment respecter ces grands principes ?
Cours Master 2 - Java EE
17
UNE PARTIE DE LA
SOLUTION...
• Des paradigmes de programmation
• Des patrons de conception
• Des frameworks
• Des composants
Cours Master 2 - Java EE
18
QUELQUES RAPPELS
19
• Inversion de contrôle
• Injection de dépendances
• Programmation par aspects
• Design pattern
INVERSION DE CONTRÔLE
Le code générique/réutilisable contrôle l’exécution du code
spécifique
Don’t call us, we call you!
Cours Master 2 - Java EE
20
INVERSION DE CONTROLE
21
public abstract class WorkerTask< I, O > implements Runnable {
protected O doPerform(I input);
public void run() {
I input = receive();
O output = doPerform(input);
send(output);
}
public class ReadWorkerTask extends WorkerTask< Input, Output > {
@Override
protected Output doPerform(Input in) {
InputStream is = in.getInputStream();
is.read(b);
Output out = new Output(b);
return out;
}
}
INJECTION DE DÉPENDANCES
Une manière automatique et directe de fournir une
dépendance externe dans un composant logiciel
Cours Master 2 - Java EE
22
INJECTION DE DÉPENDANCES
23
public class AsyncWriter {
@Inject
public AsyncWriter(BufferingStrategy strategy) {
this.strategy = strategy;
}
}
public class AsyncWriterModule extends AbstractModule {
@Override
protected void configure() {
bind(BufferingStrategy.class).to(JPMBufferingStrategy.class);
}
}
INJECTION DE DEPENDANCES
24
public static void main(String[] args) throws Exception {
Injector injector = Guice.createInjector(new AsyncWriterModule());
AsyncWriter writer = injector.getInstance(AsyncWriter.class);
}
PROGRAMMATION PAR
ASPECTS
Augmenter la modularité en améliorant la séparation des
préoccupations
25
PROGRAMMATION PAR
ASPECTS
26
public @interface Log {
}
public class LogMethodInterceptor implements MethodInterceptor {
public Object invoke(MethodInvocation i) throws Throwable {
System.out.println("Start: " + i.getMethod().getName());
Object ret = i.proceed();
System.out.println("End: " + i.getMethod().getName());
return ret;
}
}
PROGRAMMATION PAR
ASPECTS
27
public class MonModule extends AbstractModule {
@Override
protected void configure() {
bindInterceptor(Matchers.inPackage(Package.getPackage(
"com.ullink.designpattern.test")),
Matchers.annotatedWith(Log.class),
new LogMethodInterceptor());
}
}
DESIGN PATTERN
28
Une solution générale et réutilisable d’un problème courant
Définition:
Nous utilisons des patrons de conception sans forcément le savoir!
DESIGN PATTERN
29
Pros:
Cons:
Abstraction
Capitalisation de la connaissance
“Design Patterns – Elements of reusable OO Software”
Abstraction
Diluer dans du code
30
Mais, revenons à notre problématique...
LES BESOINS EXPRIMÉS
31
• Besoins de normalisation
• Etablir un ensemble de règles ayant pour objet de simplifier et de
rationaliser la production
• Besoins d’abstraction
• Opération de désolidariser un objet de son contexte
• Besoins de communication
• Besoins de composants
Cours Master 2 - Java EE
32
Avoir une « plateforme » pour développer des
applications d’entreprise rapidement, de qualitées, sûres,
sécurisées, portables, performantes, disponibles,
maintenables, extensibles et ce... à moindre coûts !
Cours Master 2 - Java EE
OBJECTIF
DÉFINITION
Java Enterprise Edition est une norme proposée par
Sun visant à définir un standard de développement
d’applications d’entreprises multi-niveaux basées sur
des composants.
Cours Master 2 - Java EE
33
34
Principes d’architecture...
Cours Master 2 - Java EE
35
ARCHITECTURE MULTI-
NIVEAUX
• Un niveau par besoin fonctionnel
• Augmentation de la cohésion du code
• Découplage fort entre les couches
• Code plus facilement réutilisable
Cours Master 2 - Java EE
ARCHITECTURE JEE
• Tiers présentation : affichage des données
• Tiers métier : gestion du métier de l’application
• Tiers donnée : persistance des données
36
Typiquement c’est une architecture 3-tiers :
Cours Master 2 - Java EE
ARCHITECTURE JEE
Cours Master 2 - Java EE
37
ARCHITECTURE JEE
Permet une séparation claire entre :
• l’interface homme-machine
• les traitements métiers
• les données
Cours Master 2 - Java EE
38
ARCHITECTURE JEE
• distincts
• interchangeables
• distribués
Cours Master 2 - Java EE
Basée sur des composants qui sont :
39
ARCHITECTURE JEE
• Data Access Object
• DataTransfer Object
• Session Facade
• Front controller
• ModèleVue Controleur
40
De nouveaux patrons de conception:
41
N’oublions pas une problématique en
entreprise...
Cours Master 2 - Java EE
LES CONTRAINTES DE LA
PRODUCTION
42
Cours Master 2 - Java EE
• Réduction des coûts
• Migration d’une version de serveurs d’applications
• Maintenance de plusieurs serveurs d’applications
• Stabilité du Système d’Information
La production a tendance à freiner
l’innovation !
PRODUCTIONVS ÉTUDE
43
• La production est conservatrice / les études sont des acteurs
du changement
PROBLÉMATIQUES
44
• Respecter les contraintes de la production
• Continuer à innover
ARCHITECTURE JEE
45
EXEMPLE
46
• Vous faites du JEE depuis 2003, la production a certifié une
version d’un serveur d’application compatible JEE 1.3
• En 2008, tant que la production n’a pas homologué et certifié
JEE 5, vous ne pouvez pas l’utiliser!
Bloqué dans l’amélioration de votre
productivité, dans votre innovation!
47
Pourquoi ne pas inverser la relation entre le
container et l’application ?
48
Ce n’est plus le container qui contient
l’application mais l’application qui contient le
container !
49
CONTENEUR LÉGER
50
CONTENEUR LÉGER
• Gestion du cycle de vie des objets
• Description des relations entre les objets
• Similaire à un serveur d’application classique
• Les objets ne doivent pas implanter une interface particulière
pour être pris en charge par le framework (différence avec les
serveurs d’application JEE / EJB
EXEMPLE
51
• La production a homologué un conteneur de servlet
• Une nouvelle version de votre conteneur léger arrive
• La production n’a rien à homologuer
Utilisation immédiate sans validation par la
production!
52
Toute la valeur du passage à un conteneur
léger est là!
DE L’AGILITÉ...
QUELQUES EXEMPLES
53
Cours Master 2 - Java EE
• Spring
• Pico
• Avalon
• HiveMind
54
Pourquoi vous présentez SPRING ?
55
Parce que je connais l’ancien responsable Spring France...
56
.... mais pas seulement !
57
Spring apporte l’inversion de contrôle
Spring apporte la programmation par aspect
Spring apporte une couche d’abstraction
JEE apporte aussi ses principes !
58
mais...
Cours Master 2 - Java EE
Cours Master 2 - Java EE
Spring apporte l’inversion de contrôle
Spring apporte la programmation par aspect
Spring apporte une couche d’abstraction
Spring apporte aussi pleins de connecteurs !
Spring améliore la qualité et les coûts de production
d’applications
59
60
SPRING
• Spring Batch
• Spring MVC
• Spring webflow
• Spring security
• AOP
• Connecteurs JDBC, Hibernate, iBatis, LDPA, ...
Spring apporte beaucoup de choses:
UN STANDARD DU MARCHÉ
61
SPRING
62
• Simple
• Standard de fait
• Tient très bien la charge
• Répond à nos problématiques!
SPRING UNE RÉPONSE AUX
BESOINS EXPRIMÉS
63
• Besoins de normalisation
• Etablir un ensemble de règles ayant pour objet de simplifier et de
rationaliser la production
• Besoins d’abstraction
• Opération de désolidariser un objet de son contexte
• Besoins de communication
• Besoins de composants
Cours Master 2 - Java EE

Contenu connexe

Similaire à 01_Introduction_a_JEE.pdf

Presentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationPresentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationStéphane Traumat
 
0251-formation-java-programmation-objet.pdf
0251-formation-java-programmation-objet.pdf0251-formation-java-programmation-objet.pdf
0251-formation-java-programmation-objet.pdfOmbotimbe Salifou
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreStéphane Traumat
 
TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringTDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringneuros
 
Alphorm.com Formation Les solutions de Haute Disponibilité sous Windows Serv...
Alphorm.com Formation Les solutions de  Haute Disponibilité sous Windows Serv...Alphorm.com Formation Les solutions de  Haute Disponibilité sous Windows Serv...
Alphorm.com Formation Les solutions de Haute Disponibilité sous Windows Serv...Alphorm
 
Design applicatif avec symfony - Zoom sur la clean architecture - Symfony Live
Design applicatif avec symfony - Zoom sur la clean architecture - Symfony LiveDesign applicatif avec symfony - Zoom sur la clean architecture - Symfony Live
Design applicatif avec symfony - Zoom sur la clean architecture - Symfony LiveRomainKuzniak
 
NightClazz Build Tools & Continuous Delivery Avancé
NightClazz Build Tools & Continuous Delivery AvancéNightClazz Build Tools & Continuous Delivery Avancé
NightClazz Build Tools & Continuous Delivery AvancéZenika
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicEmmanuel Hugonnet
 
Softfluent speig mdday2010
Softfluent speig mdday2010Softfluent speig mdday2010
Softfluent speig mdday2010MD DAY
 
Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1Microsoft
 
Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?Antoine Rey
 
Decorator Design Pattern Presentation
Decorator Design Pattern PresentationDecorator Design Pattern Presentation
Decorator Design Pattern PresentationOuissalBenameur
 

Similaire à 01_Introduction_a_JEE.pdf (20)

Presentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationPresentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub Foundation
 
0251-formation-java-programmation-objet.pdf
0251-formation-java-programmation-objet.pdf0251-formation-java-programmation-objet.pdf
0251-formation-java-programmation-objet.pdf
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libre
 
TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringTDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoring
 
Alphorm.com Formation Les solutions de Haute Disponibilité sous Windows Serv...
Alphorm.com Formation Les solutions de  Haute Disponibilité sous Windows Serv...Alphorm.com Formation Les solutions de  Haute Disponibilité sous Windows Serv...
Alphorm.com Formation Les solutions de Haute Disponibilité sous Windows Serv...
 
Cours spring
Cours springCours spring
Cours spring
 
Usine Logicielle 2013
Usine Logicielle 2013Usine Logicielle 2013
Usine Logicielle 2013
 
Support JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVCSupport JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVC
 
Design applicatif avec symfony - Zoom sur la clean architecture - Symfony Live
Design applicatif avec symfony - Zoom sur la clean architecture - Symfony LiveDesign applicatif avec symfony - Zoom sur la clean architecture - Symfony Live
Design applicatif avec symfony - Zoom sur la clean architecture - Symfony Live
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
tp-spring.pdf
tp-spring.pdftp-spring.pdf
tp-spring.pdf
 
tp-spring.pdf
tp-spring.pdftp-spring.pdf
tp-spring.pdf
 
NightClazz Build Tools & Continuous Delivery Avancé
NightClazz Build Tools & Continuous Delivery AvancéNightClazz Build Tools & Continuous Delivery Avancé
NightClazz Build Tools & Continuous Delivery Avancé
 
Spring
SpringSpring
Spring
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville Public
 
Softfluent speig mdday2010
Softfluent speig mdday2010Softfluent speig mdday2010
Softfluent speig mdday2010
 
J2 ee
J2 eeJ2 ee
J2 ee
 
Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1
 
Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?
 
Decorator Design Pattern Presentation
Decorator Design Pattern PresentationDecorator Design Pattern Presentation
Decorator Design Pattern Presentation
 

01_Introduction_a_JEE.pdf

  • 1. INTRODUCTION À JAVA EE Cours Master 2 - Java EE 1
  • 2. LA NÉBULEUSE JAVA • Java Micro Edition (JME) • développement d’applications embarquées • Java Standard Edition (JSE) • développement d’applications classiques • Java Enterprise Edition (JEE) • développement d’applications d’entreprise 2
  • 3. APPLICATIONS D’ENTREPRISE réduction des temps et coûts de développement qualité du code portables adaptables montée en charge sûres sécurisée intégrables disponibles Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs !
  • 4. ARCHITECTURES APPLICATIVES 4 • applications centralisées • applications clients / serveurs • applications distribuées
  • 5. LES BESOINS EXPRIMÉS 5 • Besoins de normalisation • Etablir un ensemble de règles ayant pour objet de simplifier et de rationaliser la production • Besoins d’abstraction • Opération de désolidariser un objet de son contexte • Besoins de communication • Besoins de composants Cours Master 2 - Java EE
  • 6. BESOINS DE NORMALISATION • intégrables • communicantes / distribuées • adaptables • maintenables • portables 6 Pour que les applications soient: Cours Master 2 - Java EE
  • 7. BESOINS D’ABSTRACTION • portables • maintenables • extensibles • intégrables / distribuées • adaptables 7 Pour que les applications soient : Cours Master 2 - Java EE
  • 8. BESOINS DE COMMUNICATION • intégrables • sécurisée • distribuées 8 Pour que les applications soient : Cours Master 2 - Java EE
  • 9. BESOINS DE COMPOSANTS • maintenables • sûres • extensibles • adaptables • portables • disponibles / distribuées 9 Pour que les applications soient : Cours Master 2 - Java EE
  • 11. Comment réduire les temps et les coûts de développement et d’évolutions d’une application ? Cours Master 2 - Java EE 11
  • 13. PRINCIPE D’OUVERTURE/ FERMETURE Les composantes d’une application doivent être ouvertes à extension mais fermées à modification ! Cours Master 2 - Java EE 13
  • 14. PRINCIPE DE SUBSTITUTION DE LISKOV Si S est un sous-type de T, alors les objets de type T peuvent être remplacés avec des objets de type S Cours Master 2 - Java EE 14
  • 15. PRINCIPE DE SUBSTITUTION DE LISKOV • Préconditions ne peuvent être plus fortes dans une sous- classe • Postconditions ne peuvent être plus faibles dans une sous-classe Programmation par contrat: Cours Master 2 - Java EE 15
  • 16. UNE SEULE RESPONSABILITÉ Chaque objet ne doit avoir qu’une seule responsabilité ! Cours Master 2 - Java EE 16
  • 17. Comment respecter ces grands principes ? Cours Master 2 - Java EE 17
  • 18. UNE PARTIE DE LA SOLUTION... • Des paradigmes de programmation • Des patrons de conception • Des frameworks • Des composants Cours Master 2 - Java EE 18
  • 19. QUELQUES RAPPELS 19 • Inversion de contrôle • Injection de dépendances • Programmation par aspects • Design pattern
  • 20. INVERSION DE CONTRÔLE Le code générique/réutilisable contrôle l’exécution du code spécifique Don’t call us, we call you! Cours Master 2 - Java EE 20
  • 21. INVERSION DE CONTROLE 21 public abstract class WorkerTask< I, O > implements Runnable { protected O doPerform(I input); public void run() { I input = receive(); O output = doPerform(input); send(output); } public class ReadWorkerTask extends WorkerTask< Input, Output > { @Override protected Output doPerform(Input in) { InputStream is = in.getInputStream(); is.read(b); Output out = new Output(b); return out; } }
  • 22. INJECTION DE DÉPENDANCES Une manière automatique et directe de fournir une dépendance externe dans un composant logiciel Cours Master 2 - Java EE 22
  • 23. INJECTION DE DÉPENDANCES 23 public class AsyncWriter { @Inject public AsyncWriter(BufferingStrategy strategy) { this.strategy = strategy; } } public class AsyncWriterModule extends AbstractModule { @Override protected void configure() { bind(BufferingStrategy.class).to(JPMBufferingStrategy.class); } }
  • 24. INJECTION DE DEPENDANCES 24 public static void main(String[] args) throws Exception { Injector injector = Guice.createInjector(new AsyncWriterModule()); AsyncWriter writer = injector.getInstance(AsyncWriter.class); }
  • 25. PROGRAMMATION PAR ASPECTS Augmenter la modularité en améliorant la séparation des préoccupations 25
  • 26. PROGRAMMATION PAR ASPECTS 26 public @interface Log { } public class LogMethodInterceptor implements MethodInterceptor { public Object invoke(MethodInvocation i) throws Throwable { System.out.println("Start: " + i.getMethod().getName()); Object ret = i.proceed(); System.out.println("End: " + i.getMethod().getName()); return ret; } }
  • 27. PROGRAMMATION PAR ASPECTS 27 public class MonModule extends AbstractModule { @Override protected void configure() { bindInterceptor(Matchers.inPackage(Package.getPackage( "com.ullink.designpattern.test")), Matchers.annotatedWith(Log.class), new LogMethodInterceptor()); } }
  • 28. DESIGN PATTERN 28 Une solution générale et réutilisable d’un problème courant Définition: Nous utilisons des patrons de conception sans forcément le savoir!
  • 29. DESIGN PATTERN 29 Pros: Cons: Abstraction Capitalisation de la connaissance “Design Patterns – Elements of reusable OO Software” Abstraction Diluer dans du code
  • 30. 30 Mais, revenons à notre problématique...
  • 31. LES BESOINS EXPRIMÉS 31 • Besoins de normalisation • Etablir un ensemble de règles ayant pour objet de simplifier et de rationaliser la production • Besoins d’abstraction • Opération de désolidariser un objet de son contexte • Besoins de communication • Besoins de composants Cours Master 2 - Java EE
  • 32. 32 Avoir une « plateforme » pour développer des applications d’entreprise rapidement, de qualitées, sûres, sécurisées, portables, performantes, disponibles, maintenables, extensibles et ce... à moindre coûts ! Cours Master 2 - Java EE OBJECTIF
  • 33. DÉFINITION Java Enterprise Edition est une norme proposée par Sun visant à définir un standard de développement d’applications d’entreprises multi-niveaux basées sur des composants. Cours Master 2 - Java EE 33
  • 35. 35 ARCHITECTURE MULTI- NIVEAUX • Un niveau par besoin fonctionnel • Augmentation de la cohésion du code • Découplage fort entre les couches • Code plus facilement réutilisable Cours Master 2 - Java EE
  • 36. ARCHITECTURE JEE • Tiers présentation : affichage des données • Tiers métier : gestion du métier de l’application • Tiers donnée : persistance des données 36 Typiquement c’est une architecture 3-tiers : Cours Master 2 - Java EE
  • 38. ARCHITECTURE JEE Permet une séparation claire entre : • l’interface homme-machine • les traitements métiers • les données Cours Master 2 - Java EE 38
  • 39. ARCHITECTURE JEE • distincts • interchangeables • distribués Cours Master 2 - Java EE Basée sur des composants qui sont : 39
  • 40. ARCHITECTURE JEE • Data Access Object • DataTransfer Object • Session Facade • Front controller • ModèleVue Controleur 40 De nouveaux patrons de conception:
  • 41. 41 N’oublions pas une problématique en entreprise... Cours Master 2 - Java EE
  • 42. LES CONTRAINTES DE LA PRODUCTION 42 Cours Master 2 - Java EE • Réduction des coûts • Migration d’une version de serveurs d’applications • Maintenance de plusieurs serveurs d’applications • Stabilité du Système d’Information La production a tendance à freiner l’innovation !
  • 43. PRODUCTIONVS ÉTUDE 43 • La production est conservatrice / les études sont des acteurs du changement
  • 44. PROBLÉMATIQUES 44 • Respecter les contraintes de la production • Continuer à innover
  • 46. EXEMPLE 46 • Vous faites du JEE depuis 2003, la production a certifié une version d’un serveur d’application compatible JEE 1.3 • En 2008, tant que la production n’a pas homologué et certifié JEE 5, vous ne pouvez pas l’utiliser! Bloqué dans l’amélioration de votre productivité, dans votre innovation!
  • 47. 47 Pourquoi ne pas inverser la relation entre le container et l’application ?
  • 48. 48 Ce n’est plus le container qui contient l’application mais l’application qui contient le container !
  • 50. 50 CONTENEUR LÉGER • Gestion du cycle de vie des objets • Description des relations entre les objets • Similaire à un serveur d’application classique • Les objets ne doivent pas implanter une interface particulière pour être pris en charge par le framework (différence avec les serveurs d’application JEE / EJB
  • 51. EXEMPLE 51 • La production a homologué un conteneur de servlet • Une nouvelle version de votre conteneur léger arrive • La production n’a rien à homologuer Utilisation immédiate sans validation par la production!
  • 52. 52 Toute la valeur du passage à un conteneur léger est là! DE L’AGILITÉ...
  • 53. QUELQUES EXEMPLES 53 Cours Master 2 - Java EE • Spring • Pico • Avalon • HiveMind
  • 55. 55 Parce que je connais l’ancien responsable Spring France...
  • 56. 56 .... mais pas seulement !
  • 57. 57 Spring apporte l’inversion de contrôle Spring apporte la programmation par aspect Spring apporte une couche d’abstraction JEE apporte aussi ses principes !
  • 59. Cours Master 2 - Java EE Spring apporte l’inversion de contrôle Spring apporte la programmation par aspect Spring apporte une couche d’abstraction Spring apporte aussi pleins de connecteurs ! Spring améliore la qualité et les coûts de production d’applications 59
  • 60. 60 SPRING • Spring Batch • Spring MVC • Spring webflow • Spring security • AOP • Connecteurs JDBC, Hibernate, iBatis, LDPA, ... Spring apporte beaucoup de choses:
  • 61. UN STANDARD DU MARCHÉ 61
  • 62. SPRING 62 • Simple • Standard de fait • Tient très bien la charge • Répond à nos problématiques!
  • 63. SPRING UNE RÉPONSE AUX BESOINS EXPRIMÉS 63 • Besoins de normalisation • Etablir un ensemble de règles ayant pour objet de simplifier et de rationaliser la production • Besoins d’abstraction • Opération de désolidariser un objet de son contexte • Besoins de communication • Besoins de composants Cours Master 2 - Java EE