Projet Telosys : Framework global et outil de génération de code



Documents pareils
JOnAS 5. Serveur d application d

Compte Rendu d intégration d application

PRODUCTS LIST (updated 11th January 2010)

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Atelier Progress Rollbase

Jahia. Guillaume Monnette École Ingénieurs 2000 Marne-La-Vallée IR3

RAPPORT DE STAGE GWT PRISE EN MAIN SERVLET - TEST DES DAO TELOSYS PLUGIN ECLIPSE WIZARD DATASET TELOSYS

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Auto-évaluation Aperçu de l architecture Java EE

Projet Java EE Approfondi

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

BIRT (Business Intelligence and Reporting Tools)

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Tutoriel d installation de Hibernate avec Eclipse

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Cedric Dumoulin (C) The Java EE 7 Tutorial

Cours en ligne Développement Java pour le web

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

Java Aspect Components (JAC)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

RAPID Prenez le contrôle sur vos données

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Application web de gestion de comptes en banques

Création d une application JEE

1. Installation d'un serveur d'application JBoss:

Refonte front-office / back-office - Architecture & Conception -

OpenPaaS Le réseau social d'entreprise

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

Once the installation is complete, you can delete the temporary Zip files..

Plan. Department of Informatics

Java pour le Web. Cours Java - F. Michel

Valorisez vos actifs logiciels avec Rational Asset Manager. Jean-Michel Athané, Certified IT Specialist IBM Rational Software

DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur Le 23 novembre 2012

Editing and managing Systems engineering processes at Snecma

Outil de planification en ligne pour des créations de rendez-vous ou de sondage

Ingénierie Dirigée par les Modèles. Editeurs de modèles. (Eclipse Modeling Tools) Jean-Philippe Babau

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Point sur les solutions de développement d apps pour les périphériques mobiles

JOnAS Day 5.1. Outils de développements

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

RMLL Présentation Activité Pentaho

DEVAKI NEXTOBJET PRESENTATION. Devaki Nextobjects est un projet sous license GNU/Public.

THÉMATIQUES. Comprendre les frameworks productifs. Découvrir leurs usages. Synthèse

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Création d un service web avec NetBeans 5.5 et SJAS 9

INGÉNIEUR LOGICIEL JAVAEE / GROOVY 8 ANS D EXPÉRIENCE

CQP Développeur Nouvelles Technologies (DNT)

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

les techniques d'extraction, les formulaires et intégration dans un site WEB

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Alfstore workflow framework Spécification technique

HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE

[Projet S9] Rédacteurs & Contributeurs Entité Rédacteurs Contributeurs Imededdine HOSNI Olivier MARTY. Validation du document Nom Date Visa

Président d Inotekk Gestion de la société, développement du portefeuille clients, gestion et réalisation des projets informatiques

Introduction à la plateforme J2EE

TP WEBSERVICES. 1 Pré-requis. 1.1 L environnement de développement. 1.2 Les librairies nécessaires 1.3 SOAPUI

Hassene BELGACEM. Expériences Professionnelles. JEE architect / Technical leader. Ingénieur Informatique. Cycle Préparatoire

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

D E S C R I P T I O N D E S É L É M E N T S C L E F S D ' U I M A

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

L offre décisionnel IBM. Patrick COOLS Spécialiste Business Intelligence

<Insert Picture Here>ApExposé. Cédric MYLLE 05 Février Exposé Système et Réseaux : ApEx, Application Express d Oracle

Un serveur d'archivage

Etude de cas : PGE JEE V2

Analyse comparative entre différents outils de BI (Business Intelligence) :

Installer Enterprise Miner 5.1 en SAS environnement Windows

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

Le moteur de workflow JBPM

4. SERVICES WEB REST 46

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Connexions à un projet CVS via Eclipse en accès local et distant. 15 Mai 2007

La gestion de la persistance avec Hibernate. Hibernate et la gestion de persistance. La gestion de la persistance (1/2) Introduction

S T L - C P S - L e s p l u g i n s E c l i p s e. - Une Introduction , Frédéric Peschanski

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

Francis Mignault. ! Coauteur : Expert Oracle Application Express. ! Membre du Oracle APEX Advisory Board apex.oracle.com/vote

Industrialisation des développements AJAX - J2EE

Les Portfolios et Moodle Petit inventaire

31 ans - 8 ans d'expérience

lundi 3 août 2009 Choose your language What is Document Connection for Mac? Communautés Numériques L informatique à la portée du Grand Public

GWT à l'épreuve du feu. by Sami Jaber (DNG Consulting)

