Architectures logicielles avances Mohamed Hmiden Mohamed hmidengmail com

  • Slides: 84
Download presentation
Architectures logicielles avancées Mohamed Hmiden Mohamed. hmiden@gmail. com 11/6/2020 ISAMM | 3ème année Informatique

Architectures logicielles avancées Mohamed Hmiden Mohamed. hmiden@gmail. com 11/6/2020 ISAMM | 3ème année Informatique Multimédia | 2017 -2018 1

Objectifs L’objectif principal de ce cours est d’introduire aux étudiants de 3 année informatique

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. 11/6/2020 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

Plan Chapitre 1: Introduction aux architectures logicielles Chapitre 2 : Applications réparties Chapitre 3 : Web Service 11/6/2020 ISAMM | 3ème année Informatique Multimédia | 2017 -2018 3

Chapitre 1: Introduction aux architectures logicielles Définitions et description de l’architecture logicielle 1. Logiciel

Chapitre 1: Introduction aux architectures logicielles Définitions et description de l’architecture logicielle 1. Logiciel Architecture logicielle Architecte logiciel Composant logiciel Diagrammes UML de conception de l’architecture logicielle 2. Composant et connecteur Diagramme de composant Diagramme de déploiement Digramme de paquetage 3. Styles architecturaux 11/6/2020 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

1. Définitions et description d’une architecture logicielle 11/6/2020 ISAMM | 3ème année Informatique Multimédia

1. Définitions et description d’une architecture logicielle 11/6/2020 ISAMM | 3ème année Informatique Multimédia | 2017 -2018 5

I. Définition et description d’AL n Logiciel : C’est un ensemble de séquences d’instructions

I. Définition et description d’AL n 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 n Les étapes de réalisation d’un logiciel Analyse des besoins Spécification Cahier de charges Conception architecturale Conception détaillée Cahier de charges fonctionnel ISAMM | 3ème année Informatique 11/6/2020 Multimédia | 2017 -2018 Dossier de conception Programmation 6

q Conception architecturale : proposer une architecture logicielle. q Une architecture logicielle : c’est

q Conception architecturale : proposer une architecture logicielle. q 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. q 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 11/6/2020 ISAMM | 3ème année Informatique Multimédia | 2017 -2018 7

q Relation entre deux composants Connecteur Composant B Composant A Interface q Un composant

q Relation entre deux composants Connecteur Composant B Composant A Interface q Un composant est formé par 3 sous-composants Composant A 1 Composant A 2 Composant A 3 ISAMM | 3ème année Informatique 11/6/2020 Multimédia | 2017 -2018 8

q Pourquoi développer une architecture logicielle ? Réponse : ü Pour faciliter la compréhension

q 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. q 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. 11/6/2020 ISAMM | 3ème année Informatique Multimédia | 2017 -2018 9

q Compétences requises pour un architecte logiciels v Compétences conceptuelle n Il doit maitriser

q Compétences requises pour un architecte logiciels v Compétences conceptuelle n Il doit maitriser plusieurs approches et méthodes de conception telles que : orientée objet UML , Merise n Dirige l’équipe de développement et s’assure de la cohérence et de l’intégrité entre les composants. v Compétences liées au domaine (métier) q Assiste à la phase de collecte des besoins q Discute avec l’utilisateur final les règles de gestion de l’entreprise v Compétences technologique n Expert dans quelques technologies de développement les plus utilisés n Responsable aux sélection de Framework, plateforme, SGBD, …. 11/6/2020 ISAMM | 3ème année Informatique Multimédia | 2017 -2018 10

II. Diagrammes UML de la conception Logicielle 11/6/2020 ISAMM | 3ème année Informatique Multimédia

II. Diagrammes UML de la conception Logicielle 11/6/2020 ISAMM | 3ème année Informatique Multimédia | 2017 -2018 11

II. Conception UML d’une architecture logicielle q Les vues structurelles d’une architecture logicielle sont

