Vous êtes sur la page 1sur 84

Architectures

logicielles avancées
Mohamed Hmiden
Mohamed.hmiden@gmail.com

ISAMM | 3ème année Informatique 1


23/04/21
Multimédia | 2017-2018
Objectifs
L’objectif principal de ce cours est d’introduire aux
étudiants de 3 année informatique multimédia les
concepts fondamentaux d’architecture logicielle et de
se focaliser sur les technologies des applications
réparties et de Web service.

23/04/21 ISAMM | 3ème année Informatique Multimédia | 2017-2018 2


Plan
Chapitre 1: Introduction aux architectures logicielles
Chapitre 2 : Applications réparties
Chapitre 3 : Web Service

ISAMM | 3ème année Informatique


23/04/21 Multimédia | 2017-2018 3
Chapitre 1: Introduction aux architectures logicielles
1. Définitions et description de l’architecture logicielle
 Logiciel
 Architecture logicielle
 Architecte logiciel
 Composant logiciel
2. Diagrammes UML de conception de l’architecture logicielle
 Composant et connecteur
 Diagramme de composant
 Diagramme de déploiement
 Digramme de paquetage

3. Styles architecturaux
 Architecture client/serveur
 Architecture N-tiers
 Architecture basée sur les composants
 Architecture orientée service

ISAMM | 3ème année Informatique Multimédia | 2017-2018 4


23/04/21
1. Définitions et description
d’une architecture logicielle

ISAMM | 3ème année Informatique


23/04/21 Multimédia | 2017-2018 5
I. Définition et description d’AL
 Logiciel : C’est un ensemble de séquences d’instructions interprétables
par une machine et d’un jeu de données nécessaires à ces opérations.
 Séquences d’instructions Programmes
 Données  Fichiers ou Bases de données
 Les étapes de réalisation d’un logiciel

Analyse des besoins


Spécification
Spécification

Cahier de
charges Conception architecturale
Conception
Conception détaillée
Cahier de
charges fonctionnel
Programmation
ISAMM23/04/21
| 3ème année Informatique
Dossier de 6
Multimédia | 2017-2018 conception
 Conception architecturale :  proposer une architecture logicielle.

 Une architecture logicielle : c’est une infrastructure composée de


composants actifs, d’un mécanisme d’interaction entre ces
composants et d’un ensemble de règles qui gouvernent cette
interaction.

 Structurer un logiciel en termes de composants consiste à :


 définir les fonctionnalités associées aux composants
 définir les interfaces entre les composants
 déterminer les dépendances entre les composants
 décomposer les composants en sous-composants

23/04/21 ISAMM | 3ème année Informatique Multimédia | 2017-2018 7


 Relation entre deux composants
Connecteur

Composant A Composant B

Interface
 Un composant est formé par 3 sous-composants

Composant Composant
A1 A2

Composant
A3

ISAMM | 3ème année Informatique


23/04/21 8
Multimédia | 2017-2018
 Pourquoi développer une architecture logicielle ?
Réponse :
 Pour faciliter la compréhension des logiciels.
Pour permettre aux développeurs de travailler sur des modules
indépendants.
Pour préparer les extensions de logiciel.
Pour faciliter la réutilisation.

 L’architecte logiciel : c’est la personne qui propose des solutions


qui sont mises en œuvre par l’équipe de conception et de
développement.

ISAMM | 3ème année Informatique


23/04/21 Multimédia | 2017-2018 9
 Compétences requises pour un architecte logiciels
 Compétences conceptuelle

 Il doit maitriser plusieurs approches et méthodes de conception


telles que : orientée objet UML , Merise
 Dirige l’équipe de développement et s’assure de la cohérence et
de l’intégrité entre les composants.
 Compétences liées au domaine (métier)
 Assiste à la phase de collecte des besoins
 Discute avec l’utilisateur final les règles de gestion de l’entreprise

 Compétences technologique
 Expert dans quelques technologies de développement les plus

utilisés
 Responsable aux sélection de Framework, plateforme, SGBD, ….
ISAMM | 3ème année Informatique
23/04/21 Multimédia | 2017-2018 10
II. Diagrammes UML de la
conception Logicielle

ISAMM | 3ème année Informatique


23/04/21 Multimédia | 2017-2018 11
II. Conception UML d’une architecture
logicielle
 Les vues structurelles d’une architecture logicielle sont :
 Vue logique
 Vue d’implémentation
 Vue de déploiement

