Copyright © 2006-2007 – ESUP-Portail esup-commons : un framework de développement pour le projet ESUP-Portail Pascal Aubry IFSIC / Université de Rennes.

Slides:



Advertisements
Présentations similaires
Master SIR (M2) Année Développement en environnement J2EE de Web services pour l'interopérabilité du projet CASTORE ce stage de fin d’étude a.
Advertisements

Plan Portlets La norme JSR-168 Qu'est-ce qu'une Portlet ?
Introduction Les types de canaux Les simplesRSSWeb ProxyTransformation Les différents types de canaux Les canaux prédéfinis.
Département Édition - Intégration SEMINAIRE SOA Migration du canal Esup MonDossierWeb Olivier Ziller / Charlie Dubois Université Nancy 2 16 octobre 2007.
IntroductionArchitecturesPropriétésTâches ANT Apports par rapport à uPortal Un seul fichier de configuration Ajout de librairies Ajout de CAS comme méthode.
Tomcat et son fonctionnement XML
Copyright 2008 © Consortium ESUP-Portail EsupDay /02/2009 Atelier stockage Raymond Bourges, Université de Rennes 1.
Université Rennes 2 Haute Bretagne
05/07/07ESUP-Days IV Bravin - Jouin - Monclin Celcat à lUniversité de Reims Champagne - Ardenne.
Université Rennes 2 Haute Bretagne Environnement Numérique de Travail Formation pour la mise en place de lapplication « Esup-Helpdesk » pour le CRI (demande.
Outils de communication. 17/11/2005Raymond Bourges2 Outils de communication Site Web Documentation (Bientôt gérée avec inJAC) Espace de téléchargement.
Copyright 2008 © Consortium ESUP-Portail EsupDay /02/2009 Points généraux.
Auteur : CRI Année de création : Implémentation uPortal-esup
Retour d’expériences : Qualité et co-développement au consortium ESUP
Nouvelle version du canal Esup MonDossierWeb
Le consortium et la mutualisation entre les universités
Copyright 2012 © Consortium ESUP-Portail ESUP days, Paris, 8 février 2012 Portail ESUP Version 4 En avant Julien Marchal.
SITools Présentation de l’outil (1/2)
Serveurs web pour JSP et Servlets
Architecture. Architecture Enjeux Les Enjeux Trouver une solution e-Business Accessible à partir d’un navigateur Web Accédant au système via un Portail.
INTRODUCTION INTRODUCTION ERGONOMIE Tri par cartes Formulaires Interface Installation Lanceur Documentation TECHNOLOGIES XML + XSL CSS Formulaires génériques.
Cours 6 : XML et les architectures N-tiers – Tier Applicatif
51 Les technologies XML Cours 7 : Utilisations dXML Janvier Version 1.0 -
Projet Webase. I. La définition du projet 1. Lexistant : Webase 4 2. Cahier des charges 3. La répartition des données 4. Le modèle de données 5. Le choix.
Design Pattern MVC En PHP5.
Le mécanisme de Single Sign-On CAS (Central Authentication Service)
Copyright 2008 © Consortium ESUP-Portail ESUP-Days 7, Paris, 3 février 2009 Evolutions de esup-helpdesk v3 Pascal Aubry.
Copyright 2010 © Consortium ESUP-Portail TOC ESUP-Days 10, Paris, 2 juillet 2010 De LDAP à Kerberos à lUniversité de Rennes 1 Pascal Aubry François Dagorn.
Copyright © 2007 – ESUP-Portail ESUP-Days, Paris, 25 janvier 2007 Les projets de lincubateur Janvier 2007.
Le point sur l’incubateur
Copyright © 2006 – ESUP-Portail ESUP-Days, Paris, 22 juin 2006 Le cycle de vie des projets Ou comment contribuer au projet ESUP-Portail.
ESUP-Portail Helpdesk : évolutions de la version 3
Single Sign-On open source avec CAS (Central Authentication Service)
Copyright © – ESUP-Portail esup-commons : un framework de développement pour le projet ESUP-Portail Pascal Aubry sur-connaissant IFSIC / Université
Copyright © – ESUP-Portail esup-commons : où en est-on ? Pascal Aubry IFSIC / Université de Rennes 1
Projet JEE approfondi Stripes / Toplink
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
XML-Family Web Services Description Language W.S.D.L.
Le langage PHP 5.
M2 – MIAGE/SID Servlet M2 – MIAGE/SID
Développement Rapide dApplications Web avec.NET « Mon premier site »
Une base de données XML sur le net
Projet JAVA EE Approfondi
Interaction audio sur le site web du LIA
Saisie de l’Offre de Formation (SOF)
Architecture dun site de vente au détail1 Modèle d'un site simple de vente Lexemple du livre Ruby on Rails Partie II Java Adventure Builder Demo Réalisé.
1 CSI 2532 Lab6 Application Web et DB Février 27, 2012.
Projet de Master première année 2007 / 2008
Adaptée du cours de Richard Grin
Initiation au web dynamique - TP
M2 – MIAGE/SID Servlet M2 – MIAGE/SID
19 Mai 2009 CADOT, ROMON, NOEL, GUILLOUET, MONGENET-LAMAISON.
Content Management System CMS. Pourquoi ? Obligation de ressaisir des contenus publiés à plusieurs endroits Pas d’outils de gestion de qualité de l’information.
Quand l’agilité n’est pas une option
Enterprise Java Beans 3.0 Cours INF Bases de Données Hiver 2005, groupe 10 Stefan MARTINESCU.
Metro Web Services Ben Yaflah Marouen Dhrif Mohamed Hbib Hajlaoui Nader.
Présentation du framework JSF (Java Server Faces) dans le modèle événementiel MVCII
© WYNIWYG / Communication, reproduction interdite sauf autorisation.
Struts.
Chantier Factory Prototype Bankonet Cellule Architecture – Zoom Chantier Le pictogramme permet de rappeler rapidement la technologie concernée par le Zoom.
Places of worship. Qu’est-ce que c’est? –C’est une mosquée. C’est le mosquée de Washington,D.C. Les muselmans vont au mosquée le vendredi.
Cours MIAGE « Architectures Orientées Services »Henry Boccon-GibodCours MIAGE « Architectures Orientées Services »Henry Boccon-Gibod 1 Architectures Orientées.
Présentation ESTRABOX
Module 2 : Planification de l'installation de SQL Server
TWP Toolkit Formation 21/10/2009.
Parquet Geoffrey 3 ARIL EXIA.CESI ARRAS. Présentation du MLD Présentation de la persistance Présentation récapitulatif du projet JSP/SERVLET MVC Cycle.
Architecture J2EE Web Jean-Jacques LE COZ. J2EE Web Container JSP Page Servlet J ava 2 Standard Edition APIs EJB Container EJB JDBCJMS JNDI JTA JavaMail.
Transcription de la présentation:

Copyright © – ESUP-Portail esup-commons : un framework de développement pour le projet ESUP-Portail Pascal Aubry IFSIC / Université de Rennes 1 Changer de méthodologie, doutils, de métier

Copyright © – ESUP-Portail Copyright Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.

Copyright © – ESUP-Portail Le contexte Enseignement Supérieur / Recherche –Consortium ESUP-Portail Le logiciel libre J2EE –uPortal / CAS –Recommandations

Copyright © – ESUP-Portail Le métier de développeur Un métier ou des métiers ? –Développeur Interface, métier, base de données, … –Exploitant Configuration, déploiement, optimisation –Graphiste Beaucoup de compétences, de transversalité Beaucoup de questions…

Copyright © – ESUP-Portail Le logiciel libre dans notre communauté Beaucoup de consommateurs Peu de producteurs Beaucoup dactions de recensement Peu dincitations au développement Beaucoup de développements libres Peu de diffusion

Copyright © – ESUP-Portail Esup-commons Un outil écrit par des développeurs Pour les développeurs Pour les exploitants

Copyright © – ESUP-Portail Les objectifs de esup-commons Simplifier la maintenance Faciliter ladaptation aux configurations locales Permettre lévolution des fonctionnalités Augmenter la productivité Faciliter la mobilité des développeurs Uniformiser les installations dapplications Faciliter les contributions Fiabiliser les applications Améliorer laccessibilité

Copyright © – ESUP-Portail Once upon a time… Utilise dès que possible des outils de haut niveau ! Sépare bien tes couches ! Abstrait tes objets ! Relis ton code deux semaines après !

Copyright © – ESUP-Portail Lidéal standard Logique métier Accès aux données Bases de données Accès aux services Autres sources Logique applicative Présentation

Copyright © – ESUP-Portail Dans la pratique ;-) Bases de données Application Autres sources