II. Conception UML d’une architecture logicielle q Les vues structurelles d’une architecture logicielle sont : v Vue logique v Vue d’implémentation v Vue de déploiement 11/6/2020 ISAMM | 3ème année Informatique Multimédia | 2017 -2018 12

q Diagramme de paquetage n Le diagramme de paquetages est un diagramme structurel (statique)

q Diagramme de paquetage n 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. q. Les éléments du paquetage peuvent être représentés : v À l’intérieur 11/6/2020 v À l’extérieur ISAMM | 3ème année Informatique Multimédia | 2017 -2018 13

q Dépendance entre paquetages v. De type « Import » v. De type «

q Dépendance entre paquetages v. De type « Import » v. De type « Access » v. De type « Merge » 11/6/2020 ISAMM | 3ème année Informatique Multimédia | 2017 -2018 14

q Diagramme de composants q Le diagramme de composant décrit le système modélisé sous

q Diagramme de composants q 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. q. Interface d’un composant : les composants interagissent entre eux au travers les interfaces fournies et celles requises. v interface fournie : services offerts par le composants v interface requise : éléments nécessaires pour offrir des services. 11/6/2020 ISAMM | 3ème année Informatique Multimédia | 2017 -2018 15

q Relation entre composants q Relation d’assemblage q Relation de dépendance 11/6/2020 ISAMM |

q Relation entre composants q Relation d’assemblage q Relation de dépendance 11/6/2020 ISAMM | 3ème année Informatique Multimédia | 2017 -2018 16

q Diagramme de déploiement Un diagramme de déploiement est une vue statique qui sert

q 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. 11/6/2020 ISAMM | 3ème année Informatique Multimédia | 2017 -2018 17

ISAMM | 3ème année Informatique Multimédia | 2017 11/6/2020 -2018 18

ISAMM | 3ème année Informatique Multimédia | 2017 11/6/2020 -2018 18

III. Styles architecturaux ISAMM | 3ème année Informatique Multimédia | 11/6/2020 2017 -2018 19

III. Styles architecturaux ISAMM | 3ème année Informatique Multimédia | 11/6/2020 2017 -2018 19

q Niveaux d’abstraction q. Une application peut être découpée en trois niveaux d’abstraction v

q Niveaux d’abstraction q. Une application peut être découpée en trois niveaux d’abstraction v Niveau présentation v Niveau logique applicative v Niveau données globaux Présentations Locaux Traitements Données Logique applicative ISAMM | 3ème année Informatique Multimédia | 11/6/2020 2017 -2018 20

q Niveaux d’abstraction() q q La couche de présentation, ou IHM (Interface Homme Machine),

q Niveaux d’abstraction() q q 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. q Traitements locaux: les contrôles effectués au niveau du dialogue avec l'IHM (formulaires, champs, boutons radio…) q Traitements globaux: les règles de l’application, appelées aussi logique métier (Business Logic) q 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 Multimédia | 11/6/2020 2017 -2018 21

q Architectures logicielles Le découpage et la répartition des 3 niveaux d’abstraction permettent de

q Architectures logicielles Le découpage et la répartition des 3 niveaux d’abstraction permettent de distinguer les architectures suivantes. q Architecture 1 -tier q Architecture 2 -tiers q Architecture 3 -tiers q Architecture n-tiers. ISAMM | 3ème année Informatique Multimédia | 2017 -2018 11/6/2020 22

q Architecture 1 -tier : Mainframe q Les utilisateurs se connectent aux applications exécutées

q Architecture 1 -tier : Mainframe q Les utilisateurs se connectent aux applications exécutées par le serveur central (mainframe) à l'aide de terminaux passifs. q 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. q Architecture adoptée durant les année 1970 -1980. ISAMM | 3ème année Informatique 11/6/2020 Multimédia | 2017 -2018 Mainframe AS/400 23

q Architecture 2 -tiers: Client/serveur n n Architecture 2 -tiers ou C/S de première

