1 / 31

XML dans les Serveurs d'applications

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

hunter
Download Presentation

XML dans les Serveurs d'applications

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 (Mainframes) Outils de développements Basé composants ooo Client Java Noyau serveur d'applications Serveur HTTP Gestionnaire de Composants Documents HTML/XML Autres serveurs Gestionnaires de Messages CGI d'applications RPC DCE Client COM 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. SQL API Objet XA URL longue   HTML Les dialogues sans XML Templates HTML (ASP,JSP) Compilation Instantiation/Activation requête Objets Métiers Services invocation HTML BD Transactions/Requêtes 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 Document XML Parseur DOM Arbre DOM API DOM Application DOM

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

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

  12. 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 Quelques interfaces de base DOM

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

  14. Exemple d'utilisation 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. Une interface objet standard 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 Bilan DOM DOM

  16. 3. L'interface SAX • SAX (Simple API for XML) • 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 Stream XML Document XML Evénement startElement …. Evénement endDocument Content Handler SAX

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

  19. personne nom #text: Cover prenom #text: Harry adresse rue #text: Stendhal ville #text: Paris 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> 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 <ville>Paris</ville> <pays>France</pays> <temp echelle="C">18</temp> Bien formé Valide XML <ville>Paris</ville> <pays>France</pays> <temp echelle="C">18</temp> Manipulationde l'arbre XSLStylesheet <ville>Paris</ville> événements – call back Data Binder <city>Paris</city> <temp degree="F">65</temp> RTF, Word PDF (X)HTML XML WML XML: synthèse des outils XMLSchema(ou DTD) DOM Parser SAX Mal formé/Invalide XSLFO XSLT Objets Métiers 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. Conteneur web Conteneur EJB Architecture J2EE Serveur d'applications EJB Servlet JSP RMI JNDI JTA JDBC JMS JavaMail JAX RMI JNDI JTA JDBC JMS JavaMail JAX Base de données Autres ressources J2EE

  27. JNDI 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 APIs J2EE

  28. Les API J2EE pour XML • JAXP • 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. TagLib XML XQuery XML/ SOAP XML JCA XML/SOAP XSL Les dialogues avec XML templates XSP EJB Stub Skel. BD Un seul modèle ! Une évolution majeure en marche ... J2EE et .NET

  31. Serveurs d'applications 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 ? Bilan Java & XML

More Related