Cette création est mise à disposition selon le Contrat Paternité - Pas d'Utilisation...

Preview:

Citation preview

Cette création est mise à disposition selon le Contrat Paternité - Pas d'Utilisation Commerciale - Partage des Conditions Initiales à l'Identique disponible en ligne http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ ou par courrier postal à Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Architecture ACube Lise 4.0

Journée Contributeur ACube

Kube Hotel

22 octobre 2008

Atos Origin - CRIF

2

Plan

Enjeux majeurs Architecture Générale Couche MVC Couches Service et Persistance Génération de codes Gestion des logs Gestion de la configuration Documentation Démonstration

3

Plan

Enjeux majeurs Architecture Générale Couche MVC Couches Service et Persistance Génération de codes Gestion des logs Gestion de la configuration Documentation Démonstration

4

Enjeux Majeurs

Se munir d’une plateforme d’extension, pourquoi faire?

Renforcer l’apport de la communauté via la réalisation d’extensions

Séparer l’évolution du framework de l’ajout de fonctionnalités

Augmenter l’attractivité du framework

A chaque projet correspond un lot d’extensions

5

Plan

Enjeux majeurs

Architecture Générale Couche MVC Couches Service et Persistance Génération de codes Gestion des logs Gestion de la configuration Documentation Démonstration

6

Architecture de Lise 4.0

7

Plan

Enjeux majeurs Architecture Générale

Couche MVC Couches Service et Persistance Génération de codes Gestion des logs Gestion de la configuration Documentation Démonstration

8

Couche MVC

ControllerController

ViewResolverViewResolver

ModelAndViewModelAndView

HandlerMappingHandlerMapping

ViewView

5

1

2

3

4

DispatcherServletDispatcherServlet

acube.framework.mvc.view.*

acube.framework.mvc.controller.*

9

AbstractACubeController

ACubeFileController AbstractMultiFormatController

ACubeLoginController DefaultAcubeController

MultiFormat

AbstractController

MultiActionController

Spring MVC

ACube MVCAbstractACubeMultiActionController

BaseCommandController

AbstractCommandController

AbstractMultiActionMultiFormatController

ACubeUploadController ACubeDownloadController

Couche MVC

10

AbstractACubeXsltView

DefaultAcubeXsltView AbstractACubeXslFoView

Spring MVC

ACube MVC

AbstractACubeExcelViewAbstractACubePdfView

AbstractPdfViewAbstractXsltView AbstractExcelView JasperReportsMultiFormatView

JasperReportsView

AbstractView

FOP

iText POIMOXy Jasper

Couche MVC

pdfpngrtf

[…]

pdfxls

htmlcsv

11

Plan

Enjeux majeurs Architecture Générale Couche MVC

Couches Service et Persistance Génération de codes Gestion des logs Gestion de la configuration Documentation Démonstration

12

Couches Services et Persistance

GenericService<Entity,Id>AbstractService<Dao>

FileSystemFileService

DefaultService<Entity,Id,Dao>AbstractACubeFileService

Exists<Id> FindBy<Entity,Id>FindAll<Entity> Save<Entity> Remove<Id>

(Architecture semblable pour les DAO)

13

Lien entre les couches MVC, Service et Persistance fait via Spring IOC (Indépendance des couches)

Besoin classique: service à un DAO

Hypothèse supplémentaire: DAO JPA

Pas de code!

Couches Services et Persistance

14

public interface ProductService extends GenericService

<Product, Integer>{}

public class ProductController […] {ProductService productService;

[…] }

Lien Contrôleur -> Service « classique » (un DAO)

public class ProductServiceImpl extends DefaultService<Product, Integer, ProductDao>

implements ProductService {}

<bean name="productController"class="my.package.ProductController">

<property name="productService"ref="productServiceImpl" />

</bean>

ApplicationContext(Spring IOC)

Couches Services et Persistance

15

Plan

Enjeux majeurs Architecture Générale Couche MVC Couches Service et Persistance

Génération de codes Gestion des logs Gestion de la configuration Documentation Démonstration

16

Génération de codes

Modélisation et de génération du

code

EclipseLink WorkBench

1

*.java *.java

*.java *.xml

VO et BOFichiers de

mapping

2

3

4

5

Squelette du programme Bases de Données

17

Plan

Enjeux majeurs Architecture Générale Couche MVC Couches Service et Persistance Génération de codes

Gestion des logs Gestion de la configuration Documentation Démonstration

18

Gestion des logs

httpd.conf

errorLog

accesLog

A3 Framework

SpringSEC | Core | MVC | Mail | IO

Quartz

Eclipse Link

FaçadeSLF4J

LOGGERlog4j

A3 log environnement

A3 application

ApacheTomcat | FOP | POI

project code

Tomcat container

SLF

4J

logger_JDK

sortie fichier

sortie fichier

sortie console

IText

com

mon

s-lo

ggin

g

JasperReports

19

Plan

Enjeux majeurs Architecture Générale Couche MVC Couches Service et Persistance Génération de codes Gestion des logs

Gestion de la configuration Documentation Démonstration

20

Trois niveaux de gestion de la configuration:

Intégration applicative : Propagation de la configuration centralisée dans tout le projet lors de l’intégration.

Intégration Infrastructure : Différents ensembles de fichiers de configuration pour différents types de déploiement. (coming soon)

Paramétrage : Accès à des fichiers de configuration depuis l’application pendant le développement ou l’exploitation en production.

Gestion de la configuration

21

SourcesSources

Maven

Compilation

filterslog.properties

[…]

[…]

[…].properties

resources

[…]%{log.acube.filename}

[…]

TargetTarget

resources

[…]acube.log

[…]%{log.acube.filename} ACube.log

log.acube.filename=ACube.log

Gestion de la configuration

22

i18n

libelles_erreurs_fr.properties

[…]

[…]

Framework.propertiesFramework.properties

[…].properties

[…].properties

MyClass

[…]

[…]

ACubeConfig. getValue( “ERR-FCT-16”,“id”)

ACubeConfig ERR-FCT-16= Champ ''{0}'' obligatoire

"Champ id obligatoire"

[…]i18n. libelles_erreurs

[…]

Gestion de la configuration

23

Plan

Enjeux majeurs Architecture Générale Couche MVC Couches Service et Persistance Génération de codes Gestion des logs Gestion de la configuration

Documentation Démonstration

24

Documentation

(coming soon)

(coming soon)

25

Documentation

(coming soon)

(coming soon)

(coming soon)

26

Documentation

27

Documentation

(coming soon)

28

Documentation

(coming soon)

29

Plan

Enjeux majeurs Architecture Générale Couche MVC Couches Service et Persistance Génération de codes Gestion des logs Gestion de la configuration Documentation

Démonstration

30

Démonstration

Recommended