66
© Patrick Valduriez - Page 1 II avec XML Intégration d'information avec XML Patrick Valduriez Lip6 Université Paris 6 [email protected] http://www-poleia.lip6.fr/~valdurie/ patrick.html

Intégration d'information avec XML

  • Upload
    cade

  • View
    28

  • Download
    0

Embed Size (px)

DESCRIPTION

Intégration d'information avec XML. Patrick Valduriez Lip6 Université Paris 6 [email protected] http://www-poleia.lip6.fr/~valdurie/patrick.html. Bibliographie. The XML Handbook. C. Goldfard, P. Prescod, Prentice Hall, 2000 - PowerPoint PPT Presentation

Citation preview

Page 1: Intégration d'information avec XML

© Patrick Valduriez - Page 1II avec XML

Intégration d'information avec XML

Patrick ValduriezLip6Université Paris 6

[email protected]://www-poleia.lip6.fr/~valdurie/patrick.html

Page 2: Intégration d'information avec XML

© Patrick Valduriez - Page 2II avec XML

Bibliographie

The XML Handbook. C. Goldfard, P. Prescod, Prentice Hall, 2000

Data on the Web. S. Abiteboul, P. Buneman, D. Suciu, Morgan Kaufmann, 1999

Principles of Distributed Database Systems (2nd ed.). T. Özsu, P. Valduriez, Prentice Hall, 1999

Object Technology. M. Bouzeghoub, G. Gardarin, P. Valduriez, Thomson Computer Press, en français chez Eyrolles,1997

Page 3: Intégration d'information avec XML

© Patrick Valduriez - Page 3II avec XML

Plan

Introduction à XML DTD, XMLschema

Manipulation de données XML XPath, XSL, Xquery, DOM

Intégration de données avec XML architectures, stockage, médiateurs

Intégration d'applications SOAP, ebXML, Web services, .NET

Page 4: Intégration d'information avec XML

© Patrick Valduriez - Page 4II avec XML

Couplage HTML-base de données

Serveur HTTP dynamique basé sur CGI, ne passe pas à l’échelle serveur Web dédié aux BD, solution propriétaire

• Oracle WebDB, VersantWeb, etc.

Pages serveurs dynamiques MS Active Server Pages (ASP) Java Server Pages (JSP) Personal Home Pages (PHP)

Page 5: Intégration d'information avec XML

© Patrick Valduriez - Page 5II avec XML

Page server dynamique

Page HTML avec scripts pour accéder la base de données variables et paramètres avec des tags spéciaux templates pour la présentation des résultats en HTML

<HTML> <BODY><H1>Result of your selection</H1> <%select Q1 = "select A1, A2 from R where ... " %> <%iterate Q1 %> <TABLE> <TR><TD> "A1 "</TD> <TD> "A2 "</TD></TR> <TR><TD>%Q1.A1%</TD> <TD>%Q1.A2</TD></TR> <%end-iterate%> </TABLE> </BODY></HTML>

Page 6: Intégration d'information avec XML

© Patrick Valduriez - Page 6II avec XML

Limitations du couplage HTML-BD

Solutions propriétaires excepté JSP

Pas de protocole pour publier les données SQL n’est pas conçu pour le Web transformations limitées avec les templates

Pas de format d’échange de données standard: HTML est un format de présentation

mélange présentation et contenu pas de structure, pas de sémantique, pas de contrainte

d’intégrité perd la structure (schéma) provenant de la BD

Page 7: Intégration d'information avec XML

© Patrick Valduriez - Page 7II avec XML

La règle d’or (Goldfard)

Le contenu doit être abstrait et indépendant du stockage et de la présentation

permet l’intégration uniforme de données hétérogènes• provenant de différentes sources de données

permet des applications dynamiques• la présentation doit pouvoir être différente selon le medium, le

temps la requête ou le profil de l’utilisateur

Page 8: Intégration d'information avec XML

© Patrick Valduriez - Page 8II avec XML

XML pour l’échange de données universel

Le langage XML standard du W3C décrit le contenu, pas la présentation

• structure, type, schéma, requêtes, etc.

HTML XML SGML indépendance des données au stockage et à la

présentation• supporte la règle d’or

Facilite l’échange de données entre applications

