Académique Documents
Professionnel Documents
Culture Documents
01 Introduction A JEE
01 Introduction A JEE
1
LA NÉBULEUSE JAVA
• Java Micro Edition (JME)
2
APPLICATIONS D’ENTREPRISE
réduction des temps et coûts de développement
portables sûres
disponibles extensibles
sécurisée intégrables
maintenables adaptables
3
ARCHITECTURES
APPLICATIVES
• applications centralisées
• applications distribuées
4
LES BESOINS EXPRIMÉS
• 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
5
BESOINS DE NORMALISATION
Pour que les applications soient:
• intégrables
• communicantes / distribuées
• adaptables
• maintenables
• portables
Cours Master 2 - Java EE
6
BESOINS D’ABSTRACTION
Pour que les applications soient :
• portables
• maintenables
• extensibles
• intégrables / distribuées
• adaptables
Cours Master 2 - Java EE
7
BESOINS DE
COMMUNICATION
Pour que les applications soient :
• intégrables
• sécurisée
• distribuées
8
BESOINS DE COMPOSANTS
Pour que les applications soient :
• maintenables
• sûres
• extensibles
• adaptables
• portables
• disponibles / distribuées
Cours Master 2 - Java EE
9
et surtout...
10
Comment réduire les temps et les coûts de
développement et d’évolutions d’une
application ?
11
Quelques principes....
12
PRINCIPE D’OUVERTURE/
FERMETURE
13
PRINCIPE DE SUBSTITUTION
DE LISKOV
14
PRINCIPE DE SUBSTITUTION
DE LISKOV
Programmation par contrat:
• Préconditions ne peuvent être plus fortes dans une sous-
classe
15
UNE SEULE RESPONSABILITÉ
16
Comment respecter ces grands principes ?
17
UNE PARTIE DE LA
SOLUTION...
• Des frameworks
• Des composants
18
QUELQUES RAPPELS
• Inversion de contrôle
• Injection de dépendances
• Design pattern
19
INVERSION DE CONTRÔLE
20
INVERSION DE CONTROLE
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);
}
21
INJECTION DE DÉPENDANCES
22
INJECTION DE DÉPENDANCES
23
INJECTION DE DEPENDANCES
24
PROGRAMMATION PAR
ASPECTS
25
PROGRAMMATION PAR
ASPECTS
public @interface Log {
}
26
PROGRAMMATION PAR
ASPECTS
27
DESIGN PATTERN
Définition:
Une solution générale et réutilisable d’un problème courant
28
DESIGN PATTERN
Pros:
Abstraction
Capitalisation de la connaissance
“Design Patterns – Elements of reusable OO Software”
Cons:
Abstraction
29
Mais, revenons à notre problématique...
30
LES BESOINS EXPRIMÉS
• 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
31
OBJECTIF
32
DÉFINITION
33
Principes d’architecture...
34
ARCHITECTURE MULTI-
NIVEAUX
35
ARCHITECTURE JEE
36
ARCHITECTURE JEE
37
ARCHITECTURE JEE
• les données
38
ARCHITECTURE JEE
• interchangeables
• distribués
39
ARCHITECTURE JEE
De nouveaux patrons de conception:
• Data Access Object
• Session Facade
• Front controller
40
N’oublions pas une problématique en
entreprise...
41
LES CONTRAINTES DE LA
PRODUCTION
• Réduction des coûts
42
PRODUCTION VS ÉTUDE
43
PROBLÉMATIQUES
• Continuer à innover
44
ARCHITECTURE JEE
45
EXEMPLE
46
Pourquoi ne pas inverser la relation entre le
container et l’application ?
47
Ce n’est plus le container qui contient
l’application mais l’application qui contient le
container !
48
CONTENEUR LÉGER
49
CONTENEUR LÉGER
• Gestion du cycle de vie des objets
50
EXEMPLE
• La production a homologué un conteneur de servlet
51
DE L’AGILITÉ...
52
QUELQUES EXEMPLES
• Spring
• Pico
• Avalon
• HiveMind
53
Pourquoi vous présentez SPRING ?
54
Parce que je connais l’ancien responsable Spring France...
55
.... mais pas seulement !
56
Spring apporte l’inversion de contrôle
57
mais...
58
Spring apporte l’inversion de contrôle
59
SPRING
Spring apporte beaucoup de choses:
• Spring Batch
• Spring MVC
• Spring webflow
• Spring security
• AOP
61
SPRING
• Simple
• Standard de fait
62
SPRING UNE RÉPONSE AUX
BESOINS EXPRIMÉS
• 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
63