Vous êtes sur la page 1sur 33

Architectures Orientées services

Architecture Orientée Services 1


Plan du cours

1. XML
2. DTD & Schema XML
3. Architecture orientée services
4. Technologies associées (WSDL SOAP UDDI)
5. REST

Architecture Orientée Services 2


XML

• Introduction
• Objectifs de XML
• Structure d’un document XML
• Syntaxe du langage XML
• Règles d’écriture des documents XML
• Espace de noms : name-space
Introduction
World Wide Web Consortium
 World Wide Web Consortium est abrégé par le sigle W3C.
 W3C est un organisme de standardisation à but non lucratif, fondé en
octobre 1994 chargé de promouvoir la compatibilité des technologies du
World Wide Web.
 Regroupe près de 400 entreprises partenaires.
 Objectifs:
 Accroître le potentiel du Web.
 Développer des protocoles communs.
 Assurer l’inter-opérabilité sur le Web entre les différents systèmes
 Stock d’informations sur les standards et les normes pour développeurs
et utilisateurs.
Architecture Orientée Services 4
Introduction
SGML
 Une norme internationale:
 Standard Generalized Markup Language
 Langage à balises pour représenter des documents structurés.
 Langage servant à préciser la structure d'un document quelconque.
 Réservé aux professionnels de la documentation.

Architecture Orientée Services 5


Introduction
Limites SGML
 Très lourd et complexe pour la mise en œuvre de documents respectant ce
format.
 Liens hypertextes possibles mais complexes
 SGML est inadapté à l'écriture de documents pour internet.

Architecture Orientée Services 6


Introduction
HTML
 Proposé par le W3C comme format de documents sur le Web.
 Langage simple avec des balises standardisées permettant la mise en
forme d’un texte.
 Standard reconnu par tous les navigateurs.
 Langage très populaire sur le Web

Architecture Orientée Services 7


Introduction
Limites de HTML
 Un balisage prédéfini dans la norme (n’autorisant pas la construction de
ses propres balises et donc de ses propres outils).
 Une gestion des liens trop simple (juste vers une autre page ou partie).
 Une dépendance très forte du contenu et de la forme par un jeu de
balisage dédié à la mise en forme, ce qui a pour conséquences:
 Une interopérabilité limitée (échange du contenu très difficile entre
applications)
 Des recherches lourdes et des réponses très nombreuses (pas de
notion sémantique dans la définition des contenus).

Architecture Orientée Services 8


Introduction
Limites de HTML
 Exemple:

 Si on effectue l’affichage du texte dans un navigateur, on obtient le résultat


suivant:

Architecture Orientée Services 9


Introduction
Limites de HTML
 Toutes les balises d’une page HTML sont relatives à sa présentation finale.
 Rien ne permet à un logiciel de connaitre le sens (la sémantique) du
texte.
 Dans l’exemple, il n’est pas simple de savoir que Alain Michard est l’auteur
d’un livre intitulé XML, Langage et Applications, qui est paru en 1993, dont
l’éditeur, Eyrolles, est situé à Paris.

Architecture Orientée Services 10


Objectifs de XML
 L’objectif majeur de XML est d’étendre les fonctionnalités de HTML afin de
faciliter les échanges d’informations.
 Les principales évolutions vis-à-vis de HTML sont:
 la définition libre de nouvelles balises et de nouveaux attributs,
 le support de structure complexe de documents,
 la vérification de la structure d’un document par rapport à une grammaire type définie
dans un document appelé DTD (Document Type Descriptor),
 La séparation entre le contenu (document XML) et la mise en page (feuille de style
CSS ou XSL).

Architecture Orientée Services 11


Objectifs de XML
 XML signifie eXtensible Markup Language
 XML peut être défini comme étant un langage de description d’échanges
de données structurés.
 XML est développé par XML Working Group dirigé par le W3C (depuis
1996)
 XML 1.0 est la recommandation officielle du W3C depuis le 10 février 1998
 Deux concepts fondamentaux:
 Structure, contenu et présentation sont séparés
 Les balises ne sont pas figées

Architecture Orientée Services 12


Objectifs de XML
 Voici ce que donne la même page si elle était codée en XML:

Architecture Orientée Services 13