Page 9: Intégration d'information avec XML

© Patrick Valduriez - Page 9II avec XML

HTML décrit la présentation

Page 10: Intégration d'information avec XML

© Patrick Valduriez - Page 10II avec XML

HTML

<h1> Bibliography </h1>

<p> <i> Principles of Distributed Database Systems </i>

Ozsu, Valduriez

<br> Prentice Hall, 1999

<p> <i> Data on the Web </i>

Abiteboul, Buneman, Vianu

<br> Morgan Kaufmann, 1999

Page 11: Intégration d'information avec XML

© Patrick Valduriez - Page 11II avec XML

XML décrit le contenu

<bibliography>

<book> <title> Principles of Distributed Database Systems </title>

<author> Ozsu </author> <author> Valduriez </author>

<publisher> Prentice Hall </publisher>

<year> 1999 </year>

</book>

<book> <title> Data on the Web </title>

<author> Abiteboul </author> <author> Buneman </author>

<author> Vianu </author>

<publisher> Morgan Kaufmann </publisher>

<year> 1999 </year>

</book>

Page 12: Intégration d'information avec XML

© Patrick Valduriez - Page 12II avec XML

Différences avec HTML

Les utilisateurs peuvent définir leurs propres tags pour indiquer la structure

plus verbeux que HTML

Un document XML ne fournit pas d’instruction pour la présentation

dans des stylesheets séparés pour convertir en HTML

Les structures peuvent être arbitrairement imbriquées

Un document XML peut avoir une description optionnelle de sa grammaire (DTD)

Page 13: Intégration d'information avec XML

© Patrick Valduriez - Page 13II avec XML

Terminologie

Tags: book, title, author similaire aux attributs dans une base de données

Markups: start tag <book>, end tag </book>

Les données sont du texte en PCDATA (Parsed Character Data)

caractères Unicode

Eléments: <book> ... </book>, <author> ... </author>

Elément vide: <year></year> abbrv. <year/>

Les éléments sont imbriqués

Un document XML : élément racine

Page 14: Intégration d'information avec XML

© Patrick Valduriez - Page 14II avec XML

Attributs

Propriétés supplémentaires des tags

paires (nom= "valeur ")

<book lang="English" price="US$59.99">

<title> Principles of Distributed Database Systems </title>

<author> Ozsu </author>

<author> Valduriez </author>

...

</book>

Page 15: Intégration d'information avec XML

© Patrick Valduriez - Page 15II avec XML

Identifiants et références

Les éléments peuvent avoir des identifiants uniques, comme la valeur d’un certain attribut, utilisés comme références

<person id="o1"> <name> Ozsu </name> </person>

<person id="o2"> <name> Valduriez </name> </person>

<book> <title> Principles of Distributed Database Systems </title>

<authors idref="o1 o2"/>

<publisher> Prentice Hall </publisher>

<year> 1999 </year>

</book>

Page 16: Intégration d'information avec XML

© Patrick Valduriez - Page 16II avec XML

Modèle de données semi-structuré

Pas de schéma, données auto-descriptives

Pas de typage

Décrit par un graphe étiquetté noeud = tag feuille = tag + texte arc étiquetté = référence

Book

Title Publisher Year

Prentice HallPrinciples of ... 1999

Person

Name

Ozsu

Person

Name

Valduriezidref

Authors

Page 17: Intégration d'information avec XML

© Patrick Valduriez - Page 17II avec XML

Définition de type de document (DTD)

Définit la structure logique du document grammaire du document contraint la structure avec typage faible

Document valide document bien formé conforme à sa DTD vérifié par un parser

Page 18: Intégration d'information avec XML

© Patrick Valduriez - Page 18II avec XML

DTD simple

DTD pour un document contenant un nombre arbitraire de livres

