Apache Cocoon Framework d'applications XML Sylvain Wallez Anyware Technologies



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

Formation en Logiciels Libres. Fiche d inscription

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

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

Catalogue des Formations Techniques

Module BD et sites WEB

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

Livre Blanc WebSphere Transcoding Publisher

Gestion collaborative de documents

Application Web et J2EE

Introduction à. Oracle Application Express

Atelier 1. Portails documentaires : BioLib et Cemadoc

Hébergement de sites Web

Fiabilisez la diffusion de vos messages!

Quel ENT pour Paris 5?

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Java pour le Web. Cours Java - F. Michel

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

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

Windows (2000/NT), Solaris, AIX, HP-UX, Linux Haute disponibilité : SunCluster 3, Veritas Cluster Server 4. J2EE (JSP, Servlet, EJB, JTA), Open Source

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Alfresco et TYPO3 Présenté par Yannick Pavard dans le cadre des rencontres WebEducation Février 2008

Vulnérabilités et sécurisation des applications Web

contact@nqicorp.com - Web :

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

Un serveur d'archivage

SIO Page 1 de 5. Applications Web dynamiques. Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault

Utilisation de Jakarta Tomcat

Notre Catalogue des Formations IT / 2015

Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

SITE WEB E-COMMERCE ET VENTE A DISTANCE

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

Environnements de Développement

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

Nouvelles Plateformes Technologiques

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

10. Base de données et Web. OlivierCuré

Drupal un CMS orienté mé2er. Romain JARRAUD Mathieu GROS

Introduction aux «Services Web»

Programmation Web. Madalina Croitoru IUT Montpellier

Nos stages s'adressent à tous ceux qui ont besoin d'acquérir des bases, une mise à niveau ou un perfectionnement dans les thèmes suivants :

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

Curriculum Vitae de Michel Casabianca

DataStudio. Solution d intégration des données et de diffusion de l information

NOVA BPM. «Première solution BPM intégr. Pierre Vignéras Bull R&D

arcopole Studio Annexe 7 Architectures Site du programme arcopole :

Introduction MOSS 2007

Catalogue des formations

SYSTÈMES DE PUBLICATION POUR L INTERNET. Beatep Marie-France Landréa - Observatoire de Paris

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

Constat ERP 20% ECM 80% ERP (Enterprise Resource Planning) = PGI (Progiciel de Gestion Intégré)

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Zope: une plateforme collaborative de développement web open source

Avertissement. La Gestion Electronique de Documents

Olivier Deheurles Ingénieur conception et développement.net

Sommaire. 1 Introduction Présentation du logiciel de commerce électronique 23

Développement des Systèmes d Information

Compte Rendu d intégration d application

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

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

Expert technique J2EE

Comparatif CMS. Laurent BAUREN S Bérenger VIDAL Julie NOVI Tautu IENFA

Présentation de la solution Open Source «Vulture» Version 2.0

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Youssef LYHYAOUI Ingénieur Java/J2EE, SOA, ESB, Web services 31 ans Statut : Indépendant SITUATION ACTUELLE

Les tableaux de bord de pilotage de nouvelle génération. Copyright PRELYTIS

Calendrier FORMATIONS Saison 2014 Formations Informatique - Bureautique - Infographie - Outils graphiques

Joomla! Création et administration d'un site web - Version numérique

webmestre : conception de sites et administration de serveurs web 42 crédits Certificat professionnel CP09

Code Produit Nom Produit Dernière mise à jour. AM003 Alias Mobile On Demand Licence 1 mois 27/04/2015

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Suite Jedox La Business-Driven Intelligence avec Jedox

Proposition de stage

Programmation Web. Introduction

Cyrille GUERIN 823, place Soulanges Brossard, J4X1L8

Architectures web/bases de données

Modèle de cahier des charges pour un appel d offres relatif à une solution de gestion des processus métier (BPM)

Apache Camel. Entreprise Integration Patterns. Raphaël Delaporte BreizhJUG

Système de Gestion Electronique de Documents

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

COMPÉTENCES TECHNIQUES

CAS, la théorie. R. Ferrere, S. Layrisse

