xaltarica documents Intégration du langage XML Java Data Bnding JAXB, XML spy



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

Programmation des Applications Réparties. Parsers XML DOM et SAX

Thierry BOULANGER. par la pratique. Bases indispensables Concepts et cas pratiques XML. 3 ième édition. Nouvelle édition

Accès à l'information XML par des requêtes XQuery au travers de son XSchema

Faculté de Génie Chaire industrielle en infrastructures de communication. La technologie XML. Wajdi Elleuch

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Vulgarisation Java EE Java EE, c est quoi?

Générer du code à partir d une description de haut niveau

Optimisation des échanges et traitements XML

4. SERVICES WEB REST 46

Introduction aux concepts d ez Publish

XML et Bases de données. Les bases de données XML natives.

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014

Devenez un véritable développeur web en 3 mois!

Cours en ligne Développement Java pour le web

Document Object Model (DOM)

CQP Développeur Nouvelles Technologies (DNT)

Qu'est-ce que XML? XML : Extensible Markup Language. Exemple de document SGML SGML

Gestion Électronique de Documents et XML. Master 2 TSM

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

Faculté Polytechnique de Mons. Le processus d Extraction, Transformation et Load (ETL) dans des entrepôts de données XML

PROSOP : un système de gestion de bases de données prosopographiques

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Chapitre VI- La validation de la composition.

BIRT (Business Intelligence and Reporting Tools)

Programmation Web. Madalina Croitoru IUT Montpellier

Programmation Internet

La base de données XML exist. A. Belaïd

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

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

OpenText StreamServe Cours Customer Communication Management L essentiel

Meta Object Facility. Plan

Configuration Interface for MEssage ROuting

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

Évaluation et implémentation des langages

La plate-forme DIMA. Master 1 IMA COLI23 - Université de La Rochelle

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Curriculum Vitae de Michel Casabianca

Ingénierie des Modèles. Méta-modélisation

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

OpenPaaS Le réseau social d'entreprise

Architectures Web Services RESTful

Augmenter la disponibilité des applications JEE grâce au clustering : Le projet open source JShaft

IFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL

Extension de VeSMEL pour la manipulation des contenus dans le m-learning

Serveur d Applications Web : WebObjects

INTERNET / XML-SOA / CLOUD

Rapport de Synthèse. Création d un Générateur de modèle PADL pour le langage C++ Sébastien Colladon

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. A308, Université de Paris 13

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Introduction MOSS 2007

INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE

Cours de Génie Logiciel

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

SOAP Concepts Application à Glassfish

Composants Logiciels. Le modèle de composant de CORBA. Plan

Server-side XML. PAS FINI... mais ok pour un début. Originaux. Auteurs et version. Prérequis: Java de base, servlets, GUI et XML

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

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

34. DOM (Document Object Model)

VOLÉE Master of Advanced Studies RAPID APPLICATION DEVELOPMENT.

L Orchestration de Services Web avec Orchestra. Goulven Le Jeune Orchestra Project Manager

Le moteur de workflow JBPM

Université de Bangui. Modélisons en UML

Adobe Technical Communication Suite 5

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

TP1. Outils Java Eléments de correction

Introduction au développement SharePoint. Version 1.0

IFT2255 : Génie logiciel

From supply chain to demand chain

C-JDBC. Emmanuel Cecchet INRIA, Projet Sardes.

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Flex. Lire les données de manière contrôlée. Programmation Flex 4 Aurélien VANNIEUWENHUYZE

Master d Informatique Corrigé du partiel novembre 2010

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

Présentation du PL/SQL

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

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

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

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

Magento. Pratique du e-commerce avec Magento. Christophe Le Bot avec la contribution technique de Bruno Sebarte

Fiche Pratique. Présentation du problème. Installation du logiciel. Etape 1. MAJ le 17/10/2011

Problématiques de recherche. Figure Research Agenda for service-oriented computing

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

RAPPORT de STAGE : Projet Farandole

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Projet Active Object

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