Copyright © – ESUP-Portail Séquence nostalgie // logique applicative if (!empty($_POST["userId"])) { // accès aux données $c = ) ; $res = $conn->Query( "SELECT * FROM user WHERE id = '" + userId + "'") ; $row = $res->FetchRow(DB_FETCHMODE_ASSOC); // logique métier $displayName = $row["display_name"]; // présentation echo "Hello ". displayName. "!"; }

Copyright © – ESUP-Portail En sappuyant sur lAPI uPortal Bases de données Tout le reste Autres sources Présentation (XSLT) XML XHTML

Copyright © – ESUP-Portail Les problèmes de cette approche Maintenance de XSLT Ladhérence de la présentation reste très importante –On ne remonte pas les objets métier –On produit du XML lié à la présentation Tout est mélangé, il faut être sur-connaissant

Copyright © – ESUP-Portail Le grand test de lhiver 2007 Écrit une requête SQL ? Écrit une classe Java ? Écrit une requête LDAP ? Utilisé un cache ? Écrit un fichier XML, XSL ? Été voir un cookie de près ? Inspecté un fichier WSDL ? Modifié une CSS ? Affiché la source dune page HTML ? Envoyé un mail en commençant par HELO ? Tapé une URL « à la main » ? Appuyé sur le bouton « Démarrer » ?