Objectifs de XML
 Voici ce que donne la même page si elle était codée en XML(suite):

Architecture Orientée Services 14


Objectifs de XML
 Les balises ont un sens et une hiérarchie
 Par exemple: l’élément « author » comprend le prénom (balise « firstname ») et le nom
(balise « lastname ») de l’auteur
 Des informations supplémentaires peuvent être ajoutées sous forme
d’attributs situés à l’intérieur même des balises
 Par exemple les attributs : langue, sujet, n° ISBN

Architecture Orientée Services 15


Structure d’un document XML

Architecture Orientée Services 16


Structure d’un document XML
 Forme arborescente
 Tout document XML comporte une racine
 Chaque élément d’un document XML peut contenir un ou plusieurs éléments.

Architecture Orientée Services 17


Structure d’un document XML
 Tout document XML peut être précédé par un prologue :

 version : Numéro de la version de XML (1.0 ou 1.1)


 encoding : Codage de caractères : ISO-8859-1 ,UTF-8

 On peut indiquer qu’un document est conforme à une DTD (Document


Type Description) (Optionnelle)

Architecture Orientée Services 18


Syntaxe du langage XML
 Les Eléments (balises)
 Un élément constitutif d’un document XML peut être définit comme suit :

Exemple : <pays> Tunisie</pays>


 Un élément peut être vide
Exemple : <fleur source = " rose.gif "/>
 Contrairement à HTML, dans XML la balise de fermeture est obligatoire.
 Les commentaires
<!-- Ceci est un commentaire -- >

Architecture Orientée Services 19


Syntaxe du langage XML
 Les attributs
 Associer des informations aux éléments.

 Exemple : <produit nom= " DVD" prix= " 500" />


 l’ordre des attributs n’est pas important

 La valeur de l’attribut doit obligatoirement être entre " " ou bien entre ‘
‘.
 il ne peut pas y avoir deux attributs ayant le même nom dans un
élément.
 Exemple :
 <balise att1=’a’ att2=’b’> est équivalent à <balise att2=’b’ att1=’a’>

 <balise att=a> n’est pas bien formé: pas d’apostrophe

Architecture Orientée Services 20


Syntaxe du langage XML
 Choix entre éléments et attributs
 Ce qui s’écrit avec attribut peut également l’être en s’appuyant
uniquement sur des éléments
 Exemple :
 Cas avec attributs: <produit nom= " DVD" prix= " 500" />

 Cas sans attributs:

<produit>
<nom> DVD </nom>
<prix> 500 </prix>
</produit>

Architecture Orientée Services 21


Syntaxe du langage XML
 Choix entre éléments et attributs
 Attention: l’inverse est faux
 Exemple: cas avec éléments
<catalgue>
<produit> …
</produit>
<produit> …
</produit>
</catalogue>
 Changer des éléments par des attributs nécessite utiliser une
convention de nommage complexe des attributs (avec une numérotation
pour chaque produit…)
 Problème: perdre l’intérêt de XML qui sert à structurer les données.

Architecture Orientée Services 22


Syntaxe du langage XML
 Choix entre éléments et attributs
 Utiliser un attribut si:
 une valeur a peu de chance pour évoluer vers une structure
complexe.
 une valeur n’est pas répétée.

 L’élément est plus ouvert et garantit le plus facilement une évolution.

Architecture Orientée Services 23


Syntaxe du langage XML
 Entités prédéfinies
 Exemple :
<calcul>
if ( a<b et b>c ) ...
</calcul>
 Problème: <b et b> n’est pas une balise mais fait partie des données
liées à l’élément calcul.
 Voici la liste des entités prédéfinies :
 &lt; équivalent de < (less than)
 &gt; équivalent de > (greater than)
 &amp; équivalent de & (ampersand)
 &quot; équivalent de " (quote)
 &apos; équivalent de ' (apostrophe)

Architecture Orientée Services 24


Règles d’écriture des documents XML
 Document valide syntaxiquement
 Un document XML doit commencer par une racine qui doit être unique.
La balise de cet élément racine se ferme à la fin du document.

 Lesbalises d’ouverture et de fermeture des éléments fils doivent être


comprises entre les balises d’ouverture et de fermeture des parents.