ISAMM | 3ème année Informatique


23/04/21 Multimédia | 2017-2018 12
 Diagramme de paquetage
 Le diagramme de paquetages est un diagramme structurel (statique)
d’UML qui représente les paquetages (ou espaces de noms)
composant un système, ainsi que les relations qui lient ces
différents paquetage.

 Les éléments du paquetage peuvent être représentés :


 À l’intérieur  À l’extérieur

ISAMM | 3ème année Informatique


23/04/21 Multimédia | 2017-2018 13
 Dépendance entre paquetages
 De type « Import »

 De type « Access »

 De type « Merge »

ISAMM | 3ème année Informatique


23/04/21 Multimédia | 2017-2018 14
 Diagramme de composants
 Le diagramme de composant décrit le système modélisé sous
forme de composants réutilisables et met en évidence leurs
relations de dépendance.

 Interface d’un composant : les composants interagissent entre eux


au travers les interfaces fournies et celles requises.
 interface fournie : services offerts par le composants
 interface requise : éléments nécessaires pour offrir des services.

23/04/21 ISAMM | 3ème année Informatique


Multimédia | 2017-2018 15
 Relation entre composants
 Relation d’assemblage

 Relation de dépendance

ISAMM | 3ème année Informatique


23/04/21 Multimédia | 2017-2018 16
 Diagramme de déploiement
Un diagramme de déploiement est une vue statique qui sert à
représenter l'utilisation de l'infrastructure physique par le système et
la manière dont les composants du système sont répartis ainsi que
leurs relations entre eux.

23/04/21 ISAMM | 3ème année Informatique 17


Multimédia | 2017-2018
23/04/21
ISAMM | 3ème année Informatique Multimédia | 2017-
2018
18
III. Styles
architecturaux

ISAMM | 23/04/21
3ème année Informatique
Multimédia | 2017-2018 19
 Niveaux d’abstraction

 Une application peut être découpée en trois niveaux d’abstraction


 Niveau présentation
 Niveau logique applicative
 Niveau données

Traitements

globaux
Locaux

Données
Présentations

Logique applicative

ISAMM |23/04/21
3ème année Informatique
20
Multimédia | 2017-2018
 Niveaux d’abstraction()
 La couche de présentation, ou IHM (Interface Homme Machine), permet l'interaction de l'application avec l'utilisateur.
Ce sont : les saisies au clavier, avec la souris et l’affichage des informations à l'écran.
 La logique applicative décrit les traitements à réaliser par l'application pour répondre aux besoins des utilisateurs.
 Traitements locaux: les contrôles effectués au niveau du dialogue avec l'IHM (formulaires, champs, boutons radio…)
 Traitements globaux: les règles de l’application, appelées aussi logique métier (Business Logic)

 L'accès aux données permet la gestion des informations stockées


par l'application. Fonctions classiques d’un SGBD : Définition de
données, Manipulation de données, Sécurité de données et
Gestion de transactions.
ISAMM | 3ème année Informatique
23/04/21 21
Multimédia | 2017-2018
 Architectures logicielles

Le découpage et la répartition des 3 niveaux d’abstraction


permettent de distinguer les architectures suivantes.
 Architecture 1-tier
 Architecture 2-tiers
 Architecture 3-tiers
 Architecture n-tiers.

ISAMM | 3ème année Informatique


23/04/21
Multimédia | 2017-2018 22
 Architecture 1-tier : Mainframe

 Les utilisateurs se connectent aux applications exécutées par le


serveur central (mainframe) à l'aide de terminaux passifs.
 le serveur central prend en charge la gestion des données et des
traitements, y compris l'affichage qui est transmis sur des terminaux
passifs.
 Architecture adoptée durant les année 1970-1980.

ISAMM23/04/21
| 3ème année Informatique Mainframe AS/400
Multimédia | 2017-2018 23
 Architecture 2-tiers: Client/serveur

 Architecture 2-tiers ou C/S de première génération ou C/S de données


 Le client s’occupe de la présentation et la logique applicative
 Le serveur s’occupe de la gestion des données
 Exemple : Application de gestion de facturation sur Windows et avec un
SGBD (oracle) centralisé.
 La gestion des données est prise en charge par un SGBD centralisé,