Refonte front-office / back-office - Architecture & Conception -

SECTION 5 BANQUE DE PROJETS

SQL Server 2012 et SQL Server 2014

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Ingénierie Dirigée par les Modèles. Editeurs de modèles. (Eclipse Modeling Tools) Jean-Philippe Babau

Auteur LARDOUX Guillaume Contact Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA

Présentation du langage et premières fonctions

Module BDWEB. Maîtrise d informatique Cours 9 - Xquery. Anne Doucet. anne.doucet@lip6.fr

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Architecture Orientée Service, JSON et API REST

Transcription:

Le monde XML xaltarica Christophe de Charentenay, ENSAE, Toulouse, octobre 2003 xaltarica consiste en une spécification du langage altarica en langage XML. Altarica rejoint alors le monde des langages XML, comme MathML, HTML, ou xadl, etc. Les modèles altarica seront formatés selon la norme XML et seront conformes aux spécifications xaltarica. Cette démarche qui ne modifie pas la sémantique d altarica, lui apporte un certain nombre de moyens : spécification du langage, accès aux données, manipulation des données, intégration du langage dans les applications, et qui, somme toute, devrait fortement améliorer deux propriétés non fonctionnelles du langage : son extensibilité et son interopérabilité avec d autres langages. Ces moyens sont à la fois, des process, des techniques normalisées et des implémentations, comme l indique le tableau (Cette liste est retreinte) Process Technique API/Outils supports Spécification du langage XML schema XML spy Parsing et validation Parseurs XML : SAX, DOM Xerces, JDOM, JAXP syntaxique des documents Transformation des XSL-XSLT Xalan, Saxon, JAXP documents Accès aux données du XPath, XQuery Qizx, Saxon documents Intégration du langage XML Java Data Bnding JAXB, XML spy Les différents process et techniques utilisés méritent quelques explications : Spécification XML du langage XML offre deux méta langages de spécification de structure de document (dans le cas présent la structure de document équivaut au langage), la DTD et XML Schema. Sans entrer dans les détails, signalons simplement qu XML Schéma est apparu après les DTD, et qu il apporte des mécanismes de typage, ce qui lui confère quelques avantages quant à l extensibilité du langage et la puissance de validation des documents. De plus XML Schema est lui même un langage XML XML schema permet de hiérarchiser le langage afin de distinguer la part générique des extensions spécifiques du langage. Enfin les extensions postérieures ne modifient pas les spécifications antérieurs, permettant ainsi d éviter les phénomènes de régression. xaltarica se compose actuellement de trois schémas définissant trois namespaces : utils.xsd <<uses>> altarica.xsd timedaltarica.xsd Figure 1 : Les schémas d'xaltarica

altarica.xsd : Architecture, ComplexComponent, Sub, Sync, ConfigurationAssert, Component, Flow, Event, State, Transition, ComputationAssert, Guard utils.xsd : ArithmeticExpression, ArithmeticValue, ComparisonExpression, BooleanExpression, BooleanValue, Constant, Variable, Value, Pointer timedaltarica : (en cours d étude) TimedComponent, utils.xsd rassemble les outils mathématiques comme les expressions altarica.xsd qui utilise les termes d utils xsd sert à représenter les modèles altarica timedaltarica.xsd, à l état de développement potentiel, étend les termes d altarica.xsd pour intégrer les attributs temporels. La spécification proposée ne modifie en rien la sémantique d altarica, quelques modifications de lexique et de syntaxe y ont été introduites pour des raison de meilleure compatibilité avec les langages d architecture, en particulier xadl. Ainsi, on observe que Node est décomposé en Architecture, ComplexComponent et Component et Assert en Configuration Assert et ComputationAssert. Ceci permet de distinguer d une part les composants atomiques des composants composites, d autre part le comportement dynamique de la configuration. Parsing et Validation des documents XML C est l un des avantages majeurs, que permet de formatage des documents en XML : bénéficier des parseurs génériques XML, ceci, quelque soit les spécifications de structure. Ces parseurs s intègrent facilement dans les environnements support et réduisent d autant l effort de développement des applications. Ils sont génériques et acceptent sans modification toute évolution du langage. Les parseurs XML génériques permettent en outre la vérification et la validation syntaxique pour autant qu il soit indiqué dans l entête du document à quels schémas ce dernier est supposé conforme. On distingue deux types de parseurs XML : Les parseurs SAX qui fonctionnent en read only et parcourent le document en séquence. Ils sont très adaptés aux gros documents (ce qui ne devrait pas être notre cas) Les parseurs DOM qui construisent une représentation interne du document sous forme d arbre syntaxique. Ce type de parseur sert aussi en écriture pour la sérialisation des données en document xml. Le style DOM est bien adapté aux traitements et à la manipulation des documents. Document.xml Schémas DOM Parsing + Validation «Document Object Model» «Data Flow» Applications SAX Figure 2 : Parsing et Validation

