Building Entreprise App With Spring Portfolio

Preview:

Citation preview

Spring Portfolio dans les applications d’entreprise

TechDay CCJ ArrowOctobre 2008

. 15-10-2008

. Hamdi Makni - CCJ Arrow

Road map

• Application d’entreprise typique• Spring Portfolio

– Spring framework • IOC/AOP: les bases de Spring

– Spring Web Flow– Spring WebService– Spring Security– Spring Batch– Spring Dynamic modules– Spring Integration

• What else?

. 15-10-2008

. Hamdi Makni - CCJ Arrow

Modèle d’application d’entreprise

• Multitude de protocoles, d’aspects, de technos,…

WEB(mvc, jsf,…)

Business (invoke http, ws, jms, EJB…)

JTA

WS,JSM,JMX,EJB..

DAO(ORM, Jdbc,..)

sécurité

logging

validation

Intégration (EAI, ESB)

cache

BatchRCP(swing, awt)

Conteneur léger (IOC/AOP) OSGI container

. 15-10-2008

. Hamdi Makni - CCJ Arrow

Spring Portfolio: l’équipe

• Spring Framework• Spring Web Flow• Spring Web Services• Spring Security (Acegi Security)• Spring Dynamic Modules For OSGi(tm) Service Platforms• Spring Batch• Spring Integration• Spring LDAP• Spring IDE• Spring Modules• Spring JavaConfig• Spring Rich Client• Spring .NET• Spring BeanDoc

. 15-10-2008

. Hamdi Makni - CCJ Arrow

Spring framework

• www.springframework.com• Version 2.5.5 (bientôt la version 3)• Très bien documenté• Support très réactif• Open source & free, mais … nouvelle

licence à partir de la nouvelle version

. 15-10-2008

. Hamdi Makni - CCJ Arrow

Spring framework

WEB(mvc, jsf,…)

Business (invoke http, ws, jms, EJB…)

JTA

WS,JSM,JMX,EJB..

DAO(ORM, Jdbc,..)

sécurité

logging

validation

Intégration (EAI, ESB)

cache

Batch

Conteneur léger (IOC/AOP)

RCP(swing, awt)

OSGI container

. 15-10-2008

. Hamdi Makni - CCJ Arrow

Les concepts de base de «Spring»: AOP/IOC/PSA

. 15-10-2008

. Hamdi Makni - CCJ Arrow

Les concepts de base de «Spring»: AOP/IOC/PSA

• Tous les projets spring ont le même esprit– Modularité– Portabilité– Système « Lego »: forte abstraction– Découplage des dépendances

• Même cœur utilisé partout– Fabrique de bean– Conteneur de bean

. 15-10-2008

. Hamdi Makni - CCJ Arrow

IOC: Injection de dépendances

. 15-10-2008

. Hamdi Makni - CCJ Arrow

IOC: Injection de dépendances

. 15-10-2008

. Hamdi Makni - CCJ Arrow

AOP: programmation par aspect

• Aspect Oriented Programming– Logging– Gestion de transaction– Validation– Exception Handling– Cache

• Proxy / interceptor• AspectJ (version 2)

. 15-10-2008

. Hamdi Makni - CCJ Arrow

Spring Web Flow

• http://www.springframework.org/webflow• 2 versions, et 2 distributions différentes• Système de gestion de flow• Créer des wizards sur des pages web• Basé sur des diagrammes d’état/transition

. 15-10-2008

. Hamdi Makni - CCJ Arrow

Spring Web Flow

. 15-10-2008

. Hamdi Makni - CCJ Arrow

Spring Web Flow: nouvelle distribution

. 15-10-2008

. Hamdi Makni - CCJ Arrow

Spring Web Service

• http://www.springframework.org/spring-ws• Contract first WS generator• Concurrents: Axis 1/2 , Xfire• Architecture proche de spring mvc

. 15-10-2008

. Hamdi Makni - CCJ Arrow

Spring Security

• http://static.springframework.org/spring-security/site/index.html

• Acegi Security• Facilité d’intégration avec Spring MVC,

Spring WS, Spring WF• Riches en fonctionnalités• !!!!!config compliquée!!!!!

. 15-10-2008

. Hamdi Makni - CCJ Arrow

Spring Batch

• http://static.springframework.org/spring-batch/

• Encore à sa première version• Résoudre les problèmes classiques des

batch:– Flux important de données– Aspect transactionnel– Relance en cas d’échec

. 15-10-2008

. Hamdi Makni - CCJ Arrow

Spring Batch

. 15-10-2008

. Hamdi Makni - CCJ Arrow

Spring Dynamic Modules

• http://www.springframework.org/osgi• Permet de développer des applications

modulaires– OSGI application

• Basé sur equinox (implémentation de référence de OSGI)

. 15-10-2008

. Hamdi Makni - CCJ Arrow

Spring Integration

• http://www.springframework.org/spring-integration

• ESB• Intégration des applications d’entreprise

via différents protocoles

. 15-10-2008

. Hamdi Makni - CCJ Arrow

What else?

• RAD (Rapid Application Developpment): spring 2 supporte– JRuby– Groovy

. 15-10-2008

. Hamdi Makni - CCJ Arrow

Conclusion

• Simple et puissant• Bien documenté• Plus qu’un simple « spring framework »• Idéale pour développer une application

d’entreprise– Il touche aux différents aspects et couches de

l’application

. 15-10-2008

. Hamdi Makni - CCJ Arrow

Références

• http://video.google.com/videoplay?docid=6852783793274783146

• http://www.cjugaustralia.org/slides/june2007/spring_portfolio.pdf

• http://www.websphereusergroup.org.uk/uploadedfiles/misc/spring070227.pdf

• http://skillsmatter.com/downloads/RodJohnson_SpringeXchange2008.pdf