q Architecture 2 -tiers: Client/serveur n n Architecture 2 -tiers ou C/S de première génération ou C/S de données v Le client s’occupe de la présentation et la logique applicative v Le serveur s’occupe de la gestion des données Exemple : Application de gestion de facturation sur Windows et avec un SGBD (oracle) centralisé. v 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 v Le serveur de données est interrogé en utilisant un langage de requête qui est, le plus souvent, SQL 11/6/2020 ISAMM | 3ème année Informatique Multimédia | 2017 -2018 24

q Architecture 3 -tiers: Web dynamique q Les données sont toujours gérées de façon

q Architecture 3 -tiers: Web dynamique q Les données sont toujours gérées de façon centralisée. q La présentation est toujours prise en charge par le poste client. q La logique applicative est prise en charge par un serveur intermédiaire. Tier 2 Client Présentation ISAMM | 3ème année Informatique 11/6/2020 Multimédia | 2017 -2018 Serveur applicatif Logique métier Tier 3 BD Données 25

q Architecture N-tiers: (4 tiers) n Les différentes couches d’une architecture 4 -tiers :

q Architecture N-tiers: (4 tiers) n Les différentes couches d’une architecture 4 -tiers : ¨ La couche de présentation contient les différents types de clients, léger (ASP, 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 11/6/2020 Multimédia | 2017 -2018 26

Principales fonctionnalités d’un serveur Web : q Réceptionner la requête q Ré-router les requêtes

Principales fonctionnalités d’un serveur Web : q Réceptionner la requête q Ré-router les requêtes dynamiques q Recher les pages statiques q Encapsuler les pages dans la réponse q Émettre la réponse. ISAMM | 3ème année Informatique 11/6/2020 Multimédia | 2017 -2018 27

Les principales fonctionnalités d’un serveur d’application sont : q Réceptionner la requête q Construire

Les principales fonctionnalités d’un serveur d’application sont : q Réceptionner la requête q Construire la réponse dynamique q Renvoyer la réponse au serveur Web 11/6/2020 ISAMM | 3ème année Informatique Multimédia | 2017 -2018 28

n Les fonctionnalités d’un serveur d’application : ¨ La production de contenu dynamique ¨

n 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 11/6/2020 29

Chapitre 2 : Les Applications réparties 11/6/2020 ISAMM | 3ème année Informatique Multimédia |

Chapitre 2 : Les Applications réparties 11/6/2020 ISAMM | 3ème année Informatique Multimédia | 2017 -2018 30

q Définitions v Système réparti: c’est un ensemble des processus communiquant, répartis sur réseau

q Définitions v 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. v Environnement réparti : c’est un environnement permettant la constriction des applications réparties. v 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 11/6/2020 Multimédia | 2017 -2018 31

q Construction d’une App. Répartie Les étapes de construction d’une App. Répartie sont :

q 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 ISAMM | 3ème année Informatique Multimédia | 2017 -2018 11/6/2020 App. Répartie 32

q Exemples des App. Répartie q. Coordination d’activités Système à flots de données (workflow)

q Exemples des App. Répartie q. Coordination d’activités Système à flots de données (workflow) Système è agents q 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. q Application en temps réel Contrôle des procédés industriels Localisation des mobiles ISAMM | 3ème année Informatique Multimédia | 11/6/2020 2017 -2018 33

q Qualités requises des App. Réparties 1. Qualités de service a. Performance : elle

q 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 : v Borne sur la latence v la gigue v 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 : v Matériel v Logiciel v Lié aux système de communication ISAMM | 3ème année Informatique Multimédia | 2017 11/6/2020 -2018 34

c. Sécurité : elle comprend : v La confidentialité v L’intégrité v l’authentification et

c. Sécurité : elle comprend : v La confidentialité v L’intégrité v 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 11/6/2020 Multimédia | 2017 -2018 35

3. Capacité d’évolution : les applications réparties doivent s’adapter aux changements qui peuvent être

3. Capacité d’évolution : les applications réparties doivent s’adapter aux changements qui peuvent être en termes de : v besoins fonctionnels v diversité des systèmes et organes de communication. Pour s’adapter à ces changements, une application répartie doit avoir une 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. 11/6/2020 ISAMM | 3ème année Informatique Multimédia | 2017 -2018 36

q. Phases de construction d’une application répartie Les phases de construction d’une AR sont

q. 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 11/6/2020 37

Chapitre 3 : Service web 11/6/2020 ISAMM | 3ème année Informatique Multimédia | 2017

Chapitre 3 : Service web 11/6/2020 ISAMM | 3ème année Informatique Multimédia | 2017 -2018 38

Définition n Les Web Services sont des services offerts via le web. n "Un

Définition n Les Web Services sont des services offerts via le web. n "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. " n 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. 11/6/2020 ISAMM | 3ème année Informatique Multimédia | 2017 -2018 39

Définitions n Un Service Web est une « unité logique applicative » accessible en

Définitions n Un Service Web est une « unité logique applicative » accessible en utilisant les protocoles standard d’Internet. n 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. n 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. 11/6/2020 40 ISAMM | 3ème année Informatique Multimédia | 2017 -2018

Les services web n n n Possibilité d’invoquer une fonction sur un serveur web

Les services web n n n 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 11/6/2020 41 ISAMM | 3ème année Informatique Multimédia | 2017 -2018

Chapitre 3 : Les Services web 11/6/2020 ISAMM | 3ème année Informatique Multimédia |

Chapitre 3 : Les Services web 11/6/2020 ISAMM | 3ème année Informatique Multimédia | 2017 -2018 42

Exemple des services web 11/6/2020 43 ISAMM | 3ème année Informatique Multimédia | 2017

Exemple des services web 11/6/2020 43 ISAMM | 3ème année Informatique Multimédia | 2017 -2018

L’idée principale n n n 1. Interroger un annuaire : quel est le fournisseur

L’idée principale n n n 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 11/6/2020 44 ISAMM | 3ème année Informatique Multimédia | 2017 -2018

Principe général d’architecture 11/6/2020 45 ISAMM | 3ème année Informatique Multimédia | 2017 -2018

Principe général d’architecture 11/6/2020 45 ISAMM | 3ème année Informatique Multimédia | 2017 -2018

Principe général d’architecture n L’architecture des services web repose essentiellement sur les technologies suivantes:

Principe général d’architecture n L’architecture des services web repose essentiellement sur les technologies suivantes: 11/6/2020 46 ISAMM | 3ème année Informatique Multimédia | 2017 -2018

Un service web en action 11/6/2020 47 ISAMM | 3ème année Informatique Multimédia |

Un service web en action 11/6/2020 47 ISAMM | 3ème année Informatique Multimédia | 2017 -2018

Infrastructure technique n Un nouveau Protocole de communication: SOAP ¨ Basé sur XML n

Infrastructure technique n Un nouveau Protocole de communication: SOAP ¨ Basé sur XML n Portabilité, Hétérogénéité ¨ Porté sur des protocoles large échelle existants n HTTP, SMTP, … n Paradigme orienté service : WSDL ¨ Définition de services offerts (en XML) n Découverte automatique des services (dynamicité) : UDDI 11/6/2020 ISAMM | 3ème année Informatique Multimédia | 2017 -2018 48

SOAP n n Protocole d’échange de messages (client / serveur) Basé entièrement sur XML

SOAP n n Protocole d’échange de messages (client / serveur) Basé entièrement sur XML Standard W 3 C (Initiative IBM et Microsoft) Concepts ¨ Message = Enveloppe ( Header + Body ) n Extensibilité ¨ Porté sur HTTP, SMTP, … 11/6/2020 ISAMM | 3ème année Informatique Multimédia | 2017 -2018 49

WSDL Langage de définition de Web Services n Basé entièrement sur XML n Définition

WSDL Langage de définition de Web Services n Basé entièrement sur XML n Définition de l’interface, de l’URL et du port du Web Service. n Utilise le système de typage de XML Schéma n 11/6/2020 ISAMM | 3ème année Informatique Multimédia | 2017 -2018 50

UDDI Référentiel de définitions de Web Service n Référentiel défini lui-même en WSDL n

UDDI Référentiel de définitions de Web Service n Référentiel défini lui-même en WSDL n Référentiel Public / Privé n 11/6/2020 ISAMM | 3ème année Informatique Multimédia | 2017 -2018 51

XML Extensible Markup Langage 11/6/2020 ISAMM | 3ème année Informatique Multimédia | 2017 -2018

XML Extensible Markup Langage 11/6/2020 ISAMM | 3ème année Informatique Multimédia | 2017 -2018 52

Exemple de document XML <livre> <titre> le super livre </titre> <chapitre> <numero> 1 </numero>

Exemple de document XML <livre> <titre> le super livre </titre> <chapitre> <numero> 1 </numero> <titre> titre du chapitre 1 </titre> <contenu> blabla </contenu> </chapitre> <chapitre> … </chapitre> </livre> 11/6/2020 ISAMM | 3ème année Informatique Multimédia | 2017 -2018 53

Principes n Ensemble non fini de balises ¨ L’utilisateur peut créer de nouvelles balises

Principes n Ensemble non fini de balises ¨ L’utilisateur peut créer de nouvelles balises n Définition de grammaires : XML est un Meta-Langage ¨ Math. ML, News. ML, XMI, Doc, Slides, … n Séparation de la forme et du fond ¨ Un document XML peut être constitué de deux entités (le fond et la forme) 11/6/2020 ISAMM | 3ème année Informatique Multimédia | 2017 -2018 54

Grammaire Deux façons de définir une grammaire XML : n DTD Langage de définition

Grammaire Deux façons de définir une grammaire XML : n DTD Langage de définition de grammaire XML ¨ Largement utilisé ¨ Expression faible (type, structure) ¨ n 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) 11/6/2020 ISAMM | 3ème année Informatique Multimédia | 2017 -2018 55

