introduction À java ee - loyaute/course/doc/m2/m2-10-11/fall/...a_jee.pdf · cours master 2 - java...
TRANSCRIPT
![Page 1: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/1.jpg)
INTRODUCTION À JAVA EE
Cours Master 2 - Java EE
1
![Page 2: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/2.jpg)
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
![Page 3: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/3.jpg)
APPLICATIONS D’ENTREPRISEré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 !
![Page 4: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/4.jpg)
ARCHITECTURES APPLICATIVES
4
• applications centralisées
• applications clients / serveurs
• applications distribuées
![Page 5: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/5.jpg)
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 composantsCours Master 2 - Java EE
![Page 6: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/6.jpg)
BESOINS DE NORMALISATION
• intégrables
• communicantes / distribuées
• adaptables
•maintenables
• portables
6
Pour que les applications soient:
Cours Master 2 - Java EE
![Page 7: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/7.jpg)
BESOINS D’ABSTRACTION
• portables
•maintenables
• extensibles
• intégrables / distribuées
• adaptables
7
Pour que les applications soient :
Cours Master 2 - Java EE
![Page 8: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/8.jpg)
BESOINS DE COMMUNICATION
• intégrables
• sécurisée
• distribuées
8
Pour que les applications soient :
Cours Master 2 - Java EE
![Page 9: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/9.jpg)
BESOINS DE COMPOSANTS
• maintenables
• sûres
• extensibles
• adaptables
• portables
• disponibles / distribuées
9
Pour que les applications soient :
Cours Master 2 - Java EE
![Page 10: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/10.jpg)
10
et surtout...
Cours Master 2 - Java EE
![Page 11: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/11.jpg)
Comment réduire les temps et les coûts de développement et d’évolutions d’une
application ?
Cours Master 2 - Java EE
11
![Page 12: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/12.jpg)
Quelques principes....
Cours Master 2 - Java EE
12
![Page 13: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/13.jpg)
PRINCIPE D’OUVERTURE/FERMETURE
Les composantes d’une application doivent être ouvertes à extension mais fermées à modification !
Cours Master 2 - Java EE
13
![Page 14: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/14.jpg)
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
![Page 15: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/15.jpg)
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
![Page 16: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/16.jpg)
UNE SEULE RESPONSABILITÉ
Chaque objet ne doit avoir qu’une seule responsabilité !
Cours Master 2 - Java EE
16
![Page 17: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/17.jpg)
Comment respecter ces grands principes ?
Cours Master 2 - Java EE
17
![Page 18: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/18.jpg)
UNE PARTIE DE LA SOLUTION...
•Des paradigmes de programmation
•Des patrons de conception
•Des frameworks
•Des composants
Cours Master 2 - Java EE
18
![Page 19: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/19.jpg)
QUELQUES RAPPELS
19
• Inversion de contrôle
• Injection de dépendances
• Programmation par aspects
•Design pattern
![Page 20: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/20.jpg)
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
![Page 21: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/21.jpg)
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; }}
![Page 22: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/22.jpg)
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
![Page 23: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/23.jpg)
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); }}
![Page 24: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/24.jpg)
INJECTION DE DEPENDANCES
24
public static void main(String[] args) throws Exception { Injector injector = Guice.createInjector(new AsyncWriterModule()); AsyncWriter writer = injector.getInstance(AsyncWriter.class);}
![Page 25: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/25.jpg)
PROGRAMMATION PAR ASPECTS
Augmenter la modularité en améliorant la séparation des préoccupations
25
![Page 26: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/26.jpg)
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; }}
![Page 27: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/27.jpg)
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()); }}
![Page 28: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/28.jpg)
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!
![Page 29: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/29.jpg)
DESIGN PATTERN
29
Pros:
Cons:
Abstraction
Capitalisation de la connaissance “Design Patterns – Elements of reusable OO Software”
Abstraction
Diluer dans du code
![Page 30: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/30.jpg)
30
Mais, revenons à notre problématique...
![Page 31: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/31.jpg)
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 composantsCours Master 2 - Java EE
![Page 32: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/32.jpg)
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
![Page 33: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/33.jpg)
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
![Page 34: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/34.jpg)
34
Principes d’architecture...
Cours Master 2 - Java EE
![Page 35: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/35.jpg)
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
![Page 36: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/36.jpg)
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
![Page 37: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/37.jpg)
ARCHITECTURE JEE
Cours Master 2 - Java EE
37
![Page 38: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/38.jpg)
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
![Page 39: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/39.jpg)
ARCHITECTURE JEE
• distincts
• interchangeables
• distribués
Cours Master 2 - Java EE
Basée sur des composants qui sont :
39
![Page 40: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/40.jpg)
ARCHITECTURE JEE
•Data Access Object
•Data Transfer Object
• Session Facade
• Front controller
•Modèle Vue Controleur
40
De nouveaux patrons de conception:
![Page 41: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/41.jpg)
41
N’oublions pas une problématique en entreprise...
Cours Master 2 - Java EE
![Page 42: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/42.jpg)
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 !
![Page 43: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/43.jpg)
PRODUCTION VS ÉTUDE
43
• La production est conservatrice / les études sont des acteurs du changement
![Page 44: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/44.jpg)
PROBLÉMATIQUES
44
• Respecter les contraintes de la production
• Continuer à innover
![Page 45: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/45.jpg)
ARCHITECTURE JEE
45
![Page 46: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/46.jpg)
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!
![Page 47: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/47.jpg)
47
Pourquoi ne pas inverser la relation entre le container et l’application ?
![Page 48: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/48.jpg)
48
Ce n’est plus le container qui contient l’application mais l’application qui contient le
container !
![Page 49: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/49.jpg)
49
CONTENEUR LÉGER
![Page 50: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/50.jpg)
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
![Page 51: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/51.jpg)
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!
![Page 52: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/52.jpg)
52
Toute la valeur du passage à un conteneur léger est là!
DE L’AGILITÉ...
![Page 53: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/53.jpg)
QUELQUES EXEMPLES
53
Cours Master 2 - Java EE
• Spring
• Pico
• Avalon
• HiveMind
![Page 54: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/54.jpg)
54
Pourquoi vous présentez SPRING ?
![Page 55: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/55.jpg)
55
Parce que je connais l’ancien responsable Spring France...
![Page 56: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/56.jpg)
56
.... mais pas seulement !
![Page 57: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/57.jpg)
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 !
![Page 58: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/58.jpg)
58
mais...
Cours Master 2 - Java EE
![Page 59: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/59.jpg)
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
![Page 60: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/60.jpg)
60
SPRING
• Spring Batch
• Spring MVC
• Spring webflow
• Spring security
• AOP
• Connecteurs JDBC, Hibernate, iBatis, LDPA, ...
Spring apporte beaucoup de choses:
![Page 61: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/61.jpg)
UN STANDARD DU MARCHÉ
61
![Page 62: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/62.jpg)
SPRING
62
• Simple
• Standard de fait
• Tient très bien la charge
• Répond à nos problématiques!
![Page 63: INTRODUCTION À JAVA EE - loyaute/course/doc/M2/M2-10-11/fall/...a_JEE.pdf · Cours Master 2 - Java EE 3 extensibles maintenables répondent aux besoins exprimés par les utilisateurs](https://reader036.vdocuments.site/reader036/viewer/2022062601/5b98b18709d3f2dc628ce2e1/html5/thumbnails/63.jpg)
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 composantsCours Master 2 - Java EE