Architecture Orientée Services 25


Règles d’écriture des documents XML

 Il
faut respecter la casse des balises : xml fait la différence entre les
majuscules et les minuscules
<auteur> # <Auteur>

 Document conforme à sa DTD


 DTD : Document Type Definition
 Toutes les balises utilisées sont définies dans la DTD
 Elles sont utilisées dans l'ordre indiqué dans la DTD

Architecture Orientée Services 26


Espace de noms : name-space
Problème: Exemple 1

27
Espace de noms : name-space
Problème: Exemple 2
<employe> <departement>
<id>E0000001</id> <id>D001</id>
<nom>Smith</nom> <nom>Marketing</nom>
<prenom>John </prenom> </departement>
</employe>

Fusion des 2 documents

<entreprise>
<departement>
<id>D001</id>
<nom>Marketing</nom> Confusion sur le
<employe>
sens des éléments
<id>E0000001</id>
<nom>Smith</nom> id et nom
<prenom>John </prenom>
</employe>
</departement>
</entreprise>
Architecture Orientée Services 28
Espace de noms : name-space
Utilisation des espaces de noms
 Objectif: Distinguer les éléments et les attributs de différents documents
XML qui ont le même nom.
 L’espace de nom par défaut
 La déclaration de l'espace de noms se fait au moyen de l'attribut xmlns.
 La valeur associée à xmlns sera une URL garantissant l’unicité de
l’espace de noms.
<element xmlns="URL">
 Un espace de nom par défaut ne concerne que les éléments. Les
attributs n’y appartiennent pas.
 L’espace de noms par défaut s’applique à l’élément où se situe sa
déclaration et à tout son contenu.

Architecture Orientée Services 29


Espace de noms : name-space
Utilisation des espaces de noms
 L’espace de nom par défaut
 Exemple:
<departement xmlns="http://departement.com">
<secteur>
<id>D001</id>
<nom>Marketing</nom>
</secteur>
</departement>

Les éléments departement, secteur, id et nom sont dans l’espace de nom


http://departement.com

Architecture Orientée Services 30


Espace de noms : name-space
Utilisation des espaces de noms
 L’espace de nom par défaut
 On peut changer l’espace de noms par défaut même dans les éléments
enfants. Dans ce cas une règle de priorité est appliquée.
 Attention: Les espaces de noms ne sont pas imbriqués, on ne peut
appliquer qu’un espace de noms à la fois
 Exemple: <departement xmlns="http://departement.com">
<secteur xmlns="http://secteur.com" >
<id>D001</id>
<nom>Marketing</nom>
</secteur>
</departement>

L’élément département est dans l’espace de nom http://departement.com Les éléments


secteur, id et nom sont dans l’espace de nom http://secteur.com
31
Espace de noms : name-space
Utilisation des espaces de noms
 L’espace de nom explicite
 Un préfixe est une sorte de raccourci vers l’URL de l’espace de nom.
 Le préfixe est une chaîne utilisée pour référencer l’espace de nom dans
un fichier XML.
 Il s’agit d’ajouter en tête de l’élément, de l’attribut ou d’une valeur
d’attribut, le préfixe suivi de :
employe
URL: http://employe.com id
Préfixe: emp nom

URL: http://departement.com departement


Préfixe: dep id
nom
32
Espace de noms : name-space
 Déclaration des espaces de noms

<emp:employe xmlns:emp="http://emloye.com"> <dep:departement xmlns:dep="http://departement.com">


<emp:id>E0000001</emp:id> <dep:id>D001</dep:id>
<emp:nom>Smith</emp:nom> <dep:nom>Marketing</dep:nom>
<emp:prenom>John </emp:prenom> </dep:departement>
</emp:employe>

Fusion des 2 documents

<entreprise xmlns:dep="http://departement.com"
xmlns:emp="http://emloye.com" >
<dep:departement>
<dep:id>D001</dep:id>
<dep:nom>Marketing</dep:nom>
<emp:employe>
<emp:id>E0000001</emp:id>
<emp:nom>Smith</emp:nom>
<emp:prenom>John </emp:prenom>
</emp:employe>
</dep:departement>
</entreprise>

Architecture Orientée Services 33

Vous aimerez peut-être aussi