XML dans les Serveurs d'applications

Slides:



Advertisements
Présentations similaires
Internet et le client- serveur Licence Pro IE Cours Internet / Intranet Le Web HTML Protocoles Le client universel Contenus dynamiques.
Advertisements

DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL.
Transformation de documents XML
Xavier Blanc Web Services Xavier Blanc
Introduction aux environnements répartis
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.
Serveurs web pour JSP et Servlets
L’architecture .net et ASP.net
Exposé de Système - Informatique et Réseau
Les technologies XML Cours 3 : Les APIS XML Janvier Version 1.0 -
1 Les technologies XML Cours 3 : Les Web Services – Implémentation – JAX-WS Février Version 1.0 -
Cours 2 : Les Web Services Concepts Généraux
Domaines nominaux XSLT
Introduction Concepts fondamentaux Éléments d’architecture
version Beta Marie Calberg Ninni Louhelainen SLFN7
Architecture Technique de la plate-forme CASTOR Projet Castor © Ecole des Mines de Nantes
TP 3-4 BD21.
Manipulation d’XML avec XSL
Programmer avec Java EE
Introduction aux services WEB
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Etude des Technologies du Web services
Communiquer avec ELYX.
Serveurs d’application
XML-Family Web Services Description Language W.S.D.L.
Présentation Struts1-JaxB
ASP.NET un peu plus loin… Développement Rapide dApplications Web avec.NET.
Tapestry - Eclipse Link
Introduction à DOM Maroua Bouzid
Programmation Approche composants Ing5 SI
Xml/xslt : Extensible Stylesheet Language Transformation réalisé par: saÏd NAÏM.
ASP.NET Par: Hugo St-Louis. C ARACTÉRISTIQUES A SP. NET Évolution, successeur plus flexible quASP (Active Server Pages). Pages web dynamiques permettant.
Interopérabilité JOnAS - CORBA
Gestion des bases de données
An Introduction to distributed applications and ecommerce 1 1 Les services Web, XML et les places de marchés.
Document élaboré à Centrale Paris par Pascal Morenton LES TECHNOLOGIES DU WEB 1. LES PHASES D UN DEPLOIEMENT DE RESEAUX 2. LE LANGAGE HTML 3. LE LANGAGE.
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
Internet et le client- serveur Licence Pro IE Cours Internet / Intranet Le Web HTML Protocoles Le client universel Contenus dynamiques.
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
Java Enterprise Edition, anciennement J2EE
Content Management System CMS. Pourquoi ? Obligation de ressaisir des contenus publiés à plusieurs endroits Pas d’outils de gestion de qualité de l’information.
Découverte des Framework : SPRING & JAXB
Introduction à la plateforme .NET
Les plateformes de développent des web services
Enterprise Java Beans 3.0 Cours INF Bases de Données Hiver 2005, groupe 10 Stefan MARTINESCU.
Architecture J2EE gfgfgfggf Khin Chhoung LAO, Cnam.
Metro Web Services Ben Yaflah Marouen Dhrif Mohamed Hbib Hajlaoui Nader.
ANTOINE CHEVERT , PASCAL LAMY
Conférence Technique Java 2 Frédéric Jacquet. Au programme  Présenter les différents outils  Découverte - Java coté serveur  Appréhender l ’existant.
S'initier au HTML et aux feuilles de style CSS Cours 5.
MJ. Blin et M. CsernelPoleInfo31 XML et ses environnements Documents XML bien formés Prologue Arbre d'éléments Attributs Commentaires Entités internes.
Architectures Web 3-Tiers: notions de base
Struts.
Introduction au socle MEAN
Cours MIAGE « Architectures Orientées Services »Henry Boccon-GibodCours MIAGE « Architectures Orientées Services »Henry Boccon-Gibod 1 Architectures Orientées.
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Conférence Témoignages métiers- Supinfo Nantes  Création en 1979  CA de 150 Millions €  Présence nationale et internationale  2300 personnes en France.
Les Servlets Présentation Cycle de vie Principe de fonctionnement
Programmation Web : DOM en PHP Jérôme CUTRONA 11:06:45 Programmation Web
Séance /10/2005 CSS et Dreamweaver. CSS : principes Cascading Style Sheet = feuille de style en cascade Norme du W3C :
Présentation TELW M2 Contexte : passage de la matière de M1 en M2 Transformation cours->TDs Sujet plus haut niveau basé : Web Services echanges au format.
III. Publication et Traitement avec XSL
CPI/BTS 2 Programmation Web Les sites dynamiques Prog Web CPI/BTS2 – M. Dravet – 02/10/2003 Dernière modification: 02/10/2003.
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.
Modèle à objets et sérialisation Olivier ChamlaFrançois Chastanet.
TWP Toolkit Formation 21/10/2009.
Parquet Geoffrey 3 ARIL EXIA.CESI ARRAS. Présentation du MLD Présentation de la persistance Présentation récapitulatif du projet JSP/SERVLET MVC Cycle.
Applications distribuées Introduction Jean-Jacques LE COZ.
Architecture J2EE Web Jean-Jacques LE COZ. J2EE Web Container JSP Page Servlet J ava 2 Standard Edition APIs EJB Container EJB JDBCJMS JNDI JTA JavaMail.
Transcription de la présentation:

XML dans les Serveurs d'applications Serveurs d'applications : rappels L'interface DOM L'interface SAX XML, J2EE et .NET Conclusion

1. Serveurs d'applications Java, un langage portable Mais aussi une plate-forme distribuée (J2EE) XML est déjà le standard de description des composants XML devient le standard de communication .Net la plate-forme concurrente de Microsoft Avantages de XML: échange sécurisé sur HTTP un message porte plusieurs objets interopérabilité des Services Web Serveurs d'applications

Architecture d’un serveur d ’appli. Client HTML Applications légataires Outils de développements (Mainframes) Basé composants Client Java ooo Noyau serveur d'applications Serveur HTTP Documents Gestionnaire de Composants HTML/XML Autres serveurs CGI Gestionnaires de Messages d'applications Client COM RPC DCE Gestionnaire de Données RMI IIOP Services de Sécurité … Gestionnaire de threads Gestionnaire de Connexions Client CORBA Bases de données Moniteur Transactions Files de messages …. Serveurs d'applications

Principaux serveurs d’application WebLogic de BEA WebSphere Application Server d ’IBM Domino Application Server de Lotus -IBM iPlanet Application Server de Sun Oracle Application Server Sybase Enterprise Application Tomcat+Jboss (Open Source) Tomcat+Jonas (Open Source) Microsoft .NET, Vista & Indigo Serveurs d'applications

Les dialogues sans XML Services BD Trois modèles ! Objets Métiers Templates HTML (ASP,JSP) Compilation API Objet Instantiation/Activation SQL XA requête URL longue   HTML Services invocation Objets Métiers HTML Transactions/Requêtes BD Trois modèles ! Serveurs d'applications

XML et programme objet Les services sont souvent programmés en langage objet Java, C++, C#, VB, PHP ... Java langage pur objet portable et sûr, semi-interprété le compilateur produit un fichier de byte code par classe possibilité de chargement dynamique de classe support du standard de composants JB et EJB XML les messages XML doivent être traduits en objets différents niveau d'interface : Flux d'événements (SAX) Traduction en objet génériques (DOM) Mapping sur objets métiers (Data Binding) Serveurs d'applications

XML et les autres langages VB, C# Possibilités similaires à Java (parseurs MS) C++ Possibilités similaires à Java (parseurs libres) Chargement dynamique de classe impossible PHP Il existe des parseurs libres Serveurs d'applications

2. L'interface DOM Standard W3C fait pour HTML et XML Structure d'objets pour représenter un document Résultat d'un "parser" Arbre d'objets reliés entre eux Interface objet pour naviguer dans un document Orientée objet Peut être utilisée en: Java, C++ C#, VB Python, PHP DOM

Principaux parseurs Xerces Apache (Java, C++) MSXML Microsoft Document XML Xerces Apache (Java, C++) MSXML Microsoft SDK Oracle Oracle JAXP J2EE Sun, ... Parseur DOM Arbre DOM API DOM Application DOM

Exemple d'arbre DOM <Guide> </Guide> Document Racine du document NodeList Element <Guide> NodeList <Guide> <Restaurant id="R1">Le meilleur restaurant</Restaurant> </Guide> Element <Restaurant> NamedNodeMap Attr Id="R1" NodeList Text Le meilleur restaurant DOM

Le meilleur restaurant L'arbre DOM Navigation via un arbre générique de nœuds Node NodeList (Parent/Child) NamedNodeMap Tout nœud hérite de Node Node Document ProcessingInstruction DocumentType Element .... <?xml:stylesheet ...> <!DOCTYPE ...> <Restaurant ....> Child Text Le meilleur restaurant DOM