s'exécutant le plus souvent sur un serveur dédié : c’est serveur de
données
 Le serveur de données est interrogé en utilisant un langage de requête
qui est, le plus souvent, SQL

ISAMM | 3ème année Informatique


23/04/21 Multimédia | 2017-2018 24
 Architecture 3-tiers: Web dynamique

 Les données sont toujours gérées de façon centralisée.

 La présentation est toujours prise en charge par le poste client.

 La logique applicative est prise en charge par un serveur


intermédiaire.

Tier 2 Tier 3
Serveur
Client BD
applicatif

Présentation Logique métier Données

ISAMM | 3ème année Informatique


23/04/21 25
Multimédia | 2017-2018
 Architecture N-tiers: (4 tiers)

 Les différentes couches d’une architecture 4-tiers :


 La couche de présentation contient les différents types de clients,
léger (ASP, JSP, JSF) ou lourd (Applet).
 La couche applicative contient les traitements représentant les
règles du métiers (créer un compte de facturation, calculer un
amortissement ... )
 La couche d'objets métier est représentée par les objets du
domaine, c'est à dire l'ensemble des entités persistantes de
l'application (Facture, Client ... )
 La couche d'accès aux données contient les usines d'objets métier,
c'est à dire les classes chargées de créer des objets métier de
manière totalement transparente, indépendamment de leur mode de
stockage (SGBDR, Objet, Fichiers, Legacy, ...)

ISAMM | 3ème année Informatique


23/04/21
Multimédia | 2017-2018 26
Principales fonctionnalités d’un serveur Web :

 Réceptionner la requête
 Ré-router les requêtes dynamiques
 Rechercher les pages statiques
 Encapsuler les pages dans la réponse
 Émettre la réponse
ISAMM | 3ème année Informatique
23/04/21 Multimédia | 2017-2018 27
Les principales fonctionnalités d’un serveur d’application sont :

 Réceptionner la requête
 Construire la réponse dynamique
 Renvoyer la réponse au serveur Web

ISAMM | 3ème année Informatique


23/04/21 Multimédia | 2017-2018 28
 Les fonctionnalités d’un serveur d’application :
 La production de contenu dynamique
 Le support des plates-formes
 L'ouverture vers l'existant
 Le pooling de connexions
 Le respect des standards
 L'administration
 La reprise sur incident
 La répartition de charges
 La sécurité
 La gestion de contexte

ISAMM | 3ème année Informatique


Multimédia | 2017-2018
23/04/21 29
Chapitre 2 : Les Applications
réparties

ISAMM | 3ème année Informatique


23/04/21 Multimédia | 2017-2018 30
 Définitions
 Système réparti: c’est un ensemble des processus communiquant,
répartis sur réseau de machines le plus souvent hétérogènes, et
coopérant à la résolution d’un problème commun.

 Environnement réparti : c’est un environnement permettant la


constriction des applications réparties.

 Application répartie : c’est une application découpées en plusieurs


unités (composants) où :
 Chaque unité où ensemble d ’unités peut être placée sur une
machine différente.
 Chaque unité peut s’exécuter sur un système différent.
 Chaque unité peut être programmé dans un langage différent.

ISAMM | 3ème année Informatique


23/04/21
Multimédia | 2017-2018 31
 Construction d’une App. Répartie
Les étapes de construction d’une App. Répartie sont :

1.Identifier les éléments fonctionnels de l’application pour le regrouper


au sein d’unité.
2.Estimer les interactions entre les unités.
3.Définir le schéma organisationnel de l’application.

App. Monolithique
App. Répartie
ISAMM | 3ème année Informatique
Multimédia | 2017-2018
23/04/21 32
 Exemples des App. Répartie
 Coordination d’activités
 Système à flots de données (workflow)
 Système è agents

 Communication et partage d’information


 Bibliothèques virtuelles
 Collecticiels : pour le travail coopératif : bibliothèque, musées,
Magasins virtuels sur internet, la presse et le commerce
électronique.

 Application en temps réel


 Contrôle des procédés industriels
 Localisation des mobiles

ISAMM |23/04/21
3ème année Informatique 33
Multimédia | 2017-2018
 Qualités requises des App. Réparties
1. Qualités de service
a. Performance : elle couvre plusieurs aspects essentiels
surtout pour les applications en temps réel. Elle peut être
liée à : la communication telles que :
 Borne sur la latence
 la gigue
 la bande passante.