Serveur Subversion Debian GNU/Linux

Pentaho : Comparatif fonctionnel entre la version Communautaire (gratuite) et la version Entreprise (payante) Table des matières

Vue d ensemble technique

GroupWise. Novell. Démarrage rapide.

Les grandes facettes du développement Web Nicolas Thouvenin - Stéphane Gully

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

Gestion d'un parc informatique avec OCS INVENTORY et GLPI

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

LemonLDAP::NG / SAML2. Xavier GUIMARD (Gendarmerie Nationale) Clément OUDOT (Groupe LINAGORA)

AccessMaster PortalXpert

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

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Transcription:

Apache Cocoon Framework d'applications XML Sylvain Wallez Anyware Technologies www.anyware-tech.com

Sylvain Wallez Anyware Technologies Cofondateur, directeur R&D Architecte, expert Java, web et XML Formation, expertise, support sylvain.wallez@anyware-tech.com Apache Software Foundation Committer Cocoon, Avalon, Jackrabbit Membre et Vice-Président de la Fondation Apache sylvain@apache.org 2

Qu'est-ce que Cocoon? Principes techniques La communauté Cocoon Qui utilise Cocoon? 3

Qu'est-ce que Cocoon? Historique Origine : génération du site java.apache.org Contenu en XML, formaté avec XSLT 1999 : Cocoon 1.0 Transformations de DOM 2001 : Cocoon 2.0 Sitemap : définition centralisée des traitements Pipelines d'événements SAX (performance) 2003 : Cocoon 2.1 Solution d'applications web complète Gestion de la cinématique par flowscript 4

Qu'est-ce que Cocoon? Séparation des domaines Différents rôles et techniques associées Développeurs : Java Auteurs : XML Designers : HTML, XSLT Moyen de la séparation : chaîne de traitement XML Chaque étape de la chaîne a une responsabilité spécifique Modèle MVC strict Contrôleur : sitemap et flowscript Définition de la vue : pipeline XML 5

Qu'est-ce que Cocoon? Clients web Navigateur Cocoon et son environnement PDA Serveur J2EE (servlets) Web services Téléphone VoiceXML Serveur Web Cocoon Bases de données Web service Applications web Fichiers, SAP, Repository PDF, Word, Excel 6

Qu'est-ce que Cocoon? Principes techniques La communauté Cocoon Qui utilise Cocoon? 7

