Présentation
EnglishRÉSUMÉ
L'interopérabilité des systèmes (échange d'informations) se confronte aujourd'hui à l'hétérogénéité des architectures des systèmes d'information. En effet, plus l'hétérogénéité est importante, plus l'échange d'informations devient complexe. Dans ce contexte, XML peut simplifier les échanges d'information du fait de son format même (texte brut) et de l'organisation des données (structuration sémantique des données). Dans cet article, différentes solutions permettant de gérer les données issues d'un document XML à des fins d'exploitation, à savoir DOM, SAX, XSL-T, XQuery ou encore les bases de données XML natives, sont présentées. Les exemples fournis reposent sur les langages Java et PHP.
Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.
Lire l’articleAuteur(s)
-
Max CHEVALIER : Maître de conférences en Informatique, Université de Toulouse, UMR 5505
-
Karen PINEL-SAUVAGNAT : Maître de conférences en Informatique, Université de Toulouse, UMR 5505
INTRODUCTION
L'interopérabilité des systèmes vise à permettre une communication simplifiée entre les systèmes, afin de faciliter les échanges. Pour réaliser une telle interopérabilité, surtout dans un contexte hétérogène, XML (eXtensible Markup Language) [H 7 148] [H 3 500] s'impose aujourd'hui comme format d'échange, puisqu'il est indépendant des processus qui le produisent et l'utilisent. Il permet de structurer sémantiquement les données, et de rendre le contenu indépendant de toute mise en forme.
Si XML résout de nombreuses problématiques liées à l'échange de données, d'autres points relatifs à la gestion des contenus échangés sont à considérer. Quelques pistes sont fournies dans [H 3 502]. Notre but est ici de détailler les différents accès possibles aux données XML, en fonction des traitements que l'on souhaite réaliser.
L'accès aux données peut se faire via des outils de parcours de documents XML (parseur) de type DOM (Document Object Model) ou SAX (Simple API for XML), via un langage de transformation tel que XSL-T (eXtensible StyleSheet Language Transformation) ou encore directement via des requêtes XQuery. Le choix de l'accès doit bien sûr se faire en fonction des traitements nécessaires sur les documents, mais aussi en fonction du mode de stockage choisi.
À partir d'un cas d'étude exposé dans la partie 1 du document, nous détaillons trois solutions envisageables pour le stockage et le traitement de données provenant d'un document XML échangé entre deux systèmes (on suppose que la structure du document est connue).
La première serait d'utiliser une approche structurée pure : on stockerait les données XML dans des tables relationnelles, la transformation XML-relationnel se faisant via des approches de type événementiel (SAX), hiérarchique (DOM), ou par transformation (XSL-T) (partie 2).
La seconde serait d'utiliser une approche semi-structurée (XML) pure, et l'accès aux données se ferait directement via des requêtes XQuery (partie 3).
La dernière serait enfin d'adopter une approche mixte (base de données relationnelle avec type natif XML), dans laquelle l'accès aux documents XML utiliserait la puissance des bases de données relationnelles, sans dénaturer les documents, contrairement à la première solution (partie 4).
Pour chacune de ces solutions, nous fournissons des exemples d'implantation reposant sur les langages Java 1.5 et de PHP 5.0.
DOI (Digital Object Identifier)
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(240 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
Présentation
5. Discussion et conclusion
L'interopérabilité des systèmes repose sur une communication accrue entre les systèmes. Pour ce faire, nous avons illustré, au travers d'un exemple décliné dans les deux langages de développement les plus utilisés dans leur contexte (Java et PHP), la problématique liée à XML. En effet, XML facilite les échanges entre les systèmes à condition que chacun d'entre eux puisse traiter et exploiter convenablement les données de ces documents XML. Au travers de l'exemple de la gestion de commandes, nous avons présenté les principales démarches d'exploitation de ces données selon l'objectif du système qui reçoit les données XML : vision relationnelle pure, vision semi-structurée pure et vision mixte.
Pour chacune de ces visions, nous avons développé les façons de procéder avec les documents XML donnés en entrée des traitements.
Par exemple, pour la vision relationnelle pure, nous avons développé les approches permettant d'alimenter une base de données à partir des données XML (approche événementielle, approche hiérarchique et approche par transformations).
En conclusion, XML permet de rendre des services efficaces aux concepteurs de systèmes d'information. Cependant, la simplicité apparente des documents XML cache bien souvent un traitement associé non trivial qui nécessite une expertise et des compétences en algorithmique (arbres), et en programmation.
Concernant le choix de telle ou telle vision, il est difficile de prendre partie pour l'une ou l'autre car chacune d'elle repose sur des contraintes ou des choix internes à l'organisation souhaitant mettre en place ce genre de systèmes. Cependant, comme nous l'avons souligné, la vision semi-structurée, tout comme la vision mixte, connaissent leurs limites dans le fait que ces visions font nécessairement appel à des logiciels propriétaires, tel que Oracle par exemple. Cet aspect peut être considéré comme un critère de choix de la vision souhaitée, puisque une vision relationnelle pure est transposable dans n'importe quel système intégrant un SGBD relationnel (ce qui est tout de même courant aujourd'hui).
Dans un cadre plus général, au regard des applications que l'on souhaite obtenir, s'il s'agit de produire de nouveaux documents XML, le choix pourra se porter plus précisément sur une approche hiérarchique (DOM) ou par transformations (XSL-T). S'il s'agit de filtrer des données à partir du contenu original, une approche séquentielle (SAX) ou par transformations (XSL-T) est à privilégier....
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(240 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
Discussion et conclusion
BIBLIOGRAPHIE
-
(1) - Oracle Database 11g XML DB - Technical Overview. - An Oracle White Paper (2007) http://www.oracle.com/technology/tech/xml/xmldb/Current/xmldb_11g_twg.pdf
-
(2) - XML Query (XQuery) support in Oracle database 10g release 2. - An Oracle White Paper (2005) http://www.oracle.com/technology/tech/xml/xquery/pdf/XQuery10gR2v4_1.pdf
-
(3) - Oracle XML DB Developer's guide. 10g Release 2 (10.2) - http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14259/toc.htm
DANS NOS BASES DOCUMENTAIRES
ANNEXES
Xylème http://www.xyleme.com/
Tamino Software AG https://documentation.softwareag.com/webmethods/tamino/ins10-3/concepts/cfintro.htm
eXist http://exist.sourceforge.net/
RelaxNG http://www.relaxng.org/
JDBC overview http://java.sun.com/products/jdbc/overview.html
J2EE 1.4 Tutorial, JAXP http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JAXPIntro.html
Dom – Document Object Model. Spécifications http://www.w3.org/DOM/
Comparaison DOM, SAX, XSLT http://java.sun.com/developer/technicalArticles/xml/JavaTechandXML_part2/
Ronald Bourret. – XML Database Products : Native XML Databases http://www.rpbourret.com/xml/ProdsNative.htm
Saxon http://saxon.sourceforge.net/saxon7.9/using-xquery.html dont le pendant commercial est à cette adresse http://www.saxonica.com/
XQEngine http://xqengine.sourceforge.net/
XQuark Fusion http://xquare.objectweb.org/fusion/index.html
Spécifications de XQJ http://jcp.org/en/jsr/detail?id=225
Saxon et XQJ http://www.saxonica.com/index.html https://www.saxonica.com/html/documentation10/using-xquery/api-query/xqj.html...
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(240 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive