XML dans les Serveurs d'applications - PowerPoint PPT Presentation

About This Presentation
Title:

XML dans les Serveurs d'applications

Description:

Serveurs d'applications : rappels L'interface DOM L'interface SAX XML, J2EE et .NET Conclusion – PowerPoint PPT presentation

Number of Views:123
Avg rating:3.0/5.0
Slides: 32
Provided by: Gardarin4
Category:

less

Transcript and Presenter's Notes

Title: XML dans les Serveurs d'applications


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 dun serveur d appli.
Applications
Client HTML
légataires
(Mainframes)
Outils de développements
Basé composants
Client Java
ooo
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 dapplication
  • 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
  • TomcatJboss (Open Source)
  • TomcatJonas (Open Source)
  • Microsoft .NET, Vista Indigo

Serveurs d'applications
5
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
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
Racine du document
Document
NodeList
ltGuidegt
Element
NodeList
  • ltGuidegt
  • ltRestaurant id"R1"gtLe meilleur
    restaurantlt/Restaurantgt
  • lt/Guidegt

ltRestaurantgt
Element
NamedNodeMap
Id"R1"
Attr
NodeList
Text
Le meilleur restaurant
DOM
11
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
....
lt?xmlstylesheet ...gt
lt!DOCTYPE ...gt
ltRestaurant ....gt
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
  • DOMImplementation
  • Document
  • Comment
  • DocumentFragment
  • Element
  • Attr(ibute)
  • NamedNodeMap
  • CharacterData
  • Comment
  • Text
  • Interfaces étendues XML
  • ProcessingInstruction
  • DocumentType
  • CDATASection
  • Notation
  • Entity
  • EntityReference

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 ltnom ville "Paris"gt ltprenomgt Jean
lt/prenomgt ltnomfagt Dupont lt/nomfagt lt/nomgt
DOM
15
Bilan DOM
  • 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

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
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) startElem
ent (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 ()
ltpersonnegt ltnomgt Cover lt/nomgt ltprenomgt
Harry lt/prenomgt ltadressegt ltruegt
Stendhal lt/ruegt ltvillegt Paris
lt/villegt lt/adressegt lt/personnegt
SAX
20
DOM versus SAX
  • DOM utilise SAX pour la construction de larbre
    dun 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
    dobjets métier C ou Java

Interface générée à laide doutils de Data
Binding
Développements manuels
Objets C
Objets Java
Objets Java
Parsing Xerces C
Parsing XDK Java
Binding Java
XML
XML
XML
Mapping
22
Avantages
  • Lactivité 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 linterface (utilisation,
    évolution, )
  • Gain en terme de fiabilité (fin de lutilisation
    de parseurs variés, parfois écrits à la main)
  • Les performances de linterface 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
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
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
J2EE APIs
  • 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
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
VB
C
JScript

C
SOAP XML Toolkits
OLE-DB Fédérateur de BD
ASP.NET
ADO.NET
BCL.NET
Common Language Runtime (CLR)
Windows et COM Services
.NET
30
Les dialogues avec XML
templates
XSP
EJB
Skel.
Stub
BD
Un seul modèle !
Une évolution majeure en marche ...
J2EE et .NET
31
Bilan
  • 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 ?

Java XML
Write a Comment
User Comments (0)
About PowerShow.com