Elle peut être liée à la vitesse du traitement ou d’accès aux
données.
b. Tolérance aux pannes : nécessité d’identifier les scénarios de
fautes possibles. Ces fautes peuvent être de types :
 Matériel
 Logiciel
 Lié aux système de communication
ISAMM | 3ème année Informatique
23/04/21| 2017-2018
Multimédia
34
c. Sécurité : elle comprend :
 La confidentialité
 L’intégrité
 l’authentification et le contrôle d’accès.

2. Capacité de croissance: c’est le passage d’échelle (scalability)


Le nombre d’objets, d’utilisateurs, d’appareils et de composants
Logiciels tend à s’augmenter.
Les qualités de service des AR ne se dégradent pas avec
l’augmentation de :
 Nombre des éléments constituants une application répartie.
 Nombre d’utilisateurs
 de l’entendue géographique

ISAMM | 3ème année Informatique


23/04/21
Multimédia | 2017-2018 35
3. Capacité d’évolution : les applications réparties doivent s’adapter
aux changements qui peuvent être en termes de :
 besoins fonctionnels
 diversité des systèmes et organes de communication.
Pour s’adapter à ces changements, une application répartie doit avoir un
architecture modulaire basée sur des composants faiblement couplés.
Elle doit être documentée au niveau conceptuel ainsi qu’au niveau
d’implémentation.

ISAMM | 3ème année Informatique


23/04/21 Multimédia | 2017-2018 36
Phases de construction d’une application répartie

Les phases de construction d’une AR sont :


1.Conception de l’architecture de l’application
2.Programmation des composants logiciels
I. Utilisation de mécanismes avec un modèle d’exécution telles
que : Socket, RPC, Rmi ou CORBA.
II. Programmation selon le modèle d’exécution adopté.
3.Configuration des entités pour qu’elles puissent communiquer et
Échanger des données .
4. L’installation et le déploiement
5. Administration
 Surveillance
 Maintenance

ISAMM | 3ème année Informatique


Multimédia | 2017-2018
23/04/21 37
Chapitre 3 : Service
web

ISAMM | 3ème année Informatique


23/04/21 Multimédia | 2017-2018 38
Définition
 Les Web Services sont des services offerts via le web.

 "Un Web Service est une application logicielle identifiée par un URI
(Uniform Resource Identifier), dont les interfaces et les associations
peuvent être définies, décrites et découvertes par des méthodes
XML, et qui peut interagir directement avec d'autres applications en
utilisant des messages XML via les protocoles Internet standards."

 Par exemple, un client demande le prix d’un article en envoyant un


message sur le web. Ce message contient la référence de l’article. Le
Web Service va recevoir la référence, effectuer le traitement du
service et renvoyer le prix au client via un autre message.

ISAMM | 3ème année Informatique


23/04/21 Multimédia | 2017-2018 39
Définitions
 Un Service Web est une « unité logique applicative »
accessible en utilisant les protocoles standard d’Internet.

 Un objet métier qui peut être déployé et combiné sur Internet


avec une faible dépendance vis-à-vis des technologies et des
protocoles.

 Il s'agit donc d'un ensemble de fonctionnalités exposées sur


internet ou sur un intranet, par et pour des applications ou
machines, sans intervention humaine.

ISAMM | 3ème année Informatique


23/04/21
40 Multimédia | 2017-2018
Les services web
 Possibilité d’invoquer une fonction sur un serveur web distant
 Fournit une infrastructure souple pour les systèmes
distribués, basée sur XML
 Exemples d’applications
 Commerce électronique
 Accès à des bases de données distantes

ISAMM | 3ème année Informatique


23/04/21
41 Multimédia | 2017-2018
Chapitre 3 : Les Services web

ISAMM | 3ème année Informatique


23/04/21 Multimédia | 2017-2018 42
Exemple des services web

ISAMM | 3ème année Informatique


23/04/21
43 Multimédia | 2017-2018
L’idée principale
 1. Interroger un annuaire : quel est le fournisseur du service ?
 2. Négocier avec les fournisseurs potentiels
• Nature exacte du service fournis
• Qualité/coût/etc.
 3.Interagir avec le service du fournisseur choisi
• Connaître les modalités d’interaction
• Introduire le service dans ma chaîne de traitements
 4.Eventuellement composer des services
 5.Eventuellement publier mes propres services

