30 mars 2007 – version 3.2 Steve Péguet (steve.peguet@diplomatie.gouv.fr) ACube De la solution à l’industrialisation
ACube : Du Web au Web 2.0 Rationalisation : Web 1.0 Innovation : Web 2.0 Industrialisation Marché  d’assistance et de promotion Produit Service J2EE PHP Client léger Productivité Standard Sous-traitance XML Ajax Agilité Client riche Création Assistance Fabrique  propriétaire Fabrique  communautaire Cycle en V ou Y Cycle itératif Frameworks Patterns Outils
ACube : Les points clés de l’architecture La  normalisation  (mutualisation des flux métier) et  l’optimisation des échanges  entre client et serveur (gestion du cache, découpage des flux, centralisation/décentralisation…) Urbanisation  : interfaçage avec les principaux outils d’EAI, EDI, architectures SOA, portails, décisionnels Le  respect des normes , standards et spécifications (XML, W3C, J2EE, DOM…) La  neutralité  du modèle ACube vis-à-vis des technologies (Java, PHP, .Net…), des architectures applicatives (Modèle MVC2X, DAO, client riche, client connecté, semi-connecté, déconnecté…) et des infrastructures (serveurs Web, serveurs d’application, SGBDs, haute disponibilité…) préexistantes La  modularité  des solutions et l’utilisation des meilleures briques OpenSource : modèle ACube à la « carte » ou au « menu »
La fabrique ACube Framework serveur Java Framework serveur PHP Framework client riche W3C Client Léger XML Implémentation possible pour différents canaux Client Riche W3C disponible Client Flux XML normalisés Optimisation du nombre et du volume des échanges Gestion Flux XML Implémentation possible pour différentes architectures J2EE, PHP disponibles Serveur
Évolution du poste client 2005 Client Riche W3C 1970 Terminal MAINFRAME 1985 Client Lourd CLIENT/SERVEUR 1995 Client Léger Explorer WEB 2003 Client Riche Propriétaire WEB 2.0
AJAX : Socle technologique client riche AJAX =  Asynchronous Javascript And XML Noyau AJAX : DHTML + XMLHttpRequest Javascript :  langage faiblement typé interprété par le navigateur web. Inventé par Netscape Corp. en 1995, standardisé par l’ECMA en 1997 (ECMA-262). HTML DOM :  APIs Javascript permettant de manipuler/générer les éléments composant la page HTML. CSS :  Positionnement et rendu des éléments composant la page HTML, définissable en Javascript. Client HTTP asynchrone manipulable sous forme d’objet en Javascript. Permet à la page affichée de requêter le serveur dont elle est issue pour lancer des traitements / charger des données supplémentaires, sans recharger la page. Introduit par Microsoft dans IE 5, disponible dans tous les navigateurs aujourd’hui. En cours de (rétro) standardisation par le W3C.
AJAX : fear, uncertainly & doubt  La démultiplication des requêtes clients va écrouler les performances de mon serveur ! Le code javascript est in-main-te-nable ! Ajax améliore la scalabilité Les requêtes retournent moins de données. Elles se substituent dans certains cas à des requêtes plus lourdes. La charge processeur est répartie. On peut développer en Javascript de manière industrielle
ACube = Advanced Asynchronous Architecture Client riche W3C : AJAX + XML DOM + ACube : Client riche W3C Framework XML ACube :  APIs Objet Javascript offrant le cadre de gestion de rapatriement et de manipulation de flux XML intégrant une gestion des erreurs robuste nécessaire à une application de gestion. XML DOM :  APIs Javascript permettant de manipuler les éléments d’un flux XML, standardisé par le W3C. Framework Technique ACube :  APIs Objet Javascript offrant la gestion des cookies, des popups, des contrôles de surface, de la cohérence sur la navigation, du drag’n’drop, des formats d’affichage et de conversion… Framework Ergonomique ACube :  APIs Objet Javascript offrant la gestion de composant graphique et ergonomique du type formulaire, onglets, calendrier, tableau, tableur, arborescence, canal RSS, menu, aide en ligne… Composants ergonomiques
ACube : Frameworks serveur J2EE documenté avec DocFlex JDBCWrapper :  couche d’abstraction pour gérer les accès et interrogations SGBDs FileWrapper :  couche d’abstraction pour gérer les upload/download de fichiers STRUTS & STRUTSCX :  modèle MVC avec intégration d’un moteur XSLT pour générer des flux XML ou des flux plats (XHTML, RTF, CSV, XLS, DOC…) Moteur FOP :  moteur XSL-FO pour générer des flux formatés (PDF…) Roadmap court terme : StrutsACube :  modèle MVC permettant un mapping objets Java/XML par simple paramétrage pour générer des flux XML HTTPWrapper :  couche d’abstraction pour appeler un flux HTTP distant SOAPWrapper :  couche d’abstraction pour appeler un flux SOAP distant XMLWrapper :  couche d’abstraction pour manipuler un flux ou un fichier XML Moteur BIRT :  pour générer des rapports et des graphiques (courbes, camemberts…) PHP documenté avec PHPDoc Modèle MVC  avec intégration d’un moteur XSLT pour générer des flux XML Workflow Humain  avec le moteur de People In Action Roadmap court terme : Wrappers  (SGBD, File, XML) Mapping objets PHP/XML  par simple paramétrage pour convergence avec StrutsAcube
La méthodologie ACube Adaptation des méthodologies : Cycle en Y Unified Process (Itérative) XP (eXtrem Programming)
L’outillage ACube JSDoc DocFlex/Javadoc Autres… Autres… Autres… Espace collaboratif projet Automatisation Constitution des livrables, déploiement, tests, audits de code, cartographie et indicateurs, rétrodocumentation   Gestion de configuration Gestion des anomalies et des incidents Outil de modélisation IDE de développement
ACube : Open Source ACube publié dans l’AdmiSource  de la DGME sous licence CeCILL Utilisateurs de la solution (jan. 2007) Autres… SSII contributeurs et intégrateurs de la solution (déc. 2006) En cours…
Les projets ACube Références MAE : PHILEAS :  Gestion des passeports d’urgence et des laissez-passer ELECTIS :  Gestion des listes électorales et consultation par l’usager de sa situation électorale PASTEL/Espace Français établis Hors de France RDV :  Gestion de la prise de rendez-vous des usagers sous la forme d’agenda pour les postes SCOLA :  Gestion des bourses scolaires RACINE :  Gestion du registre des français établis hors de France VISANET :  Délégation partielle de la gestion des demandes de visas DELICEWEB :  Gestion pour consultation des actes de l’état civil CEF :  Centre pour les Études en France pour gérer les dossiers d’inscription et le workflow associé à l’ensemble des acteurs concernés (Étudiant, Conseiller CEF, Directeur CEF, EES, Agent consulaire, SCAC) INGRES :  Informations générales sur les réseaux pour le pilotage BRIT :  Gestion du patrimoine immobilier RISE :  Gestion du référentiel des implantations et des services à l’étranger RENARD :  Gestion du référentiel pour la LOLF AROB@S :  Gestion du référentiel des identités, de l’organisation, des applications et des habilitations Autres références : POLCA  (Ministère de la culture) : préparation et simulation budgétaire pour la LOLF VEOLIA  (Générale des eaux) : gestion du référentiel cœur de métier pour la région parisienne (branchements d’eau) et ERAD suivi des interventions dans la nuit sous forme d’agenda BBREF  (Mairie de Boulogne)   : gestion des cantines scolaires
ACube : Vers la communauté (2007) Porter au sein de la DGME sur l’initiative IT 06 :  « Développement informatique »  Marché d’assistance  pour : Maîtrise d’œuvre déléguée Gestion et développement de la communauté Forge :  http://admisource.gouv.fr/projects/acube/ Site vitrine :   http://acube.diplomatie.gouv.fr  (prochainement) Club des utilisateurs  réuni par semestre pour définir la roadmap fonctionnelle, mutualisations, et répartition des efforts (financement, recette) Club des contributeurs  réuni par semestre pour définir la roadmap technique, reversements à la communautés, et répartition des efforts
ACube : Synthèse  Méthodologie Marché d’assistance Outils Frameworks Fabrique Communauté

