Plan de la présentation

Slides:



Advertisements
Présentations similaires
Un environnement de développement éducatif
Advertisements

Tutoriel - Les Ressources du BCH
Les technologies décisionnelles et le portail
Transformation de documents XML
Xavier Blanc Web Services Xavier Blanc
Première expérience d’utilisation des Web Services dans SmartTools Didier Parigot Projet OASIS INRIA Sophia www-sop.inria.fr/oasis/SmartTools Journée.
Le langage de requêtes SPARQL SPARQL Protocol And RDF Query Language
19 septembre 2006 Tendances Logicielles IBM Rational Data Architect Un outil complet de modélisation et de conception pour SGBD Isabelle Claverie-Berge.
JXDVDTEK – Une DVDthèque en Java et XML
Les espaces de nommage XML par Philippe Poulard 1
Les webservices Samira Silhadi-Hacid Malika Tarafi.
L’architecture .net et ASP.net
Le Modèle Logique de Données
XHTML EXtensible HyperText Markup Language. HTML et XML HTML (HyperText Markup Language) et XML (eXtensible Markup Language) sont deux spécifications.
Cours 6 : Les Web Services et UDDI Mars Version 1.0 -
Cours 5 : Les Web Services et WSDL Mars Version 1.0 -
le langage les éléments
Les fonctions de XPath et XSLT
Domaines nominaux XSLT
TP 3-4 BD21.
Manipulation d’XML avec XSL
JOME, un Composant Logiciel pour le Télé-Enseignement des Mathématiques via le WEB, Compatible OpenMath et MathML Laurent DIRAT OVE / I3S-UNSA.
Introduction et Concepts : De SGML à XML
20 Données semi-structurées et XML
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
Développement d’applications web
Etude des Technologies du Web services
PAFI Référentiel de données par Sonia Watts DGIF (Direction de la gestion et de linformation forestière) 27 octobre 2010 et 3 novembre 2010.
XML-Family Web Services Description Language W.S.D.L.
UNIVERSITE CHOUAIB DOUKKALI Département des mathématiques
le profil UML en temps réel MARTE
Xml/xslt : Extensible Stylesheet Language Transformation réalisé par: saÏd NAÏM.
Chap 4 Les bases de données et le modèle relationnel
L’utilisation des bases de données
Introduction à la structuration des documents: les techniques M2: Gestion des connaissances.
Gestion des bases de données
Services fournis par le SI et technologies associées
Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le.
1. 2 PLAN DE LA PRÉSENTATION - SECTION 1 : Code HTML - SECTION 2.1. : CSS (Méthode 1) - SECTION 2.2. : CSS (Méthode 2) - SECTION 3 : JavaScript - SECTION.
An Introduction to distributed applications and ecommerce 1 1 Les services Web, XML et les places de marchés.
Séminaire Service Interoperability on Context Level in Ubiquitous Computing Environments Davide Bazzi IIUF Etude de larticle: Service Interoperability.
1 Couplage dun langage de contrôle de formatage avec un système de formatage existant DEA ISC : 1 avril 2003 Fateh Boulmaiz
Projet de Master première année 2007 / 2008
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
Les feuilles de style CSS
Langages de requêtes XML
8 - XML Cours XML.
Introduction.
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Réalisé par : Mr IRZIM Hédi Mr JRAD Firas
« Le plaisir du chercheur : retrousser les jupes de la nature » Jean Rostand Proposer une « Interface Homme Machine » en utilisant une technologie Client.
Programmation Web : Introduction à XML
Le web service
Mastère Professionnel Systèmes de Communication et Réseaux
Technologies web et web sémantique TP3 - XML. XML eXtensible Markup Language (langage extensible de balisage) – Caractéristiques: méta-langage = un langage.
S'initier au HTML et aux feuilles de style CSS Cours 5.
Campus-Booster ID : **XXXXX Copyright © SUPINFO. All rights reserved Le développement Web.
XML fortement adopté en tant que format indépendant d’échange de données. Utilisation de XML pour la modélisation de données structurées et non structurées.
Soutenance du mémoire de synthèse
1 Initiation aux bases de données et à la programmation événementielle Responsable : Souheib BAARIR. (le sujet de votre .
Module : Langage XML (21h)
eXtensible Markup Language. Généralités sur le XML.
Web Services 17/01/2009.
Introduction à MathML Par Katia Larrivée UQO Le 18 mars 2004.
Introduction aux technologies des web services en Java EE
Gestion des documents internes avec SQL Server 2005 Date de publication : janvier 2006.
SOAP et les RPC XML SOAP WSDL RPC. Rappels sur le XML Langage avec des balises Très lisible Pour stocker des données Séparation entre contenu et présentation.
Raison d'être de la structure de fichiers : Les premiers travaux : Début des années 1960 : En 1963 : Près de 10 ans plus tard... (à peu près 1973) : Durant.
Transcription de la présentation:

Plan de la présentation La Veille technologique Les sujets de veille présentés XML Évolution et applications Prototypage et développements Architectures orientées services

La veille technologique Objectif : Rester à l’affût de nouvelles technologies qui pourraient être utilisées dans le domaine de la géomatique Comprendre ces technologies et voir leur applicabilité dans notre domaine Un temps d’arrêt pour voir ce qui se passe ailleurs

Les sujets de veille (1/2) XML (Daniel Pilon, Sylvain Vallières et Yves Choquette) Formation « XML and Databases » (Ronald Bourret) Recherche sur le WEB et autres lectures Conférence xTech 2007 Formation « XPath 2.0, XQuery 1.0 & XSLT 2.0 Explained » Contrat de prototypage XQuery (Ronald Bourret) Évaluation des logiciels libres eXist et Cocoon Conférence « XML Boston 2007 » en décembre

Les sujets de veille (2/2) Architecture orientée service (Marc Lemaire et Yves Choquette) Formation « Mieux comprendre l’architecture orientée service » (Michel de Champlain) Recherche sur le WEB et autres lectures Formation sur des outils conçus pour implanter des services WEB selon le « framework J2EE » (Éclipse, Hibernate, axis, maven) Implantation du CSW pour les métadonnées du SIM-PNA

Évolution et applications du XML

Qu’est-ce que le XML Langage de codage de données dont l'objectif est, dans un échange entre systèmes informatiques, de transférer, en même temps, des données et leurs structures Langage permettant de coder n'importe quel type de donnée, depuis l'échange de données informatique (EDI) jusqu'aux documents les plus complexes (livres, tables de BD, etc.), son potentiel est de devenir le standard universel et multilingue d'échange d'informations. XML (Extensible Markup Language ou langage de balisage extensible) est un standard du World Wide Web Consortium qui sert de base pour créer des langages balisés spécialisés (GML, KML, WML, MathML, MusicML, XHTML, etc.)

Les objectifs du XML Utilisable sur Internet Séparer la donnée de sa représentation HTML Assurer un certain degré d’interopérabilité Les documents doivent être lisibles par l'homme et le raisonnement clair Être supporté par une grande variété d'applications La rédaction de programmes traitant les documents doit être facile Conception rapide, formelle et concise

L’évolution du XML 1960 1970 1980 1990 2000 GML SGML XML GML SVG HTML     L’évolution du XML 1960 1970 1980 1990 2000 GML SGML XML V1.0:1998 Generalised Markup Language Standard Generalised Markup Language ISO 8879 1986 GML Geography Markup Language V1.0:2000 MathXML V1.01:1999 SVG Scalable Vector Graphics V1.0:2001 HTML HyperText Markup Language V0.9:1991 ISO/IEC 15445:2000 Le XML est dérivé de la norme internationale ISO 8879 XHTML V1.0:2000 MusicXML V0.6:2002 MusicXML V0.6:2002

XML - un début modeste Jon Bosak, Jean Paoli, et Michael Sperberg-McQueen, trois membres du premier groupe de travail XML montrant la spécification initiale d’environ 20 pages de 1998 (conférence XML Boston 2006) But du XML : permettre à du SGML générique d'être transmis, reçu et traité sur le Web de la même manière que l’HTML d’aujourd'hui

XML – fortement implanté Le 23 janvier 2007, le W3C a publié huit nouveaux standards de la famille XML pour prendre en charge l’accès aux données et documents XML ainsi que leurs requêtes et transformations. Les principales spécifications sont : XPath 2.0, XQuery 1.0 & XSLT 2.0 L’implantation de ces standards sous forme de plug-ins, d’APIs, de librairies, etc. vient renforcer la position du langage XML

Que sont ces spécifications ? XQuery 1.0 Langage de requête permettant d'extraire des informations d'un document XML XPath 2.0 Une syntaxe (non XML) pour désigner une portion d'un document XML XSLT 2.0 (eXtensible Stylesheet Language Transformations) Langage de transformation XML

XQuery 1.0 C’est le SQL du XML Ne possède pas encore de capacité de mise à jour, ce qui serait très utile pour les BD XML Il peut aussi bien traiter des documents placés dans des fichiers sur disque que dans une base de données

Bases de données qui supportent le XQuery         Bases de données qui supportent le XQuery Deux types d’implantation : Bases de données XML natives Berkeley DB XML, eXist, Mark Logic Server, TigerLogic XDMS, X-Hive/DB Bases de données hybrides relationnelles/XML Oracle 10g, IBM DB2 version 9, Microsoft SQL Server 2005

Différences entre les 2 types d’implantation         Différences entre les 2 types d’implantation La frontière entre les BD XML natives et les BD hybrides relationnelles/XML s’estompe de plus en plus avec l’arrivée de fonctionnalités et de types qui permettent de conserver le XML de façon native dans les SGBD relationnels Apparition de table XML plutôt qu’une colonne XML dans une table Les BD natives n’ont pas de fonctionnalités du monde relationnel

XQuery vs SQL XQuery exploite plusieurs idées du SQL Sélection de données, jointures, fonctions, tris, etc. Certains concepteurs du SQL ont participé à la création de XQuery Ces deux langages fusionnent de plus en plus dans les BD hybrides relationnelles/XML Cependant, le XQuery ne replacera pas le SQL SQL est le langage d’interrogation pour les données hautement structurées (Model centric) XQuery est le langage d’interrogation pour les données moins structurées (Document centric)

XQuery et XML Schema XML Schema est un standard du W3C pour définir des schémas qui peuvent être utilisés pour valider des documents XML et assigner des types aux éléments et aux attributs XML XQuery utilise le système de typage de XML Schema Un certain nombre de types de données communs sont prédéfinis comme les strings, les dates, les entiers décimaux, etc. On peut aussi définir nos propres types de données à partir des types prédéfinis L’utilisation des schémas n’est pas obligatoire On peut travailler avec XQuery sans faire mention à un schéma Cependant, il est important de bien comprendre le système de typage pour pouvoir efficacement utiliser l’ensemble de fonctions et d’opérateurs fourni par XQuery

XQuery 1.0 et XPath 2.0 XPath a été conçu initialement pour parcourir la structure des documents XML tout en sélectionnant certains éléments et attributs afin de filtrer le contenu non désiré Le degré de superposition entre XQuery et XPath est particulièrement grand Même modèle de données Même ensemble de fonctions et d’opérateurs En fait, XPath 2.0 est un sous-ensemble de XQuery 1.0 Les capacités de sélection se retrouvent dans XPath tandis que les fonctionnalités liées à la structuration et aux tris des requêtes (FLWORs [For, Let, Where, Order by et Return], et constructeurs XML) sont implantées dans XQuery

XPath 2.0 vs 1.0 XPath 2.0 a été construit avec l’intention d’être le plus rétrocompatible possible avec XPath 1.0 Presque toutes les expressions XPath 1.0 sont encore valides dans XPath 2.0 avec de légères différences dans la façon de traiter les valeurs retournées À titre d’exemple, les règles utilisées pour convertir des nombres en chaînes de caractères ont changé entre les deux versions Une description détaillée des changements peut être consultée à l’URL suivante : http://www.w3.org/TR/xpath20/#id-backwards-compatibility Il est possible de rétrograder l’exécution d’un processeur XPath 2.0 dans un mode de compatibilité 1.0 en spécifiant xsl:stylesheet version="1.0" en début de séquence

XQuery 1.0 et XSLT 2.0 XQuery et XSLT sont deux langages dessinés pour questionner et manipuler des documents XML Ces deux langages utilisent le même modèle de données Ils utilisent les «Namespaces» de la même façon Ils ont la même relation avec les schémas XML et partagent le même système de typage de données Ils possèdent le même ensemble de fonctions XSLT utilise intensivement les expressions XPath qui, rappelons-le, est un sous ensemble de XQuery

Deux façons de faire, même résultat Requête XQuery <ul type="square">{ for $product in doc("catalog.xml")/catalog/product[@dept = 'ACC'] order by $product/name return <li>{data($product/name)}</li> }</ul> Équivalent XSLT <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <ul type="square"> <xsl:for-each select="catalog/product[@dept = 'ACC']"> <xsl:sort select="name"/> <li><xsl:value-of select="name"/></li> <xsl:for-each> </ul> </xsl:template> </xsl:stylesheet>

S’ils sont si semblables pourquoi deux langages XSLT est un langage de transformation optimisé pour reformater un document XML complet Généralement, les documents sont entièrement chargés en mémoire et traités en une ou plusieurs passes XQuery est un langage optimisé pour sélectionner des fragments de données, possiblement dispersés dans plusieurs documents sauvegardés dans une base de données Les documents sont généralement brisés en plus petits morceaux et indexés pour en faciliter l’accès Les requêtes peuvent retrouver des fragments du document XML sans avoir à le charger entièrement en mémoire

Vue d’ensemble Expressions FLWOR Prolog des requêtes (partie déclarative) Constructeurs XML Fonctions définies par l’utilisateur Expressions conditionnelles Expressions arithmétiques Expressions quantifiées Fonctions et opérateurs prédéfinis Modèle de données Some | every $elem in chemin Satisfies (condition) XQuery 1.0 XSLT 2.0 Xpath 2.0 XPath 1.0 Expressions de chemin Expressions de comparaison Quelques fonctions prédéfinies Stylesheets Templates Etc.

L’importance du modèle La Compréhension du modèle de données de XQuery est similaire à la compréhension des tables, des colonnes et des enregistrements lors de l’apprentissage du SQL Le modèle de données sert à définir formellement les valeurs utilisées dans les requêtes, les documents d’entrée, les résultats ainsi que les valeurs intermédiaires

instruction d’exécution Modèle de donnée séquence contiens 0..n article noeud sorte valeur (chaîne) nœud valeur atomique type nœud document nœud élément nom type valeur typée nœud attribut nom type valeur typée nœud texte valeur typée nœud instruction d’exécution nom nœud commentaire

Une hiérarchie XML de noeuds Application du modèle à un document XML Règles de hiérarchie Un élément peut avoir comme enfant de 0..n éléments | texte | commentaire | instruction Un document peut avoir comme enfant un élément (la balise externe) | commentaire | instruction Les attributs ne sont pas considérés comme des enfants ou des « siblings » Les descendants d’un même parent sont des « siblings » nœud document nœud élément (catalogue) nœud élément (produit) nœud attribut (dept) nœud élément (nombre) nœud texte (784) nœud élément (nom) nœud attribut (langue) nœud texte ("chemise") nœud élément (choixDeCouleur) nœud texte ("bleu/blanc/rouge") nœud élément (description) nœud texte ("Nos ") nœud élément (i) nœud texte ("plus belles") nœud texte (" chemises!") <catalogue> <produit dept= "homme"> <nombre>784</nombre> <nom langue= "fr">chemise</nom> <choixDeCouleur>bleu/blanc/rouge</choixDeCouleur> <description>Nos <i>plus belles</i> chemises!</description> </produit> </catalogue>

Les premiers pas Utilisation de CLOB pour conserver des données en XML dans les processus de fusion BDG SELECT DISTINCT identifiant, job_id, ty_trav, SUBSTR(EXTRACTVALUE(XMLTYPE (xml_metadonnees), '/metadata/dataqual/lineage/procstep/procdesc'), 1, 6) nomep FROM ser_reconcile_log WHERE ty_trav = 'charg_bdg' AND statut = 9 La fonction EXTRACTVALUE prend comme paramètres un élément de type XML et une expression XPath pour retourner la valeur scalaire du noeud résultant

Prototypage « eXist » et « Cocoon » Dans le but de se familiariser avec ces nouvelles technologies, un prototype de service d’accès aux catalogues des données BDG à été créé. Les catalogues étaient produit en format XML Ceux-ci furent emmagasiner dans une Base de Donnée XML native « eXist » La BD « eXist » contenait également les schémas (XSD) et les feuilles de styles (XSLT) associés L’application « Cocoon » était utilisée afin de servir et présenter les différents catalogues en format XML, HTML et PDF

XQuery pour la production Afin d’uniformiser les traitements et leurs résultats à travers les différentes équipes, nous regardons la possibilité d’utiliser tous la même librairie, soit « Saxon » La librairie « Saxon » suit de très près les normes du W3C Celle-ci est disponible en JAVA et en .NET Elle contient les processeurs: XSLT 1.0 XPath 1.0 XSLT 2.0 XPath 2.0 XQuery 1.0 XML Schema 1.0

XML4Suite Une plateforme de développement de logiciel libre pour le XML Développé en python et en C (pour la rapidité) 4 Suite permet de tirer avantage des technologies normalisées autour du XML pour développer rapidement divers types d’applications Permet des transformations XSLT Supporte les structure de recherche XML SAX et DOM Supporte XPath, RELAX NG, XUpdate Fait partie du déploiement python standard au CIT-S Beaucoup utilisé par l’équipe de diffusion

Architecture orientée services (AOS)

Est-ce la suite logique des architectures distribuées ? Il y a environ 10 ans, le système d'information sur la BNDT (SIB) était une application client-serveur Une étude de l'époque nous a conduits vers une architecture distribuée de type n-tiers codée en Java sur la plateforme J2EE C'est le début de ce que nous appelons les services de transactions De plus en plus, le besoin se fait sentir pour utiliser ces services à distance Devons-nous migrer vers une AOS?

Pour répondre... Il faut comprendre ce qu'est une AOS C'est une forme d'architecture en flot de données distribuée qui met en œuvre des composants logiciels Les concepts clés des AOS sont : Faible couplage - Dépendance minimale entre les services Sans état - minimise la rétention d'information spécifiant une activité Autonomie - contrôle sur la logique métier encapsulée Abstraction - représente et camoufle la logique métier Réutilisation - la logique est bien divisée pour promouvoir sa récupération Composition - coordination et assemblage d'une collection de services Contrat de service - accord sur les termes de la communication (description du service) Découvrable - possède un mécanisme de description disponible et retrouvable

l'AOS, une forme d'architecture en flot de données distribuée Registre Trouver Publier Consommateur de services Fournisseur de services Accéder

L'implantation la plus populaire Les services WEB UDDI UDDI : Universal Description Discovery and Integration WSDL : WEB Services Definition Language SOAP : Simple object access protocol. Registre Supporte la diversité des manufacturiers (.NET, J2EE, etc.) via une interopérabilité neutre de communication XML Trouver Publier WSDL WSDL XML SOAP Consommateur de services Fournisseur de services Accéder

Analogie avec la poste Communication Accès Description Registre XML (HTTP, SMTP, autres protocoles) Accès (SOAP : Simple Object Access Protocol) Description (WSDL : WEB Services Definition Language) Registre (UDDI, Registre ebXML) XML Communication (les services postaux) Enveloppe (adresse, message) Une inscription (description et mode de communication) Carnet d'adresses (pages blanches, jaunes, vertes) Français

Les dangers des AOS Ne pas considérer les requis de performance Le volume de messages augmente avec la croissance de fonctionnalités Création de services non composables Utilisation à outrance de patrons de communication synchrone Essayer de développer l'architecture de service comme une architecture distribuée traditionnelle Le modèle des AOS nécessite un changement de mentalité et technologique pour être pleinement adopté

Revenons aux questions du début Est-ce la suite logique des architectures distribuées ? C'est plus une spécialisation qu'une suite logique Ouvre les portes au « grid computing » et au WEB sémantique Devons-nous migrer vers une AOS ? Ça dépend du contexte (les bonnes choses aux bons endroits) Dans le cas du CSW, le service est bien défini par l'OGC et est déjà utilisé Dans un contexte de production, il peut être préférable d'utiliser une architecture distribuée afin de maximiser les performances