What s New. Sun ONE Application Server. Version 7, Enterprise Edition

How to Login to Career Page

Le nouveau visage de la Dataviz dans MicroStrategy 10

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00

Portabilité sur système Android d un système de borne d information

Glassfish dans le milieu médical. Sun Aquarium Paris 26 Juin 2009 Jacky Renno

Mon Service Public - Case study and Mapping to SAML/Liberty specifications. Gaël Gourmelen - France Telecom 23/04/2007

WEB page builder and server for SCADA applications usable from a WEB navigator

DOSSIER DEVELOPPEUR Projet CAR

Sébastien Sougnez 24/12/ / s.sougnez@areaprog.com 2 ans et demi d expérience

EJB. Karim Bouzoubaa Issam Kabbaj

Forthcoming Database

Web Application Firewalls (WAF)

Cloud. Définition? 08/11/2012. James Urquhart The Wisdom of Clouds

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Instructions Mozilla Thunderbird Page 1

CHEF DE PROJET - DÉVELOPPEUR EXPÉRIMENT É PHP - JAVA -.NET. 28 ans - 7 ans d'expérience

INGÉNIEUR - DÉVELOPPEUR EXPÉRIMENT É JAVA - J2EE. 27 ans - 5 ans d'expérience

Grégoire de Lassence. Copyright 2006, SAS Institute Inc. All rights reserved.

Transcription:

Projet Telosys : Framework global et outil de génération de code Laurent Guérin laurent.guerin@sogeti.com @ltguerin Telosys Project Leader Sogeti & OW2 Consortium Solutions Linux / Session OW2-20 juin 2012 - Paris

Introduction Sogeti : Company Capgemini : Company belongs to be o st g lon : Plateform Laurent Guérin : Person Telosys : Project leads provi de s laurent.guerin@sogeti.com located in be lon gs based on de li to hosts tools for : IDE ve re d as OW2 : Consortium : License France : Country 2

Le projet Telosys Method Différentes cibles : Telosys, Struts, Flex, Tools Framework ( code generation ) Designed together, in order to work together ( global & simple ) Un framework global, auto-suffisant pour construire une application complète Des outils (plugins Eclipse) pour générer le code initial de l application et guider le développeur 3

1) Le framework

Le framework Framework global ( "all in one" / "fullstack" ) Keep it simple and pragmatic! Un seul jar (+ JDBC) => pas de "jar hell"! Basé sur des concepts simples Léger (servlet container + base de données) 5

«Global effect» Un seul framework qui couvre toutes les couches de l application Authentication Presentation Application Persistence Services Screen Maps Java Beans ( POJO ) XML JSP + taglib Business AJAX Framework Javascript Natively AJAX conv DAO "VO" SQL Screen Managers Thin persistence layer Services Commons, logging, I18N, Very simple objects ( "Pure POJO" ) Global => moins de glue, moins d objets (empreinte mémoire réduite), moins de configuration, => plus homogène Modulaire (utilisation partielle) 6

Framework : évolutions 2012 Telosys Framework version 2.0 Refactoring des packages Telosys Web Telosys Persistenc e Database Telosys Commons Telosys Framework Plus de généricité => Encore moins de code Packaging modulaire : 1 jar global ou 3 jar (web, persistence, commons) Principale nouveauté : Telosys Persistence 7

Telosys Persistence Telosys Lightweight Persistence API ( LPA ) Record-Oriented Persistence ( «ROP» ) Active Record 1 table = 1 record ( = 1 entity ) Pas de chargement implicite des liens ( lazy/eager loading ) «JPA like» : Entity ( Record ) = POJO + Annotations (compatibles JPA) Plus de DAO, tout est géré par le «PersistenceManager» Dialogue direct avec la base de données Pas de cache de niveau 1 ou niveau 2 Le développeur a un contrôle total sur la base de données A chaque méthode de l API correspond une requête SQL «load» «SQL select», «update» «SQL update», 8

Telosys Persistence vs JPA JPA Telosys LPA Application API Entity Manager Application Entity Manager Cache ( Level 1 ) Persistence Manager Persistence Manager Cache ( Level 1 ) Cache ( Level 2 ) Database Database The API talks directly to the database 9

Telosys Persistence : Record Annotations @Table @Id @Column @GeneratedValue @Temporal @TemporalType @Lob @BooleanStoredAsInteger * @BooleanStoredAsString * * Telosys only Packages : javax.persistence or org.telosys.persistence 10

