Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année...

31
Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année 2000 2001

Transcript of Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année...

Page 1: Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année 2000 2001.

Applications Client ServeurIllustration avec XDR/RPC

et ASN.1

Anne Marie Dery

Module SAR1

Année 2000 2001

Page 2: Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année 2000 2001.

De la spécification des données au transfert de données

Les règles d’encodage

Page 3: Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année 2000 2001.

Règles d’encodage

Règles utilisées pour transformer les données spécifiées en unformat standard qui peut être décodé sur n’importe quel système.

Le choix des règles est laissé au concepteur du protocole.  Les règles d’encodage ASN.1  standardisées sont Basic Encoding Rules  (BER) début 1980

Distinguished Encoding Rules  (DER)Canonical Encoding Rules (CER)

Packed Encoding Rules (PER) . 

Page 4: Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année 2000 2001.

Quelles ER ? Quand ?

BER dans un grand champ d’applications : SNMP Simple Network Management ProtocoMHS Message Handling Services TSAPI (contrôle des interactions telephone/computer)  

 DER = un BER spécialisé pour les applications sécurisées(cryptographie) e-commerce, CER similaire à DER, pour des très gros messages à encoder au fur et à mesure.PER plus récent avec un algorithmes qui implique un résultatrapide et plus compact dans des applications style contrôle aérienet télécommunications  audio-visuelle.Et Lean ED encodage de petite taille avec de hautes performances au détriment des possibilités de diagnostic

Page 5: Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année 2000 2001.

De ASN.1 v.1988 à ASN.1 v.1997

Page 6: Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année 2000 2001.

Pourquoi une nouvelle version ?

Une grammaire ambiguë

Problème d’utilisation des macros

Ambiguïté pour encoder et décoder les types ouverts

Une révision de la notation en 1997

Page 7: Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année 2000 2001.

ASN.1 v.1988 vs ASN.1 v.1997

ASN.1 1988 défini dans Rec X.208, le BER dans Rec X.209ASN.1 1997 dans Rec X.680 et 683, le BER dans Rec X.690

Impossible de déterminer sur le flux de bits transmis le ASN.1utilisé dans la spécification

mais suppression d’ambiguïtés de la première définitionremplacement des macros, du ANY,ANY DEFINED BYchangement des valeurs de CHOICEobligation de donner les noms des champs des typesstructurésde nouveaux types de chaînes

Page 8: Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année 2000 2001.

Pour passer de v.1988 à v.1997

IUT-T Recommandation X.680 clause A.3 Migration to the Current ASN.1 NotationAnnexe E Superseded FeaturesAnnexe H Les types ouverts

1. Vérifier la présence des identificateurs de champs dans les types structurés

2. Ajouter un : après les identificateurs dansune valeur de CHOICE

3. Remplacer les ANY par les nouveaux types ouverts4. Remplacer les notations de macro par la notation de

classe d ’objets ou celle des types paramétrés

Page 9: Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année 2000 2001.

Compatibilité des 2 versions

Par importation et exportation de modulesen suivant les consignes de la clause A.2import de macros impossible en v.1997import de nouveaux types impossible en v.1988

Incompatible dans un module

Page 10: Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année 2000 2001.

Les spécificités de v.1997

Page 11: Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année 2000 2001.

Types extensibles

ENUMERATED, SEQUENCE, SET, CHOICE

State ::= ENUMERATED{on, off, out-of-order, …, stand-by}Dimension ::= SET { x INTEGER,

y INTEGER,…,z INTEGER}

utilisé pour la gestion de version

très proche de la notion d ’héritage

Page 12: Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année 2000 2001.

Un exemple

Page 13: Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année 2000 2001.

Object Information

FUNCTION ::= CLASS { &ArgumentType, &ResultType DEFAULT NULL, &Errors ERROR OPTIONAL,&code INTEGER (0..MAX) UNIQUE}

addition FUNCTION ::= { &ArgumentType SEQUENCE {a INTEGER,

b INTEGER},&ResultType INTEGER, &code 1}

Page 14: Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année 2000 2001.

Object Information