Copyright © – ESUP-Portail Résultats du test Si vous avez répondu plus dune fois oui, vous êtes sur-connaissant ! Sinon, vous vous êtes sans doute trompé de salle, cest pour ça que vous ne pigez rien depuis une heure Vous êtes à JRES ;-)

Copyright © – ESUP-Portail Être ou ne pas être sur- connaissant Oui, nous sommes sur-connaissant Et cela fait déjà quelques années… –Les applications font sensiblement la même chose quil y a quelques années Quest ce qui a changé ? –Hier : PHP + HTML + SQL + LDAP –Aujourdhui : Java + XML + XSLT + Hibernate/Ibatis + WS + LDAP + i18n + CAS + JSR Portail + Spring + JSF + …

Copyright © – ESUP-Portail Être ou ne pas être sur- connaissant Le constat –Développeur est devenu un métier à part entière Lobjectif –Minimiser les incidences de cette sur-connaissance –Bénéficier des apports des nouvelles technologies

Copyright © – ESUP-Portail Alors, faut-il vraiment aller vers ces technos ? A vous de décider !

Copyright © – ESUP-Portail Larchitecture de esup-commons Présentation Logique applicative Logique métier Données Persistance Requêtes web domain beans base LDAP portail URLs I18n Cache Accès Authentification

Copyright © – ESUP-Portail Portlet/servlet : même combat Nous ne développons pas des portlets ou des servlets, nous développons des applications Il est très intéressant de pouvoir faire tourner une application tantôt en servlet, tantôt en portlet –Environnement de Développement plus simple en servlet –Permet de séparer les problèmes inhérants aux portlets Publication, déploiement, interaction avec le portail –Diffusion en quick-start

Copyright © – ESUP-Portail Le choix du MVC : Spring ou JSF ? 2 frameworks de haut niveau Problème avec Spring : deux MVC distincts –Portage facile mais maintenance double