Transformation d un format de donnée à un autre La transformation d un document XML permet de reformater le document pour des besoins de traduction ou de présentation. Le principe consiste à transformer un arbre source représentant le document sous sa forme de départ en arbre résultat conforme au format de destination désiré. La spécification de la transformation se trouve dans un document appelé feuille de style suivant un langage appelé XSL. Cette feuille de style permettra au processeur de transformation générique (XSLT) d opérer la transformation sur le document. L usage d XSL est multiple, il s utilise beaucoup pour la mise en page de document, mais il est aussi utilisé pour permettre l interopérabilité entre deux langages XML, pour peu qu ils soient compatibles. langage X (document.xml) Feuille de Style (document xsl) Transformation (XSLT) langage Y (document.xml) Application ( style Y) Figure 3 : Transformation XSLT XML Java Data Binding : de la spécification XML à l implémentation objet Le Java Data Binding entre XML et Java consiste à dériver depuis les schémas des classes et des interfaces équivalentes implémentées en java. Celles-ci vont être ensuite utilisées pour construire une représentation interne du document xml avec des objets représentatifs du lexique plutôt qu avec les objets du DOM (element, attribut, text, ). Le databinding s effectue en deux temps : La compilation des classes : cette compilation est automatisée et permet de générer une librairie de classes et d interfaces directement dérivées des schémas. La génération et la manipulation d un modèle composé d objets instances de ces classes, généré à partir du document xml, et inversement. Schémas xml conform Document xml Compile marshal validate unmarshal Classes Classes Instance of Objets Figure 4 : mapping XML - java (source JAXB specification)

L architecture JAXB A - Génération et compilation des Classes et des Interfaces Binding Declarations Source Schema Binding Compiler Schema derived Classes & Interfaces Figure 5 : Binng Compilation Les «binding declarations» servent à «customiser» le mapping entre xml schema et java, ces déclarations sont optionnelles (il existe un mapping par défaut). Elles peuvent être contenues dans un fichier externe ou à l intérieur même des schémas. Mapping XML to Java (extrait) : XML Schema Java représentation Schema Package ComplexType Content Interface Derived by Extention Extends Attribute Property (Accesseurs, modifieurs ) Element Property (Accesseurs, modifieurs ) Figure 6 : mapping XML Schema - Java representation B Binding document/modèle objet, manipulation du modèle Les interfaces et leur implémentations crées permettent alors de construire puis de manipuler une représentation interne du document en regard du langage. Schema derived Classes & Interfaces Application XML Document Binding FrameWork Figure 7 : Binding Framework Content Tree Impact sur l évolution du langage

