300 likes | 418 Views
Architecture ACube Lise 4.0. Journée Contributeur ACube Kube Hotel 22 octobre 2008 Atos Origin - CRIF. 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.
E N D
Architecture ACube Lise 4.0 Journée Contributeur ACube Kube Hotel 22 octobre 2008 Atos Origin - CRIF
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 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
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 4
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 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 7
Couche MVC HandlerMapping 1 2 Controller DispatcherServlet ModelAndView 3 acube.framework.mvc.controller.* 4 5 ViewResolver View acube.framework.mvc.view.* 8
Couche MVC AbstractController BaseCommandController MultiActionController AbstractCommandController Spring MVC ACube MVC AbstractACubeMultiActionController AbstractACubeController MultiFormat ACubeFileController AbstractMultiFormatController AbstractMultiActionMultiFormatController ACubeDownloadController ACubeUploadController ACubeLoginController DefaultAcubeController 9
Couche MVC AbstractView AbstractXsltView AbstractPdfView AbstractExcelView JasperReportsMultiFormatView Spring MVC ACube MVC iText POI Jasper MOXy AbstractACubeExcelView JasperReportsView AbstractACubePdfView pdf xls html csv FOP pdf png rtf […] 10
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 11
Couches Services et Persistance Exists<Id> FindBy<Entity,Id> FindAll<Entity> Save<Entity> Remove<Id> AbstractService<Dao> GenericService<Entity,Id> AbstractACubeFileService DefaultService<Entity,Id,Dao> FileSystemFileService (Architecture semblable pour les DAO) 12
Couches Services et Persistance 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! 13
Couches Services et Persistance • Lien Contrôleur -> Service « classique » (un DAO) publicclass ProductController […] { ProductService productService; […] } publicinterface ProductService extends GenericService <Product, Integer>{} <beanname="productController" class="my.package.ProductController"> <propertyname="productService" ref="productServiceImpl"/> </bean> ApplicationContext(Spring IOC) publicclass ProductServiceImpl extends DefaultService<Product, Integer, ProductDao> implements ProductService {} 14
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 15
Génération de codes 4 1 Modélisation et de génération du code EclipseLink WorkBench 3 5 2 *.java *.xml *.java *.java Fichiers de mapping VO et BO Squelette du programme Bases de Données 16
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 17
Gestion des logs A3 log environnement errorLog httpd.conf accesLog project code SLF4J A3 Framework Façade SLF4J sortie fichier SpringSEC | Core | MVC | Mail | IO sortie fichier ApacheTomcat | FOP | POI commons-logging Quartz LOGGERlog4j JasperReports sortie console Eclipse Link logger_JDK IText A3 application Tomcat container 18
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 19
Gestion de la configuration 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. 20
Gestion de la configuration Compilation Sources Target Maven resources resources […] %{log.acube.filename} […] […] acube.log […] %{log.acube.filename} ACube.log filters log.properties […] […] log.acube.filename=ACube.log […].properties 21
MyClass […] […] ACubeConfig. getValue( “ERR-FCT-16”,“id”) Gestion de la configuration Framework.properties Framework.properties […].properties […] i18n. libelles_erreurs […] i18n ACubeConfig libelles_erreurs_fr.properties […] […] ERR-FCT-16= Champ ''{0}'' obligatoire […].properties "Champ id obligatoire" 22
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 23
Documentation MAJ MAJ MAJ (coming soon) MAJ (coming soon) 24
Documentation MAJ (coming soon) MAJ (coming soon) MAJ (coming soon) MAJ 25
Documentation NEW NEW NEW NEW NEW MAJ NEW NEW 26
Documentation NEW (coming soon) NEW NEW NEW MAJ 27
Documentation MAJ MAJ (coming soon) 28
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 29