From 996ce89191832e0b339a33db37fe3b60d384fde4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Kim=20Nguy=E1=BB=85n?= Date: Tue, 9 Sep 2014 00:11:18 +0200 Subject: [PATCH] Finished XPI 1 --- xpi/xpi_01.xhtml | 915 ++++++++++++++++++++--------------------------- 1 file changed, 389 insertions(+), 526 deletions(-) diff --git a/xpi/xpi_01.xhtml b/xpi/xpi_01.xhtml index b8f7620..0ca0c8a 100644 --- a/xpi/xpi_01.xhtml +++ b/xpi/xpi_01.xhtml @@ -4,7 +4,7 @@ > - Systèmes d'exploitation (1/2) + Introduction, UTF-8 et XML @@ -36,9 +36,9 @@ - +
-

Programmation Internet

+

XML et Programmation Internet

Cours 1

kn@lri.fr
@@ -46,18 +46,24 @@

Contenu du cours

    -
  1. Comprendre les bases du Web +
  2. XML pour la représentation des données
      -
    • Fonctionnement des ordinateusr Unix (cours 1 et 2)
    • -
    • Notions de réseau (cours 3 et 4)
    • +
    • Motivation, présentation d'XML sérialisé (cours 1)
    • +
    • Notions de schémas et de validation (cours 1)
  3. -
  4. Programmer (pour) le Web +
  5. Interroger des + documents XML +
      +
    • XPath (cours 2-3)
    • +
    • XSLT (cours 3-4)
    • +
    +
  6. +
  7. Programmer + avec XML
      -
    • Pages statiques (HTML & CSS cours 5)
    • -
    • Pages dynamiques avec PHP (cours 6, 7 et 8)
    • -
    • Notions de sécurité des sites Web (cours 9)
    • -
    • Bonus (cours 10)
    • +
    • Les modèles DOM et SAX (cours 5)
    • +
    • XML Avancé: encodage relationnel (cours 6)
  8. @@ -70,574 +76,431 @@
    • 1ère session
        -
      • Contrôle continu (50%): -
          -
        • Partiel (fin octobre/début novembre) 25%
        • -
        • 1 interro de TD (12,5 %)
        • -
        • 1 interro de TP (12,5 %)
        • -
        +
      • Contrôle continu (33%): Projet (soutenances fin janvier)
      • -
      • Examen (50%)
      • +
      • Examen écrit (67%)
    • 2ème session (examen 100%)
    -

    Rappel: - La défaillance fait obstacle au calcul de la moyenne - et implique l'ajournement. - La présence de l'étudiant étant obligatoire en TP [...], plus - d'une absence injustiée dans un enseignement peut entraîner - la défaillance de l'étudiant dans l'enseignement concerné - -

    +

    Organisation:

    +
      +
    • 8 séances de cours
    • +
    • 8 séances de TD (sur machine)
    • +
- +

Introduction

-

Organisation

+

Qu'est-ce qu'XML ?

+

XML (eXtensible Markup Language) est un standard de + représentation de données

-

Plan

-
    -
  1. Systèmes d'exploitation -
      -
    • 1.1 Principes des systèmes - d'exploitation
    • -
    • 1.2 Système de gestion de fichiers
    • -
    • 1.3 Système de gestion de processus
    • -
    -
  2. -
-
- -
-

Système d'exploitation

-

Quelques systèmes:

+

En a-t-on besoin ?

+

Quels sont les autres moyen de représenter les données ?

+ +

Quels sont les désavantages des + représentations ci-dessus ?

+
+
-

Système d'exploitation

-

Qu'est-ce qu'un système d'exploitation ?

+

Historique

-

Quelles sont les ressources d'une machine?

+
+
+

Exemples d'utilisation

+
+

Le standard UTF-8

-

Système d'exploitation

-
-
- Haut niveau
- ↓
- Bas niveau -
-
-
    -
  • Applications: navigateur Web, éditeur de - texte, anti-virus, jeu, compilateur, …
  • -
  • Système d'exploitation: -
      -
    • Gestion des ressources
    • -
    • Interface avec le matériel (pilotes)
    • -
    -
  • -
  • Matériel: CPU, mémoire, périphériques, …
  • -
-
+

Représentation des textes

+

Avant de représenter des documents complexes, on s'intéresse + aux textes (sans structure particulière)

+

Problématique: comment représenter du texte + réaliste ?

+

Exemple de texte réaliste:
+ " و عليكم السلام,Здравей,¡Hola!, 你好,Góðan daginn,… + " +

-
-

Le système Unix

- - - - - - - - - - - -
1965 MultICS: Multiplexed Information and Computing Service (Bell & MIT)
1969 Unix: 1ère version en - assembleur (AT&T)
1972-73 Unix réécrit en C
1976 Invention de TCP/IP
1977 Berkeley Software Distribution - (BSD)
1985Unix System V
1988Minix
1992Linux
+
+

Historiquement…

+

Encodage 1 caractère = 1 octet (8 bits) :

+
  • Encodage ASCII sur 7 bits (128 caractères)
  • +
  • ASCII étendu 8 bits (256 caractères, dont 128 de « + symboles »
  • +
  • Latin 1 : ASCII 7 bits + 128 caractères « ouest-européens » + (lettres accentuées française, italienne, …)
  • +
  • Latin 2 : ASCII 7 bits + 128 caractères « est-européens » + (Serbe, Hongrois, Croate, Tchèque, …)
  • +
  • Latin 3 : ASCII 7 bits + 128 caractères turques, maltais, + esperanto,
  • +
  • Latin 4 : ASCII 7 bits + 128 caractères islandais, + lituanien, …
  • +
  • …
  • +
  • Latin 15 : Latin 1 avec 4 caractères « inutiles » + remplacés (par exemple pour « € » à la place de « ¤ »)
  • +
-
-

Unix : architecture

- - - - - - - - - - - - -
- Applications -
- Interface utilisateur - - Services -
- Noyau (kernel) -
- Micro-code -
- Matériel -
-
+

… et pendant ce temps là, ailleur dans le monde

+

Encodage multi-octets:

+
    +
  • Encodages spécifiques pour le Chinois (Big5, GB, …)
  • +
  • Encodages spécifiques pour le Japonais (Shift-JIS, EUC, …)
  • +
+

Impossibilité de mettre plusieurs « alphabets » dans un même + texte

+

Chaque logiciel « interprétait » les séquences d'octet de + manière prédéfinie

-

Zoom sur le noyau

- - - - - -
- Applications -
- - Bibliothèques - (libc, DirectX, OpenGL, …) -
-
- - - - - - - +

UTF-8

+

Universal (Character Set) Transformation Format 8 bit

+
  • Encodage à taille variable « universel » (contient tous + les alphabets connus)
  • +
  • Un organisme (ISO) donne un code à chaque symbole
  • +
  • Compatible avec ASCII 7 bits
  • +
+

Encodage

+
- Appels systèmes -
- Noyau
-
- pilotes de périphériques - ordonnanceur (gestion du temps CPU)
- gestionnaire de mémoire - système de fichier
-
-
- Matériel -
+ + + + + + + + + +
Nombre d'octetsOctet 1Octet + 2Octet 3Octet 4Octet 5Octet 6
10xxxxxxx
2110xxxxxx10xxxxxx
31110xxxxx10xxxxxx10xxxxxx
411110xxxx10xxxxxx10xxxxxx10xxxxxx
5111110xxx10xxxxxx10xxxxxx10xxxxxx10xxxxxx
61111110xx10xxxxxx10xxxxxx10xxxxxx10xxxxxx10xxxxxx
-

Le Shell Unix

+

Exemples

+

A  ⟶  6510 +  ⟶  0100 10102 (représenté sur un + seul octet)

+ +

ễ  ⟶  787710 +  ⟶  0001 1110 1100 01012 (représenté + 3 octets) :
+ 11100001 1011 10 + 11 1000 0101≡ 225 187 133 +

+

🐵 +  ⟶  12805310  ⟶  … + ≡ 240 237 220 181

+

Avantages

+
  • compatible ASCII 7 bits (d'anciens documents texte en + anglais sont toujours lisibles)
  • +
  • pas d'espace gaspillé (à l'inverse d'UTF-32 ou tous les + caractères font 32 bits)
  • +
+

Inconvénients

    -
  • Interface utilisateur en mode texte
    - L'utilisateur écrit des commandes dont le résultat est - affiché à l'écran
  • -
  • Interface « historique » sous Unix
  • -
  • Expose à l'utilisateur certains concepts Unix - (pesmissions, propriétaires, processus, …)
  • -
  • (Utilisé dans la première partie du cours)
  • +
  • Caractères à taille variable: il faut parcourir le texte + pour trouver le nème caractère
  • +
  • Les vieux logiciels doivent être adaptés
+

XML

-

Le Shell Unix

-

Exemple de session shell:

-
- - $ ls - Documents Downloads Public Person - $ cd Documents - $ ls - compte_rendu.txt - $ mv compte_rendu.txt cr.txt - $ ls - cr.txt - +

Qu'est-ce qu'un document XML ? (1)

+
    +
  • C'est un fichier texte, encodé par défaut en UTF-8
  • +
  • Le texte peut être structuré au moyen + de balises
  • +
  • Une balise est de la forme <foo> (ouvrante) + ou </foo> (fermante)
  • +
  • Les balises doivent être bien parenthésées
  • +
  • Il doit y avoir une racine « englobant » tout le contenu du + document (texte et autres balises). On appelle cette balise la + racine
  • +
  • Les balises sont sensibles à la casse
  • +
  • <foo/> est un raccourcis pour <foo></foo>
  • +
+

Exemple

+ + ceci est la racine on peut y mettre des + balises imbriquées comme + on veut si + elles sont bien parenthésées +]]> +
-
+
+

Qu'est-ce qu'un document XML ? (2)

+
    +
  • On peut mettre des espaces et des commentaires en dehors de + la racine
  • +
  • Les commentaires sont délimités par <!-- et -->
  • +
  • On peut annoter les balises ouvrantes avec + des attributs de la forme att="v" (on + peut aussi utiliser « ' » pour délimiter les chaînes)
  • +
  • Au sein d'un même élément (ou balise) on ne peut pas avoir + deux fois un attribut avec le même nom
  • +
  • On dispose de séquences d'échappement: &lt; pour <, + &gt; pour >, &apos; pour ', &quot; pour + ", &amp; pour & et &nnnn; pour un caractère + UTF-8 dont le code décimal est nnnn.
  • +
+

Exemple

+ < + + Un autre exemple +]]> + -
-

Plan

-
    -
  1. Systèmes d'exploitation -
      -
    • 1.1 Principes des systèmes - d'exploitation
    • -
    • 1.2 Système de gestion de fichiers
    • -
    • 1.3 Système de gestion de processus
    • -
    -
  2. -
+
+
+

Exemple complet (trouver toutes les erreurs)

+ + + On se donne cette fois un exemple complet, mais + + incorrect. En effet, il y a + + plusieurs erreurs dans + + dans ce document. + + Il n'est pas simple de toutes les trouver + + +En plus cet exemple est en deux parties +]]>
-

Système de gestion de fichiers (filesystem)

+

Utilisations d'XML (1)

    -
  • Organise les données sur le support - physique
  • -
  • Protège contre les corruptions de données
  • -
  • Gestion optimale de l'espace disponible
  • -
  • Accès efficace aux données
  • -
  • Abstraction du support physique (DVD, mémoire - flash, disque réseau, …)
  • -
  • Enregistrement des méta-données (date de - création, propriétaire, taille, …)
  • +
  • Les noms de balise sont libres. La personne qui + conçoit le document choisit les balises
  • +
  • Un document XML est une manière de représenter + un arbre (l'élement racine est la racine de + l'arbre)
  • +
+

Un bon exemple est XHTML (XML pour les pages Web)

+
    +
  • La structure des documents (titres, sections, paragraphes, + tableaux) est donnée par les balises +
  • +
  • Le rendu graphique ne fait pas partie de la structure du + document et est donné par un moyen annexe (feuille de style + CSS par exemple)
  • +
+

Autre exemple: les flux RSS de mises à jour d'un blog

+
-

Le concept de fichier

-

- Un fichier est une collection d'infromations - numériques réunies sous un même nom et - enregistrée sur un support de stockage -

+

Utilisation d'XML (2)

+
    +
  • Le format texte est un mauvais format pour + l'interrogation
  • +
  • Il encode un arbre mais ne permet pas de le manipuler + directement
  • +
+

En réalité, on ne manipule pratiquement jamais de XML tel que stocké + sur le disque

    -
  • Manipulable comme une unité
  • -
  • Selon les systèmes, le nom a plus ou moins - d'importance
  • -
  • possède un type
  • +
  • On peut charger un document XML sous la forme d'un arbre + (Objet Java par exemple) dans lequel on peut naviguer
  • +
  • Certaines bases de données permettent de stocker des + fichiers XML dans des colones (comme un VARCHAR)
+

Une application moderne mélange BD relationnelle et XML (et + aussi d'autres choses si besoin: JSON, YAML, …)

-

Le concept de fichier

-

Ne pas confondre:

+

Étude de cas: journal en ligne

+

On se pose dans le cas du site internet d'un journal en + ligne

    -
  • type du fichier: il influe sur le comportement du système - (fichier « normal », répertoire, lien (raccourcis), fichier - système, …). C'est une méta-donnée conservée par le système - de fichier
  • -
  • type du contenu: le type des données contenues - dans le fichier: -
      -
    • DOS puis Windows: l'extension (les 3 derniers - caractères après le « . ») détermine le type de contenu -
    • -
    • MacOS puis OS X/iOS: les premiers octets du fichier - déterminent son type -
    • -
    • Premiers octets ou extension, selon les interfaces - utilisées
    • -
    -
  • +
  • Le site a des utilisateurs enregistrés (ainsi qu'un accès + invité)
  • +
  • Le site propose des articles en lecture sur le site
  • +
  • Le site permet d'exporter des articles en PDF pour + impression
  • +
  • Le site permet la lecture sur smartphone/tablette
-

Les attributs d'un fichier

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Nom -
Propriétaireutilisateur qui possède ce fichier
Groupegroupe d'utilisateurs qui possède ce fichier
Emplacementlocalisation du fichier sur le support physique
Tailleen octet (peut être la taille réelle ou la taille - occupée sur le support)
Permissions « qui a quel droit » sur le fichier (lecture, écriture, - exécution, …) -
Type -
Datesdernier accès, dernière modification, création, …
-
-
-

Organisation logique des fichiers

-

Usuellement, les fichiers sont regroupés en répertoires. Les -répertoires sont imbriqués les uns dans les autres de manière a former -une arborescence. -

-

- Sous Unix il y a un répertoire racine, « / » -(slash) qui contient toute l'arborescence du système.
-Chaque utilisateur possède aussi un répertoire personnel -

-
- -
-

Noms de fichiers et chemins

-

-Un chemin est une liste de répertoire à traverser pour -atteindre un fichier ou répertoire donné. -Sous Unix, le séparateur de chemin est le « / »
-Les chemins absolus commencent par un / et - dénotent des fichiers à partir de la racine. Exemple: - - /home/kim/Documents/ProgInternet/cours01.pdf - -
-Les chemins relatifs dénotent des fichiers à partir du - répertoire courant. Exemple:
- - Documents/ProgInternet/cours01.pdf +

Une solution possible

+
  • On stocke les articles comme des fichiers XML avec une + syntaxe particulière: + + Science + A new planet discovered + 2014/09/09 + + JonhDoe + SomeoneElse + + + A new plange has been discovered … + +]]> -si on se trouve dans le répertoire /home/kim -
    -Les noms spéciaux: « . » dénote le répertoire - courant, - « .. » le répertoire parent, « ~ » le répertoire de - l'utilisateur et « ~toto » le répertoire de l'utilisateur - toto -

    -
- -
-

Utilisation du Shell

-

- Le shell affiche un invite de commande - (prompt). Exemple:
- kim@machine $

- On peut alors saisir une commande:

- kim@machine $ ls *.txt

- Le shell affiche la sortie de la commande:

- fichier1.txt fichier2.txt

- Certains caractères doivent être précédés d'un « \ » (échappés):

- kim@machine $ ls mon\ fichier\#1.txt -

-
-
-

La ligne de commande

-

- Une ligne de commande a la forme:
- prog item1 item2 item3 item4 … -

-
    -
  1. Si prog est un chemin il doit - dénoter un fichier exécutable -
  2. -
  3. Si prog est un simple nom, il doit dénoter un fichier - exécutable se trouvant dans un des répertoires prédéfinis - (/bin, /usr/bin, …) -
  4. -
  5. Pour chaque itemi (séparés par un ou plusieurs espaces - non échappés) le shell fait une expansion de nom -
  6. -
  7. La liste de toutes les chaînes de caractères expansées est - passée comme argument au programme prog -
  8. -
-
-
-

Expansion des noms
Expressions régulières glob

-

- Certains caractères sont interprétés de manière spéciale par le - shell. Ces caractères sont « expansés » selon des - règles. Si la forme expansée correspond a un ou plusieurs fichiers - existants, alors leurs noms sont placés sur la ligne de commande. Sinon - la chaîne de caractère de départ garde sa valeur textuelle. -

-
-
-

Expressions régulières glob

-

Règles d'expansion: - * n'importe quelle chaîne
- ? n'importe quel caractère - [ab12…] un caractère dans la liste
- [^ab12…] un caractère absent de liste
- [a-z] un caractère dans l'intervalle
- [^a-z] un caractère absent de l'intervalle
- {m1, m2} - motif m1 ou m2
- ?(m1|…|mn) - - @(m1|…|mn) - - *(m1|…|mn) - - +(m1|…|mn)
- k motifs parmi mi
- ?: 0 ≤ k ≤ 1 - - @: k = 1 - - *: k ≥ 0 - - +: k ≥ 1 -
- !(m1|…|mn): - ni m1, …, ni mn -

-
-
-

Expressions régulières glob
Exemples

-

ls !(*[aeiouy]?) - La chaine « !(*[aeiouy]?) » est remplacée par la liste de tous - les fichiers dont l'avant dernière lettre du nom n'est pas une - voyelle. S'il n'y a pas de tel fichier, la chaîne - « !(*[aeiouy]?) » est passée à la commande ls.

- - ls [0-9]* affiche la liste des fichiers commençant par un - chiffre

- ls +(abc) affiche la liste des fichiers dont le nom est une - répétition de « abc Â». -
-

-
-
-

Commandes shell de base

-
    -
  • cd chemin: chemin devient le - répertoire courant. Si absent, utilise le répertoire personnel -
  • -
  • ls chemin1 … cheminn: - affiche le nom des n fichiers. Si n=0 affiche le contenu du - répertoire courant. Avec l'option -l affiche la liste - détaillée. -
  • -
  • cp chemin1 chemin2: -copie de fichier -
  • -
  • mv chemin1 chemin2: - déplacement - de fichier (et renommage) -
  • -
  • rm chemin1 … cheminn: - supprime les fichiers (définitif) -
  • + +
  • Une BD relationelle stocke les données dynamiques (utilisateurs, …)
  • +
  • Un programme (Java ou PHP) applique une transformation (XSLT) pour + transformer les articles XML en pages XHTML
  • +
  • Le programme utilise la BD pour personaliser l'affichage
  • +
  • Le programme applique une autre transformation pour transformer + les articles en PDF plutot que XHTML
  • +
  • Le programme transforme l'article en un + XML RSS pour affichage dans un lecteur de blog
-
-
-

Droits et propriétés des fichiers

-

-Sous Unix un utilisateur est identifié par son login (ou nom -d'utilisateur). Chaque utilisateur est dans un groupe - principal.
-Chaque fichier appartient à un utilisateur et à un groupe.
-Chaque fichier possède 3 permissions pour son propriétaire, son groupe -et tous les autres. Les permissions sont lecture, écriture, exécution -(plus d'autres non abordées dans ce cours).
- - - - - - - - - -
Permission fichier répertoire
lecture (r) lire le contenu du - fichierlister le contenu du répertoire
écriture (w) écrire dans le fichiersupprimer/renommer/créer des - fichiers dans le répertoire
exécution - (x) exécuter le fichier - (si
- - c'est un programme)
rentrer dans le répertoire -
-$ ls -l -drwxr-x--- 9 kim prof 4096 Sep 7 21:31 Documents -

-
-
-

La commande chmod

- - chmod permissions chemin1 … cheminn - -

modifie les permissions des fichiers 1 à n. La chaîne -permissions est soit une suite de modifications de -permissions symbolique soit l'ensemble des permissions données -de manière numérique:
- - chmod 755 fichier.txt - chmod u-w,a+x,g=w fichier.txt - -

-
-
-

Permissions numériques

-

-On groupe les bits de permissions par trois puis on convertit -en décimal:
- - - - - - - - - - - - - - -
Utilisateur - GroupeAutres
r w x r w x r w x
1 1 0 1 0 0 0 0 0
6 - 40
-Le fichier est lisible et modifiable mais pas exécutable par son -propriétaire, lisible pour le groupe. Les autres ne peuvent ni le lire -ni le modifier.

-
-
-

Permissions symboliques

- - cible modifieur permission - -
    -
  • cible : u (utilisateur), g (groupe), o (others), a - (all) -
  • - -
  • modifieur : + (autorise), - (interdit), = (laisse - inchangé) -
  • - -
  • permission : r (lecture), w (écriture), x (exécution)
  • +
+

Validation de documents

+
+

Schéma d'un document

+

Comme tout le monde peut définir son propre format XML, on + veut pouvoir être sûr que des données en entrées d'un + programme ont un certain + format (par exemple, c'est du XHTML valide, sans balise inconnue + des navigateurs) +

+

Il existe plusieurs manières de contraindre les balises d'un + document XML. On s'intéresse dans le cours à la plus simple. +

+
+
+

DTD

+

Document Type Definitions. Permet de définir le contenu d'un + document par des expressions régulières

+

Syntaxe particulière qui n'est pas du XML

+

Permet de définir:

+
  • les balises autorisées dans un document
  • +
  • le contenu des balises au moyen d'expressions + régulières
  • +
  • les attributs d'un élément
  • +
  • le type des valeurs que peut prendre un + attribut
  • +
+
+
+

Syntaxe des DTD

+

Un fichier contenant une suite de directives de la forme suivantes:

+
  • <!ELEMENT nom_elem regexp_elem> + dit qu'un élement de nom nom_elem contient + des éléments décrits par l'expression + régulière regexp_elem
  • +
  • <!ATTLIST nom_elem nom_att type_att val_att>
    +signifie que l'élément (balise) nom_elem + a un attribut nom_att, dont le type + est type_att et la valeur + est val_att
  • +
  • Les expressions régulières sont formées + de *, +,?, mise en séquence + (,), EMPTY (contenu vide), ANY + (n'importe quel contenu), #PCDATA (du texte)
  • +
  • Les types d'attributs sont ID (attribut unique + dans tous le document ≡ clé primaire), IDREF (fait + référence à un ID unique ≡ clé étrangère), CDATA(du + texte simple), v1|v2|…|vn (une liste de valeurs fixées) +
  • +
  • Les valeurs d'attributs sont: v (une valeur par + défaut si l'attribut est absent), #REQUIRED + (l'attribut est obligatoire), #IMPLIED (l'attribut + est optionnel), #FIXED v (valeur constante v)
-

-Exemple:
- chmod u+rw,u-x,g+r,g-wx,o-rwx fichier.txt -

-
+ +
+
+

Exemple de DTD

+ + + + + + + + + +]]> +

Question: quel est la taille minimale d'un document valide ?

+
+
+

Utilisation d'une DTD (1)

+

Il suffit de référencer la DTD dans un élément + spécial
<!DOCTYPE racine SYSTEM "fichier.dtd" >
avant la racine du + document

+ + +Tiramisú + + mascarpone + oeufs + … + +2h + + Séparer les blancs des jaunes + … + … + + +]]> +
+
+

Utilisation d'une DTD (2)

+
    +
  • Les bibliothèques permettant de charger des fichiers XML + vérifient qu'il est bien formé (parenthésages, attributs, …) +
  • +
  • Elles peuvent aussi valider le document par + rapport à une DTD
  • +
  • Si le fichier est invalide, elles lèvent une erreur
  • +
  • C'est une forme de vérification de contraintes + d'intégrité
  • +
+
-- 2.17.1