Telosys Persistence : API PersistenceManager pm pm.load(bean) pm.loadbyprimarykey( ) pm.delete(bean) pm.save(bean) pm.update(bean) pm.insert(bean) pm.exists(bean) pm.createquery( ) pm.loadbyquery(query) pm.loadall(class) pm.count(query) etc SQL Puis NoSQL? GAE, etc 11

2) L outillage «Telosys Tools»

Telosys Tools Un plugin Eclipse Disponible sur Eclipse Marketplace http://marketplace.eclipse.org/content/telosys-tools Une approche de génération qui combine Scaffolding de type «Database - First» «Modèle léger» ( modèle intermédiaire pouvant être modifié et enrichi ) Génération de code de type MDD à partir du modèle léger et de templates adaptables 13

Telosys Tools : le processus Un processus en 3 étapes Template Database updates customizes Metadata Repository generator modify & add information Code generator generates Repository (Lightweight model) updates 1 Approche Database-first pour initialiser un modèle léger Code 2 Adapter / enrichir le modèle léger 3 Générer le code initial 14

Telosys Tools Modèle ( «léger» ) seules les entités sont gérées représentation graphique inutile simple fichier XML (indépendant d Eclipse) adhérence Eclipse : limitée à l IHM Moteur de génération de code ( «templating engine» ) simple connu open source utilisable avec les wizards Basique mais suffisant 15

Vue d ensemble Tout peut être fait dans Eclipse Utilisable en ligne de commande Editors Database Meta-data Repository generator Repository.dbrep ( XML ) Wizards Properties Template.vm Code generator Context.java.jsp /.jspx Velocity.js other 16

Editeur de modèle workspace Repository (model) Fichier.dbrep Database Java Classes modifiable Database Java Attributes O/R Mapping 17

Velocity ( templating engine ) Extrait d un template (génération d un bean) public class $class.name implements Serializable { private static final long serialversionuid = 1L; //--- ATTRIBUTES #foreach( $field in $class.attributes ) private $field.formatedtype(10) $field.formatedname(12) ; #end //--- CONSTRUCTOR(S) public ${class.name}() { super(); } //--- GETTERS & SETTERS #foreach( $field in $class.attributes ) #if ( $field.setter ) public void ${field.setter}( $field.type value ) { this.$field.name = value; } #end #if ( $field.getter ) public $field.type ${field.getter}() { return this.$field.name; } #end #end Repository (model) Velocity Context $class etc cf documentation sur le site Apache 18

3) Démo

Demo Connexion à la base de données Génération du «repository» Modification/adaptation du «repository» Génération des objets de base (Bean, List, DAO, Converters,...) Génération des écrans (server side & client side) Modification des template Gestion des liens inter-entités Génération des beans pour JPA & Validators Ajout d un nouveau template spécifique 20

Demo Use the database meta-data to generate the initial repository Database Generation rules Repository Generator Repository.dbrep ( XML ) 21

Demo (cont d) The generated repository is editable with an Eclipse plugin editor Database Java Classes updatable Database Java Attributes O/R Mapping 22

Demo (cont d) Java fields : Each Java field can have additional information Useful for JSP/TagLib user input validation "Bean Validation " annotations ( JSR 303 ) or "Hibernate Validators" 23

Demo (cont d) Bulk generation 24

Demo (cont d) Generator templates The generator is based on "Velocity" The templates ( ".vm" files ) can be modified in order to conform with each project requirements coding style comments etc i.e. : add/remove serialization 25

Demo (cont d) Entities links The foreign keys can be used to generate links between entities Useful for JPA beans generation 26

Demo (cont d) Generator project s variables Each project can define its own specific variables and use them in the templates #if ( $bean_jpa == "1" ) $link.jpaannotations(4) #end 27

Demo (cont d) Adding a new specific template 1) create the new.vm file 2) add it in the templates.cfg file HTML documentation ; Title ${BEANNAME}.html ; File doc/html ; Folder vo_doc_html.vm vo_doc_html.vm Template 3) use it in the tool 28

Demo (cont d) Using wizards New 29

Conclusion

Conclusion Un outillage simple et léger Intégré dans Eclipse, immédiatement utilisable par des développeurs non initiés au MDD Peu sophistiqué, mais efficace - sophistication + La génération de code pour tous! 31

Conclusion Base de données Modèle léger Outils Code initial et le projet est sur les rails 32

Follow the project Web site : http:// LinkedIN group http://www.linkedin.com/groups?gid=1340197 Twitter http://twitter.com/telosys Viadeo group (in french) http://www.viadeo.com/hu03/0024uydjnnwew6j/telosys 33