1 plan de la présentation la veille technologique les sujets de veille présentés xml -Évolution...

37
1 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

Upload: valere-andrieux

Post on 03-Apr-2015

109 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

1

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

Page 2: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

2

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

Page 3: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

3

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

Page 4: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

4

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

Page 5: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

5

Évolutionet

applicationsdu XML

Page 6: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

6

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.)

Page 7: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

7

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

Page 8: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

8

L’évolution du XML

GML

1960 1970 1980 1990 2000

StandardGeneralised

MarkupLanguage

ISO 88791986

SGMLGeneralised

MarkupLanguage

XMLV1.0:1998

HTMLHyperText

MarkupLanguage

V0.9:1991

ISO/IEC15445:2000

XHTMLV1.0:2000

MathXML

V1.01:1999

MusicXML

V0.6:2002

SVGScalableVector

GraphicsV1.0:2001

GMLGeography

MarkupLanguage

V1.0:2000

MusicXML

V0.6:2002

Le XML est dérivé de la norme internationale ISO 8879

   

Page 9: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

9

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

Page 10: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

10

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

XML – fortement implanté

L’implantation de ces standards sous forme de plug-ins, d’APIs, de librairies, etc. vient renforcer la position du langage XML

Page 11: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

11

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

Page 12: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

12

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

Page 13: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

13

Bases de donnéesqui 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

       

Page 14: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

14

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

       

Page 15: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

15

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)

Page 16: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

16

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

Page 17: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

17

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

Page 18: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

18

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

Page 19: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

19

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

Page 20: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

20

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>

Page 21: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

21

S’ils sont si semblablespourquoi 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

Page 22: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

22

Vue d’ensemble

XQuery 1.0 XSLT 2.0

Xpath2.0

XPath1.0

Expressions FLWORProlog des requêtes (partie déclarative)Constructeurs XMLFonctions définies par l’utilisateur

Expressions conditionnellesExpressions arithmétiquesExpressions quantifiées Fonctions et opérateurs prédéfinisModèle de données

StylesheetsTemplatesEtc.

Expressions de cheminExpressions de comparaisonQuelques fonctions prédéfinies

Some | every $elem in cheminSatisfies (condition)

Page 23: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

23

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

Page 24: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

24

Modèle de donnée

séquence article

valeur atomique

type

noeud

sortevaleur (chaîne)

nœud

nœudinstruction d’exécution

nom

nœuddocument

nœudélément

nomtypevaleur typée

nœudtexte

valeur typée

nœudattribut

nomtypevaleur typée

nœudcommentaire

contiens

0..n

Page 25: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

25

Une hiérarchie XML de noeuds

<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>

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!")

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 »

Page 26: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

26

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_logWHERE 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

Page 27: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

27

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

Page 28: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

28

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

Page 29: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

29

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

Page 30: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

30

Architectureorientéeservices

(AOS)

Page 31: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

31

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?

Page 32: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

32

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

Page 33: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

33

l'AOS,une forme d'architecture en flot de données distribuée

Registre

Consommateur

de services

PublierTrou

ver

Accéder

Fourn

isseu

r

de se

rvice

s

Page 34: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

34

L'implantation la plus populaire

Registre

Consommateur

de services

PublierTrou

ver

Accéder

Les services WEB

WSD

LWSD

L

SOAP

XML

Supporte la diversité des manufacturiers (.NET, J2EE, etc.) via une interopérabilité neutre de communication XML

UDDI : Universal DescriptionDiscovery and Integration

WSDL : WEB Services Definition Language

SOAP : Simple object accessprotocol.

UDDI

Fourn

isseu

r

de se

rvice

s

Page 35: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

35

Analogie avec la poste

Communication(HTTP, SMTP, autres protocoles)

Accès(SOAP : Simple Object Access Protocol)

Description(WSDL : WEB Services Definition Language)

Registre(UDDI, Registre ebXML)

XM

L

Communication(les services postaux)

Enveloppe(adresse, message)

Une inscription (description et mode de communication)

Carnet d'adresses(pages blanches, jaunes, vertes)

Fra

nçai

s

Page 36: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

36

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é

Page 37: 1 Plan de la présentation La Veille technologique Les sujets de veille présentés XML -Évolution et applications -Prototypage et développements Architectures

37

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