Chapitre. La conversion. des données
|
|
|
- Étienne Morency
- il y a 10 ans
- Total affichages :
Transcription
1 Chapitre La conversion des données - 1 -
2 Introduction à la conversion des données Tout système informatique (processeur + système d'exploitation + langage +...) effectue de nombreux choix relativement au codage des informations gérées. - Les choix possibles sont très variés. - Ils concernent tous les types de données. - Ils conduisent à des différences majeures concernant des notions qui ont en fait le même objectif (caractère, entier,...) Grave hétérogénéité syntaxique et sémantique (d'un constructeur à un autre, d'un modèle à l'autre du même constructeur) Très pénalisante pour des systèmes en réseau de machines hétérogènes puisque les données circulent entre machines (systèmes "ouverts")
3 La présentation des données - Fonction essentielle de la répartition (en environnement ouvert). - Elle est à effectuer à chaque transfert => Performances élevées indispensables Objectif assigné à la couche présentation du modèle OSI Normes correspondantes. Définition de syntaxe abstraite et de syntaxe de transfert ASN1 Service et protocole de présentation ISO 8822 et 8823 Objectif assigné à de nombreuses implantations propriétaires de logiciels de conversion non normalisés.. Fournisseurs de logiciels réseaux.. Fournisseurs d'architectures client-serveur.. Fournisseurs de systèmes d'objets répartis.. Fournisseurs de bases de données réparties - 3 -
4 Problèmes liés aux choix matériels (représentation interne des données) Codes caractères Premier problème de conversion: choix de la représentation des caractères dans le cadre de l'interfonctionnement en mode texte. => Code EBDIC (IBM) et normes ASCII (Ex IA5 International ASCII n 5)
5 Position des octets ou des bits dans un mot mémoire Deux visions pour la position des octets. Machines "grand boutiste" (Sun Sparc) ("Big endian") Les octets sont numérotés de gauche à droite [ ] Machines "petit boutiste " (Pentium) ("Little endian") Les octets sont numérotés de droite à gauche [ ] Échanges en série de données contenues en mémoire (ex: une adresse IP sur 32 bits) La sérialisation d'un mot mémoire donne selon les cas des résultats différents
6 Représentation des types machine de base Pour tous les types de données de base gérés par le matériel nombreuses variantes: Représentation des entiers, Longueur variable (8, 16, 32, 64 bits) Codage (complément à 2 ou à 1) Représentation des flottants, Longueur variable et placement des zones mantisse et exposant. Codages variables des mantisses et exposant (en base 2,ou 16) Codage du bit signe. Représentation des types complexes. Pour la transmission des données définies à partir de types complexes (agrégats, ou types construits "articles"). Représentation des pointeurs. Problème des adresses utilisées par le matériel: des pointeurs peuvent figurer dans les structures de données échangées
7 Problèmes liés aux langages (représentation abstraite des données) - Existence de très nombreux langages (C, C++, Cobol, Ada, Java) définis indépendamment des réseaux. - Chaque langage effectue des choix concernant les types de données primitives et leur attribue un nom (syntaxe abstraite). - Chaque langage effectue des choix relativement aux objets (sémantique des langages orientés objets très variées). - Chaque langage effectue des choix concernant les modes de transmission des arguments dans les appels procéduraux. - Chaque compilateur effectue une correspondance entre les types de données du langage et les types du matériel. Faire en sorte que les différents choix effectués par les langages concernant les types et la transmission des arguments deviennent compatibles avec les réseaux - 7 -
8 L'hétérogénéité: un problème habituel pour les programmes Un programme écrit pour un ordinateur donné (en langage machine) ne peut pas être exécuté sur un autre ordinateur La solution "compilée" Écrire l'application dans un langage de haut niveau. Convertir dans le langage d'une machine à l'aide d'un compilateur adapté à la machine. Compiler strictement le même langage sur toutes les machines. La solution "interprétée" Écrire l'application dans un langage de haut niveau (exemple pascal, java) puis compiler dans un langage intermédiaire (pcode, bytecode) d'une machine virtuelle. Utiliser sur chaque machine réelle un interpréteur du langage intermédiaire dans le langage particulier d'une machine cible
9 L'hétérogénéité des données dans les réseaux Résoudre les problèmes de représentation pour faire communiquer des systèmes hétérogènes Solution directe "transcodage" Écrire pour un couple de machines deux traducteurs des représentations de l'une à l'autre (approche analogue de la compilation). Système A Système B Convertisseur De Syntaxe B -> A A -> B Convertisseur de Conversion directe de syntaxe Approche impraticable s'il faut faire communiquer sans restrictions un grand nombre d'ordinateurs incompatibles: Pour N systèmes: N*N-1 convertisseurs
10 Solution d'un langage intermédiaire "pivot" commun à tout le réseau Écrire pour chaque machine un traducteur (compilateur) de la représentation de cette machine vers une représentation intermédiaire commune au réseau (schéma analogue de l'interprétation). Notion de "syntaxe de transfert". (la façon dont les données sont codées dans les messages) Chaque machine doit disposer d'un traducteur de la représentation réseau (syntaxe de transfert) vers la représentation interne de la machine. Pour N machines le nombre de convertisseurs est réduit à 2*N Application A Application B Conversion A -> ST ST -> A ST Syntaxe de transfert Conversion B -> ST ST -> B
11 Syntaxe abstraite commune au réseau Chaque interface de service doit offrir une définition précise et lisible des données nécessaires à son invocation. Une syntaxe de transfert (plutôt de niveau langage machine) est très peu pratique pour définir et comprendre des structures de données => C'est le rôle d'une syntaxe abstraite Chaque langage évolué définit sa propre syntaxe abstraite de définition des données. => Les langages sont plus ou moins bons => Les concepts et les langages évoluent. => Aucun langage ne s'impose. => Langages évolués définis en dehors des problèmes de la répartition : pas tous les ingrédients nécessaires. Nécessité de définir une syntaxe abstraite commune au réseau différente des syntaxes abstraites des langages existants Nombreuses propositions. Message (ASN "Abstract Syntax Notation") Appel distant (IDL "Interface Definition Language")
12 Fonctionnement d'une syntaxe abstraite Le langage d'interface permet de définir de façon universelle les services d'un logiciel réseau et les données nécessaires. Exemples: IDL DCE, DCOM, CORBA Un programmeur utilisant un langage de développement (C++, Java) de son choix: il existe une correspondance ("mapping") entre les données (objets) spécifiés dans l'idl et les données (objets) du langage. La traduction des directives IDL insérées dans le langage évolué est opérée par un traducteur assez simple (compilateur de syntaxe abstraite)
13 Schéma de fonctionnement Langage de définition d'interface Machine A Machine B Application 1 IDL Application 2 langage L1 langage L2 + IDL + IDL Traduction Traduction IDL IDL Conversion A <-> ST ST Syntaxe de transfert Conversion B <-> ST
14 Conversion des données L'approche ASN1-14 -
15 Introduction ASN1 Représentation normalisée des données échangées dans le cadre du modèle des systèmes ouverts OSI. => Définition d'une syntaxe abstraite et d'une syntaxe de transfert dédiée à l'acheminement des données par message. Le codage et le décodage des structures de données selon la norme ASN1 est le principal objet du niveau présentation du modèle OSI. Autres utilisations (hors modèle OSI) Administration de réseaux SNMP ("Simple Network Management Protocol") Commerce électronique SET ("Secure Electronic Transactions")
16 Plan du cours ASN1 Introduction 1. Syntaxe abstraite 2. Syntaxe de transfert Conclusion
17 1 Notation de syntaxe abstraite ASN
18 Introduction Syntaxe abstraite normalisée ASN1 Normalisation ITU-CCITT CCITT X409 Norme de messagerie Normalisation ISO dans le cadre: Protocole de présentation avec connexion ISO 8823 Protocole de présentation sans connexion ISO 9576 Un protoc (APDU : "Application Protocol Data Unit") - Chaque APDU = Un type d'opération particulière à faire réaliser à distance. - Un APDU comprend des données dont le nombre et le type peuvent varier pour chaque utilisation particulière de l'application et qui nécessitent une conversion. Pour cela il utilise les services du protocole de présentation
19 Exemple Messagerie industrielle (MMS): Objectif MMS ("Manufacturing Messaging Service"): Lire à distance, affecter à distance des variables d'état d'une machine, ou changer à distance le programme de fabrication d'une machine outil.. Les entités d'applications doivent donner strictement le même sens aux APDU et aux données contenues (suite de bits que le destinataire doit reconnaître). Exemple d'utilisation: Élément de protocole destinée à fixer deux paramètres d'une machine outil VITESBROCHE : Un entier sur 8 bits LUBRIF : Un booléen Le destinataire doit être capable: - de reconnaître le type d'opération (dans l'entête de l'apdu) - d'interpréter les champs (les deux paramètres)
20 Solution: définir les données échangées dans un langage de haut niveau - Une syntaxe abstraite décrit des données dans une notation formelle non ambiguë. - Approche nécessairement fortement typée (chaque objet à un type). - La description ASN.1 d'un type de données est appelée sa syntaxe abstraite (parce qu'aucune représentation particulière n'est imposée à ce niveau). - A un type sont associées des opérations qui le caractérisent (lire, écrire). - Premiers exemples de types de base Types prédéfinis "integer", "boolean",... Types structurés "sequence" Liste ordonnée de types, "choice" Un type quelconque pris dans une liste, "set" Collection non ordonnée de types variés
21 Exemple1: Activation d'une machine outil Demarre_MO ::= SEQUENCE { vitesbroche INTEGER, lubrif BOOLEAN } Exemple2: Descriptif au fichier du muséum des dinosaures Dinosaure ::= SEQUENCE { nom OCTET STRING, longueur INTEGER, carnivore BOOLEAN, os INTEGER, decouverte INTEGER } Exemple3: Description partielle d'un journal d'opérations messagerie industrielle CreatejournalrequestPDU::= confirmes-requestpdu[0] IMPLICIT SEQUENCE { invokeid Unsigned32, listofmodifier SEQUENCE OF Modifier OPTIONAL, createjournal [69] IMPLICIT SEQUENCE {journalname[0] ObjectName} } Unsigned32 ::= INTEGER ObjectName ::= CHOICE { vmdspecific [0] IMPLICIT Identifier domainspecific[1] IMPLICIT SEQUENCE { domainid Identifier, itemid Identifier}, aaspecific[2] IMPLICIT Identifier}
22 Les types primitifs ASN.1 (types de base) Ces types servent de briques de base pour élaborer des types complexes. Les mots réservés ASN.1 sont écrits en majuscules. Les noms des types de base sont des mots réservés. Tableau des types primitifs INTEGER BOOLEAN BIT STRING OCTET STRING NULL ANY OBJECT IDENTIFIER Type primitif Entier de longueur quelconque Vrai ou faux Liste de 0 ou plusieurs bits Liste de 0 ou plusieurs octets Aucun type Union de tous les types Nom d'objet Signification
23 Détail des principaux types primitifs - Integer : entiers de taille arbitrairement grande, également utilisable pour les types énumérés par des définitions complémentaires (dimanche = 1, lundi = 2,) - Boolean : vrai ou faux - Bit string : décrit des chaînes binaires en binaire ' 'B ou en héxadécimal '4D'H - Octet string : définit des listes ordonnées d'octets. - Any : permet de spécifier n'importe quel type (pour remplissage ultérieur de la zone par n'importe quel type). - Null : définit un objet sans type (vide) qui n'a pas besoin d'être transmis. - Object identifier : définit un moyen d'identifier au moyen de chaînes de symboles un objet dans un protocole: Exemple : {iso standard 8571 part 4 ftampci(1)} référence un objet définit dans la partie 4 de la norme 8571 FTAM
24 Les types constructeurs ASN.1 - Sequence : permet de construire des types combinaison quelconque (de façon analogue au "record" pascal, "struct" C). - Sequence of : permet de construire des tableaux d'un seul type. - Set : permet de construire des ensembles (collections non ordonnées) d'objets de types quelconques - Set of : permet de construire des ensembles d'objets du même type. - Choice : définit une structure de donnée qui doit comprendre des types appartenant à un ensemble de types différents. SEQUENCE SEQUENCE OF SET SET OF CHOICE Liste ordonnée de types divers Liste ordonnée d'un seul type Collection non ordonnée de divers types Collection non ordonnée d'un seul type Un type quelconque pris dans une liste Type constructeur Signification
25 Exemple de l'emploi de "choice" - Définition d'une application de transfert de travaux à distance (un travail comporte trois parties). - La partie principale est constituée de commandes soit locales soit à distance => emploi de "choice". - Les définitions manquantes sont supposées réalisées dans une bibliothèque annexe nommée joblib. Job ::= SEQUENCE { header Account-PDU, body SEQUENCE OF Command-PDU, trailer Termin-PDU } Command-PDU ::= CHOICE { Local-command, Remote-command } Account-PDU ::= Joblib.account Local-command ::= Joblib.local Remote-command::= Joblib.remote Termin-PDU ::= Joblib.termination
26 Remarques complémentaires En plus des types primitifs et des types construits, ASN.1 spécifie également des types prédéfinis couramment utilisés. - Huit types de chaînes différents ont été définis qui sont des sous-ensemble différent de OCTET STRING. - NumericString comporte les chiffres (de 0 à 9) et le caractère espace. - PrintableString comprend les lettres minuscules, les lettres majuscules, les dix chiffres, le caractère espace ainsi que les 11 caractères suivants : ( ) ' + -., / : =? - GeneralizedTime permet d'éviter toute ambiguïté sur une date pour déterminer si 5/12 représente le 5 décembre ou le 12 mai. Exemple: la valeur pour le type GeneralizedTime indique 21 heures 05 minutes 38.8 secondes, le 27 avril
27 Notion de module On peut regrouper des définitions apparentées de type, de valeurs, de soustypes dans un module. Un module est identifié par son nom. La première lettre d'un nom de module commence toujours par une majuscule. Exemple de module: nom du module puis DEFINITIONS Couleur DEFINITIONS ::= BEGIN CouleurPrimaire::= ENUMERATED {rouge(0),jaune(1),blanc(2)} couleurpardefaut CouleurPrimaire ::= jaune END
28 Notion de macro La notation de syntaxe abstraite ASN.1 offre la possibilité de définir des types ou des valeurs au moyen de macros définition. Exemple de macro définition - X,Y abscisse et ordonnée dans un système de coordonnées rectangulaires. - On veut traiter le couple X, Y comme un type auquel on donne le nom de complexe. - X et Y peuvent être de types différents et redéfinissables :X entier, Y réel (ou autres). - On utilise une notation spéciale de façon à pouvoir préciser un type COMPLEXE particulier en invoquant: COMPLEXE TYPEX=.un premier type TYPEY=.un second type - Avec cette notation on peut définir des types COMPLEXE1, COMPLEXE2 etc COMPLEXE1::= COMPLEXE TYPEX = INTEGER TYPEY = INTEGER COMPLEXE2::= COMPLEXE TYPEX = REAL TYPEY = REAL
29 Macro définition de valeurs - On veut que la notation de valeur pour une variable de type complexe soit de la forme: (X=...;Y=...) - Avec par exemple pour une réalisation particulière de la variable de type COMPLEXE1: ( X=56;Y=3561) - Pour arriver à définir ceci on utilise une macro de la forme : COMPLEXE MACRO ::= BEGIN TYPE NOTATION::= "TYPEX" "=" type (TypAbscisse) "TYPEY" "=" type (TypOrdonnee) VALUE NOTATION::= "(" "X" "=" value (Abscisse TypAbscisse) ; "Y" "=" value (Ordonnee TypOrdonnee) ")" END
30 Attributs optionnel et défaut "OPTIONAL" En pratique, il est très utile de pouvoir définir des types de données complexes dont certains champs sont optionnels (renseignés ou pas). En ASN.1 mot clé OPTIONAL. "DEFAULT" Autre possibilité: déclarer ces champs DEFAULT, suivis de la valeur par défaut qui devrait être utilisée par le récepteur s'ils ne sont pas transmis. Problème L'existence de types OPTIONAL et DEFAULT pose des problèmes pour identifier des données lorsque ces dernières sont reçues. Supposons qu'une SEQUENCE possède 10 champs de même type et tous optionnels. Seuls trois d'entre d'eux sont transmis. Comment le récepteur détermine-t-il de quels champs il s'agit?
31 Notion d'étiquette ("tag") - Le but de l'étiquetage est l'identification unique des champs pour lever les ambiguïtés. - Quatre types d'étiquettes sont prévues UNIVERSAL, APPLICATION, PRIVATE, Étiquette spécifique au contexte. - Notation des étiquettes entre crochets. Exemple : [APPLICATION 4]. Chaque étiquette est définie par un numéro unique (entier) qui identifie l'objet Il est précédé de l'un des mots réservés UNIVERSAL, APPLICATION ou PRIVATE, ou d'aucun mot réservé, auquel cas l'étiquette est spécifique au contexte. - Relativement à la syntaxe de transfert. Chaque fois qu'un item est transmis son type, sa longueur et sa valeur sont transmis. Lorsqu'un type ou un champ est étiqueté, l'étiquette est également transmise
32 Redondance des informations de type et d'étiquette - Si le récepteur peut dire de quel item il s'agit en décodant son étiquette, il est clair qu'il n'est plus nécessaire d'envoyer son type. - ASN.1 offre la possibilité de supprimer le codage du type pour des champs étiquetés. - La suppression de l'émission de l'information de type se fait par le mot réservé IMPLICIT après l'étiquette. Exemple:[PRIVATE 7] IMPLICIT. - Si IMPLICIT n'est pas mentionné, l'étiquette et le type sont envoyés
33 Exemple du type dinosaure revisité Il est ici étiqueté avec une option et une valeur par défaut. Dinosaure ::= [PRIVATE 6] IMPLICIT SEQUENCE { nom [0] IMPLICIT OCTET STRING, longueur [1] IMPLICIT INTEGER, carnivore [2] IMPLICIT BOOLEAN DEFAULT TRUE, os [3] IMPLICIT INTEGER, decouvert [4] IMPLICIT INTEGER OPTIONAL } ASN.1 permet de définir des types et des instances pour ces types. Soit pour le type Dinosaure l'instance ayant pour valeur celle du stégosaure. {"stegosaure",10,false,300,1877}
34 Grammaire de ASN1 ModuleDefinition ::= Name "DEFINITIONS ::= BEGIN" ModuleBody "END" ModuleBody ::= AssignmentList Empty AssignmentList::=Assignment AssignmentList Assignment Assignment ::= Name "::=" Type Type ::= ExternalType BuiltinType ExternalType ::= Name "." Name BuiltinType::=PrimitiveType ConstructedType TaggedType PrimitiveType::=Integer Boolean BitSt OctetSt Any Null ObjId ConstructedType::=Sequence SequenceOf Set SetOf Choice TaggedType ::= Tag Type Tag "IMPLICIT" Type Integer ::= "INTEGER" "INTEGER" "{"NamedNumberList"}" Boolean ::= "BOOLEAN" BitStr ::= "BIT STRING" "BIT STRING" "{"NamedBitList"}" OctetStr ::= "OCTET STRING" Any ::= "ANY" Null ::= "NULL" ObjId ::= "OBJECT IDENTIFIER" Sequence::="SEQUENCE""{"ElementListType"}" "SEQUENCE{} " SequenceOf ::= "SEQUENCE OF" Type "SEQUENCE" Set ::= "SET" "{"ElementListType"}" "SET {}" SetOf ::= "SET OF" Type "SET" Choice ::= "CHOICE" "{"AlternativeTypeList"}" Tag ::= "[ClassUnsignedNumber"]" Class ::= "UNIVERSAL" "APPLICATION" "PRIVATE" Empty NamedNumberList ::= NamedNumber NamedNumberList "," NamedNumber NamedNumber ::= Name "(" UnsignedNumber ")" Name "(" "-" UnsignedNumber ")" NamedBitList ::= NamedBit NamedBitList "," NamedBit NamedBit ::= Name "(" UnsignedNumber ")" ElementListType ::= ElementType ElementTypeList "," ElementType ElementType ::= NamedType NamedType "OPTIONAL" NamedType "DEFAULT" Value NamedType ::= Name Type Type AlternativeTypeList ::= NamedType AlternativeTypeList","NamedType UnsignedNumber ::= Digit UnsignedNumber Digit Digit ::= "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" Empty ::=
35 2 Syntaxe de transfert
36 Introduction à la syntaxe de transfert - Définition des règles de codage des structures de données ASN.1 en une suite binaire pour la transmission. - Chaque message transmis comprend une suite d'objets codés qui peuvent eux même comporter dans leur définition une suite d'objets codés... Approche récursive de l'encodage décodage. Le codage d'un objet élémentaire est défini par des règles simples baptisées: BER "Basic Encoding Rules" BER est la représentation concrète de chaque objet primitif pour la communication entre entités distantes
37 Première possibilité: syntaxe de transfert avec typage implicite Typage implicite champ 1 Typage implicite champ 2 Longueur champ 1 Valeur champ 1 Longueur champ 2 Valeur champ 2 Option non retenue Difficulté pour les valeurs optionnelles
38 Solution retenue: syntaxe de transfert avec typage explicite - Chaque champ est accompagné d'une information permettant de reconstruire son type à la réception. - La zone valeur peut-être déterminée de deux façons. Longueur connue avant l'émission Aucune difficulté pour renseigner un champ longueur avant l'émission de la valeur. Identificateur du message Type champ 1 Longueur champ 1 Valeur champ 1... Longueur inconnue avant l'émission La longueur n'est pas renseignée. La valeur est déterminée par un délimiteur fin Type Longueur Valeur Délimiteur de fin
39 Structure des objets de la syntaxe de transfert Chaque valeur transmise (d'un type primitif ou d'un type construit) comporte les champs suivants : - L'identificateur du type codé comme un type ou codé comme une étiquette ou les deux, - La longueur de la donnée en octets. - La donnée, - La marque de fin si la longueur des données est inconnue. Les trois premiers champs sont obligatoires, alors que le dernier est optionnel
40 L'identificateur (type ou étiquette) d'un objet - Le premier octet d'un item transmis selon la syntaxe de transfert ASN.1 - Il possède lui-même trois sous-champs. Premier champ: 2 bits Type d'étiquette "tag" Second champ: 1 bit Type primitif ou construit Troisième champ: 5 bits Code du type universel ou valeur étiquette. 2 bits1 bit 5 bits Tag Number 0 : type primitif 1 : type constructeur 00 UNIVERSAL 01 APPLICATION 10 spécifique au contexte 11 PRIVATE
41 Classes de types et codage correspondant Classe (français) Classe (anglais) Fonction Valeur premiers bits Universel Universal Type à usage général, indépendant de l'application Type particulier à une application Application Application wide 01 Spécifique à Context Type particulier à un contexte 10 à l'intérieur d'une application un contexte spécific A usage privé Private use Type réservé à un usage privé
42 Affectation des codes de types universels et codage Code ID Type(français) Type(anglais) Bit 6: primitif:0 constructeur:1 Ident de type en hexadécimal 1 Booléen BOOLEAN Entier INTEGER Chaîne binaire BIT STRING 0/1 03/23 4 Chaîne d'octets OCTET STRING 0/1 04/24 5 Vide NULL Identificateur d'objet OBJECT 0 06 IDENTIFIER 7 Descripteur d'objet Object descriptor Externe EXTERNAL Réel REAL Enuméré ENUMERATED 0 0A Réservé 16 Séquence, Séquence de SEQUENCE, 1 30 SEQUENCE OF SET, SET OF Ensemble, ensemble de 18 Chaine numérique NumericString 0/1 12/32 19 Chaine imprimable PrintableString 0/1 13/33 20 Chaîne T.61 TeletexString 0/1 14/34 21 Chaîne videotex VideotexString 0/1 15/35 22 Chaîne IA5 IA5String 0/1 16/36 23 Heure UTC UTCTime 0/1 17/37 24 Heure généralisée GeneralizedTime 0/1 18/38 25 Chaîne graphique GraphicString 0/1 19/39 26 Chaine ISO 646 VisibleString 0/1 1A/3A 27 Chaîne générale GeneralString 0/1 1B/3B 28 Réservé
43 Compléments concernant les codages Entiers 2. Les entiers sont codés en complément à L'octet le plus significatif est transmis en tête. Le codage du champ de données dépend du type de données présentes.. Un entier positif inférieur à 128 nécessite un seul octet,. Un entier positif inférieur à nécessite deux octets, etc... Booléens Les booléens sont codés sur un octet. 0 pour FALSE une valeur différente pour TRUE
44 Emises telles que. Chaînes de bits Seul problème: indiquer leur longueur. Le champ longueur indique le nombre d'octets et non le nombre de bits. => Problème du dernier octet. On transmet un octet avant la chaîne de bits proprement dite qui indique combien de bits (entre 0 et 7) du dernier octet ne sont pas utilisés. Exemple: Codage de ' ' En hexadécimal : 07 4F 80. Chaînes d'octets Les octets sont numérotés de gauche à droite ("big endian"). La valeur nulle est repérée par un champ de données inexistant (0 octet de longueur)
45 Sequence et Set - On commence par transmettre le type ou l'étiquette pour la séquence ou l'ensemble, puis la longueur totale du codage de tous les champs, puis les valeurs. - Les champs d'une séquence doivent être envoyés dans l'ordre. Les champs d'un ensemble peuvent être transmis dans un ordre quelconque. - Si deux ou plusieurs champs d'un ensemble ont le même type, ils doivent être étiquetés afin que le récepteur puisse les distinguer les uns des autres. Choice Le codage d'une valeur de type CHOICE est celui de la structure de données qui est réellement envoyée (avec ce codage le récepteur peut interpréter un type indéfini). Exemple: si on a le choix entre un INTEGER et un BOOLEAN, et si la structure de données manipulée est en fait un INTEGER, alors les règles de codage du type INTEGER s'appliquent
46 Approfondissement: Réalisation des codeurs/décodeurs (compilateurs de protocoles) - Le codeur/décodeur doit réaliser la conversion entre la représentation concrète de chaque machine et la syntaxe de transfert. - Pour faciliter ces conversions de syntaxe, il est commode d'adopter une représentation de la syntaxe abstraite dont la structure reflète l'apdu - L'analyseur syntaxique d'une définition de données en syntaxe abstraite génère une structure d'arbre (première étape habituelle d'un compilateur) sur lequel travaille ensuite les convertisseurs
47 Exemple FichePersonnel ::= [APPLICATION 0] IMPLICIT SET {Nom, matricule [0] IMPLICIT INTEGER, comptesalaire[1] CHOICE { bancaire [0] IMPLICIT VisibleString, postal [1] IMPLICIT VisibleString}} Nom ::= [APPLICATION 1] IMPLICIT SEQUENCE { prenom VisibleString, nomfamille VisibleString} Représentation par arbre de type FichePersonnel [APPLICATION 0] IMPLICIT SET Nom [APPLICATION 1] IMPLICIT SEQUENCE matricule [0] IMPLICIT INTEGER comptesalaire [1] CHOICE prenom VisibleString nomfamille VisibleString bancaire [0] IMPLICIT VisibleString postal [1] IMPLICIT VisibleString Arbre des valeurs pour la fichemartin FichePersonnel Nom matricule 3586 comptesalaire prenom Georges nomfamille Martin bancaire postal M
48 Fonctionnement du codeur Première passe 60 * fiche perso 61 * nom 1A F prénom 1A 06 4D E nomfamille E02 matricule A1 * compte D postal. Initialisation des zones valeurs qui correspondent aux symboles terminaux avec détermination des longueurs dans ce cas.. Les zones longueurs des noeuds intermédiaires sont non calculées. Deuxième passe nom 1A F prenom 1A 06 4D E nomfamille E02 matricule A1 09 compte D postal Détermination complète des longueurs
49 Ensemble des outils logiciels Messages entrants Logiciel de décodage Syntaxe X209 Application réseau PDU décodée Arbre de types Logiciel de codage Messages sortants Syntaxe X209 Compilateur Syntaxe abstraite
50 Conclusion ASN1 - ASN1 est uniquement définie pour coder des données transportées dans le mode message. - ASN1 achemine toutes les informations nécessaires pour interpréter de façon non ambigüe toute donnée à la réception => Un peu de perte de place - ASN1 cherche en codant les informations au plus court à optimiser l'encombrement des messages. => Des temps d'exécution plus longs pour coder et décoder un message. => Des performances et des possibilités moyennes. Améliorations - Simplifier les possibilités offertes dans le cadre d'implantations particulières pour aller plus vite (ASN1 pour le temps réel). - Introduire des fonctionnalités pour l'approche appel de procédure distante et l'approche objets répartis (les IDL)
51 Le langage IDL CORBA "Interface Definition Language"
52 Généralités - Le langage utilisé par CORBA pour spécifier les interfaces d'objets: les noms des méthodes, les paramètres, les exceptions... syntaxe abstraite des interfaces d'objets CORBA - L'IDL CORBA n'est pas un langage destiné a produire des programmes exécutables habituels (langage algorithmique). - C'est un langage "déclaratif" qui permet d'établir les correspondances entre un client utilisateur (en langage du programme client) et un objet serveur (défini en langage du serveur). - Sa compilation produit les souches clients et serveurs. - Défini à partir de C++ il présente néanmoins des différences avec C++ (notion de langage "pivot")
53 Les types de base (primitifs) Entiers - short entiers 16 bits -215 à long entiers 32 bits -231 à unsigned short entiers non signés 16 bits 0 à unsigned long entiers non signés 32 bits 0 à Flottants (à la norme IEEE) - float flottants 32 bits (simple précision) - double flottants 64 bits (double précision) Booléens - boolean Deux valeurs TRUE/FALSE Caractères - char Codé sur 8 bits. Octets - octet 8 bits quelconques Type quelconque - any Désigne n'importe quel type
54 Les types complexes - struct Type article struct type_triplet { float x, y, z ; }; - enum Type énuméré enum type_rvb { rouge, vert, bleu }; - union Type variable avec discriminant union montant switch (code_pays) { case FR : unsigned float francs ; case SP : unsigned float pesetas ; case IT : unsigned float lires ; }; - [] Type tableau typedef long tableau[25] - sequence Suite ordonnée de valeurs typedef sequence<long> zone; typedef sequence<sequence<short,5>> zone; - string Type chaîne typedef string<50> chaine ;
55 Les caractéristiques objets Un exemple regroupant les principales caractéristiques module Voiture { struct chassis { float longueur; float largeur; } /* Définition d'une classe cabriolet */ interface Cabriolet : véhicule_thermique ; { attribute readonly integer puissance ; exception Panne { short code_exception ; string explication ; } long accélère ( in short durée); void réparer (
56 Quelques éléments des caractéristiques objets Modules Permettent de structurer une application en regroupant des déclarations de types et d'interfaces logiquement associées. Interfaces Regroupent des attributs et des déclarations d'opérations. Attributs Variables d'un objet accessibles de l'extérieur de l'objet par des méthodes prédéfinies lire : _get et écrire: _set (cas particulier des attributs readonly)
57 Opérations Associées à chaque méthode la spécification des opérations comporte:. un nom, une liste de paramètres avec un atttribut directionnel in, out, inout.. la spécification d'un type d'information attendue en retour (void si aucune information n'est retournée). Exceptions La spécification des exceptions permet de définir des types de problèmes prévus à l'avance. Une exception comporte des informations permettant de préciser la nature du problème. A une exception correspond un traitant d'exception qui est décrit dans le langage d'exécution. On doit spécifier pour chaque opération lève quelles exceptions sont levées (mot clé raises). Héritage Les spécifications d'interfaces peuvent être réutilisées. L'héritage peut être multiple. interface Cabriolet : véhicule_thermique;
58 L'interopérabilité en CORBA - Dans ses premières versions CORBA spécifiait de façon insuffisante les ORB: messages échanges, référence d'objets. => Des implantations de CORBA pouvaient être conformes sans être interopérables. Avec CORBA 2, l'omg a défini des protocoles normalisés d'interactions entre ORB. GIOP 'General Inter ORB Protocol' Un standard de communication générique entre ORB. - Ensemble des messages à utiliser - Syntaxe de transfert des données CDR "Common data representation" IIOP 'Internet Inter ORB Protocol' Une implantation de IIOP sur TCP/IP. ESIOP 'Environment Specific Inter ORB Protocol' Implantation utilisant le RPC DCE
59 GIOP 'General Inter ORB Protocol' But principal: fournir un cadre pour permettre l'invocation d'objets distants quelquesoit l'orb utilisé pour les gérer. Référence Interopérable d'objets IOR Interoperable Object Reference Définit une structure de donnée normalisée utilisable pour identifier de manière unique les objets. - L'adresse de la machine ou se trouve l'orb - Le moyen d'accéder à cet ORB (Ex: son adresse de transport). - Une référence locale de l'objet laissée au libre choix de chaque ORB. Un exemple d'ior 1.0:sunrpc_2_0x61a79_ /rm=tcp_ _3503:IDL%3AMath%3A/ Math/Calcul
60 Protocole GIOP (1) 7 types de messages différents. Request : émis par le client pour invoquer des opérations sur les objets ou serveurs CORBA. - identificateur de requête. - valeurs des paramètres en entrée (mode in et inout). Reply : émis par le serveur en réponse à un message Request. - identificateur de la requête. - valeur des résultats de l'opération ainsi que les paramètres en sortie de celle-ci (mode inout et out). - valeur de l'exception s'il y en a. CancelRequest: un client d'informe un serveur qu'il n'attend plus la réponse à une requête. LocateRequest : localisation d'une référence IOR (si le serveur interrogé est capable de recevoir des requêtes pour l'objet donné) Sinon détermination de la nouvelle adresse IOR permettant d'accéder à l'objet (localisation migration des objets)
61 Protocole GIOP (2) LocateReply : Réponse à un message de type LocateRequest. - Un booléen indique si la référence IOR désigne un objet local. - Si ce booléen est à faux, alors le message contient en plus une référence IOR indiquant la nouvelle localisation de l'objet. CloseConnection : Le serveur interrompt son service. Toutes les requêtes en attente de réponses ne seront jamais traitées. MessageError : Erreur de protocole En réponse à tout message GIOP qui ne peut pas être traité car il est erroné. numéro de version inconnu, type de message inconnu, en-tête erroné...;
62 La syntaxe de transfert de CORBA "CDR Common Data Representation" Le format dans lequel CORBA représente les données décrites en IDL transférées de machine à machine. Les types primitifs - Notion de flot d'octets ("octets streams") qui encodent les données: 0.. n-1 - Contraintes de remplissage des flots d'octets par les différents types (alignement). Type Alignement char 1 octet 1 short 2 unsigned short 2 long 4 unsigned long 4 float 4 double 8 boolean 1 enum
63 Types entiers short: entiers signés en complément à 2 sur 16 bits unsigned short : entiers non signés sur 16 bits long: entiers signés en complément à 2 sur 32 bits unsigned long : entiers non signés sur 32 bits short Deux versions de codage (grand boutiste et petit boutiste) Grand-boutiste Big-Endian octet Petit-boutiste Little-Endian octet MSB 0 LSB 0 LSB 1 MSB 1 MSB 0 LSB 0 long LSB 3 MSB
64 Types flottants Selon la normalisation IEEE signe s, exposant e, mantisse ( "fraction part") f float: flottants sur 32 bits s:1bit, e:8 bits, f:23 bits Valeur := (-1)s * 2(e-127) * (1+f) double: flottants sur 64 bits s:1bit, e:10 bits, f:52 bits Valeur := (-1)s * 2(e-1023) * (1+f) float Grand-boutiste Big-Endian s e2 e1 f1 f2 f3 octet Petit-boutiste Little-Endian e2 s f3 f2 f1 e1 octet s e1 0 f7 0 e2 f1 1 f6 1 f2 2 f5 2 double f3 f4 3 4 f4 f3 3 4 f5 5 f2 5 f6 6 e2 f1 6 f7 7 s e
65 Type octet Valeurs sur 8 bits non interprétées. Aucune conversion n'est appliquée pendant la transmission. On peut par exemple considérer qu'il s'agit d'entiers sur 8 bit non signés. Type booléen Encodés sur un octet. TRUE à la valeur 1 FALSE à la valeur 0. Type caractère Encodés sur un octet. Selon l'alphabet ISO (Latin-1)
66 Les types construits Principe général: réalisation de l'alignement "marshalling" par compilation d'une liste d'appels à des routines de conversion. Pas de contraintes particulières de frontières de mots ou d'octets. Type struct Les composants d'une structure sont rangées dans un message dans l'ordre des déclarations. Type union On code d'abord le discriminant du type union puis on code la représentation de la variable à transmettre selon le type associé au discriminant
67 Type array On code le tableau par une suite d'éléments de même type. Pour les tableaux multidimensionnels on utilise l'ordre des indices. Type sequence On code d'abord le nombre d'éléments dans la séquence par un entier non signé long. Type chaîne On code d'abord la longueur de la chaîne par un entier non signé long. Puis la suite des caractères en ISO latin 1 Type enum On code les types énumérés sur entier non signé long. les valeurs des entiers associés sont déterminés par l'ordre dans lequel apparaît chaque valeur énumérée en commençant par
UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.
UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface
LES TYPES DE DONNÉES DU LANGAGE PASCAL
LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.
COUCHE 7/OSI : TRANSFERT DE FICHIERS FTAM
Service Application : FTAM 175 COUCHE 7/OSI : TRANSFERT DE FICHIERS FTAM Le transfert de fichiers entre systèmes hétérogènes correspond à un besoin fondamental. Il en est de même pour l'accès à des fichiers
Généralités sur le Langage Java et éléments syntaxiques.
Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...
Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java
Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique
Annexe : La Programmation Informatique
GLOSSAIRE Table des matières La Programmation...2 Les langages de programmation...2 Java...2 La programmation orientée objet...2 Classe et Objet...3 API et Bibliothèque Logicielle...3 Environnement de
NFP111 Systèmes et Applications Réparties
NFP111 Systèmes et Applications Réparties 1 de 34 NFP111 Systèmes et Applications Réparties Cours 7 - CORBA/Partie 1 Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon
INITIATION AU LANGAGE C SUR PIC DE MICROSHIP
COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par
Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle
2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA Stéphane Vialle [email protected] http://www.metz.supelec.fr/~vialle 1 Principes 2 Architecture 3 4 Aperçu d utilisation
Codage d information. Codage d information : -Définition-
Introduction Plan Systèmes de numération et Représentation des nombres Systèmes de numération Système de numération décimale Représentation dans une base b Représentation binaire, Octale et Hexadécimale
Intergiciels pour la répartition CORBA : Common Object Request Broker. Patrice Torguet [email protected] Université Paul Sabatier
Intergiciels pour la répartition CORBA : Common Object Request Broker Patrice Torguet [email protected] Université Paul Sabatier Plan du cours 2 Introduction à CORBA Architecture de l ORB Implémentation
CORBA. (Common Request Broker Architecture)
CORBA (Common Request Broker Architecture) Projet MIAGe Toulouse Groupe 2 1 CORBA, introduction (1/4) Les systèmes répartis permettent de créer des applications basées sur des composants auto-gérables,
Évaluation et implémentation des langages
Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation
Composants Logiciels. Le modèle de composant de CORBA. Plan
Composants Logiciels Christian Pérez Le modèle de composant de CORBA Année 2010-11 1 Plan Un rapide tour d horizon de CORBA 2 Introduction au modèle de composant de CORBA Définition de composants CORBA
Chapitre VI- La validation de la composition.
Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions
OCL - Object Constraint Language
OCL - Object Constraint Language Laëtitia Matignon [email protected] Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object
Supervision des réseaux
Supervision des réseaux Thomas Vantroys [email protected] Université de Lille I Laboratoire d Informatique Fondamentale de Lille Bâtiment M3 - Cité Scientifique 59655 Villeneuve d Ascq 2009-2010
Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions
Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental
Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère
L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la
CORBA haute performance
CORBA haute performance «CORBA à 730Mb/s!» Alexandre DENIS PARIS/IRISA, Rennes [email protected] Plan Motivations : concept de grille de calcul CORBA : concepts fondamentaux Vers un ORB haute performance
UE Programmation Impérative Licence 2ème Année 2014 2015
UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie [email protected] 2 Programmation Impérative
Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml
OCL Object Constraint Language Le langage de contraintes d'uml Plan 1. Introduction 2. Les principaux concepts d'ocl Object Constraint Language 1 Object Constraint Language 2 Exemple: une application bancaire
Chapitre 2. Classes et objets
Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons
1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.
1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this
Les chaînes de caractères
Les chaînes de caractères Dans un programme informatique, les chaînes de caractères servent à stocker les informations non numériques comme par exemple une liste de nom de personne ou des adresses. Il
Programmer en JAVA. par Tama ([email protected]( [email protected])
Programmer en JAVA par Tama ([email protected]( [email protected]) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes
TP1 : Initiation à Java et Eclipse
TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les
Bases de programmation. Cours 5. Structurer les données
Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et
Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. [email protected]
. Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 [email protected] LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le
Diagramme de classes
Diagramme de classes Un diagramme de classes décrit les classes et leurs relations (associations, généralisation/spécialisation, ). classe association méthodes attributs héritage Diagramme de classes :
Informatique Générale
Informatique Générale Guillaume Hutzler Laboratoire IBISC (Informatique Biologie Intégrative et Systèmes Complexes) [email protected] Cours Dokeos 625 http://www.ens.univ-evry.fr/modx/dokeos.html
Programmation en Java IUT GEII (MC-II1) 1
Programmation en Java IUT GEII (MC-II1) 1 Christophe BLANC - Paul CHECCHIN IUT Montluçon Université Blaise Pascal Novembre 2009 Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1)
Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e
P r o b l é m a t i q u e OCL : O b j e c t C o n s t r a i n t L a n g u a g e Le langage de contraintes d UML Les différents diagrammes d UML permettent d exprimer certaines contraintes graphiquement
EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE
EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0
Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter
4. Groupement d objets
Conception objet en Java avec BlueJ une approche interactive 4. Groupement d objets Collections et itérateurs David J. Barnes, Michael Kölling version française: Patrice Moreaux Rédigé avec 1.0 Principaux
I. Introduction aux fonctions : les fonctions standards
Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons
Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte
Projet d informatique M1BI : Compression et décompression de texte Le but de ce projet est de coder un programme réalisant de la compression et décompression de texte. On se proposera de coder deux algorithmes
Chapitre 1 : Introduction aux bases de données
Chapitre 1 : Introduction aux bases de données Les Bases de Données occupent aujourd'hui une place de plus en plus importante dans les systèmes informatiques. Les Systèmes de Gestion de Bases de Données
Arbres binaires de recherche
1 arbre des comparaisons 2 recherche dichotomique l'arbre est recalculé à chaque recherche 2 5 3 4 7 9 1 6 1 2 3 4 5 6 7 9 10 conserver la structure d'arbre au lieu de la reconstruire arbre binaire de
Langage et Concepts de ProgrammationOrientée-Objet 1 / 40
Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne [email protected]
Projet de Veille Technologique
Projet de Veille Technologique Programmation carte à puce - JavaCard Ing. MZOUGHI Ines ([email protected]) Dr. MAHMOUDI Ramzi ([email protected]) TEST Sommaire Programmation JavaCard Les prérequis...
Débuter avec EXPRESS. Alain Plantec. 1 Schema 2
Débuter avec EXPRESS Alain Plantec Table des matières 1 Schema 2 2 Entité 2 2.1 Attributs simples................................................ 2 2.2 Attributs collection...............................................
Génie Logiciel avec Ada. 4 février 2013
Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre
SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM
SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM Copyright TECH 2012 Technext - 8, avenue Saint Jean - 06400 CANNES Société - TECHNEXT France - Tel : (+ 33) 6 09 87 62 92 - Fax :
Le service FTP. M.BOUABID, 04-2015 Page 1 sur 5
Le service FTP 1) Présentation du protocole FTP Le File Transfer Protocol (protocole de transfert de fichiers), ou FTP, est un protocole de communication destiné à l échange informatique de fichiers sur
Cours d Algorithmique et de Langage C 2005 - v 3.0
Cours d Algorithmique et de Langage C 2005 - v 3.0 Bob CORDEAU [email protected] Mesures Physiques IUT d Orsay 15 mai 2006 Avant-propos Avant-propos Ce cours en libre accès repose sur trois partis pris
Services OSI. if G.Beuchot. Services Application Services Présentation - Session Services Transport - Réseaux - Liaison de Données - Physique
Services OSI Services Application Services Présentation - Session Services Transport - Réseaux - Liaison de Données - Physique 59 SERVICES "APPLICATION" Architecture spécifique : ALS (Application Layer
INTRODUCTION A JAVA. Fichier en langage machine Exécutable
INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du
Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples
Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation
Algorithme. Table des matières
1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............
Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004
Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)
C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement
C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement des objets d'une classe Utilisation d'une classe Droit
IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C
IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en
Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique
Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation
Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)
Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07
Cours 1 : Qu est-ce que la programmation?
1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas [email protected] Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre
Module BD et sites WEB
Module BD et sites WEB Cours 8 Bases de données et Web Anne Doucet [email protected] 1 Le Web Architecture Architectures Web Client/serveur 3-tiers Serveurs d applications Web et BD Couplage HTML-BD
Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme
Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes [email protected] 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation
TP 1. Prise en main du langage Python
TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer
Logiciel de Base. I. Représentation des nombres
Logiciel de Base (A1-06/07) Léon Mugwaneza ESIL/Dépt. Informatique (bureau A118) [email protected] I. Représentation des nombres Codage et représentation de l'information Information externe formats
Plan du Travail. 2014/2015 Cours TIC - 1ère année MI 30
Plan du Travail Chapitre 1: Internet et le Web : Définitions et historique Chapitre 2: Principes d Internet Chapitre 3 : Principaux services d Internet Chapitre 4 : Introduction au langage HTML 2014/2015
UE C avancé cours 1: introduction et révisions
Introduction Types Structures de contrôle Exemple UE C avancé cours 1: introduction et révisions Jean-Lou Desbarbieux et Stéphane Doncieux UMPC 2004/2005 Introduction Types Structures de contrôle Exemple
La carte à puce. Jean-Philippe Babau
La carte à puce Jean-Philippe Babau Département Informatique INSA Lyon Certains éléments de cette présentation sont issus de documents Gemplus Research Group 1 Introduction Carte à puce de plus en plus
Java Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets
Licence Professionnelle CISII, 2009-2010 Cours 2 : Classes et Objets 1 Classes et Objets Objectifs des LOO : - Manipuler des objets - Découper les programmes suivant les types des objets manipulés - Regrouper
OASIS www.oasis-open.org/committees/xacml/docs/docs.shtml Date de publication
Statut du Committee Working Draft document Titre XACML Language Proposal, version 0.8 (XACML : XML Access Control Markup Language) Langage de balisage du contrôle d'accès Mot clé Attestation et sécurité
Algorithmique des Systèmes Répartis Protocoles de Communications
Algorithmique des Systèmes Répartis Protocoles de Communications Master Informatique Dominique Méry Université de Lorraine 1 er avril 2014 1 / 70 Plan Communications entre processus Observation et modélisation
RMI le langage Java XII-1 JMF
Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine
Présentation du modèle OSI(Open Systems Interconnection)
Présentation du modèle OSI(Open Systems Interconnection) Les couches hautes: Responsables du traitement de l'information relative à la gestion des échanges entre systèmes informatiques. Couches basses:
Protocoles réseaux. Abréviation de Binary Digit. C'est la plus petite unité d'information (0, 1).
Chapitre 5 Protocoles réseaux Durée : 4 Heures Type : Théorique I. Rappel 1. Le bit Abréviation de Binary Digit. C'est la plus petite unité d'information (0, 1). 2. L'octet C'est un ensemble de 8 bits.
Rappels Entrées -Sorties
Fonctions printf et scanf Syntaxe: écriture, organisation Comportement Données hétérogènes? Gestion des erreurs des utilisateurs 17/11/2013 Cours du Langage C [email protected] ibrahimguelzim.atspace.co.uk
Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2
éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........
Chapitre 10 Arithmétique réelle
Chapitre 10 Arithmétique réelle Jean Privat Université du Québec à Montréal INF2170 Organisation des ordinateurs et assembleur Automne 2013 Jean Privat (UQAM) 10 Arithmétique réelle INF2170 Automne 2013
Héritage presque multiple en Java (1/2)
Héritage presque multiple en Java (1/2) Utiliser deux classes ou plus dans la définition d'une nouvelle classe peut se faire par composition. class Etudiant{ int numero; Diplome d; float passeexamen(examen
Utilisation d objets : String et ArrayList
Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons
UML et les Bases de Données
CNAM UML et les Bases de Données UML et les Bases de Données. Diagramme de classes / diagramme d objets (UML)...2.. Premier niveau de modélisation des données d une application...2.2. Les éléments de modélisation...2.2..
Recherche dans un tableau
Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6
Structure d un programme et Compilation Notions de classe et d objet Syntaxe
Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types
basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML
basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML http://olivier-augereau.com Sommaire Introduction I) Les bases II) Les diagrammes
Université de Bangui. Modélisons en UML
Université de Bangui CRM Modélisons en UML Ce cours a été possible grâce à l initiative d Apollinaire MOLAYE qui m a contacté pour vous faire bénéficier de mes connaissances en nouvelles technologies et
18 TCP Les protocoles de domaines d applications
18 TCP Les protocoles de domaines d applications Objectifs 18.1 Introduction Connaître les différentes catégories d applications et de protocoles de domaines d applications. Connaître les principaux protocoles
Patrons de Conception (Design Patterns)
Patrons de Conception (Design Patterns) Introduction 1 Motivation Il est difficile de développer des logiciels efficaces, robustes, extensibles et réutilisables Il est essentiel de comprendre les techniques
Programmation répartie: Objet distribué. CORBA (Common Object Request Broker Architectur)
Programmation répartie: Objet distribué CORBA (Common Object Request Broker Architectur) Plan du cours Introduction définitions problématiques architectures de distribution Distribution intra-applications
Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)
Base de l'informatique Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB) Généralité Comment fonctionne un ordinateur? Nous définirons 3 couches Le matériel
REALISATION d'un. ORDONNANCEUR à ECHEANCES
REALISATION d'un ORDONNANCEUR à ECHEANCES I- PRÉSENTATION... 3 II. DESCRIPTION DU NOYAU ORIGINEL... 4 II.1- ARCHITECTURE... 4 II.2 - SERVICES... 4 III. IMPLÉMENTATION DE L'ORDONNANCEUR À ÉCHÉANCES... 6
EBS 204 E C B S. Publication : Novembre 96
EBS 204 E C B S Publication : Novembre 96 Traduction française de la norme internationale produite par le CENB en novembre 1996 0 INTRODUCTION 1 DOMAINE D'APPLICATION 2 REFERENCES NORMATIVES 3 DEFINITIONS
GENERALITES. COURS TCP/IP Niveau 1
GENERALITES TCP/IP est un protocole inventé par les créateurs d Unix. (Transfer Control Protocol / Internet Protocole). TCP/IP est basé sur le repérage de chaque ordinateur par une adresse appelée adresse
Cours de Génie Logiciel
Cours de Génie Logiciel Sciences-U Lyon Diagrammes UML (2) http://www.rzo.free.fr Pierre PARREND 1 Avril 2005 Sommaire Les Diagrammes UML Diagrammes de Collaboration Diagrammes d'etats-transitions Diagrammes
RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.
RMI Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. Méthode proche de RPC. Outils et classes qui rendent l'implantation d'appels de méthodes d'objets distants aussi simples
Plan. Programmation Internet Cours 3. Organismes de standardisation
Plan Programmation Internet Cours 3 Kim Nguy ên http://www.lri.fr/~kn 1. Système d exploitation 2. Réseau et Internet 2.1 Principes des réseaux 2.2 TCP/IP 2.3 Adresses, routage, DNS 30 septembre 2013 1
Qu'est-ce que le BPM?
Qu'est-ce que le BPM? Le BPM (Business Process Management) n'est pas seulement une technologie mais, dans les grandes lignes, une discipline de gestion d'entreprise qui s'occupe des procédures contribuant
Représentation d un entier en base b
Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir
Chapitre I Notions de base et outils de travail
Chapitre I Notions de base et outils de travail Objectifs Connaître les principes fondateurs et l historique du langage Java S informer des principales caractéristiques du langage Java Connaître l environnement
Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7
Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin
Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle - 2012-2013 P. Bonnet
Programmation VBA Pierre BONNET 21 La programmation VBA Historiquement, la programmation sous Excel avait comme fonction d'automatiser une succession d'actions faites dans la feuille à l'aide de la souris.
Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java
Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page
Cours Informatique 1. Monsieur SADOUNI Salheddine
Cours Informatique 1 Chapitre 2 les Systèmes Informatique Monsieur SADOUNI Salheddine Un Système Informatique lesystème Informatique est composé de deux parties : -le Matériel : constitué de l unité centrale
Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.
Seance 2: Complétion du code de jeu. (durée max: 2h) Mot clé const et pointeurs: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Implémentez jeu_recupere_piece
L ADMINISTRATION Les concepts
L ADMINISTRATION Les concepts Complexité des réseaux et systèmes besoins d outils d aide à la gestion Objectifs Superviser le fonctionnement du S.I. et des réseaux Optimiser l utilisation des ressources