L utilisation d xml, d xml schema, d xsl et éventuellement du data binding facilite l évolution future d altarica : XML schema permet d étendre le langage facilement, sans régressivité Les nouvelles extensions sont sans effet sur les outils génériques tels les parseurs SAX, DOM, JDOM, les processeurs XSLT ou encore les compilateurs de Data Binding. Les API s «syntax directed» s adaptent de facto aux évolutions. Les librairies dérivées des schémas sont mises à jour par simple recompilation. Ainsi, le travail de développement et d adaptation des outils peut se concentrer sur l essentiel des évolutions linguistiques, leur sémantique, et leur traitement sémantique. Impact sur l interopérabilité L interopérabilité bénéficie aussi de ces techniques pour la mise en œuvre : L interopérabilité peut être interne entre plusieurs vues contenues dans la sémantique générale du langage : par une utilisation modulaire du langage. Elle peut être externe, avec d autre langage (ou plus généralement d autres formats), dans ce cas elle s opère au moyen d XSL et XSLT ou par intégration du Data Binding sur plusieurs environnements, et/ou transformation par des API spécifiques Exmple d interopérabilité : Modèle xaltarica, modèle xadl Les deux langages n ont pas le même point de vue, ni la même finalité. xaltarica va permettre de décrire les composants par leurs états de fonctionnement, et la dynamique de ces états. La configuration architecturale est implicite. Dans un autre registre xadl permet de spécifier les architectures sous l angle de la configuration et de l implémentation et ne s occupe pas d aspects comportementaux analysables. Toutefois xadl s est construit depuis quelque années avec un souci de généricité et d ouverture, en conservant la possibilité d être étendu facilement à d autres fins comme l analyse de propriétés. Ces extensions restent à réaliser. Altarica et xadl possède en commun la configuration architecturale (implicite chez l un, explicite et de premier ordre chez l autre) Altarica possède en propre la capacité à décrire l état de fonctionnement des composants et permet ensuite les études de SdF xadl insiste sur le design architectural en offrant le typage explicite des composants. Il permet la description de familles d architectures, avec options et variantes (PLA, Product Line Architecture). Il est bien adapté à la génération de code applicatif par assemblage de composants (implémentés) C est en effectuant le mapping détaillé entre les deux langages que l on peut évaluer la possibilité et la portée de l interopérabilité.

xaltarica Pointer (attr) xlink :type (attr) xlink :href Architecture/ComplexComponent (attr) Name Component / ComplexComponent derived from ConfigurationAssert, Sync derived from ConfigurationAssert, Sync Component ComplexComponent Sync (attr) Name Event/Flow from Sub, ConfigurationAssert from ConfigurationAssert, Sync Event/Flow Event/Flow (Attr) Name Way derived from Sub, SubLink HierarchicLink HierarchicLink flowparent : FlowPointer flowinstancechild : FlowInstance ConfigurationAssert FlowInstance FlowInstance SubComponantPointer & FlowPointer xarch XMLLink (attr) xlink :type (attr) xlink :href ArchInstance ComponentInstance ConnectorInstance LinkInstance Group ComponentInstance InterfaceInstance SubArchitecture ConnectorInstance InterfaceInstance SubArchitecture InterfaceInstance Direction SubArchitecture ArchInstance InterfaceInstanceMapping InterfaceInstanceMapping outerinterfaceinstance : XMLLink innerinterfaceinstance : XMLLink LinkInstance Point Point anchoroninterface : XMLLink Figure 8 : Mapping xaltarica/xadl2.0 Le mapping ci dessus est dans le sens xaltarica vers xarch. xarch est en fait le schéma de base d xadl2.0, le mapping complet devrait inclure les autres schémas, notamment «type.xsd» qui permet de typer les composants et de séparer leur design de leurs instanciations dans des stuctures ou des sousstructures.

Conclusion xaltarica est avant tout un outils pour les outils support d altarica. En permettant l accès aux technologies XML, les outils deviennent plus adaptables et le langage y gagne en capacité à évoluer et en interopérabilité. Perspectives Toutefois, à l heure qu il est, cette proposition en est encore au stade initial, il s agit pour la pousuivre : D en évaluer l intérêt De finaliser une première version d xalatarica De réaliser les extensions comme timedaltarica D adapter les outils à XML, en envisageant la possibilité d utiliser le Data Binding D étudier le mapping avec d autres langages