La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

XML dans les Serveurs d'applications

Présentations similaires


Présentation au sujet: "XML dans les Serveurs d'applications"— Transcription de la présentation:

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

2 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

3 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

4 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

5 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

6 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

7 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

8 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

9 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

10 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

11 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

12 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

13 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

14 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

15 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

16 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

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

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

19 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

20 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

21 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

22 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

23 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

24 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

25 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

26 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

27 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

28 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

29 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

30 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

31 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


Télécharger ppt "XML dans les Serveurs d'applications"

Présentations similaires


Annonces Google