Principes techniques Architecture en composants Cocoon est un ensemble de composants Composant = une interface, des implémentations Forte isolation des composants Grande flexibilité (composant = plugin) Support des composants : Avalon Projet Apache (http://avalon.apache.org) Infrastructure et services de bases 8

Principes techniques Requête : - http - soap - ligne de commande - Principe des pipelines Generator XML Transformer XML Serializer binaire Réponse - Fichiers - Bases de données - Classes métier - XSP - Velocity, JSP - - XSLT - Moteurs de requêtes - Internationalisation - Agrégation - - HTML - XML, WML, SVG, SOAP - PDF, RTF, XLS, MIF - GIF, JPEG - 9

Principes techniques Construction des pipelines : la sitemap Exemple : les news en HTML et PDF <map:match pattern="news/*.html"> <map:generate type="file" src="news-data/{1}.xml"/> <map:transform type="xslt" src="news2html.xsl"/> <map:serialize type="html"/> </map:match> Substitution du "*" du match file xslt html HTML <map:match pattern="news/*.pdf"> <map:generate type="file" src="news-data/{1}.xml"/> <map:transform type="xslt" src="news2xslfo.xsl"/> <map:serialize type="fo2pdf"/> </map:match> file xslt fo2pdf PDF 10

Principes techniques Les matchers et selectors : routage dans la sitemap Matcher : test simple, selector : tests multiples Implémentations variées : Pattern sur l'url demandée Valeurs de paramètres Préférences linguistiques (i18n) Type de navigateur (IE, Netscape, WAP, etc.) Nom du serveur appelé (virtual hosts) Autorisations de l'utilisateur 11

Principes techniques Selectors: les news en multi-canal <map:match pattern="news/*"> <map:generate src="news-data/{1}.xml"/> <map:select type="browser"> <map:when test="wap"> <map:transform type="xslt" src="news2wml.xsl"/> <map:serialize type="wml"/> </map:when> <map:otherwise> <map:transform type="xslt" src="news2html.xsl"/> <map:serialize type="html"/> </map:when> </map:select> </map:match> file browser? xslt xslt wml html 12

Principes techniques Les "sources" dans Cocoon Notion d'url étendue Sources fichier <map:generate type="file" src="myfile.xml"/> Sources externes <map:generate type="file" src="http://www.yahoo.com"/> Sources internes <map:generate type="file" src="cocoon:/pipeline.html"/> Appel récursif de la sitemap Sources spécialisées : Blob <map:generate type="file" src="blob:/db/docs/req[id='43']"/> Extrait le contenu de SELECT req FROM docs WHERE id='43' 13

Principes techniques Générateur : contenu XML initial File Toute "source" (URLs étendues) JXTemplate Pages serveur nativement XML Directory Listing (récursif) du contenu d'un répertoire Script Génération par scripts : JavaScript, VB, Perl, Python, etc. Servlet Utilisation de n'importe quel servlet MP3Directory Directory + infos sur le morceau musical 14

Principes techniques Transformers : transformation du contenu XSLT I18N (internationalisation) Traduction à l'aide de dictionnaires de termes SQL, LDAP Exécution de requêtes "à la volée" XInclude Inclusion (portails, documents composites) RoleFilter Filtrage par rapport au rôle de l'utilisateur 15

Principes techniques Serializers : production du résultat HTML/XML SVG PDF Zip HTML, XML, SVG, WML, VoiceXML Images JPEG dynamiques avec Batik Documents Acrobat avec FOP ou itext Archives Zip, documents OpenOffice 16

Principes techniques Exemple avancé : agrégation Obtenir l'édito de avril 2004 : http://serveur/edito_04_2004.html <map:match pattern="edito_*_*.html"> Appel du pipeline "menu.xml" <map:aggregate element="page"> <map:part src="cocoon:/menu.xml"/> <map:part src="blob:/db/editos/texte[annee='{2}' and mois='{1}']"/> </map:aggregate> <map:transform type="xslt" src="page2html.xsl"/> <map:serialize type="html"/> Lecture directe en base de données </map:match> <map:match pattern="menu.xml"> <map:generate type="jxt" src="menugenerator.jx"/> <map:serialize type="xml"/> </map:match> 17

Principes techniques Applications web avec Cocoon Contrôleur : flowscript Gestion de la cinématique (enchaînements) Vue : sitemap Modèle : XML ou JavaBeans Contrôleur Flowscript Request Data source Modèle XML/JavaBean Vue Sitemap Response 18

Principes techniques Flowscript : continuations Le script est "gelé" lors de l'envoi d'une page Interaction décrite en code séquentiel Simplification énorme (pas d'automate d'état) var cart; var user; function checkout() { while(user == null) { cocoon.sendpageandwait("login.html"); user = UserRegistry.getUser(cocoon.request.get("name")); } cocoon.sendpageandwait("creditcard.html"); var creditcard = cocoon.request.get("creditcard"); cocoon.sendpageandwait("confirmorder.html"); EnterpriseSystem.placeOrder(user, cart, creditcard); cocoon.sendpage("orderplaced.html"); } Appel de la vue sur la sitemap et fin du script Appel de la vue sur la sitemap et suspension du script 19

Principes techniques Les "blocks" : solutions thématiques Portal : système de portail complet CForms : gestion des formulaires de saisie Axis : services web SOAP Lucene : indexation du contenu et recherche Web3 : connexion avec SAP WebDAV Source WebDAV : accès à un repository Sitemap WebDAV : Cocoon est le serveur WebDAV Mail : webmail complet 20

Qu'est-ce que Cocoon? Grands principes techniques La communauté Cocoon Qui utilise Cocoon? 21

La communauté Cocoon La Fondation Apache Organisation à but non lucratif Logiciel Open Source de qualité commerciale httpd : 70% des sites web de la planète! Tomcat : implémentation de référence des servlets Xerces, Xalan : standards dans le monde XML "La communauté est plus importante que le code" Un logiciel génial sans utilisateurs est mort Un logiciel moyen avec beaucoup d'utilisateurs va s'améliorer 22

La communauté Cocoon Les développeurs Committers (accès en écriture au CVS) 60 depuis l'origine 30 actifs Des profils variés Visionnaire charismatique, architecte, designer web, enseignant-chercheur, développeur La plupart dans un cadre professionnel Lié à l'esprit de la licence Apache Projet principalement européen 23

La communauté Cocoon Mailing-lists users@cocoon.apache.org Support utilisateur Réponses rapides (parfois dans l'heure!) 1100 inscrits, 1000 à 1500 messages par mois users-fr@cocoon.apache.org Liste francophone nouvellement créée (01/2005) dev@cocoon.apache.org Là où tout le développement se fait Pas de discussions privées, tout le monde peut participer 500 inscrits, 1500 à 2000 messages par mois 24

La communauté Cocoon Autour de Cocoon Orixo : alliance européenne autour de Cocoon Anyware en est un des fondateurs http://www.orixo.com/ Le "Cocoon Get Together" Rencontre annuelle des utilisateurs 3ème édition : 140 participants de 17 pays Fait rare dans l'opensource (Linux, Zope, PHP) Nombreux articles et conférences 3 livres : New Riders, Sams, Sybex 25

Qu'est-ce que Cocoon? Grands principes techniques La communauté Cocoon Qui utilise Cocoon? 26

Qui utilise Cocoon? Sites internet Plus de 100 sites listés dans les "live sites" Scoot.be (annuaire) Sun-catalogue (vente en ligne) Warner bros Suisse (cinéma) Librairie du congrès US Salon.com Beaucoup d'autres sites non listés 27

Qui utilise Cocoon? Portails pour téléphones mobiles RAI en Italie, 3 opérateurs en Allemagne Très forts trafics (Vodafone Live Allemagne) 3,5 millions de requêtes/jour Prise en compte de 90 types de terminaux Temps de réponse moyen : 50 ms 28

Qui utilise Cocoon? Portails pour téléphones mobiles Deux missions pour Cocoon Adapter le contenu aux terminaux Agréger les sources de contenu Producteur de contenu Producteur de contenu Producteur de contenu Cocoon Producteur de contenu 29

Qui utilise Cocoon? Jouve Grosse gestion documentaire Administrations Universités Grandes entreprises Choix stratégique sur Cocoon Premier projet : Office Européen des Brevets Utilisé maintenant sur de nombreux nouveaux projets 30

Qui utilise Cocoon? Schneider Electric Édition et gestion de données techniques Saisie de la description des équipements Production de catalogues, d'applications de configuration, etc. Supervision de processus industriel SVG dynamique : Programme d'automatisme Diagrammes de supervision Schématique électrique (lien avec la CAO) 31

Qui utilise Cocoon? 32

Qui utilise Cocoon? Airbus Documents de certification Extraction base de données Inclusion de commentaires HTML Documents PDF de 1500 pages Méta-moteur de recherche (knowledge management) Connecteurs vers des bases métiers Traduisent la requête vers le système cible Publient le résultat en XML SQL, Lotus Notes, Fichiers, Web services Agrégation et présentation des les résultats 33

Qui utilise Cocoon? Banque Sparkasse Gelsenkirchen Portail Internet des clients 34

Qui utilise Cocoon? Banque Swiss Interbank Clearing Échanges interbancaires 75 banques reliées 600 000 000 CHF échangés par jour Fonctionne 7/7 depuis 2 ans Cocoon comme moteur de webservices Passerelle EDIFACT <-> SOAP Etudié par le Gartner Group Un des premiers succès des webservices http://www.gartner.com/displaydocument?doc_cd=108916 35

Conclusion Cocoon, framework complet Publication multi-canal Intégration de nombreuses sources de données Les blocks, solutions fonctionnelles Communauté active Nombreuses références industrielles http://cocoon.apache.org 36