Académique Documents
Professionnel Documents
Culture Documents
LA NBULEUSE JAVA
Java
dveloppement Java
dveloppement Java
dveloppement
APPLICATIONS DENTREPRISE
rduction des temps et cots de dveloppement portables disponibles scurise maintenables monte en charge
Cours Master 2 - Java EE
ARCHITECTURES APPLICATIVES
applications applications
applications
de normalisation
Besoins
dabstraction
Besoins Besoins
de communication de composants
Cours Master 2 - Java EE
BESOINS DE NORMALISATION
Pour que les applications soient:
intgrables communicantes adaptables maintenables portables
Cours Master 2 - Java EE
/ distribues
BESOINS DABSTRACTION
Pour que les applications soient :
portables maintenables extensibles intgrables adaptables
Cours Master 2 - Java EE
/ distribues
BESOINS DE COMMUNICATION
Pour que les applications soient :
intgrables scurise distribues
BESOINS DE COMPOSANTS
Pour que les applications soient :
maintenables sres extensibles adaptables portables disponibles
/ distribues
Cours Master 2 - Java EE
et surtout...
10
Comment rduire les temps et les cots de dveloppement et dvolutions dune application ?
11
Quelques principes....
12
13
14
classe
ne peuvent tre plus fortes dans une sousne peuvent tre plus faibles dans une
Postconditions
sous-classe
15
16
17
18
QUELQUES RAPPELS
Inversion Injection
Programmation Design
pattern
19
INVERSION DE CONTRLE
Le code gnrique/rutilisable contrle lexcution du code spcique
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); } 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; } }
21
INJECTION DE DPENDANCES
Une manire automatique et directe de fournir une dpendance externe dans un composant logiciel
22
INJECTION DE DPENDANCES
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); } }
23
INJECTION DE DEPENDANCES
public static void main(String[] args) throws Exception { Injector injector = Guice.createInjector(new AsyncWriterModule()); AsyncWriter writer = injector.getInstance(AsyncWriter.class); }
24
25
26
27
DESIGN PATTERN
Dnition:
Une solution gnrale et rutilisable dun problme courant
28
DESIGN PATTERN
Pros:
Abstraction Capitalisation de la connaissance Design Patterns Elements of reusable OO Software
Cons:
Abstraction Diluer dans du code
29
30
de normalisation
Besoins
dabstraction
Besoins Besoins
de communication de composants
Cours Master 2 - Java EE
31
OBJECTIF
Avoir une plateforme pour dvelopper des applications dentreprise rapidement, de qualites, sres, scurises, portables, performantes, disponibles, maintenables, extensibles et ce... moindre cots !
32
DFINITION
Java Enterprise Edition est une norme propose par Sun visant dnir un standard de dveloppement dapplications dentreprises multi-niveaux bases sur des composants.
33
Principes darchitecture...
34
ARCHITECTURE MULTINIVEAUX
Un
35
ARCHITECTURE JEE
Typiquement cest une architecture 3-tiers :
Tiers Tiers Tiers
prsentation : afchage des donnes mtier : gestion du mtier de lapplication donne : persistance des donnes
36
ARCHITECTURE JEE
37
ARCHITECTURE JEE
Permet une sparation claire entre :
linterface les les
homme-machine
38
ARCHITECTURE JEE
Base sur des composants qui sont :
distincts interchangeables distribus
39
ARCHITECTURE JEE
De nouveaux patrons de conception:
Data Access
Object Object
Facade
controller Controleur
40
Modle Vue
41
Migration
Maintenance Stabilit
du Systme dInformation
42
PRODUCTION VS TUDE
La
43
PROBLMATIQUES
Respecter Continuer
44
ARCHITECTURE JEE
45
EXEMPLE
Vous
faites du JEE depuis 2003, la production a certi une version dun serveur dapplication compatible JEE 1.3 2008, tant que la production na pas homologu et certi JEE 5, vous ne pouvez pas lutiliser!
En
47
Ce nest plus le container qui contient lapplication mais lapplication qui contient le container !
48
CONTENEUR LGER
49
CONTENEUR LGER
Gestion
objets ne doivent pas implanter une interface particulire pour tre pris en charge par le framework (diffrence avec les serveurs dapplication JEE / EJB
50
EXEMPLE
La
production a homologu un conteneur de servlet nouvelle version de votre conteneur lger arrive
Une La
DE LAGILIT...
Toute la valeur du passage un conteneur lger est l!
52
QUELQUES EXEMPLES
Spring Pico Avalon HiveMind
53
54
55
56
57
mais...
58
59
SPRING
Spring apporte beaucoup de choses:
Spring Spring Spring Spring AOP Connecteurs
UN STANDARD DU MARCH
61
SPRING
Simple Standard Tient
de fait
Rpond
62
de normalisation
Besoins
dabstraction
Besoins Besoins
de communication de composants
Cours Master 2 - Java EE
63