Origine et objectifs XML est issu de la Gestion de Documents (GED) n Séparation

Origine et objectifs XML est issu de la Gestion de Documents (GED) n Séparation du fond et de la forme. n ¨ Forme = présentation à partir de la structure (style) ¨ Fond = structure + données (contenu) n Multiples précurseurs dont les plus connues : ISAMM | 3ème année Informatique ¨ HTML pour la présentation Multimédia | 2017 -2018 11/6/2020 56

1. Introduction Paragraphe Ainsi, on a vu apparaître une myriade de technologies nouvelles attrayantes

1. Introduction Paragraphe Ainsi, on a vu apparaître une myriade de technologies nouvelles attrayantes mais peu structurantes voir perturbantes. Certaines n'ont guère survécues … Paragraphe Section 11/6/2020 57 XML: Des BD aux Services Web Titre Auteur Section Paragraphe Georges Gardarin Ces dernières années ont vu l'ouverture des systèmes d'information à l'Internet. Alors que depuis les années 1970, ces systèmes se développaient, le choc Internet … L'urbanisation passe avant tout par la standardisation des échanges : il faut s'appuyer sur des standards ouverts, solides, lisibles, sécurisés, capable d'assurer l'interopérabilité avec l'Internet et les systèmes d'information … 2. La société Pro. XML ISAMM | 3ème année Informatique Multimédia | 2017 -2018

XML : objectifs n n XML= un nouveau langage d'échange basé sur le balisage

XML : objectifs n n 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 W 3 C (depuis 1996) XML 1. 0 = recommandation officielle du W 3 C depuis le 10 février 1998 11/6/2020 58 ISAMM | 3ème année Informatique Multimédia | 2017 -2018

les 10 objectifs de conception: n n n XML doit pouvoir être utilisé sans

les 10 objectifs de conception: n n n 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 11/6/2020 59 ISAMM | 3ème année Informatique Multimédia | 2017 -2018

les 10 objectifs de conception n n Les documents XML doivent être lisibles par

les 10 objectifs de conception n n 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 11/6/2020 60 ISAMM | 3ème année Informatique Multimédia | 2017 -2018

Forces de XML n n Séparation de la structure et de la présentation Moins

Forces de XML n n 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 11/6/2020 61 ISAMM | 3ème année Informatique Multimédia | 2017 -2018

XML: définitions de base n n XML est un méta-langage universel pour représenter les

XML: définitions de base n n 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. . . 11/6/2020 62 ISAMM | 3ème année Informatique Multimédia | 2017 -2018

Exemple document XML 11/6/2020 63 ISAMM | 3ème année Informatique Multimédia | 2017 -2018

Exemple document XML 11/6/2020 63 ISAMM | 3ème année Informatique Multimédia | 2017 -2018

Structure Arborescente 11/6/2020 64 ISAMM | 3ème année Informatique Multimédia | 2017 -2018

Structure Arborescente 11/6/2020 64 ISAMM | 3ème année Informatique Multimédia | 2017 -2018

XML: contextes d’utilisation Un standard d'échange Lisible : texte balisé avec marquage Clair :

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 W 3 C 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 11/6/2020 65 ISAMM | 3ème année Informatique Multimédia | 2017 -2018

Définir la structure d’un fichier XML avec une DTD 11/6/2020 ISAMM | 3ème année

Définir la structure d’un fichier XML avec une DTD 11/6/2020 ISAMM | 3ème année Informatique Multimédia | 2017 -2018 66

Le DTD • Le DTD ou Document Type Declaration ou encore Document Type Definition

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. 11/6/2020 67 ISAMM | 3ème année Informatique Multimédia | 2017 -2018

DTD interne, DTD externe • • On peut inclure son propre DTD au code

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) 11/6/2020 68 ISAMM | 3ème année Informatique Multimédia | 2017 -2018

Document Valide et bien formé n n n Distinguer un document "bien formé" d'un

Document Valide et bien formé n n n 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. 11/6/2020 69 ISAMM | 3ème année Informatique Multimédia | 2017 -2018

Le DTD interne Au début du fichier XML n Le DTD interne suit la

Le DTD interne Au début du fichier XML n Le DTD interne suit la syntaxe suivante : <!DOCTYPE élément-racine [ déclaration des éléments ]> n 11/6/2020 70 ISAMM | 3ème année Informatique Multimédia | 2017 -2018

Exemple de DTD interne Début du DTD interne avec parent <? xml version="1. 0"

Exemple de DTD interne Début du DTD interne avec parent <? xml version="1. 0" comme élément de racine. standalone="yes"? > <!DOCTYPE parent [ <!ELEMENT parent (garçon, fille)> Cet élément racine soit parent contiendra les sous-éléments garcon <!ELEMENT garçon (#PCDATA)> et fille. <!ELEMENT fille (#PCDATA)> ]> <parent> #PCDATA : l'élément garcon contient des données exprimées en chiffres ou <garçon>Loic</garçon> en lettres. Idem pour l'élément fille. <fille>Marine</fille> </parent> Fin du DTD Racine du document XML. 11/6/2020 71 ISAMM | 3ème année Informatique Multimédia | 2017 -2018 Fin du document XML.

Le DTD externe suivra la syntaxe suivante : <!DOCTYPE élément-racine SYSTEM "nom_du_fichier. dtd"> Le

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)> 11/6/2020 72 ISAMM | 3ème année Informatique Multimédia | 2017 -2018

Lien avec l’arborescence <!ELEMENT parent (garçon, fille)> <!ELEMENT garçon (#PCDATA)> <!ELEMENT fille (#PCDATA)> parent

Lien avec l’arborescence <!ELEMENT parent (garçon, fille)> <!ELEMENT garçon (#PCDATA)> <!ELEMENT fille (#PCDATA)> parent garçon 11/6/2020 73 fille ISAMM | 3ème année Informatique Multimédia | 2017 -2018

Déclarer un élément n n Pour pouvoir créer un document XML il est utile

Déclarer un élément n n 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 ANY L'élément peut contenir des éléments fils (dans 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 (#PCDATA) L'élément doit contenir une chaîne de caractères ISAMM | 3ème année Informatique (pas d’éléments fils) Multimédia | 2017 -2018 11/6/2020 74

Quelques exemples n <!ELEMENT titre (#PCDATA)> ¨ n <!ELEMENT titre EMPTY> ¨ n <titre>

Quelques exemples n <!ELEMENT titre (#PCDATA)> ¨ n <!ELEMENT titre EMPTY> ¨ n <titre> Le Rouge et le Noir </titre> <titre …. /> Un élément vide peut posséder un ou plusieurs attributs: ¨ <img src="photo. jpg" width="100" height="200" /> 11/6/2020 75 ISAMM | 3ème année Informatique Multimédia | 2017 -2018

Règles sur les éléments Il est possible de définir des règles d'utilisation pour chaque

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 n Opérateur Signification Exemple + L'élément doit être présent au minimum une fois (1 ou plusieurs fois) A+ * L'élément peut être présent plusieurs fois (ou aucune) (0 ou plusieurs fois) A* ? L'élément peut être optionnellement présent ISAMM | 3ème année Informatique Multimédia | 2017 -2018 (0 ou 1 fois) A? 11/6/2020 76

Règles sur les éléments p Autoriser un certain nombre de répétitions au niveau d’un

Règles sur les éléments p 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 (exclusivement) A|B Virgule , L'élément A doit être présent et suivi de l'élément B (dans l’ordre) A, B () Les parenthèses permettent de regrouper des éléments afin de leur appliquer les autres opérateurs (A, B)+ 11/6/2020 77 ISAMM | 3ème année Informatique Multimédia | 2017 -2018

Quelques exemples n <!ELEMENT livre (titre, auteur+)> ¨ Un livre doit avoir un titre

Quelques exemples n <!ELEMENT livre (titre, auteur+)> ¨ Un livre doit avoir un titre et un ou plusieurs auteurs. n <!ELEMENT livre((titre, auteur)|description)> ¨ Cette déclaration signifie qu’il est possible de saisir soit la description d’un livre n soit son titre suivi de son auteur <!ELEMENT citation (#PCDATA|auteur)*> n n <citation> <auteur> Shakespeare </auteur> Etre ou ne pas être ! ISAMM | 3ème année Informatique Multimédia | 2017 -2018 11/6/2020 78 </citation>

Exemple de DTD <!ELEMENT personne (nom, prenom, telephone, email? ) > <!ELEMENT nom (#PCDATA)

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 11/6/2020 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>

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 11/6/2020 80 Multimédia | 2017 -2018

Déclarer des attributs <! ATTLIST Elément Attribut Type > Avec Type représente le type

Déclarer des attributs <! ATTLIST Elément Attribut Type > Avec Type représente le type de données de l'attribut: n 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 n 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 (Valeur 1 | Valeur 2 |. . . ) > n 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 (Valeur 1 | Valeur 2 ) "valeur par défaut" > n atomique: il permet de définir un identifiant unique pour chaque élément grâce au mot clé ID. 11/6/2020 81 ISAMM | 3ème année Informatique Multimédia | 2017 -2018

Exemples n n n <!ATTLIST rectangle longueur CDATA "0"> <!ATTLIST rectangle largeur CDATA "0">

Exemples n n n <!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"> 11/6/2020 82 ISAMM | 3ème année Informatique Multimédia | 2017 -2018

Nécessité de l'attribut n n n Enfin chacun de ces types d'attributs peut être

Nécessité de l'attribut n n n 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 11/6/2020 83 ISAMM | 3ème année Informatique Multimédia | 2017 -2018

Exemple n n n n <!ATTLIST personne nom CDATA #REQUIRED> <!ATTLIST personne age CDATA

Exemple n n n n <!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 (elt 1, elt 2, …)> <!ATTLIST elt attri 1 CDATA #IMPLIED attri 2 CDATA #REQUIRED > 11/6/2020 84 ISAMM | 3ème année Informatique Multimédia | 2017 -2018