ACube : De la solution à l'industrialisation

  • 1.
    30 mars 2007– version 3.2 Steve Péguet (steve.peguet@diplomatie.gouv.fr) ACube De la solution à l’industrialisation
  • 2.
    ACube : DuWeb au Web 2.0 Rationalisation : Web 1.0 Innovation : Web 2.0 Industrialisation Marché d’assistance et de promotion Produit Service J2EE PHP Client léger Productivité Standard Sous-traitance XML Ajax Agilité Client riche Création Assistance Fabrique propriétaire Fabrique communautaire Cycle en V ou Y Cycle itératif Frameworks Patterns Outils
  • 3.
    ACube : Lespoints clés de l’architecture La normalisation (mutualisation des flux métier) et l’optimisation des échanges entre client et serveur (gestion du cache, découpage des flux, centralisation/décentralisation…) Urbanisation : interfaçage avec les principaux outils d’EAI, EDI, architectures SOA, portails, décisionnels Le respect des normes , standards et spécifications (XML, W3C, J2EE, DOM…) La neutralité du modèle ACube vis-à-vis des technologies (Java, PHP, .Net…), des architectures applicatives (Modèle MVC2X, DAO, client riche, client connecté, semi-connecté, déconnecté…) et des infrastructures (serveurs Web, serveurs d’application, SGBDs, haute disponibilité…) préexistantes La modularité des solutions et l’utilisation des meilleures briques OpenSource : modèle ACube à la « carte » ou au « menu »
  • 4.
    La fabrique ACubeFramework serveur Java Framework serveur PHP Framework client riche W3C Client Léger XML Implémentation possible pour différents canaux Client Riche W3C disponible Client Flux XML normalisés Optimisation du nombre et du volume des échanges Gestion Flux XML Implémentation possible pour différentes architectures J2EE, PHP disponibles Serveur
  • 5.
    Évolution du posteclient 2005 Client Riche W3C 1970 Terminal MAINFRAME 1985 Client Lourd CLIENT/SERVEUR 1995 Client Léger Explorer WEB 2003 Client Riche Propriétaire WEB 2.0
  • 6.
    AJAX : Socletechnologique client riche AJAX = Asynchronous Javascript And XML Noyau AJAX : DHTML + XMLHttpRequest Javascript : langage faiblement typé interprété par le navigateur web. Inventé par Netscape Corp. en 1995, standardisé par l’ECMA en 1997 (ECMA-262). HTML DOM : APIs Javascript permettant de manipuler/générer les éléments composant la page HTML. CSS : Positionnement et rendu des éléments composant la page HTML, définissable en Javascript. Client HTTP asynchrone manipulable sous forme d’objet en Javascript. Permet à la page affichée de requêter le serveur dont elle est issue pour lancer des traitements / charger des données supplémentaires, sans recharger la page. Introduit par Microsoft dans IE 5, disponible dans tous les navigateurs aujourd’hui. En cours de (rétro) standardisation par le W3C.
  • 7.
    AJAX : fear,uncertainly & doubt La démultiplication des requêtes clients va écrouler les performances de mon serveur ! Le code javascript est in-main-te-nable ! Ajax améliore la scalabilité Les requêtes retournent moins de données. Elles se substituent dans certains cas à des requêtes plus lourdes. La charge processeur est répartie. On peut développer en Javascript de manière industrielle
  • 8.
    ACube = AdvancedAsynchronous Architecture Client riche W3C : AJAX + XML DOM + ACube : Client riche W3C Framework XML ACube : APIs Objet Javascript offrant le cadre de gestion de rapatriement et de manipulation de flux XML intégrant une gestion des erreurs robuste nécessaire à une application de gestion. XML DOM : APIs Javascript permettant de manipuler les éléments d’un flux XML, standardisé par le W3C. Framework Technique ACube : APIs Objet Javascript offrant la gestion des cookies, des popups, des contrôles de surface, de la cohérence sur la navigation, du drag’n’drop, des formats d’affichage et de conversion… Framework Ergonomique ACube : APIs Objet Javascript offrant la gestion de composant graphique et ergonomique du type formulaire, onglets, calendrier, tableau, tableur, arborescence, canal RSS, menu, aide en ligne… Composants ergonomiques
  • 9.
    ACube : Frameworksserveur J2EE documenté avec DocFlex JDBCWrapper : couche d’abstraction pour gérer les accès et interrogations SGBDs FileWrapper : couche d’abstraction pour gérer les upload/download de fichiers STRUTS & STRUTSCX : modèle MVC avec intégration d’un moteur XSLT pour générer des flux XML ou des flux plats (XHTML, RTF, CSV, XLS, DOC…) Moteur FOP : moteur XSL-FO pour générer des flux formatés (PDF…) Roadmap court terme : StrutsACube : modèle MVC permettant un mapping objets Java/XML par simple paramétrage pour générer des flux XML HTTPWrapper : couche d’abstraction pour appeler un flux HTTP distant SOAPWrapper : couche d’abstraction pour appeler un flux SOAP distant XMLWrapper : couche d’abstraction pour manipuler un flux ou un fichier XML Moteur BIRT : pour générer des rapports et des graphiques (courbes, camemberts…) PHP documenté avec PHPDoc Modèle MVC avec intégration d’un moteur XSLT pour générer des flux XML Workflow Humain avec le moteur de People In Action Roadmap court terme : Wrappers (SGBD, File, XML) Mapping objets PHP/XML par simple paramétrage pour convergence avec StrutsAcube
  • 10.
    La méthodologie ACubeAdaptation des méthodologies : Cycle en Y Unified Process (Itérative) XP (eXtrem Programming)
  • 11.
    L’outillage ACube JSDocDocFlex/Javadoc Autres… Autres… Autres… Espace collaboratif projet Automatisation Constitution des livrables, déploiement, tests, audits de code, cartographie et indicateurs, rétrodocumentation Gestion de configuration Gestion des anomalies et des incidents Outil de modélisation IDE de développement
  • 12.
    ACube : OpenSource ACube publié dans l’AdmiSource de la DGME sous licence CeCILL Utilisateurs de la solution (jan. 2007) Autres… SSII contributeurs et intégrateurs de la solution (déc. 2006) En cours…
  • 13.
    Les projets ACubeRéférences MAE : PHILEAS : Gestion des passeports d’urgence et des laissez-passer ELECTIS : Gestion des listes électorales et consultation par l’usager de sa situation électorale PASTEL/Espace Français établis Hors de France RDV : Gestion de la prise de rendez-vous des usagers sous la forme d’agenda pour les postes SCOLA : Gestion des bourses scolaires RACINE : Gestion du registre des français établis hors de France VISANET : Délégation partielle de la gestion des demandes de visas DELICEWEB : Gestion pour consultation des actes de l’état civil CEF : Centre pour les Études en France pour gérer les dossiers d’inscription et le workflow associé à l’ensemble des acteurs concernés (Étudiant, Conseiller CEF, Directeur CEF, EES, Agent consulaire, SCAC) INGRES : Informations générales sur les réseaux pour le pilotage BRIT : Gestion du patrimoine immobilier RISE : Gestion du référentiel des implantations et des services à l’étranger RENARD : Gestion du référentiel pour la LOLF AROB@S : Gestion du référentiel des identités, de l’organisation, des applications et des habilitations Autres références : POLCA (Ministère de la culture) : préparation et simulation budgétaire pour la LOLF VEOLIA (Générale des eaux) : gestion du référentiel cœur de métier pour la région parisienne (branchements d’eau) et ERAD suivi des interventions dans la nuit sous forme d’agenda BBREF (Mairie de Boulogne) : gestion des cantines scolaires
  • 14.
    ACube : Versla communauté (2007) Porter au sein de la DGME sur l’initiative IT 06 : « Développement informatique » Marché d’assistance pour : Maîtrise d’œuvre déléguée Gestion et développement de la communauté Forge : http://admisource.gouv.fr/projects/acube/ Site vitrine : http://acube.diplomatie.gouv.fr (prochainement) Club des utilisateurs réuni par semestre pour définir la roadmap fonctionnelle, mutualisations, et répartition des efforts (financement, recette) Club des contributeurs réuni par semestre pour définir la roadmap technique, reversements à la communautés, et répartition des efforts
  • 15.
    ACube : Synthèse Méthodologie Marché d’assistance Outils Frameworks Fabrique Communauté