FUNCTION ::= CLASS { &code INTEGER (0..MAX) UNIQUE, &Alphabet BMPString

DEFAULT {Latin1 INTERSECTION Level1}, &ArgumentType , &SupportedArguments &ArgumentType OPTIONAL, &ResultType DEFAULT NULL, &result-if-error &ResultType DEFAULT NULL, &associated-function FUNCTION OPTIONAL, &Errors ERROR DEFAULT {rejected-argument|memory-fault}

Page 15: Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année 2000 2001.

Exemple

addition FUNCTION ::= { &ArgumentType Pair, &SupportedArguments &ResultType INTEGER, &code 1}

Page 16: Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année 2000 2001.

Significations de la syntaxe

If the field name and if it is then the field of the starts with followed by object contains &Upper-case nothing a type &lower-case a type, a type reference

(Upper-case) a fixed-type value &lower-case a type field a variable-type value

(&Upper-case) &Upper-case a type or a type reference

(Upper-case) a fixed-type value set &Upper-case a type field

(&Upper-case) a variable-type value

set

Page 17: Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année 2000 2001.

Significations de la syntaxe

If the field name and if it is then the field of the starts with followed by object contains

&lower-case a class name (UPPER-CASES) an information object

&Upper-case a class name (UPPER-CASES) an information object

set

Page 18: Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année 2000 2001.

Exemple en x500

ATTRIBUTE ::= CLASS { &derivation ATTRIBUTE OPTIONAL, &Type OPTIONAL, &equality-match MATCHING-RULE OPTIONAL, &ordering-match MATCHING-RULE OPTIONAL, &substrings-match MATCHING-RULE OPTIONAL, &single-valued BOOLEAN DEFAULT FALSE, &collective BOOLEAN DEFAULT FALSE, &no-user-modification BOOLEAN DEFAULT FALSE, &usage Attribute-Usage DEFAULT userApplications, &id OBJECT IDENTIFIER UNIQUE }

Page 19: Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année 2000 2001.

+ une syntaxe

WITH SYNTAX { [SUBTYPE OF &derivation] [WITH SYNTAX &Type] [EQUALITY MATCHING RULE &equality-match] [ORDERING MATCHING RULE &ordering-match] [SUBSTRINGS MATCHING RULE &substrings-match] [SINGLE VALUE &single-valued] [COLLECTIVE &collective] [NO USER MODIFICATION &no-user-modification] [USAGE &usage]

ID &id }

Page 20: Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année 2000 2001.

Une valeur

AttributeUsage ::= ENUMERATED { userApplications(0), directoryOperation(1), distributedOperation(2), dSAOperation(3) }  

Page 21: Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année 2000 2001.

Des utilisations de ASN.1

Depuis toujours en administration de réseaux avec SNMP etGDMO, en X500 et X400…et maintenant partout autour de vous

Dans les téléphones cellulaires (Amerique du nord, Europe, et Japon) qui utilisent TCAP décrit en ASN.1 / BER

la Federal Aviation Administration  et l’International Civil Aviation utilisent un protocole codé en PER

DEC, Hewlett  Packard, IBM, Sun and Xeroxdéfinissent l’interface standard DPA  pour leur nouvelles imprimantes avec ASN.1.  

Page 22: Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année 2000 2001.

Des environnements de programmationVendus par des industriels

OSS Nokalva  http://www.oss.com.products

Outils : Checker (free), Compiler, Encoder/decoder

Langages visés :C++ Borland VisualAge  sous WindowsNT Java, C, Pascal, Cobol

Page 23: Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année 2000 2001.

Logiciels libres

Seulement des checkers

et mavros

Page 24: Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année 2000 2001.

Des références

Un glossaire hyper pratique :

http://www.oss.com/asn1/glossary.html#A

Des référencs de livres : http://www.oss.com/asn1/booksintro.html

Des publications : http://www.oss.com/asn1/publications.html

Accès aux normes :

http://asn1.elibel.tm.fr/en/standards/index.htm#x690

Page 25: Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année 2000 2001.

Standards internationaux ITU-T Recommandations

X.680 : 8824-1:1998, Abstract Syntax Notation One (ASN.1):   Specification of Basic Notation X.681 : 8824-2:1998, Abstract Syntax Notation One (ASN.1): Information Object Specification X.682 : 8824-3:1998, Abstract Syntax Notation One (ASN.1): Constraint  Specification X.683 : Parameterization of ASN.1 Specifications X.690 : ASN.1 Encoding Rules: Specification of Basic Encoding Rules (BER), Canonical   Encoding Rules (CER) and Distinguished Encoding Rules   (DER) X.691 : ASN.1 Encoding Rules: Specification of Packed Encoding Rules (PER)

Page 26: Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année 2000 2001.

Tout ce que je ne vous ai pas dit

Types de ChaînesCOMPONENT OFContraintes SEQUENCE SIZE(103) OF TypeInteger(1..103)Two ::= INTEGER(2)Wednesday ::= Day(wednesday)

264

Page 27: Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année 2000 2001.

ANY et ANY DEFINED BY

v ANY ::= INTEGER:12T::= SEQUENCE { a BOOLEAN,

b REAL}w ANY ::= T:{a TRUE, b{314,10,-2}}

Error ::= SEQUENCE{code INTEGER,parameter ANY DEFINED BY code}

0 NULL1 INTEGER2 SEQUENCE OF INTEGER3 SEQUENCE {param1 T1, param2 T2}

Page 28: Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année 2000 2001.

XDR/RPC

Page 29: Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année 2000 2001.

Une première approche d ’ASN.1

Page 30: Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année 2000 2001.

ASN.1 plus qu’un simple langage de spécifications

Page 31: Applications Client Serveur Illustration avec XDR/RPC et ASN.1 Anne Marie Dery Module SAR1 Année 2000 2001.

Une bibliothèque d’exécution pour RPCGEN