<!DOCTYPE db [

<!ELEMENT db (book)*>

<!ELEMENT book (title,author,year)>

<!ELEMENT title (#PCDATA)>

<!ELEMENT author (#PCDATA)>

<!ELEMENT year (#PCDATA)>

]>

L’ordre des éléments est contraint

Page 19: Intégration d'information avec XML

© Patrick Valduriez - Page 19II avec XML

DTD comme grammaire récursive

DTD décrivant des arbres binaires et un document valide

<!ELEMENT node (leaf l (node,node))>

<!ELEMENT leaf (#PCDATA)>

<node>

<node>

<node><leaf> 1 </leaf> </node>

<node><leaf> 2 </leaf> </node>

</node>

<node><leaf> 3 </leaf> </node>

</node>

1 2

3

Page 20: Intégration d'information avec XML

© Patrick Valduriez - Page 20II avec XML

DTD comme schéma

DTD pour le schéma relationnel r(a,b), s(c)

<!DOCTYPE db [

<!ELEMENT db (r*, s*)>

<!ELEMENT r ((a,b) l (b,a))>

<!ELEMENT s (c)>

<!ELEMENT a (#PCDATA)>

<!ELEMENT b (#PCDATA)>

<!ELEMENT c (#PCDATA)>

]>Limitations

très verbeux un seul type atomique (PCDATA) pas de contrainte sur le type de IDREF

Page 21: Intégration d'information avec XML

© Patrick Valduriez - Page 21II avec XML

XML Schema

Schéma défini en XML associe des types

de données aux attributs et éléments

Remplace les DTD typage plus

complet namespaces

En cours de standardisation par le W3C

XML

<Schema

xmlns:dt="urn:schemas-microsoft-com:datatypes">

<elementType name="title" content="textOnly"/>

<attributeType name="price" dt:type="float"

required="yes"/>

<elementType name= "author" content="textOnly"/>

<elementType name= "book" content="mixed">

<element type= "title"/>

<attribute type= "price"/>

<element type= "author"/>

</elementType>

</Schema>

Page 22: Intégration d'information avec XML

© Patrick Valduriez - Page 22II avec XML

Motivations pour un langage de requêtes

Granularité d’accès HTML = document (fichier)

Langages de requêtes (SQL) extraction rapide d’un sous-ensemble utile de la base niveau de granularité arbitraire

• élément simple• éléments multiples, combinés• agrégats, etc.

Pourquoi un langage de requêtes pour XML? pour définir la granularité d’accès aux données XML

• éléments dans un document • collections de documents• navigation

Page 23: Intégration d'information avec XML

© Patrick Valduriez - Page 23II avec XML

Expressions de chemins

Modèle de données XML = graphe dont les noeuds sont des éléments

Expression de chemins séquence de noeuds T1.T2. ... .Tn retourne un ou plusieurs noeuds Tn, tels qu’il existe

des arcs T1 T2, ... Tn-1 Tn,

Book

Author

A1

Title

T1

Book

Author

A2

db

db.Book.Author

Author

A1

Author

A2

Page 24: Intégration d'information avec XML

© Patrick Valduriez - Page 24II avec XML

XPath

Expressions de chemins XML standard suit la notation URL prédicats pour spécifier des éléments ou des valeurs

d’attributs

Brique de base pour d’autres standards XML Xlink

• liens avec URL Xpointer

• pour référencer l’intérieur d’un document XSL XQuery

• langage de requête pour docs XML

Page 25: Intégration d'information avec XML

© Patrick Valduriez - Page 25II avec XML

Expressions XPath

/ l’élément racine

/db l’élément db sous root

db/book un élément book dans db

db//book ... à n’importe quelle profondeur

@price un attribut price

db/book/@price un attribut price dans book, dans db

db/book[@price] éléments book avec un attribut price

db/book[@price=’10’] ... avec une valeur price de 10

//book/para[2] le second paragraphe de n’importe quel élément book

Page 26: Intégration d'information avec XML

© Patrick Valduriez - Page 26II avec XML

XSL

Language de spécification de stylesheets langage de transformation XSLT

• XML XML • XML XHTML

langage de formatage XSLFO

Programme XSLT = { règle de production} de la forme si <condition> alors <production>

• condition : match=<chemin XPath>• production : action <chemin XPath>

Traitement XSLT application récursive des règles templates de la racine

aux feuilles

Page 27: Intégration d'information avec XML

© Patrick Valduriez - Page 27II avec XML

Exemple XSLT

<bib><book> <title> T1 </title> <author> A1 </author></book><paper> <title> T2 </title> <author> A2 </author></paper><book> <title> T3 </title> <author> A3 </author></book><bib/>

<xsl:template><xsl:apply-templates/> </xsl:template>

<xsl:template match= "/bib/*/title"><result> <xsl:value-of> </result>

</xsl:template>

<result>T1</result>

<result>T2</result>

<result>T3</result>

Page 28: Intégration d'information avec XML

© Patrick Valduriez - Page 28II avec XML

Exemple de génération HTML

<xsl:template match= "/bib">

<html:head>

<html:title> Book Titles

</html:title>

</html:head>

<html:body>

<xsl:apply-templates/>

</html:body>

</xsl:template>

<xsl:template match="book/title">

<html:p> <xsl:value-of> </html:p>

</xsl:template>

<HTML>

<HEAD>

<TITLE> Book Titles

</TITLE>

</HEAD>

<BODY>

<P> T1 </P>

<P> T3 </P>

</BODY>

</HTML>

Page 29: Intégration d'information avec XML

© Patrick Valduriez - Page 29II avec XML

XQuery

Standard prévu fin 2001 proposé par Chamberlin (IBM), Florescu (Propel) et al. basé sur XML-QL (AT&T Research) très puissant

• sélection, projection, jointure, imbrication, agrégats, tri, etc.

Requêtes de la forme (simplifiée)

for $<var> in <forêt>, …

where <condition>

return <résultat> une forêt est sélectionnée par un document et une

expression XPath

Page 30: Intégration d'information avec XML

© Patrick Valduriez - Page 30II avec XML

Sélection en XQuery

for $R in document(Guide)/Restaurant

where $R/Adresse/Ville = "Agadir"

return

<restau> $R/Nom </restau>

Noms des restaurants d'Agadir

Page 31: Intégration d'information avec XML

© Patrick Valduriez - Page 31II avec XML

Jointure en XQuery

for $R in document(GuideR)/Restaurant,

$H in document(GuideH)/Hotel

where $H//Rue like $R//Rue

and $H//Nom = "Agadir"

return

<result>

<nom> $R/Nom </nom>

<tel> $R/Tel </tel>

</result>

Noms et tél. des restaurants dans la rue de l'hôtel Agadir

Page 32: Intégration d'information avec XML

© Patrick Valduriez - Page 32II avec XML

Interfaces de programmation XML

Pour manipuler (lire, écrire, transformer) des documents XML avec un programme, il faut

un parser pour lire le texte XML et reconnaitre sa structure

• vérifier que le document est bien formé• vérifier que le document est valide (validating parser)

du code applicatif, appelé par le parser

APIs standards pour XML Simple API for XML (SAX) Document Object Model (DOM)

Page 33: Intégration d'information avec XML

© Patrick Valduriez - Page 33II avec XML

Où gérer le XML?

Initialement, au niveau du serveur d'application XML produit dynamiquement à partir de BD

A terme, au niveau du SGBD XML produit directement par des outils basés sur DOM XML obtenu à partir d'accès à des sources de données

hétérogènes

Page 34: Intégration d'information avec XML

© Patrick Valduriez - Page 34II avec XML

XML comme modèle d'intégration

Serveur d'application

DB1

DB3

DB2HTMLXML XMLSQL

XSL

JDBC

ODBC

OLE DB

Page 35: Intégration d'information avec XML

© Patrick Valduriez - Page 35II avec XML

XML comme modèle d'accès

Serveur d'application

DB1

DB3

DB2HTMLXML

MédiateurXML

XSL

XML

XML

XML

XMLSchema

Page 36: Intégration d'information avec XML

© Patrick Valduriez - Page 36II avec XML

Gestion de données XML

SGBD relationnel-objet Oracle8i, IBM DB2, MS SQLServer8, Informix, Sybase

SGBD orienté-objet ODI eXcelon, Poet XML Repository

Serveurs XML SAG Tamino, BlueStone XML Server, Ipedo XML

Database, XYZfind Server, X-Hive db, etc.

Page 37: Intégration d'information avec XML

© Patrick Valduriez - Page 37II avec XML

Comment stocker un document XML?

Problèmes doc.= graphe d’éléments schéma (DTD) optionnel

Solutions Binary Long Object (BLOB) classes prédéfinies tables relationnelles classes spécifiques

Book

Person

B1

Person

Authors

Book

Person

Authors

Doc.

B2

P1 P2 P3

Page 38: Intégration d'information avec XML

© Patrick Valduriez - Page 38II avec XML

BLOB

Chaque document est stocké comme un BLOB textuel

utilisé par les SGBDOR

Forces pas besoin de schéma recherche textuelle

Faiblesses inefficace pour les grands

docs

Book

Person

B1

Person

Authors

Book

Person

Authors

Doc.

B2

P1 P2 P3

Page 39: Intégration d'information avec XML

© Patrick Valduriez - Page 39II avec XML

Classes prédéfinies

Chaque document est stocké comme un graphe d’objets éléments

utilisé par les SGBDOO

Forces pas besoin de schéma navigation

Faiblesses n’exploite pas le

placement et les index

Elt.1 Elt.2

Doc.

Elt.3

Elt.5 Elt.6

Elt.4

Elt.6

Page 40: Intégration d'information avec XML

© Patrick Valduriez - Page 40II avec XML

Tables relationnelles

Les éléments de documents sont groupés dans des tables

utilisé par les SGBDOR

Forces exploite le schéma efficace pour de grands

documents avec collections

Faiblesses surcoût de stockage pour

les petits documents navigation inefficace

Books

ID Title .... Authors

B1 ..... P1,P2B2 ..... P2,P3

Persons

ID Name Org. ...

P1 .....P2 .....P3 .....

Page 41: Intégration d'information avec XML

© Patrick Valduriez - Page 41II avec XML

Classes spécifiques

Chaque document est stocké comme un graphe d’objets de classes DTD

utilisé par les serveurs XML

Forces exploite le schéma et les

index navigation

B1

Doc.

B2

P1 P2 P3

Page 42: Intégration d'information avec XML

© Patrick Valduriez - Page 42II avec XML

Support XML dans Oracle8i

Parsers XML

Processeurs XSL

Générateurs de classes XML pour créer des docs XML pour utilisation dans des apps, applets et

JSP

XML Java Beans pour ajouter la visualisation

XSQL Servlets pour produire dynamiquement du XML ou du HTML à partir de

requêtes SQL

XML SQL utility pour lire et écrire des docs XML dans la BD

• BLOB et tables relationnelles

Page 43: Intégration d'information avec XML

© Patrick Valduriez - Page 43II avec XML

Traitement de XSQL

<?xml version="1.1"?><query connection=“xmldb"> select value(a) as Author from authors a where a.book.title=‘t...’</query>

XSQL Servlet

XSQL doc.

XML parserXSL processor

XML SQL Utilities

XMLdoc.

SchemaTables, BLOBs

Page 44: Intégration d'information avec XML

© Patrick Valduriez - Page 44II avec XML

Tamino: serveur XML pour e-business

native XML storage

X-Machine

XML SQL

SDK

programming

AdabasDB2, ...

E-business apps, e.g. Bolero

HTTP Server

XQL or URL/queryXML

X-Node

Data mapping

Page 45: Intégration d'information avec XML

© Patrick Valduriez - Page 45II avec XML

X-Machine

Système de stockage et de recherche XML deTamino stockage des objets XML avec des classes spécifiques

• data maps (schéma dérivé des DTD) requêtes XML

• simple avec URL• plus complexe avec XQL• interpréteur de requêtes

transactions utilitaires

• chargement de grand documents XML

Page 46: Intégration d'information avec XML

© Patrick Valduriez - Page 46II avec XML

Architecture de médiation

Source1

Catalogue globalMédiateur Source2

Source3

Requête

Donne une vue globaledes sources

Adaptateur1

Adaptateur2

Adaptateur3

Cachent l’hétérogénéitédes sources

Projet I3 (DARPA)

Page 47: Intégration d'information avec XML

© Patrick Valduriez - Page 47II avec XML

Médiateur XML

Schéma

décompositionde la requête

schéma

local

schéma

local

global

compositiondu résultat

schéma

local

Résultats

Requêtes

interfacesdifférentes

XML

Médiateur

Source1Adaptateur1

Source2Adaptateur2

Source3Adaptateur3

XQuery

Page 48: Intégration d'information avec XML

© Patrick Valduriez - Page 48II avec XML

Intégration de données en relationnel

Problèmes: renommage et introduction de valeurs nulles

nom ville

P. DupontA. Martin

ParisNantes

nomF ville

MartinSmith

NantesLille

Emp@Site1

tel.

0140...0235...

Emp@Site2

prenom

AnneJean

prenom nom ville

P. DupontMartinA. MartinSmith

ParisNantesNantesLille

Emp = Emp@Site1 U Emp@Site2

nullAnnenullJean

tel.

0140...null0235…null

Page 49: Intégration d'information avec XML

© Patrick Valduriez - Page 49II avec XML

Intégration en XML

<!DOCTYPE db [

<!ELEMENT db (Emp)*>

<!ELEMENT emp (nom,ville,(tel.)?)>

<!ELEMENT nom (#PCDATA | (prenom, nomF))>

<!ELEMENT prenom (#PCDATA)>

<!ELEMENT nomF (#PCDATA)>

<!ELEMENT tel. (#PCDATA)> ]>

<emp><nom> A. Martin </nom><ville> Nantes </ville><tel.> 0235... </tel.></emp>

<emp><nom> <prenom> Anne </prenom> <nomF> Martin </nomF></nom> <ville> Nantes </ville></emp>

Admet la différence d’éléments, mais plus verbeux

Page 50: Intégration d'information avec XML

© Patrick Valduriez - Page 50II avec XML

Interrogation en Xquery

for $e in document(db)/empwhere $e/ville = "Nantes"return <r> <nom> $e/nom </nom>

<tel.> $e/tel </tel></r>

<r><nom> A. Martin </nom><tel.> 0235... </tel.></r>

<r><nom> <prenom> Anne </prenom> <nomF> Martin </nomF></nom> </emp>

Page 51: Intégration d'information avec XML

© Patrick Valduriez - Page 51II avec XML

Traitement de requête distribuée

Optimiseur de requête

Reformuler sur les schémas locaux

Identifier les opérations exécutables par les adaptateurs

Produire un plan d ’exéc. distribué

Système d ’exécution

Intégrer les résultats

call callrésultat

résultat

Adaptateur Adaptateur

Requête

Page 52: Intégration d'information avec XML

© Patrick Valduriez - Page 52II avec XML

Médiateurs XML

e-XMML*Mediator d'e-XMLMedia (startup Prism) découverte des sources, requêtes XQuery distribuées

Xylème (startup Inria) data warehouse XML, crawlers, requêtes distribuées

sur cluster

Nimble (startup U. Sealtle) médiateur XML

Xperanto (IBM Almaden) vues XQuery sur SGBDR

Page 53: Intégration d'information avec XML

© Patrick Valduriez - Page 53II avec XML

Problème avec les middlewares objet

IIOP, DCOM and RMI bien adapté à la comm. serveur-serveur efficace avec la même solution (optimisée)

Mais lourd pour la comm. client-serveur IIOP: le même ORB sur TOUTES les machines DCOM: Windows partout RMI: Java partout

Page 54: Intégration d'information avec XML

© Patrick Valduriez - Page 54II avec XML

Simple Object Access Protocol (SOAP)

SOAP = HTTP + XML proposé en 1998 par MS, DeveloperMentor, UserLand

Software (Dave Winer) basé sur XML RPC

• règles de codage des données en XML• enveloppe: définit le contenu du message • utilise la requête HTTP POST du client au serveur

Objectifs simple, passe au travers des firewalls (port 80) portable, facilite l'accès aux Web services

Page 55: Intégration d'information avec XML

© Patrick Valduriez - Page 55II avec XML

Message SOAP

HTTP Header

SOAP Envelope

SOAP Header

SOAP Body

XML content

Attachments

(obligatoire): nom du message etnamespace pour sa version de schéma

(optionnel): extensions de protocole

(obligatoire): méthode et paramètres

Page 56: Intégration d'information avec XML

© Patrick Valduriez - Page 56II avec XML

Exemple SOAP

<?xml version=“1.0” ?><SOAP:Envelope xmlns:SOAP= “urn:schemas-xmlsoap-org:soap.v1”><SOAP:Body> <AddNumbers>

<Number1> 5 </Number1><Number2> 3 </Number2>

</AddNumbers></SOAP:Body></SOAP:Envelope>

<?xml version=“1.0” ?><SOAP:Envelope xmlns:SOAP= “urn:schemas-xmlsoap-org:soap.v1”><SOAP:Body> <ResponseAddNumbers>

<Result> 8 </result> </ResponseAddNumbers></SOAP:Body></SOAP:Envelope>

Requête Réponse

Page 57: Intégration d'information avec XML

© Patrick Valduriez - Page 57II avec XML

Envoi de message avec SOAP

XMLParser

HTTP

JavaVBC

Perletc.

A component(e.g. EJB)

XMLParser

HTTP

SOAPProcessor

APIApplication

serverSOAP

Processor

JavaVBC

Perletc.

API

A component(e.g. COM)

Applicationserver

TCP/IP

Page 58: Intégration d'information avec XML

© Patrick Valduriez - Page 58II avec XML

Evaluation de SOAP

Avantages interopérabilité: SOAP/HTTP, SOAP/IIOP, etc. simple supporté par MS (in BizTalk), IBM/Apache

Inconvénients pas encore standardisé par le W3C codage/décodage en XML peut être lourd

Page 59: Intégration d'information avec XML

© Patrick Valduriez - Page 59II avec XML

ebXML

Architecture standard pour le B2B développée par l'organization ebXML (2000 membres),

créé par OASIS et UN/CEFACT première spec. en mars 2001

Objectif Electronic Data Interchange (EDI) sur Internet

• échange standardisé d'information de commandes et de comptabilité

• framework extensible et interactif• alternative bon-marché à l'EDI traditionnel

A adopté SOAP

Page 60: Intégration d'information avec XML

© Patrick Valduriez - Page 60II avec XML

Web services

Vision: le logiciel devient un service et les applications sont construites par assemblage de services Web, offerts par des fournisseurs différents

Service Web = application fournie comme un service adresse URL interface bien définie (contrat) facilement interopérable avec d’autres services

• standards Web, XML, SOAP

Web services vs CORBA/DCOM intégration de haut niveau, à gros grain performances?

Page 61: Intégration d'information avec XML

© Patrick Valduriez - Page 61II avec XML

Exemple : gestion de magasin on-line

Application server

Supplier(EJB)

Bank(MVS/CICS)

Credit cardprocessing

(COM+)

Shipper(CORBA)

User authentication

(MTS)

SOAP

SOAP

SOAP

SOAP

SOAP

SOAP

Page 62: Intégration d'information avec XML

© Patrick Valduriez - Page 62II avec XML

Microsoft .NET

Evolution majeure de la plateforme Windows les APIs Windows sont remplacées des bibliothèques

de classes objet de haut niveau intégration de C# portabilité des applications .NET, grâce à un code

intermédiaire (MSIL) gestion mémoire sécurité renforcée avec vérif. de code Intégration avec COM support direct des services Web, de XML et de SOAP

avec Visual Studio .NET

Page 63: Intégration d'information avec XML

© Patrick Valduriez - Page 63II avec XML

Le framework .NET

Common language runtime

System services

Services framework

Base Data Debug ...

ASP+

Web forms Web servicesWin forms

Page 64: Intégration d'information avec XML

© Patrick Valduriez - Page 64II avec XML

C # (C sharp)

Forces intégration COM accès API C et C++ env. de dévelopt

VisualStudio .NET soumis à standardisation

Faiblesses non portable concurrent de Java

Origine Microsoft, 2000, pour la

plateforme .NET

Concepts objet hybride VB/C++ pas de pointeurs héritage simple interface avec héritage

multiple

Concepts additionnels ramasse-miette versions support natif de COM

Page 65: Intégration d'information avec XML

© Patrick Valduriez - Page 65II avec XML

Evaluation des Web services

Avantages très haut niveau d'interopérabilité facilite le développement d'applications distribuées encourage une industrie orientée services

Inconvénients réingénierie gigantesque problèmes de fiabilité/disponibilité problèmes de performances

Page 66: Intégration d'information avec XML

© Patrick Valduriez - Page 66II avec XML

Conclusion

Evolution de XML depuis un meilleur format de documents vers un élément majeur des systèmes distribués

la plupart du XML sera cachée, générée par des outils

La combination de XML et des composants objet facilite l'intégration de données et d'applications

Il reste beaucoup à faire standardisation implémentation recherche