ISAMM | 3ème année Informatique


23/04/21
44 Multimédia | 2017-2018
Principe général d’architecture

ISAMM | 3ème année Informatique


23/04/21
45 Multimédia | 2017-2018
Principe général d’architecture
 L’architecture des services web repose essentiellement sur les
technologies suivantes:

ISAMM | 3ème année Informatique


23/04/21
46 Multimédia | 2017-2018
Un service web en action

ISAMM | 3ème année Informatique


23/04/21
47 Multimédia | 2017-2018
Infrastructure technique

 Un nouveau Protocole de communication: SOAP


 Basé sur XML
 Portabilité, Hétérogénéité

 Porté sur des protocoles large échelle existants


 HTTP, SMTP, …

 Paradigme orienté service : WSDL


 Définition de services offerts (en XML)

 Découverte automatique des services (dynamicité) : UDDI


ISAMM | 3ème année Informatique
23/04/21 Multimédia | 2017-2018 48
SOAP

 Protocole d’échange de messages (client / serveur)


 Basé entièrement sur XML
 Standard W3C (Initiative IBM et Microsoft)
 Concepts
 Message = Enveloppe ( Header + Body )
 Extensibilité
 Porté sur HTTP, SMTP, …

ISAMM | 3ème année Informatique


23/04/21 Multimédia | 2017-2018 49
WSDL

 Langage de définition de Web Services


 Basé entièrement sur XML
 Définition de l’interface, de l’URL et du port
du Web Service.
 Utilise le système de typage de XML Schéma

ISAMM | 3ème année Informatique


23/04/21 Multimédia | 2017-2018 50
UDDI
 Référentiel de définitions de Web Service
 Référentiel défini lui-même en WSDL
 Référentiel Public / Privé

ISAMM | 3ème année Informatique


23/04/21 Multimédia | 2017-2018 51
XML

Extensible Markup Langage

ISAMM | 3ème année Informatique


23/04/21 Multimédia | 2017-2018 52
Exemple de document XML
<livre>
<titre> le super livre </titre>
<chapitre>
<numero> 1 </numero>
<titre> titre du chapitre 1 </titre>
<contenu> blabla blabla </contenu>
</chapitre>
<chapitre>

</chapitre>
</livre>

ISAMM | 3ème année Informatique


23/04/21 Multimédia | 2017-2018 53
Principes

 Ensemble non fini de balises


 L’utilisateur peut créer de nouvelles balises
 Définition de grammaires : XML est un Meta-
Langage
 MathML, NewsML, XMI, Doc, Slides, …
 Séparation de la forme et du fond
 Un document XML peut être constitué de deux
entités (le fond et la forme)

ISAMM | 3ème année Informatique


23/04/21 Multimédia | 2017-2018 54
Grammaire
Deux façons de définir une grammaire XML :
 DTD
 Langage de définition de grammaire XML
 Largement utilisé
 Expression faible (type, structure)
 XML Schéma
 Langage XML de définition de grammaire XML
 De + en + utilisé
 Expression puissante (type, structure, héritage)

Un document XML est dit valide lorsqu’il est conforme à une


grammaire,
bien formé lorsqu’il respecte la syntaxe d’un document XML (pas
d’erreurs d’ecriture par exemple)
ISAMM | 3ème année Informatique
23/04/21 Multimédia | 2017-2018 55
Origine et objectifs
 XML est issu de la Gestion de Documents
(GED)
 Séparation du fond et de la forme.
 Forme = présentation à partir de la structure (style)
 Fond = structure + données (contenu)
 Multiples précurseurs dont les plus connues :
 HTML pour la présentation

ISAMM | 3ème année Informatique


23/04/21
56 Multimédia | 2017-2018
XML: Des BD aux Services Web
Titre
Georges Gardarin
Auteur
1. Introduction
Section
Ces dernières années ont vu l'ouverture
Paragraphe des systèmes d'information à l'Internet.
Alors que depuis les années 1970, ces
systèmes se développaient, le choc
Internet …
Ainsi, on a vu apparaître une myriade de
technologies nouvelles attrayantes mais
Paragraphe peu structurantes voir perturbantes.
Certaines n'ont guère survécues …
L'urbanisation passe avant tout par la
standardisation des échanges : il faut
s'appuyer sur des standards ouverts,
Paragraphe solides, lisibles, sécurisés, capable
d'assurer l'interopérabilité avec l'Internet et
les systèmes d'information …
2. La société ProXML
Section
ISAMM | 3ème année Informatique
23/04/21
57 Multimédia | 2017-2018
XML : objectifs
 XML= un nouveau langage d'échange basé sur