Copyright © – ESUP-Portail Le MVC Spring (servlet) import org.springframework.web.servlet.mvc.Controller; import org.springframework.web.servlet.ModelAndView; public class ServletController implements Controller { public ModelAndView handleRequest( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { logger.info("returning hello view"); return new ModelAndView("hello.jsp"); } }

Copyright © – ESUP-Portail Le MVC Spring (portlet) import org.springframework.web.portlet.mvc.Controller; import org.springframework.web.portlet.ModelAndView; public class PortletController implements Controller { public ModelAndView handleRequest( PortletRequest request, PortletResponse response) throws ServletException, IOException { logger.info("returning hello view"); return new ModelAndView("hello.jsp"); } }

Copyright © – ESUP-Portail Le MVC JSF public class JsfController { public String callback() { logger.info("returning hello view"); return "hello"; } } navigation-rules.xml – anyView.jsp hello hello.jsp

Copyright © – ESUP-Portail Alors, Spring ou JSF ? Les deux ! Spring pour la gestion des beans –De loin le meilleur (JSF le fait également) –Outils de développement (Spring IDE) JSF pour la logique applicative et la présentation –MVC : même code portlet/servlet –Présentation : taglib MyFaces + Tomahawk

Copyright © – ESUP-Portail Larchitecture de esup-commons Gestion des beans web Présentation Logique applicative Logique métier Données Persistance Requêtes web domain beans base LDAP portail URLs I18n Cache Accès Authentification

Copyright © – ESUP-Portail Déploiement simplifié (build.properties) Déploiement en portlet –deploy.type=portlet deploy.home=C:/uPortal/portlets Déploiement en servlet –deploy.type=servlet deploy.home=C:/Tomcat/webapps Déploiement Quick-start –quick-start=true

Copyright © – ESUP-Portail Larchitecture de esup-commons Gestion des beans web Présentation Logique applicative Logique métier Données Persistance Requêtes web domain beans base LDAP portail URLs I18n Cache Accès Authentification

Copyright © – ESUP-Portail Données : Ibatis ou Hibernate ? Peu importe ! /** * The DAO service interface. */ public interface DaoService { /** all the users */ List getUsers(); }

Copyright © – ESUP-Portail Ibatis /** * See /properties/dao/dao-example.xml */ public class IbatisDaoServiceImpl implements DaoService { /** DaoService#getUsers() */ public List getUsers() { return sqlMapClientTemplate.queryForList("getUsers", null); } }

Copyright © – ESUP-Portail Hibernate /** * See /properties/dao/dao-example.xml */ public class HibernateDaoServiceImpl implements DaoService { /** DaoService#getUsers() */ public List getUsers() { return getHibernateTemplate().loadAll(User.class); } }

Copyright © – ESUP-Portail Larchitecture de esup-commons Gestion des beans data web Présentation Logique applicative Logique métier Données Persistance Requêtes web domain beans base LDAP portail URLs I18n Cache Accès Authentification

Copyright © – ESUP-Portail Les « plus » de esup-commons Gestion des transactions Gestion des versions Gestion des exceptions Internationalisation native Envoi de courriers électroniques Commandes en ligne Web services Gestion de lauthentification Accès au portail Accès à LDAP Pagination des données Taglib dynamique Gestion des URLs directes (deep linking) Gestion de cache

Copyright © – ESUP-Portail Gestion transactionnelle Prise en charge sans écriture de code Modèle one-session-per-request Extensions –Aux web services –Aux commandes en ligne –Modèle one-session-per-command

Copyright © – ESUP-Portail Versionning (Hibernate) Gestion automatique de la structure de la base –Création et mise à jour –Plus de SQL ! Gestion des versions –Assurer que les versions de lapplication et de la base de données sont les mêmes, ou au moins compatibles –Essentiel en environnement cluster

Copyright © – ESUP-Portail Gestion des exceptions

Copyright © – ESUP-Portail Gestion des exceptions Envoi possible par

Copyright © – ESUP-Portail Internationalisation native Utilisation de bundles (RBE) –

Copyright © – ESUP-Portail Envoi de courriers électroniques Pour envoyer nimporte quoi… –Rapports dexception, alertes, informations de connexion Possibilité denvoi en asynchrone –Pour éviter les timeouts Envoi plain/text et text/html Possibilité dinterception en période de test

Copyright © – ESUP-Portail Commandes en ligne Gestion des exceptions et de laccès aux données présentation contrôleur web service métier service de données Gestion des beans données commandes en lignerequêtes web contrôleur batch database web LDAP accès portail service dURL i18n cache authentification

Copyright © – ESUP-Portail Web services Gestion des exceptions et de laccès aux données présentation contrôleur web service métier service de données Gestion des beans données commandes en lignerequêtes web contrôleur batch database web LDAP accès portail service dURL i18n cache authentification web services contrôleur batch

Copyright © – ESUP-Portail Gestion de lauthentification Externalisation vers un service dauthentification Implémentations pré-définies –Pour un filtre CAS –Pour les portlets –Pour une authentification manuelle (applicative)

Copyright © – ESUP-Portail Accès au portail esup-portal-ws –Recherche des utilisateurs –Recherche des groupes –Récupération des sous-groupes –Récupération des hiérarchies complètes –Récuparation des attributs utilisateurs Implémentation fournie pour uPortal 2.5 ws-server SOAP application database, LDAP, … ws-client

Copyright © – ESUP-Portail Accès à LDAP Pour récupérer les attributs des utilisateurs –Pas seulement lutilisateur connecté Cache des résultats Pour vérifier et appliquer des filtres LDAP Pour rechercher une personne dans lannuaire –Beaucoup plus simple que le canal dédié Basé sur LdapTemplate

Copyright © – ESUP-Portail Recherche LDAP

Copyright © – ESUP-Portail Pagination Ergonomie –Pour présenter de longues listes de résultats Performance –Pour ne pas charger tous les résultats dune requête alors que lon nen affiche que certains

Copyright © – ESUP-Portail Un taglib JSF.... Les tags sont configurés dynamiquement par un bean (TagsConfigurator)

Copyright © – ESUP-Portail Gestion des URLs directes (deep linking) Pour positionner directement une application web dans un état particulier Génération des URLs directes, en portlet et servlet Prise en charge de ces URLs pour des liens directs vers certaines pages de lapplication

Copyright © – ESUP-Portail Gestion des caches Disponibilité native de caches Gains en performance –Requêtes LDAP –Requêtes au portail –Envoi des rapports dexception Basé sur EhCache

Copyright © – ESUP-Portail Comment démarrer ? Prise en main –Esup-example : une application dexemple, pour voir comment on configure une application bâtie sur esup- commons Démarrage dun développement –Esup-blank : une application blanche qui fournit une application blanche, canevas dun nouveau développement –Ant rename-application

Copyright © – ESUP-Portail La démarche de diffusion 1.Développement propre –Pour quelques applications –Esup-helpdesk, esup-print 2.CRI de Rennes 1 –Formation interne –Adoption pour tous les nouveaux développements 3.Coordination technique ESUP-Portail –Adoption comme modèle de développement 4.Communauté ESUP-Portail –Formations (80 personnes, 18 établissements) –Présentations

Copyright © – ESUP-Portail Utilisation actuelle Achevé –Esup-diskquota (gestionnaire de quotas disque) –Esup-print (gestionnaire du contrôle daccès aux imprimantes et des crédits dimpression) –Esup-lecture (lecture des annonces) En cours –Une douzaine dapplications dans la communauté ESUP- Portail –Esup-helpdesk (suivi des demandes utilisateurs)

Copyright © – ESUP-Portail Une méthodologie de développement pour les développeurs Uniformisation de lenvironnement de développement Normalisation du code Normalisation des fichiers de configuration Utilisation de SubVersion (SourceSup)

Copyright © – ESUP-Portail Une méthodologie de déploiement pour les exploitants Normalisation des distributions Simplification des mises à jour –Récupération automatique des fichiers de configuration des versions antérieures

Copyright © – ESUP-Portail Mais au fait, vous vous dites sûrement… Combien de temps faut-il pour se mettre à une usine comme ça ? –Pas tant que lon croit –Comparer ce temps avec le temps nécessaire sans esup- commons, avec les mêmes bénéfices « Ne me dites pas que ce problème est difficile. S'il n'était pas difficile, ce ne serait pas un problème » Ferdinand Foch

Copyright © – ESUP-Portail En résumé Moyens –Méthodologie –Outils –Services Bénéfices –Simplifier la maintenance –Faciliter ladaptation aux configurations locales –Permettre lévolution des fonctionnalités –Augmenter la productivité –Faciliter la mobilité des développeurs –Uniformiser les installations dapplications –Faciliter les contributions –Fiabiliser les applications –Améliorer laccessibilité

Copyright © – ESUP-Portail Et lexistant alors ? Ne pas jeter le bébé avec leau du bain

Copyright © – ESUP-Portail En savoir plus… Vous avez sûrement des remarques/questions Rendez-vous sur le stand ESUP !