Thierry ROUSSEL - PowerPoint PPT Presentation

1 / 26
About This Presentation
Title:

Thierry ROUSSEL

Description:

Thierry ROUSSEL – PowerPoint PPT presentation

Number of Views:54
Avg rating:3.0/5.0
Slides: 27
Provided by: trou2
Category:
Tags: roussel | dore | thierry

less

Transcript and Presenter's Notes

Title: Thierry ROUSSEL


1
  • Thierry ROUSSEL
  • Architecte J2EE
  • BNP Arbitrage

2
(No Transcript)
3
SCOPE
  • Introduction aux concepts émergeants
  • containeur léger
  • IOC (Inversion Of Control)
  • Découplage
  • Pas beaucoup de technique (on est des ingénieurs
    pas des techos)
  • Pas de présentation de Spring 2.0

4
Introduction
  • Spring est un framework OS Java créé en 2003
    (licence Apache).
  • Containeur léger
  • Basé sur le principe de lIOC
  • Armature dintégration

5
  • "We believe that version 2.0 going GA is a major
    advance for Spring Framework users and enterprise
    Java overall"
  • Rod Johnson
  • Fondateur du
  • Framework Spring
  • PDG dInterface21

6
Buzz word
Buzz Word ?
7
Les concepts
  • Démarrage 2002
  • Simplification
  • AOP (Aspect Oriented Programming)
  • Découplage
  • Testabilité (test unitaire, refactoring, XP )

8
Les concurrents
9
CONTAINEUR LEGER
  • Containeur Infrastructure similaire à un
    serveur d'application J2EE
  • il prend en charge la création d'objets
  • la mise en relation d'objets
  • ceci englobe aussi les services (transactions,
    jdbc etc)
  • Léger
  • les classes n'ont pas besoin d'implémenter une
    quelconque interface (EJB par ex)
  • beaucoup moins lourd en terme de ressource

10
IOC
  • IOC Inversion Of Control
  • Dependency injection
  • Principe dHollywood  Ne nous appelez pas,
    cest nous qui vous appellerons 

11
IOC
avant inversion
après
12
decouplage
  • Découplage fort entre les différentes briques
    dun logiciel.
  • Ce découplage est présent à un niveau technique
  • Entre DAO, ORM, EJB, Contrôleurs etc
  • Mais aussi à un niveau fonctionnel
  • Couches Services qui sappellent entre elles

13
testabilite
  • Chaque composant dun logiciel est isolé
  • Le liens entre les objets ont un couplage faible
    (injection)
  • Il est facile dinjecter des  mocks  pour
    tester.

14
resume
  • Containeur léger
  • Une armature dintégration
  • Découplage
  • Testabilité

15
SPRING gere des ServiceS
  • Liste non exhaustive des services gérés dans
    Spring
  • Le transactionnel
  • LAOP
  • La création d'EJBs et lappel (clients)
  • La persistance d'objets
  • La création d'une interface Web
  • L'appel de WebServices
  • La gestion de  timers 
  • Et surtout

16
SPRING gere des ServiceS
  • Puisque Spring est une armature dintégration au
    sein dun projet informatique.
  • Tout est possible
  • Hibernate, JDO, Struts, Tapestry, Quartz, XUL,
    commons-logging, echo, .NET, machine à café,
    distillerie

etc...
17
Exemple
Prototype du service
Implémentation
Implémentation de linterface distante (EJB)
18
Exemple avant
  • public class AddFilter extends Controller
  • RouterService routerService
  • public AddFilter()
  • // Load up the initial context
  • Context ctx new InitialContext()
  • // Look up a bean's home interface
  • Object obj ctx.lookup("javacomp/env/ejb/R
    outerServiceHome")
  • RouterServiceHome RouterServiceHome
  • (RouterServiceHome)PortableRemoteObject.nar
    row(obj, RouterServiceHome.class)
  • RouterServiceBean routerServiceBean
    RouterServiceHome.create()
  • routerService (RouterService)
    routerServiceBean
  • public void submit()
  • routerService.addRouterFilter(routerFilter
    , routerID)
  • //getters and setters

19
Exemple apres
  • public class AddFilter extends Controller
  • RouterService routerService
  • public String submit()
  • routerService.addRouterFilter(routerFilter
    , routerID)
  • //getters and setters

20
Exemple
  • ltbeansgt
  • ltbean id"beanRouterService"
  • parent"beanDistantService"gt
  • ltproperty name"jndiName"gt
  • ltvaluegtcom.bnpparibas.eqd.tresoost.rou
    ts.ejb.RouterSessionlt/valuegt
  • lt/propertygt
  • ltproperty name"businessInterface"gt
  • ltvaluegtcom.bnpparibas.eqd.tresoost.rou
    ts.service.RouterServicelt/valuegt
  • lt/propertygt
  • lt/beangt
  • ltbean id"AddFilter"
  • class"com.bnpparibas.eqd.tresoost.hermes.
    web.routs.AddFilter"
  • singleton"false"
  • init-method"init"gt
  • ltproperty name"routerService"
    ref"beanRouterService"/gt
  • lt/beangt
  • lt/beansgt

21
Exemple
  • Dans le DAO
  • public List loadAll()
  • return getHibernateTemplate().find(
  • "from RouterFilter rf "
  • )
  • Dans le service
  • public List getRouterReceivers(RouterReceiver
    routerReceiver)
  • List list filtersDAO.loadAll()
  • routerDAO.deleteOne(routerReceiver)
  • return result

22
Sur design
  •  Gare au sur design, nom dun bulldog ! 
  • Professeur ROUSSEL
  • Spécialiste ES Designologie de
  • Systèmes Habiles
  • du Lac de Paladru

23
sur design
  • Syndrome de Struts allumer une bougie au lance
    flamme
  • Illustration de Mahaud  Une usine à gaz pour
    faire pouet 
  • Spring encourage le découplage et la modularité
    mais il faut éviter une architecture qui implique
    la création de 6 classes et 5 fichiers XML pour
    faire pouet.

24
Sur Design
  • Corrolaire de ROUSSEL
  •  Restons pragmatique 

25
Quelques references
  • BNP
  • Hermes (8000 JMS/jour)
  • Keops
  • etc
  • La Poste DISF
  • Voca
  • Leader européen de transactions crédit / débit
    directs (5 milliards par jour) entre autre 90
    des versements de salaire dans le RU.

26
conclusion
  •  Spring va remplacer J2EE  ?
  • Spring na pas vocation de remplacer J2EE mais
    lintègre.
Write a Comment
User Comments (0)
About PowerShow.com