Quelques interfaces de base Document createElement (Nom_Element): créer un élément avec le nom spécifié en paramètre. createComment (commentaire): créer une ligne de commentaires dans le document. createAttribute (Nom_Attribut): créer un attribut avec le nom pris en paramètre. getElementsByTagName (nom_Tag): retourne tous les descendants des éléments correspondants au Nom_Tag. Nœud insertBefore (Nouveau_Noeud, Noeud_Reference): insère un nouveau nœud fils avant le " nœud référence" déjà existant. replaceChild (Nouveau_Noeud, Ancien_Noeud): remplace le nœud "Ancien_Noeud" par le nœud "Nouveau_Noeud". removeChild (Nœud): supprime le nœud entré en paramètre de la liste des nœuds. appendChild (Nouveau_Noeud): Ajoute un nouveau nœud a la fin de la liste des nœuds. hasChildNodes(): Retourne vrai si le nœud possède un enfant DOM

Autres interfaces Interfaces fondamentales Interfaces étendues XML DOMImplementation Document Comment DocumentFragment Element Attr(ibute) NamedNodeMap CharacterData Text Interfaces étendues XML ProcessingInstruction DocumentType CDATASection Notation Entity EntityReference DOM

Exemple d'utilisation Document: <nom ville ="Paris"> Public class ExempleDOM public static main (String argc[]) throws IOException, DOMExcetion {XMLDocument xmlDoc = new XmlDocument(); // creation des nœuds ElementNode nom = (ElementNode) xmlDoc.createElement("nom"); ElementNode prenom = (ElementNode) xmlDoc.createElement("prenom"); ElementNode nomfam = (ElementNode) xmlDoc.createElement("nomfam"); // creation de l'arbre xmlDoc.appendChild(nom); nom.appenChild(prenom); prenom.appendChild(xmlDoc.createTextNode("Jean"); nom.appenChild(nomfam); nomfam.appendChild(xmlDoc.createTextNode("Dupont"); // positionnement d'un attribut nom.setAttribute("ville", "Paris"); // sortie System.exit(0); } } Document: <nom ville ="Paris"> <prenom> Jean </prenom> <nomfa> Dupont </nomfa> </nom> DOM

Bilan DOM Une interface objet standard Performance limitée DOM 2.0 Navigation dans l'arbre XML Traitements spécifiques Performance limitée Place mémoire importante Traitement à la fin de l'analyse DOM 2.0 Accède dynamiquement au contenu et à la structure du document Extensions en cours : DOM Level 3 : XPath Support direct de XPath Définition d'un XPath Evaluator Devrait être intégré aux parsers DOM Level 3 : Events Modèle d'événements Associés à un nœud Propagés dans l'arbre DOM DOM Level 3 : Style Accès aux styles Mapping complet DOM

3. L'interface SAX SAX (Simple API for XML) Types d'événement : modèle simplifié d'événements développé par un groupe indépendant. Types d'événement : début et fin de document ; début et fin d'éléments ; attributs, texte, … . Nombreux parseurs publics XP de James Clark, Aelfred, Saxon MSXML3 de Microsoft Xerces de Apache JAXP de SUN SAX

Principe de fonctionnement Méthodes utilisateur Evénement startDocument Parser Document XML Stream XML Evénement startElement …. Evénement endDocument Content Handler SAX

Les méthodes essentielles XMLReader setContentHandler setErrrorHandler parse ContentHandler startDocument endDocument startElement endElement characters ErrorHandler fatalError error warning SAX

Exemple SAX et DOM startDocument () startElement (personne) startElement (nom) characters (Cover) endElement (nom) startElement (prenom) characters (Harry) endElement (prenom) startElement (adresse) startElement (rue) characters (Stendhal) endElement (rue) startElement (ville) characters (Paris) endElement (ville) endElement (adresse) endElement (personne) endDocument () <personne> <nom> Cover </nom> <prenom> Harry </prenom> <adresse> <rue> Stendhal </rue> <ville> Paris </ville> </adresse> </personne> personne nom prenom adresse rue ville #text: Cover #text: Paris #text: Stendhal #text: Harry SAX

DOM versus SAX DOM utilise SAX pour la construction de l’arbre d’un document XML SAX est plus léger que DOM Au-dessus de DOM, il est possible d  ’implémenter un « method caller » ... SAX

4. Le mapping objet (Data Binding) Définition Mapping entre un document XML et un graphe d’objets métier C++ ou Java Développements manuels Interface générée à l’aide d’outils de Data Binding Objets C++ Objets Java Objets Java Parsing Xerces C++ Parsing XDK Java Binding Java XML XML XML Mapping

Avantages L’activité de développement "parsing" est réduite Gain en coût de développement des interfaces Les applications peuvent se concentrer sur le fonctionnel Les développeurs n'ont pas à se soucier du mapping XML Les Systèmes Techniques sont simplifiés Capitalisation sur l’interface (utilisation, évolution, …) Gain en terme de fiabilité (fin de l’utilisation de parseurs variés, parfois écrits à la main) Les performances de l’interface sont optimisées Les outils de mapping sont intégrés aux serveurs J2EE = JAXB .NET = mapper Mapping

Comment traiter les tags XML ? Tags connus déclenchement d'un traitement prédéfini appel de méthode associée avec paramètres transformation et stockage en BD génération de requête base de données Tags inconnus les ignorer : pas toujours satisfaisant les interdire (DTD, Schéma) : peu flexible leur appliquer un traitement standard : affichage, erreur, etc. rechercher le traitement approprié : bibliothèque Java Mapping

XML: synthèse des outils XML Schema (ou DTD) Manipulation de l'arbre XML <ville>Paris</ville> <pays>France</pays> <temp echelle="C">18</temp> <ville>Paris</ville> <pays>France</pays> <temp echelle="C">18</temp> XML DOM Parser Bien formé Valide événements – call back <ville>Paris</ville> SAX XSL Stylesheet Data Binder Mal formé/Invalide XSLT XSLFO Objets Métiers (X)HTML <city>Paris</city> <temp degree="F">65</temp> WML XML PDF RTF, Word Mapping

5. Plate-forme J2EE Java 2 Enterprise Edition Un langage + une architecture « standardisés » Supportée par plus de 50 constructeurs SUN, IBM, Oracle, BEA … Architecture pour serveur d'applications Plate-forme composée de conteneurs Deux types de conteneurs Conteneur Web Conteneur EJB Un ensemble d'API standards J2EE

Architecture J2EE Serveur d'applications J2EE Conteneur web Conteneur EJB EJB Servlet JSP JNDI JDBC RMI JTA JMS JavaMail JAX JDBC JNDI RMI JTA JMS JavaMail JAX Base de données Autres ressources J2EE

J2EE APIs JNDI RMI JIDL JavaMail JSP JMS JTA, JTS JDBC JAX… accès aux services de nomination et de directory DNS, NDS, NIS+, LDAP, COS RMI invocation de méthodes Java à distance JIDL Java IDL - interface Corba JavaMail Envoie et réception de messages depuis Java JSP Java Server Pages et servlets support HTML dynamique JMS Java Messaging Service JTA, JTS Java transaction Service basé sur OTS de Corba JDBC accès aux BD relationnelles JAX… Interfaces pour XML J2EE

Les API J2EE pour XML JAXP JAXB JAXM JAX-RPC JAXR Interface commune pour SAX, DOM, XSL Pour traiter les doc. XML avec différents parsers JAXB Interface de liaison avec des objets (EJB) JAXM Interface pour envoyer des messages en SOAP Synchrones ou asynchrones, avec attachements JAX-RPC Invocation de méthode SOAP et collecte réponse Permet la construction de services avec clients JAXR Accès uniforme à des annuaires UDDI, ebXML, … J2EE

Architecture .NET de Microsoft SOAP & XML Toolkits VB C++ C# JScript … OLE-DB Fédérateur de BD ASP.NET BCL.NET ADO.NET Common Language Runtime (CLR) Windows et COM+ Services .NET

Une évolution majeure en marche ... Les dialogues avec XML XML/SOAP XSL templates TagLib XSP XML XQuery JCA XML/ SOAP EJB Stub Skel. BD Un seul modèle ! Une évolution majeure en marche ... J2EE et .NET

Bilan Serveurs d'applications XML/SOAP Qu'en pense Bill Gates ? Des composants objet Une plate-forme distribuée Des API pour XML XML/SOAP Le protocole de haut niveau Peut intégrer les autres Une nouvelle approche SOA Qu'en pense Bill Gates ? .NET et ses outils Une 3e idée géniale Les Web Services … Questions ? Java & XML