Solutions Linux Développement Rapide Java

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    2 Favorites

    Solutions Linux Développement Rapide Java - Presentation Transcript

    1. Développement rapide AJAX / JEE avec un outillage libre Laurent Guérin . SOGETI : National Practice Leader \"Open Solutions\" . OW2 : Telosys project leader laurent.guerin@sogeti.com 1
    2. Contexte et Industrialisation Laurent Guérin - 31 mars 2009 2
    3. La problématique de la productivité Productivité Client - serveur L4G L3G Web C/C++ COBOL n-tiers Complexité technique encore trop importante ! 1970 1980 1990 2000 Années Laurent Guérin - 31 mars 2009 3
    4. La complexité des environnements Nombreux frameworks (hétérogènes) Compétences multiples UML Design IHM Patterns riche ! services Réseau métier navi- appli- persis- façade gation cation tence objets métier navigateur AJAX HTML, CSS SQL JavaScript, Java DOM, DHTML, XML/XSL, … L3G ! jar hell ! dépendances ! Laurent Guérin - 31 mars 2009 4
    5. Problèmes & objectifs . Assemblage de solutions . Simplifier l'environnement hétérogènes de développement . Multiplication des \".jar\" . Assister le développeur . Objets non transverses . Alléger le processus de ( => mapping inter-couches ) développement . Multiplication des objets . Réduire de \"code technique\" ( pb d'empreinte mémoire ) . Homogénéiser . Code technique . Standardiser ( sans valeur ajoutée ) . Perte de contrôle sur la . Cadrer couche de persistance . Couche AJAX non intégrée . etc … La complexité Simplicité appelle & Agilité la complexité ! Laurent Guérin - 31 mars 2009 5
    6. L'industrialisation Méthode Méthode Outils Outils Framework Framework ( agile ) ( efficaces ) ( global ) Laurent Guérin - 31 mars 2009 6
    7. Projets Java EE Open Source • Infrastructure et middlewares : Linux Apache Tomcat 100 % MySQL ( ou PostgreSQL ) libre • Frameworks Telosys 100 % Spring simple • IDE Eclipse ( ou NetBeans ) Outils de génération de code Laurent Guérin - 31 mars 2009 7
    8. Les frameworks Laurent Guérin - 31 mars 2009 8
    9. Le \"cadre\" • Framework = \"cadre\" ( doit guider le développeur ) . Normes • Qualités recherchées : . Conventions Souplesse, adaptabilité . Best pratices Non intrusif Isolation des composants ( SoC : Separation Of Concerns ) Conventions d'utilisation ( CoC : Convention Over Configuration ) Outils Facile à outiller à terme outillé • Frameworks utilisés : + Laurent Guérin - 31 mars 2009 9
    10. Framework \"global\" • Telosys = framework \"multi-aspects\" = framework \"global\" Un seul \".jar\" ( telosys.jar ) Laurent Guérin - 31 mars 2009 10
    11. Architecture : Telosys seul Suffisant pour réaliser une application web complète Authenti- fication Présentation Application Métier Persistance Services Screen Java Beans Maps ( POJO ) DAO XML conv SQL JSP + taglib Screen AJAX Managers Framework Javascript Services Commons, logging, I18N, … WebApp \"Pure POJO\" : Performance classique . aucune adhérence Simplicité ( .war ) . aucune altération du byte code Laurent Guérin - 31 mars 2009 11
    12. Architecture : Telosys + Spring Composants / Services core Authenti- fication IoC + AOP Présentation Application Métier Persistance Services Screen Java Beans Maps ( POJO ) DAO XML conv SQL JSP + taglib Screen AJAX Managers Framework Javascript Commons, logging, I18N, … Laurent Guérin - 31 mars 2009 12
    13. Modularité : assemblage progressif • Les composants sont indépendants • Assemblés progressivement (avancement visible en temps réel par le chef de projet) . Couplage faible . Injection de dépendance . Triggers . Couplage faible . Conventions . AOP Assemblage dynamique Fichiers : Fichiers : . \"Screens repository\" (XML) . \"application context\" (XML) . \"ScreenRegistry\" (Java) . \"ServiceRegistry\" (Java) Laurent Guérin - 31 mars 2009 13
    14. Mapping : écran – objets – base de données <%@ taglib uri=\"/telosys/widgets\" prefix=\"t\" %> <t:screenbody data=\"employe\" > JSP + taglib <t:label x=\"40\" y=\"60\" txt=\"Code : \" cl=\"PK_field_label\" /> <t:label x=\"40\" y=\"100\" txt=\"Name : \" /> <t:field x=\"200\" y=\"60\" id=\"code\" data=\"#\" size=\"6\" maxlength=\"6\" /> <t:field x=\"200\" y=\"100\" id=\"name\" data=\"#\" size=\"30\" maxlength=\"30\" /> <t:button x=\"460\" y=\"100\" id=\"b1\" txt=“My button\" onclick=\"…\" /> </t:screenbody > ScreenManager ScreenData DAO <employe . code code=\"\" \"employe\" . name mapping EMPLOYE name=\"\" /> \"societe\" . Code ScreenMap XML \"xxxx\" . Name JavaBean ( POJO ) Laurent Guérin - 31 mars 2009 14
    15. Les outils Laurent Guérin - 31 mars 2009 15
    16. Orientation Software Factory Software Factory + Contrôle Qualité CheckStyle JDepend JUnit etc … Laurent Guérin - 31 mars 2009 16
    17. Génération de code : principe • Moteur de template : application d'un \"template\" sur un \"contexte\" Contexte Fichier \"template\" Templating Objets language Java Moteur Velocity FreeMarker etc … Fichier .java, .html, .txt, etc… généré Laurent Guérin - 31 mars 2009 17
    18. Génération de code : différentes approches • A partir d'un modèle UML MDA (exemple \"Acceleo\") • A partir d'un modèle non UML notion de \"modèle léger\" (référentiel) • Sans autre modèle que les classes Java pour les cas simples, récupération dynamique des informations utiles (exemple \"Java Model\" d'Eclipse) Laurent Guérin - 31 mars 2009 18
    19. Génération de code : MDA Le modèle doit être Modélisation UML : . à jour . Objets Métiers . fiable . Services Métiers UML . détaillé Service name Génération de la +port 0..n Port Binding Port Type 1 +binding name name name Param 1 +type name StartWithExtensions +output 0..1 0..1 +input +operation 0..n BindingOperation name +operation 0..n 1 Operation name +input 0..1 Input 0..1 Output +output XMI \"couche métier\" ( XML ) +message 1 +fault 0..n +fault 0..n Message Fault +message BindingFault name name 1 1 +part 0..n Part name Code Outil MDA Template Acceleo (OW2) AndroMDA etc … Laurent Guérin - 31 mars 2009 19
    20. Génération de code : \"référentiel léger\" fiable Génération Référentiel (toujours Base de .dbrep à jour) données du référentiel ( XML ) Modèle Physique Génération de code Telosys Tools Contexte Fichiers .vm ( plugin ) Velocity Wizards Génération Classes de squelettes .java de classes Laurent Guérin - 31 mars 2009 20
    21. Développement de plugins Eclipse Plugins Telosys 2006-2007 : DAO Generator . 1er plugin pour Telosys . Fenêtres modales 2007 : Screen Builder ( prototype ) . 1er plugin avec GEF . Editeur d'écrans WYSIWYG 2008 : Wizards . Assistants pour faciliter la Eclipse = plateforme création des classes Telosys . assemblage de plugins . socle OSGi 2009 : Telosys Tools Regroupement Le développement . Générateurs basés sur des outils non de plugins est coûteux des \"editors\" graphiques (génération de . Assistants ( \"wizards\" ) code & assistants) Référentiel Préserver l'indépendance => EMF Laurent Guérin - 31 mars 2009
    22. Démo avec Eclipse … Laurent Guérin - 31 mars 2009 22
    23. Intégration dans NetBeans • Prototype en cours de développement • Pour NetBeans un plugin est un \"Module\" ( fichier \".nbm\" ) • Principe proche d'Eclipse • Quelques différences : Plus simple Swing ( et non SWT ) FreeMarker est intégré dans NetBeans Laurent Guérin - 31 mars 2009 23
    24. Bilan • Pour développer \"avec agilité\" Réduire le nombre de frameworks Simplifier l'architecture Favoriser l'assemblage de composants indépendants Frameworks et outils Outils \"légers\" exemple : génération de code \"sans contrainte\" • Surveiller le temps passer à … gérer les dépendances ( jar hell ) réaliser/tester du \"code technique\" administrer les outils Laurent Guérin - 31 mars 2009 24
    25. Questions ? Laurent Guérin - 31 mars 2009 25
    26. Quelques liens • Telosys : http://telosys.ow2.org • Spring : http://www.springsource.org/ • OW2 : http://www.ow2.org • Eclipse : http://www.eclipse.org/ • NetBeans : http://www.netbeans.org/ Laurent Guérin - 31 mars 2009 26

    + lguerinlguerin, 7 months ago

    custom

    1081 views, 2 favs, 0 embeds more stats

    Conférence salon Solutions Linux 31 mars 2009

    More info about this document

    CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

    Go to text version

    • Total Views 1081
      • 1081 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 2
    • Downloads 19
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories