Changes between Version 4 and Version 5 of Cours2


Ignore:
Timestamp:
Jul 2, 2006, 8:26:34 PM (14 years ago)
Author:
Vincent Caron
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Cours2

    v4 v5  
    1 = Cours 2: Interopérabilité - formats et protocoles =
    2 
    3 == Définitions ==
    4 
    5  * format (de fichier): stockage, description de donnée passive
    6    autres: système de fichiers
    7 
    8  * protocole: dialogue
    9    (http://fr.wikipedia.org/wiki/Protocole_de_communication)
    10 
    11 == Spécifications ==
    12 
    13  * consortiums, entreprises
    14    * le w3c (http://www.w3.org/Consortium/), les brevets
    15    * Microsoft, Macromedia
    16    * ARB OpenGL (http://opengl.org/about/arb/overview.html)
    17 
    18  * documents :
    19    * libres: RFCs, drafts (http://www.faqs.org)
    20      (exemples: TCP=RFC793 / SMTP=RFC821)
    21    * payants: AFNOR, ANSI (national), ISO, ITU (international)
    22      (contournement: ISO9660 via ECMA 119)
    23    * obscurs: http://www.wotsit.org
    24 
    25 == Intéropérabilité: règles d'or ==
    26 
    27  * indépendance de la plateforme matérielle
    28  * indépendance de la plateforme logicielle
    29  * licence libre
    30  * libre de brevets
    31  * documentation de référence de qualité
    32  * implémentation de référence
    33  * extensibilité: prévoir les améliorations
    34  * versatilité: préférer l'abstraction
    35 
    36 == Exemples et contre-exemples ==
    37  * Format MS Word basé sur la représentation interne des objets OLE/COM
    38  * le web: HTML et XHTML
    39  * chat avec un serveur SMTP, HTTP
    40 
    41 == Concevoir un format ou protocole ==
    42 
    43  * Définir l'information à décrire ou transporter
    44    * forme de travail (dans la mémoire de l'ordinateur)
    45    * destinataire: homme ou machine
    46 
    47  * Binaire ou texte ?
    48    * texte: lisible par l'homme, forme de structure
    49    * binaire: lisible par la machine (mmap)
    50    * taille, bande passante, compression
    51    * hybrides: base64, le binaire dans le texte
    52 
    53  * Structure (syntaxe, grammaire)
    54    * aucune : serialisation
    55    * légère : entête WAV
    56    * simple : chunks PNG, frames Ogg
    57    * forte  : XML, XSchema
    58 
    59  * Byte ordering, charsets
    60    (Intel vs Motorola, Unicode, etc)
    61 
    62  * API: approche classique et événementielle/flux
    63    * XML: SAX, DOM (expat, libxml2)
    64    * PNG: png_process_data(), png_read_png()
    65    * optimisation: étude avec OpenGL (glTexSubImage2D)
    66    * streaming, multiplexing: MPEG, Ogg
    67 
    68  * validation: file, validate, DTD, Schema
    69 
    70 == Reverse engineering ==
    71 
    72  * quel niveau ? (sonde JTAG, désassembleur, sniffeur USB/Ethernet, etc.)
    73 
    74  * outils (tcpdump/ethereal, strace, hexdump, gdb, emacs/hexl-mode)
    75 
    76  * méthodologie
    77    * nomenclature
    78    * hypothèse de la 'monovariance'
    79    * intuition !
    80    * exemple
    81 
    82 == Enjeux des formats & protocoles ==
    83 
    84  * Politique, social (DADVSI)
    85    * Internet
    86    * domaine public
    87    * données publiques
    88 
    89  * Economique
    90    * force d'isolation, lock-in syndrom (MS Word)
    91    * force de rassemblement, consortiums (Audio CD/Redbook)
    92 
    93  * Juridique
    94    * interopérabilité, droit d'auteur, brevets
    95    * DMCA/EUCD, DADVSI (eucd.info)
    96    * étude de cas: DeCSS
     1Page dépréciée en faveur de [wiki:EnstaCours2].