le balisage
 XML= plus ouvert que HTML  possibilité de
définition de nouvelles balises
 XML = développé par XML Working Group dirigé
par le W3C (depuis 1996)
 XML 1.0 = recommandation officielle du W3C
depuis le 10 février 1998

ISAMM | 3ème année Informatique


23/04/21
58 Multimédia | 2017-2018
les 10 objectifs de
conception:
 XML doit pouvoir être utilisé sans difficulté sur Internet
 XML doit soutenir une grande variété d'applications
 XML doit être compatible avec HTML, XHTML, SGML,
etc.
 Il doit être facile d'écrire des programmes traitant les
documents XML
 Le nombre d'options dans XML doit être réduit au
minimum, idéalement à aucune

ISAMM | 3ème année Informatique


23/04/21
59 Multimédia | 2017-2018
les 10 objectifs de conception
 Les documents XML doivent être lisibles par l'homme et
raisonnablement clairs
 La spécification de XML doit être disponible rapidement
 La conception de XML doit être formelle et concise
 Il doit être facile de créer des documents XML
 La concision dans le balisage de XML est peu
importante

ISAMM | 3ème année Informatique


23/04/21
60 Multimédia | 2017-2018
Forces de XML
 Séparation de la structure et de la présentation
 Moins confus que HTML
 Idéal pour l'échange de données semi-
structurées
 Utilisable entre machines

ISAMM | 3ème année Informatique


23/04/21
61 Multimédia | 2017-2018
XML: définitions de base
 XML est un méta-langage universel pour représenter les
données échangées sur le Web qui permet au développeur
de délivrer du contenu depuis les applications à d'autres
applications ou aux navigateurs
 XML standardise la manière dont l'information est :
 échangée
 présentée
 archivée
 retrouvée
 transformée
 cryptée
 ...
ISAMM | 3ème année Informatique
23/04/21
62 Multimédia | 2017-2018
Exemple document XML

ISAMM | 3ème année Informatique


23/04/21
63 Multimédia | 2017-2018
Structure Arborescente

ISAMM | 3ème année Informatique


23/04/21
64 Multimédia | 2017-2018
XML: contextes d’utilisation
 Un standard d'échange
 Lisible : texte balisé avec marquage
 Clair : séparation du fond et de la forme
 Extensible : supporte les évolutions applicatives
 Sécurisé : pare-feu, encryption, signature
 Développé par le W3C
 Pour le Web (Internet, Intranet)
 S'étend à l'entreprise et ses partenaires
 Supporté par les grands constructeurs
 IBM, Microsoft .net, SUN, BEA, etc.
 Des outils génériques et ouverts

ISAMM | 3ème année Informatique


23/04/21
65 Multimédia | 2017-2018
Définir la structure d’un
fichier XML avec une DTD

ISAMM | 3ème année Informatique


23/04/21 Multimédia | 2017-2018 66
Le DTD
• Le DTD ou Document Type Declaration ou encore
Document Type Definition est l'ensemble des règles et des
propriétés que doit suivre le document XML.

• Ces règles définissent généralement le nom et le contenu de


chaque balise et le contexte dans lequel elles doivent exister.

• Cette formalisation des éléments est particulièrement utile


lorsqu'on utilise de façon récurrente des balises dans un
document XML.

ISAMM | 3ème année Informatique


23/04/21
67 Multimédia | 2017-2018
DTD interne, DTD externe
• On peut inclure son propre DTD au code source du
fichier XML (*.xml). On parlera alors d'un DTD interne.
• DTD externe :DTD dans un autre fichier (*.dtd).

• Par les DTDs externes, plusieurs concepteurs peuvent


se mettre d'accord pour utiliser un DTD commun pour
échanger leurs données.
• DTD interne : document indépendant (standalone)

ISAMM | 3ème année Informatique


23/04/21
68 Multimédia | 2017-2018
Document Valide et bien
formé
 Distinguer un document "bien formé" d'un document
valide.
 Valide : un document qui respecte les règles
spécifiques de son DTD.
 bien formé: un document qui respecte les règles
générales de syntaxe du XML.

ISAMM | 3ème année Informatique


23/04/21
69 Multimédia | 2017-2018
Le DTD interne
 Au début du fichier XML
 Le DTD interne suit la syntaxe suivante :

<!DOCTYPE élément-racine [
déclaration des éléments
]>

ISAMM | 3ème année Informatique


23/04/21
70 Multimédia | 2017-2018
Exemple de DTD interne
<?xml version="1.0" Début du DTD interne avec parent
standalone="yes"?> comme élément de racine.
<!DOCTYPE parent [
<!ELEMENT parent (garçon,fille)> Cet élément racine soit parent
<!ELEMENT garçon (#PCDATA)> contiendra les sous-éléments garcon
<!ELEMENT fille (#PCDATA)> et fille.
]>
<parent> #PCDATA : l'élément garcon contient
<garçon>Loic</garçon> des données exprimées en chiffres ou
<fille>Marine</fille> en lettres. Idem pour l'élément fille.
</parent> Fin du DTD
Racine du document XML.
ISAMM | 3ème année Informatique
23/04/21
71 Multimédia | 2017-2018
Fin du document XML.
Le DTD externe
Le DTD externe suivra la syntaxe suivante :
<!DOCTYPE élément-racine SYSTEM "nom_du_fichier.dtd">
Le même exemple:
Le fichier XML (*.xml) : les données + le nom du fichier de DTD (*.dtd)
<?xml version="1.0" standalone="no"?>
<!DOCTYPE parent SYSTEM "parent.dtd">
<parent>
<garçon>Loic</garçon>
<fille>Marine</fille>
</parent>
Le fichier de DTD externe (ici dans le même répertoire) "parent.dtd"  :
<!ELEMENT parent (garçon,fille)>
<!ELEMENT garçon (#PCDATA)>
<!ELEMENT fille (#PCDATA)>

ISAMM | 3ème année Informatique


23/04/21
72 Multimédia | 2017-2018
Lien avec l’arborescence
<!ELEMENT parent (garçon,fille)>
<!ELEMENT garçon (#PCDATA)>
<!ELEMENT fille (#PCDATA)>

parent

garçon fille

ISAMM | 3ème année Informatique


23/04/21
73 Multimédia | 2017-2018
Déclarer un élément
 Pour pouvoir créer un document XML il est utile dans un premier
temps de définir les éléments pouvant être utilisés dans le DTD.
 Ainsi pour définir un élément on utilisera la syntaxe suivante :
<! ELEMENT Nom_élément (type_ou_règle)>

Type prédéfini Description


L'élément peut contenir des éléments fils (dans
ANY n’importe quel ordre d’une façon infinie), du texte
ou peut être vide

EMPTY L'élément doit obligatoirement être un élément vide

L'élément doit contenir une chaîne de caractères


(#PCDATA) ISAMM | 3ème année Informatique
23/04/21
74 (pas d’éléments
Multimédia | fils)
2017-2018
Quelques exemples
 <!ELEMENT titre (#PCDATA)>
 <titre> Le Rouge et le Noir </titre>

 <!ELEMENT titre EMPTY>


 <titre …. />
 Un élément vide peut posséder un ou plusieurs attributs:
 <img src="photo.jpg" width="100" height="200" />

ISAMM | 3ème année Informatique


23/04/21
75 Multimédia | 2017-2018
Règles sur les éléments
 Il est possible de définir des règles d'utilisation pour chaque
élément, ex : les noms des éléments qu'un élément doit contenir,
des règles sur la présence d’un élément

Opérateur Signification Exemple

L'élément doit être présent au


+ minimum une fois A+
(1 ou plusieurs fois)
L'élément peut être présent
* plusieurs fois (ou aucune) A*
(0 ou plusieurs fois)
L'élément peut être
? optionnellement présent
ISAMM | 3ème année Informatique A?
23/04/21
76 (0 ou 1 fois)
Multimédia | 2017-2018
Règles sur les éléments
 Autoriser un certain nombre de répétitions au niveau d’un élément.

Opérateur Signification Exemple


L'élément A ou l'élément B
| peuvent être présents A|B
(exclusivement)
L'élément A doit être présent et
Virgule , suivi de l'élément B (dans A,B
l’ordre)

Les parenthèses permettent de


regrouper des éléments afin de
() (A,B)+
leur appliquer les autres
opérateurs
ISAMM | 3ème année Informatique
23/04/21
77 Multimédia | 2017-2018
Quelques exemples
 <!ELEMENT livre (titre,auteur+)>
 Un livre doit avoir un titre et un ou plusieurs auteurs.
 <!ELEMENT livre((titre,auteur)|description)>
 Cette déclaration signifie qu’il est possible de saisir
soit la description d’un livre

 soit son titre suivi de son auteur

 <!ELEMENT citation (#PCDATA|auteur)*>


<citation>
<auteur> Shakespeare </auteur> Etre ou ne pas être !
</citation>

ISAMM | 3ème année Informatique


23/04/21
78 Multimédia | 2017-2018
Exemple de DTD
<!ELEMENT personne (nom,prenom, telephone,
email?) >
<!ELEMENT nom (#PCDATA) >
<!ELEMENT prenom (#PCDATA) >
<!ELEMENT telephone (#PCDATA) >
<!ELEMENT email (#PCDATA) >
La racine du document XML est personne, elle contient
obligatoirement les éléments nom, prénom, telephone qui sont
tous des chaînes de caractères (#PCDATA) . La présence de
l’élément email est optionnel.
ISAMM | 3ème année Informatique
23/04/21
79 Multimédia | 2017-2018
XML correspondant
<personne>
<nom>Pillou</nom>
<prenom>Jean-Francois</prenom>
<telephone>555-123456</telephone>
<email>webmaster@commentcamarche.net </email>
</personne>

Ou bien

<personne>
<nom>Pillou</nom>
<prenom>Jeff</prenom>
<telephone>555-542136</telephone>
</personne> ISAMM | 3ème année Informatique
23/04/21
80 Multimédia | 2017-2018
Déclarer des attributs
<! ATTLIST Elément Attribut Type >
Avec Type représente le type de données de l'attribut:
 littéral: il permet d'affecter une chaîne de caractères à un attribut. Pour
déclarer un tel type il faut utiliser le mot clé CDATA
 l'énumération: cela permet de définir une liste de valeurs possibles pour un
attribut donné, afin de limiter le choix de l'utilisateur. La syntaxe de ce type
d'attribut est :
<! ATTLIST Elément Attribut (Valeur1 | Valeur2 | ... ) >
 Pour définir une valeur par défaut il suffit de faire suivre l'énumération par la
valeur désirée entre guillemets :
<! ATTLIST Elément Attribut (Valeur1 | Valeur2 ) "valeur par défaut" >
 atomique: il permet de définir un identifiant unique pour chaque élément
grâce au mot clé ID.

ISAMM | 3ème année Informatique


23/04/21
81 Multimédia | 2017-2018
Exemples
 <!ATTLIST rectangle longueur CDATA "0">
 <!ATTLIST rectangle largeur CDATA "0">
 <!ATTLIST personne situation (célibataire | mariée |
divorcée) "célibataire">

 <!ELEMENT img EMPTY>


 <!ATTLIST img format (jpg| png| gif) "png">

ISAMM | 3ème année Informatique


23/04/21
82 Multimédia | 2017-2018
Nécessité de l'attribut
 Enfin chacun de ces types d'attributs peut être suivi d'un
mot clé particulier permettant de spécifier le niveau de  
nécessité de l'attribut :
 #IMPLIED : l'attribut est optionnel, non obligatoire
 #REQUIRED : l'attribut est obligatoire
 #FIXED "val": l'attribut sera affecté d'une valeur par défaut
s'il n'est pas défini. Il doit être immédiatement suivi de la
valeur entre guillemets
 "val": la valeur par défaut de l’attribut

ISAMM | 3ème année Informatique


23/04/21
83 Multimédia | 2017-2018
Exemple
 <!ATTLIST personne nom CDATA #REQUIRED>
 <!ATTLIST personne age CDATA #IMPLIED>
 <!ATTLIST date année CDATA #FIXED "2004">
 <!ATTLIST personne situation (célibataire|mariée|divorcée)
#IMPLIED>
 <!ATTLIST machine état CDATA "neuf">

 <!ELEMENT elt (elt1,elt2, …)>


 <!ATTLIST elt
attri1 CDATA #IMPLIED
attri2 CDATA #REQUIRED
>
ISAMM | 3ème année Informatique
23/04/21
84 Multimédia | 2017-2018