Annotation of 43BSDReno/contrib/isode-beta/doc/practical-osi1/a-abstract.tex, revision 1.1.1.1

1.1       root        1: %\begin{bwslide}
                      2: %\part {ABSTRACT SYNTAX}\bf
                      3: %\end{bwslide}
                      4: 
                      5: 
                      6: \begin{bwslide}
                      7: \part  {ABSTRACT SYNTAX}\bf
                      8: 
                      9: \vskip.5in
                     10: \diagram[p]{figureA-26}
                     11: \end{bwslide}
                     12: 
                     13: 
                     14: \begin{bwslide}
                     15: \ctitle {ABSTRACT SYNTAX}
                     16: 
                     17: \begin{nrtc}
                     18: \item  UTILIZED THROUGHOUT THE UPPER LAYERS
                     19: \item  NOT A LAYER ITSELF
                     20: \item  IMPORTANT TO UNDERSTANDING REMAINING UPPER LAYERS
                     21: \end{nrtc}
                     22: \end{bwslide}
                     23: 
                     24: 
                     25: \begin{bwslide}
                     26: \ctitle {ABSTRACT SYNTAX\\PURPOSE}
                     27: 
                     28: \begin{nrtc}
                     29: \item  DEFINES STRUCTURE FOR UNITS OF DATA BEING EXCHANGED
                     30: \item  INSURES EQUIVALENT UNDERSTANDING OF DATA ON BOTH ENDS OF A CONNECTION
                     31: \item  \underline{BOTTOM LINE}: SEPARATES PROTOCOL STRUCTURE FROM 
                     32:                        INTERNAL STRUCTURE
                     33: \end{nrtc}
                     34: \end{bwslide}
                     35: 
                     36: 
                     37: %\begin{bwslide}
                     38: %\ctitle {ABSTRACT DATA TYPES}
                     39: %
                     40: %\begin{nrtc}
                     41: %\item   REMOTE OPERATIONS ARE A MECHANISM BY WHICH LOOSELY COUPLED SYSTEMS
                     42: %        INTERACT
                     43: %
                     44: %\item   BUT, REMOTE OPERATIONS ARE ONLY ONE PART OF A LARGER PICTURE HOWEVER
                     45: %
                     46: %\item   THE FUNDAMENTAL CONCEPT IS THAT OF THE \emph{ABSTRACT DATA TYPE}
                     47: %\end{nrtc}
                     48: %\end{bwslide}
                     49: 
                     50: 
                     51: \begin{bwslide}
                     52: \ctitle {CHARACTERISTICS}
                     53: 
                     54: \begin{nrtc}
                     55: \item  GENERALLY HAVE FORMAL DESCRIPTIONS
                     56: \item  \underline{BIG ADVANTAGE}: CAN BE HANDLED WITH PROTOCOL ``TOOLS''
                     57: \item  THIS WILL BE AN IMPORTANT CONCEPT AS WE PROCEED
                     58: \end{nrtc}
                     59: \end{bwslide}
                     60: 
                     61: 
                     62: %\begin{bwslide}
                     63: %\ctitle {DATA REPRESENTATIONS}
                     64: %
                     65: %\begin{nrtc}
                     66: %\item ABSTRACT
                     67: %      \begin{nrtc}
                     68: %      \item   TYPES OF DATA DESCRIBED INDEPENDENT OF INTERNAL REPRESENTATION
                     69: %      \end{nrtc}
                     70: %\item CONCRETE
                     71: %      \begin{nrtc}
                     72: %      \item   AN ACTUAL \underline{INTERNAL} DATA INSTANCE 
                     73: %                      {\em (FORM NOT DEFINED BY OSI)}
                     74: %      \end{nrtc}
                     75: %\end{nrtc}
                     76: %\end{bwslide}
                     77: 
                     78: 
                     79: \begin{bwslide}
                     80: \ctitle {PROPERTIES OF ABSTRACT DATA TYPES:\\ REPRESENTATION}
                     81: 
                     82: \begin{nrtc}
                     83: \item   DATA STRUCTURES IN PROGRAMMING LANGUAGES HAVE A \emph{CONCRETE}
                     84:         REPRESENTATION
                     85:     \begin{nrtc}
                     86:     \item       WHICH IS DEFINED BY THE PROGRAMMING LANGUAGE AND THE
                     87:                 UNDERLYING HARDWARE
                     88: 
                     89:     \item       e.g., BYTE-ORDERING, WORD SIZE, etc.
                     90:     \end{nrtc}
                     91: 
                     92: \item   THE CORRESPONDING ABSTRACT DATA TYPE IS DEFINED IN AN
                     93:         IMPLEMENTATION-INDEPENDENT FASHION
                     94:     \begin{nrtc}
                     95:     \item       TERMED THE \emph{ABSTRACT SYNTAX}
                     96:     \end{nrtc}
                     97: 
                     98: \item   AN APPLICATION CAN EXPECT THIS TO BEHAVE CONSISTENLY REGARDLESS OF THE
                     99:         HARDWARE ON WHICH IT IS RUNNING
                    100: \end{nrtc}
                    101: \end{bwslide}
                    102: 
                    103: 
                    104: \begin{bwslide}
                    105: \ctitle {TRANSFER SYNTAX}
                    106: 
                    107: \begin{nrtc}
                    108: \item  RULES USED TO MAP BETWEEN
                    109:        \begin{nrtc}
                    110:        \item   ABSTRACT SYNTAX, and
                    111:        \item   ``BITS ON THE WIRE''
                    112:        \end{nrtc}
                    113: \item  USED TO PRODUCE UNAMBIGUOUS REPRESENTATION OF DATA ON A CONNECTION
                    114: \item  OVERCOMES DIFFERENCES IN MACHINE ARCHITECTURES FOR COMMUNICATIONS
                    115: \end{nrtc}
                    116: \end{bwslide}
                    117: 
                    118: 
                    119: \begin{bwslide}
                    120: \ctitle {SCENARIO}
                    121: 
                    122: \begin{nrtc}
                    123: \item  CONCRETE DATA VALUES ARE MAPPED TO ABSTRACT SYNTAX FOR DATA TYPES
                    124: \item  TRANSFER SYNTAX IS APPLIED TO THE COMBINED ABSTRACT SYNTAX AND
                    125:        THE DATA VALUES
                    126: \item  RESULTS IN UNAMBIGUOUS DATA STREAM TO BE TRANSMITTED
                    127:        \begin{nrtc}
                    128:        \item   CALLED: {\em SERIALIZING}
                    129:        \end{nrtc}
                    130: \item  {\em REVERSE PROCESS FOR RECEIVED DATA}
                    131: \end{nrtc}
                    132: \end{bwslide}
                    133: 
                    134: 
                    135: %\begin{bwslide}
                    136: %\ctitle {PROPERTIES OF ABSTRACT DATA TYPES:\\ OBJECT MODEL}
                    137: %
                    138: %\begin{nrtc}
                    139: %\item   SINCE OPERATIONS INTRODUCE A LEVEL OF INDIRECTION,
                    140: %        USING ABSTRACT DATA TYPES RATHER THAN CONCRETE DATA STUCTURES
                    141: %        PERMITS ACCESS TO DATA STRUCTURES WITHOUT REGARD TO THEIR ACTUAL
                    142: %        IMPLEMENTATION
                    143: %\end{nrtc}
                    144: %\end{bwslide}
                    145: 
                    146: 
                    147: %\begin{bwslide}
                    148: %\ctitle {PROPERTIES OF ABSTRACT DATA TYPES:\\ OPERATIONS}
                    149: %
                    150: %\begin{nrtc}
                    151: %\item   ACCESS TO AN ABSTRACT DATA TYPE IS DEFINED BY A SET OF PRIMITIVE
                    152: %        ACTIONS
                    153: %
                    154: %\item   EACH PRIMITIVE ACTION IS TERMED AN \emph{OPERATION}
                    155: %
                    156: %\item   THIS SET OF OPERATIONS DEFINES THE COMPLETE BEHAVIOR OF AN ABSTRACT
                    157: %        DATA TYPE
                    158: %\end{nrtc}
                    159: %\end{bwslide}
                    160: 
                    161: 
                    162: \begin{bwslide}
                    163: \ctitle {SYNTAXES}
                    164: 
                    165: \begin{nrtc}
                    166: \item  {\em ASN.1} IS THE ONLY ABSTRACT SYNTAX DEFINED TODAY
                    167:        \begin{nrtc}
                    168:        \item   {\em ABSTRACT SYNTAX NOTATION 1}
                    169:        \end{nrtc}
                    170: \item  {\em BER} IS THE ONLY TRANSFER SYNTAX DEFINED TODAY
                    171:        \begin{nrtc}
                    172:        \item   {\em BASIC ENCODING RULES}
                    173:        \end{nrtc}
                    174: %\item THAT IS, {\em DEFINED IN OSI}
                    175: \end{nrtc}
                    176: \end{bwslide}
                    177: 
                    178: 
                    179: \begin{bwslide}
                    180: \ctitle {ABSTRACT SYNTAX NOTATION ONE (ASN.1)}
                    181: 
                    182: \begin{nrtc}
                    183: \item  DESCRIPTIVE LANGUAGE USED TO DEFINE DATA TYPES
                    184: \item  DEFINES
                    185:        \begin{nrtc}
                    186:        \item   SET OF PRIMITIVE DATA TYPES
                    187:        \item   FACILITY TO CONSTRUCT NEW ELEMENTS
                    188:        \end{nrtc}
                    189: \item  A FORMAL DESCRIPTION LANGUAGE
                    190:        \begin{nrtc}
                    191:        \item   HAS A FORMAL GRAMMER
                    192:        \end{nrtc}
                    193: \item  GRAMMAR IS DYNAMICALLY EXTENTABLE
                    194: \item  USED TO SPECIFY NEW PROTOCOLS
                    195:        \begin{nrtc}
                    196:        \item   INTENDED TO BE ``CLEAR--TO--READ''
                    197:        \item   NOT SPECIFIC TO MACHINE--ORIENTED STRUCTURES AND RESTRICTIONS
                    198:        \end{nrtc}
                    199: \end{nrtc}
                    200: \end{bwslide}
                    201: 
                    202: 
                    203: %\begin{bwslide}
                    204: %\ctitle {ASN.1 IS IMPORTANT}
                    205: %
                    206: %\begin{nrtc}
                    207: %\item UNDERSTANDING ASN.1 IS A PREREQUISITE TO UNDERSTANDING THE 
                    208: %      OSI UPPER LAYERS AND TO BUILDING OSI APPLICATIONS
                    209: %\end{nrtc}
                    210: %\end{bwslide}
                    211: 
                    212: 
                    213: %\begin{bwslide}
                    214: %\ctitle {ASPHALT SYNTAX NOTATION ONE}
                    215: %
                    216: %\em{BECAUSE IT IS NOT CONCRETE}
                    217: %
                    218: %\end{bwslide}
                    219: 
                    220: 
                    221: \begin{bwslide}
                    222: \ctitle {BASIC ENCODING RULES (BER)}
                    223: 
                    224: \begin{nrtc}
                    225: \item  RULES FOR ENCODING ASN.1 VALUES AS STREAMS OF BITS
                    226: \item  DEFINES
                    227:        \begin{nrtc}
                    228:        \item   SMALL SET OF GENERAL ENCODING RULES
                    229:        \item   RULES CAN BE APPLIED RECURSIVELY TO ENCODE COMPLEX TYPES
                    230:        \end{nrtc}
                    231: \item  TAG, LENGTH, VALUE (TLV) ENCODING SCHEME
                    232: \item  VERY GENERAL
                    233: \item  NOT AS PERFORMANT AS OTHER TECHNOLOGIES
                    234: \end{nrtc}
                    235: \end{bwslide}
                    236: 
                    237: 
                    238: \begin{bwslide}
                    239: \ctitle {BER IS NOT AS IMPORTANT}
                    240: 
                    241: \begin{nrtc}
                    242: \item  SPECIFICS ARE NOT AS IMPORTANT AS ASN.1
                    243: \item  UNDERSTANDING THE CONCEPTS IS IMPORTANT
                    244: \item  FEW NEED TO UNDERSTAND THE DETAILS
                    245: \end{nrtc}
                    246: \end{bwslide}
                    247: 
                    248: 
                    249: \begin{bwslide}
                    250: \ctitle {FUTURE SYNTAXES}
                    251: 
                    252: \begin{nrtc}
                    253: \item  MORE SYNTAXES MAY BE DEFINED IN THE FUTURE
                    254: \item  MORE ABSTRACT SYNTAXES:
                    255:        \begin{nrtc}
                    256:        \item   {\em ASN.2, ASN.3, \ldots ?}
                    257:        \end{nrtc}
                    258: \item  OTHER TRANSFER SYNTAXES:
                    259:        \begin{nrtc}
                    260:        \item   COMPRESSION
                    261:        \item   ENCRYPTION
                    262:        \end{nrtc}
                    263: \end{nrtc}
                    264: \end{bwslide}
                    265: 
                    266: 
                    267: \begin{bwslide}
                    268: \ctitle {ASN.1 NOTATION}
                    269: 
                    270: \begin{nrtc}
                    271: \item  MODULES GROUP AND NAME RELATED DEFINITIONS:
                    272: \begin{quote}\small\begin{verbatim}
                    273: <<module>> DEFINITIONS ::=
                    274: BEGIN
                    275: 
                    276: <<linkage>>
                    277: 
                    278: <<declarations>>
                    279: 
                    280: END
                    281: \end{verbatim}\end{quote}
                    282: \item  LINKAGE REFERENCES DECLARATIONS IN OTHER MODULES
                    283: \item  DECLARATIONS ARE THE DEFINITIONS FOR THIS MODULE:
                    284:        \begin{nrtc}
                    285:        \item   TYPES --- DATA STRUCTURES
                    286:        \item   VALUES --- INSTANCES OF TYPES
                    287:        \item   MACROS --- LANGUAGE EXTENSIONS
                    288:        \end{nrtc}
                    289: \end{nrtc}
                    290: \end{bwslide}
                    291: 
                    292: 
                    293: \begin{bwslide}
                    294: \ctitle {EXAMPLE --- MODULE NAME}
                    295: 
                    296: \begin{quote}\small\begin{verbatim}
                    297: DirectorySystemProtocol {joint-iso-ccitt ds(5) modules(1) dsp(12)}
                    298: DEFINITIONS ::=
                    299: 
                    300: ...
                    301: \end{verbatim}\end{quote}
                    302: \end{bwslide}
                    303: 
                    304: \begin{bwslide}
                    305: \ctitle{EXAMPLE --- LINKAGE}
                    306: 
                    307: \begin{quote}\small\begin{verbatim}
                    308: ...
                    309: 
                    310: EXPORTS
                    311:     directorySystemAC, chainedReadASE, ... ;
                    312: 
                    313: IMPORTS
                    314:     distributedOperations, directoryAbstractService
                    315:         FROM UsefulDefinitions {joint-iso-ccitt ds(5) modules(1) 
                    316:                                               usefulDefinitions(0)} ;
                    317: 
                    318: ...
                    319: \end{verbatim}\end{quote}
                    320: \end{bwslide}
                    321: 
                    322: 
                    323: \begin{bwslide}
                    324: \ctitle {DECLARATION CONVENTIONS}
                    325: 
                    326: \begin{nrtc}
                    327: \item  TYPES
                    328:        \begin{nrtc}
                    329:        \item   NAMES START WITH UPPERCASE LETTERS
                    330:        \begin{quote}\small\begin{verbatim}
                    331:        TimeLimit
                    332:        \end{verbatim}\end{quote}
                    333:        \end{nrtc}
                    334: \item  VALUES
                    335:        \begin{nrtc}
                    336:        \item   NAMES START WITH LOWERCASE LETTERS
                    337:        \begin{quote}\small\begin{verbatim}
                    338:        actualTimeLimit
                    339:        \end{verbatim}\end{quote}
                    340:        \end{nrtc}
                    341: \item  MACROS
                    342:        \begin{nrtc}
                    343:        \item   NAMES ARE ALL UPPER CASE
                    344:        \begin{quote}\small\begin{verbatim}
                    345:        SIGNED
                    346:        \end{verbatim}\end{quote}
                    347:        \item   APPEAR LIKE OTHER ASN.1 KEYWORDS
                    348:        \end{nrtc}
                    349: \end{nrtc}
                    350: \end{bwslide}
                    351: 
                    352: 
                    353: %\begin{bwslide}
                    354: %\ctitle {NOTE}
                    355: %
                    356: %\begin{nrtc}
                    357: %\item TYPES
                    358: %      \begin{nrtc}
                    359: %      \item   SIMPLE
                    360: %      \item   OBJECT IDENTIFIERS
                    361: %      \item   CONSTRUCTOR TYPES
                    362: %      \item   TAGGED TYPES
                    363: %      \item   META TYPES
                    364: %      \item   ENCRYPTED
                    365: %      \item   EXTERNAL
                    366: %      \item   SUBTYPES
                    367: %      \end{nrtc}
                    368: %\item VALUES
                    369: %      \begin{nrtc}
                    370: %      \item   ?
                    371: %      \end{nrtc}
                    372: %\end{nrtc}
                    373: %\end{bwslide}
                    374: 
                    375: 
                    376: \begin{bwslide}
                    377: \ctitle{EXAMPLE --- TYPES \& VALUES}
                    378: 
                    379: \begin{quote}\small\begin{verbatim}
                    380: Multiple-defined-contexts ::= BOOLEAN
                    381: 
                    382: simple Multiple-defined-contexts ::= FALSE -- or TRUE
                    383: 
                    384: ContentLength ::= INTEGER
                    385: 
                    386: RegistrationMailType ::= 
                    387:     INTEGER {
                    388:         non-registered-mail (0),
                    389:         registered-mail (1),
                    390:         registered-mail-to-address-in-person (2)
                    391:     }
                    392: 
                    393: mymail RegistrationMailType ::=
                    394:         registered-mail  -- or 1
                    395: \end{verbatim}\end{quote}
                    396: \end{bwslide}
                    397: 
                    398: 
                    399: \begin{bwslide}
                    400: \ctitle{EXAMPLES --- TYPES \& VALUES (cont.)}
                    401: \begin{quote}\small\begin{verbatim}
                    402: Attribute-Groups ::=
                    403:         BITSTRING {
                    404:             storage (0), security (1), private (2)
                    405:         }
                    406: 
                    407: groups Attribute-Groups ::=
                    408:         { storage, private }   -- or '101'B
                    409: \end{verbatim}\end{quote}
                    410: \end{bwslide}
                    411: 
                    412: 
                    413: %\begin{bwslide}
                    414: %\ctitle{EXAMPLES --- TYPES \& VALUES (cont.)}
                    415: %\begin{quote}\small\begin{verbatim}
                    416: %Content ::= 
                    417: %        OCTET STRING
                    418: %
                    419: %BilateralInfo ::=
                    420: %        ANY
                    421: %\end{verbatim}\end{quote}
                    422: %\end{bwslide}
                    423: 
                    424: 
                    425: \begin{bwslide}
                    426: \ctitle{EXAMPLES --- TYPES \& VALUES (cont.)}
                    427: \begin{quote}\small\begin{verbatim}
                    428: SecurityContext ::=
                    429:         SET OF SecurityLabel
                    430: 
                    431: MessageDeliveryEnvelope ::=
                    432:         SEQUENCE {
                    433:             message-delivery-identifier
                    434:                 MessageDeliveryIdentifier,
                    435: 
                    436:             message-delivery-time
                    437:                 MessageDeliveryTime,
                    438: 
                    439:             other-fields
                    440:                 OtherMessageDeliveryFields
                    441: }
                    442: \end{verbatim}\end{quote}
                    443: \end{bwslide}
                    444: 
                    445: 
                    446: %\begin{bwslide}
                    447: %\ctitle{EXAMPLES --- TYPES \& VALUES (cont.)}
                    448: %\begin{quote}\small\begin{verbatim}
                    449: %MessagesWaiting ::=
                    450: %        SET {
                    451: %                urgent [0]
                    452: %                    DeliveryQueue,
                    453: %                normal [1]
                    454: %                    DeliveryQueue,
                    455: %                nonUrgent [2]
                    456: %                    DeliveryQueue
                    457: %        }
                    458: %
                    459: %queue MessagesWaiting ::= 
                    460: %        {
                    461: %            urgent { ... }, normal { ... }, nonUrgent { ... }
                    462: %        }
                    463: %\end{verbatim}\end{quote}
                    464: %\end{bwslide}
                    465: 
                    466: 
                    467: %\begin{bwslide}
                    468: %\ctitle{EXAMPLES --- TYPES \& VALUES (cont.)}
                    469: %\begin{quote}\small\begin{verbatim}
                    470: %PerMessageSubmissionFields ::=
                    471: %    SET {
                    472: %...
                    473: %        content-type
                    474: %            ContentType,
                    475: %
                    476: %        content-identifier
                    477: %            ContentIdentifier OPTIONAL,
                    478: %
                    479: %        priority
                    480: %            Priority DEFAULT normal,
                    481: %
                    482: %        per-message-indicators
                    483: %            PerMessageIndicators DEFAULT {},
                    484: %...
                    485: %    }
                    486: %\end{verbatim}\end{quote}
                    487: %\end{bwslide}
                    488: 
                    489: 
                    490: %\begin{bwslide}
                    491: %\ctitle{EXAMPLES --- TYPES \& VALUES (cont.)}
                    492: %\begin{quote}\small\begin{verbatim}
                    493: %PDU ::= 
                    494: %    CHOICE {
                    495: %        FTAM-Regime-PDU,
                    496: %        File-PDU,
                    497: %        Bulk-Data-PDU
                    498: %    }
                    499: %
                    500: %SecurityPolicyIdentifier ::=
                    501: %        OBJECT IDENTIFIER
                    502: %
                    503: %\end{verbatim}\end{quote}
                    504: %\end{bwslide}
                    505: 
                    506: 
                    507: \begin{bwslide}
                    508: \ctitle {CONCRETE REPRESENTATION}
                    509: 
                    510: \vskip.15in
                    511: \begin{verbatim}
                    512: struct mail_address {
                    513:     char   *local;
                    514:     char   *domain;
                    515: 
                    516:     unsigned char options;
                    517: #define default_local 0x01
                    518: #define default_host  0x02
                    519: };
                    520: \end{verbatim}
                    521: \end{bwslide}
                    522: 
                    523: 
                    524: \begin{bwslide}
                    525: \ctitle {ABSTRACT REPRESENTATION}
                    526: 
                    527: \vskip.15in
                    528: \begin{verbatim}
                    529: Mail-Address ::=
                    530:         [APPLICATION 2]
                    531:             IMPLICIT SEQUENCE {
                    532:                 local[0]
                    533:                     IMPLICIT GraphicString,
                    534: 
                    535:                 domain[1]
                    536:                     IMPLICIT GraphicString,
                    537: 
                    538:                 options[2]
                    539:                     IMPLICIT BITSTRING {
                    540:                         default-local(0), default-host(1)
                    541:                     }
                    542:                     DEFAULT { default-local, default-host }
                    543:             }
                    544: \end{verbatim}
                    545: \end{bwslide}
                    546: 
                    547: 
                    548: \begin{bwslide}
                    549: \ctitle{MACROS}
                    550: 
                    551: \begin{nrtc}
                    552: \item  ALLOW ASN.1 LANGUAGE TO BE DYNAMICALLY EXTENDED
                    553: \item  INTENDED TO CAPTURE {\em SOME} ADDITIONAL SEMANTICS
                    554: \item  ACTUALLY EXTEND THE ASN.1 GRAMMAR
                    555: \item  VERY POWERFUL
                    556: \item  \underline{VERY PROBLEMATIC}
                    557: \end{nrtc}
                    558: \end{bwslide}
                    559: 
                    560: 
                    561: \begin{bwslide}
                    562: \ctitle {MACROS --- EXAMPLE}
                    563: \begin{quote}\small\begin{verbatim}
                    564: <<macro> MACRO ::=
                    565: 
                    566: BEGIN
                    567: 
                    568: TYPE NOTATION  ::= <<type syntax>>
                    569: 
                    570: VALUE NOTATION ::= <<value syntax>>
                    571: 
                    572: <<supporting syntax>>
                    573: 
                    574: END
                    575: \end{verbatim}\end{quote}
                    576: \end{bwslide}
                    577: 
                    578: 
                    579: \begin{bwslide}
                    580: \ctitle {MACROS --- PROBLEMS}
                    581: 
                    582: \begin{nrtc}
                    583: \item  ACTUALLY CHANGE GRAMMAR RULES OF ASN.1
                    584:        \begin{nrtc}
                    585:        \item   ``NORMAL'' LANGUAGE MACROS ARE JUST TEXT SUBSTITUTIONS
                    586:        \end{nrtc}
                    587: \item  REQUIRE ASN.1 PARSER TO ACCOMMODATE DYNAMIC GRAMMAR CHANGES
                    588: \item  INTEGRAL PART OF ASN.1
                    589: \item  DIFFICULT TO ``MANUALLY'' EXPAND
                    590: \end{nrtc}
                    591: \end{bwslide}
                    592: 
                    593: 
                    594: \begin{bwslide}
                    595: \ctitle {MACROS --- PROBLEMS (cont.)}
                    596: 
                    597: \begin{nrtc}
                    598: \item  MACROS THEMSELVES ARE NOT ENOUGH
                    599:        \begin{nrtc}
                    600:        \item   ENTIRE SEMANTICS NOT CONVEYED IN NOTATION
                    601:        \item   REQUIRES FRONT END TO AUGMENT INPUT BACK END
                    602:        \end{nrtc}
                    603: \item  REQUIRES SELF--MODIFYING FRONT END COMPILER
                    604: \end{nrtc}
                    605: \end{bwslide}
                    606: 
                    607: 
                    608: \begin{bwslide}
                    609: \ctitle{EXAMPLES --- MACROS}
                    610: \begin{quote}\small\begin{verbatim}
                    611: OPERATION MACRO ::=
                    612:     BEGIN
                    613:     TYPE NOTATION  ::= "ARGUMENT" NamedType Result Errors | empty
                    614:     VALUE NOTATION ::= value (VALUE INTEGER)
                    615:     Result         ::= "RESULT" NamedType | empty
                    616:     Errors         ::= "ERRORS" { ErrorNames } | empty
                    617:     
                    618:     NamedType      ::= identifier type | type
                    619:     ErrorNames     ::= IdentifierList | empty
                    620:     IdentifierList ::= identifier | IdentifierList "," identifier
                    621:     END
                    622: 
                    623: users OPERATION
                    624:     RESULT     IA5List
                    625:     ERRORS     { congested, unableToOpenFile }
                    626:     ::= 2
                    627: \end{verbatim}\end{quote}
                    628: \end{bwslide}
                    629: 
                    630: 
                    631: %\begin{bwslide}
                    632: %\ctitle{EXAMPLES --- MACROS (cont.)}
                    633: %\begin{quote}\small\begin{verbatim}
                    634: %ERROR MACRO ::=
                    635: %    BEGIN
                    636: %    TYPE NOTATION  ::= "PARAMETER" NamedType | empty
                    637: %    VALUE NOTATION ::= value (VALUE INTEGER)
                    638: %    
                    639: %    NamedType      ::= identifier type | type
                    640: %    END
                    641: %
                    642: %unableToOpenFile
                    643: %    ERROR
                    644: %    PARAMETER IA5List
                    645: %    ::= 2
                    646: %\end{verbatim}\end{quote}
                    647: %\end{bwslide}
                    648: 
                    649: 
                    650: \begin{bwslide}
                    651: \ctitle{TRANSFER SYNTAX \\ BASIC ENCODING RULES (BER)}
                    652: 
                    653: \begin{nrtc}
                    654: \item  INDEPENDENT OF MACHINE-DEPENDENT STRUCTURES \& RESTRICTIONS
                    655: \item  TAGGED DATA, {\em TAG--LENGTH--VALUE (TLV) APPROACH}
                    656: \item  VARIABLE LENGTH ENCODINGS IN MINIMAL OCTETS
                    657: \item  SOLID TECHNOLOGY
                    658:        \begin{nrtc}
                    659:        \item   NOT A CONCERN FOR MOST IMPLEMENTORS
                    660:        \end{nrtc}
                    661: \end{nrtc}
                    662: \end{bwslide}
                    663: 
                    664: 
                    665: \begin{bwslide}
                    666: \ctitle {TLV ENCODINGS}
                    667: 
                    668: \begin{nrtc}
                    669: \item  USE OF TLV IS CONTROVERSIAL
                    670: \item  LESS EXTENSIBLE SCHEMES ARE MORE PERFORMANT
                    671: \item  EACH FIELD IS VARIABLE LENGTH
                    672: \item  FIELDS MAY BE OF ARBITRARY COMPLEXITY
                    673: \end{nrtc}
                    674: \end{bwslide}
                    675: 
                    676: 
                    677: \begin{bwslide}
                    678: \ctitle {TLV}
                    679: 
                    680: \vskip.5in
                    681: \diagram[p]{figureA-27}
                    682: \end{bwslide}
                    683: 
                    684: 
                    685: \begin{bwslide}
                    686: \ctitle {COMPLEX ENCODINGS}
                    687: 
                    688: \begin{nrtc}
                    689: \item  COMPLEX ASN.1 TYPES COMPOSED OF SEVERAL LESS COMPLEX TYPES
                    690: \item  EVENTUALLY BREAK DOWN TO SIMPLE ASN.1 TYPES
                    691: \item  BER APPLIED TO SIMPLE TYPES RECURSIVELY TO AN ARBITRARY 
                    692:                LEVEL OF COMPLEXITY
                    693: \end{nrtc}
                    694: \end{bwslide}
                    695: 
                    696: 
                    697: %\begin{bwslide}
                    698: %\ctitle {ENCODING DETAILS}
                    699: %
                    700: %\begin{nrtc}
                    701: %\item BIT ORDERING
                    702: %      \begin{nrtc}
                    703: %      \item   ``BIT 8'' IS HIGH ORDER
                    704: %      \item   ``BIT 1'' IS LOW ORDER
                    705: %      \end{nrtc}
                    706: %\item INTEGERS
                    707: %      \begin{nrtc}
                    708: %      \item   OF ANY VALUE, {\em TWOS--COMPLEMENT}
                    709: %      \item   POSITIVE ONLY, {\em UNSIGNED}
                    710: %      \end{nrtc}
                    711: %\end{nrtc}
                    712: %\end{bwslide}
                    713: 
                    714: 
                    715: %\begin{bwslide}
                    716: %\ctitle {TAG FIELD}
                    717: %
                    718: %\begin{nrtc}
                    719: %\item PAIR
                    720: %      \begin{nrtc}
                    721: %      \item   CLASS OF ASN.1 TYPE
                    722: %              \begin{nrtc}
                    723: %              \item   UNIVERSAL
                    724: %              \item   APPLICATION
                    725: %              \item   CONTEXT-SPECIFIC
                    726: %              \item   PRIVATE
                    727: %              \end{nrtc}
                    728: %      \item   IDENTIFIER OF ASN.1 TYPE
                    729: %              \begin{nrtc}
                    730: %              \item   ARBITRARY LENGTH
                    731: %              \end{nrtc}
                    732: %      \end{nrtc}
                    733: %\item INDICATION IF VALUE IS PRIMITIVE OR CONSTRUCTED
                    734: %\end{nrtc}
                    735: %\end{bwslide}
                    736: 
                    737: 
                    738: %\begin{bwslide}
                    739: %\ctitle {TAG FIELD}
                    740: %
                    741: %\vskip.5in
                    742: %\diagram[p]{figureA-29}
                    743: %\end{bwslide}
                    744: 
                    745: 
                    746: %\begin{bwslide}
                    747: %\ctitle{PRIMATIVE TYPES}
                    748: %
                    749: %\begin{tabular}{ll}
                    750: %INTEGER               & [UNIVERSAL 2] \\
                    751: %BOOLEAN               & [UNIVERSAL 1] \\
                    752: %NULL          & [UNIVERSAL 5] \\
                    753: %OCTET STRING  & [UNIVERSAL 4] \\
                    754: %BIT STRING    & [UNIVERSAL 3] \\
                    755: %%\\
                    756: %%OBJECT IDENTIFIER \\
                    757: %%EXTERNAL \\
                    758: %%ANY \\
                    759: %\end{tabular}
                    760: %\end{bwslide}
                    761: 
                    762: 
                    763: %\begin{bwslide}
                    764: %\ctitle{CONSTRUCTOR TYPES}
                    765: %
                    766: %\begin{tabular}{lll}
                    767: %SET & [UNIVERSAL 17] & Fixed size set of items of distinct types \\
                    768: %SET OF & [UNIVERSAL 17] & Variable size set of items of the same type \\
                    769: %SEQUENCE & [UNIVERSAL 16] & Record \\
                    770: %SEQUENCE OF & [UNIVERSAL 16] & Array or list \\
                    771: %%CHOICE & & One out of a set of possible types \\
                    772: %%TAGGED & & For creating a type with a new tag \\
                    773: %\end{tabular}
                    774: %\end{bwslide}
                    775: 
                    776: 
                    777: %\begin{bwslide}
                    778: %\ctitle {LENGTH FIELD}
                    779: %
                    780: %\begin{nrtc}
                    781: %\item INDICATES LENGTH OF VALUE FIELD
                    782: %      \begin{nrtc}
                    783: %      \item   ACTUAL LENGTH (${2}^{1008}-1$ MAXIMUM)
                    784: %      \item   INDEFINITE LENGTH
                    785: %              \begin{nrtc}
                    786: %              \item   END OF STREAM HAS A SPECIAL MARKER
                    787: %              \end{nrtc}
                    788: %      \end{nrtc}
                    789: %\end{nrtc}
                    790: %\end{bwslide}
                    791: 
                    792: 
                    793: %\begin{bwslide}
                    794: %\ctitle {VALUE FIELD}
                    795: %
                    796: %\begin{nrtc}
                    797: %\item SIMPLE TYPES
                    798: %      \begin{nrtc}
                    799: %      \item   {\em SIMPLE} VALUE
                    800: %      \end{nrtc}
                    801: %\item CONSTRUCTOR TYPES
                    802: %      \begin{nrtc}
                    803: %      \item   MULTIPLE SIMPLE ENCODINGS AS VALUE
                    804: %      \item   DETERMINING LENGTH IN ADVANCE IS TOUGH PART
                    805: %      \item   INDEFINITE LENGTH USED FOR THIS
                    806: %              \begin{nrtc}
                    807: %              \item   MAKES SENDING EASY
                    808: %              \item   RECEIVING MORE DIFFICULT
                    809: %              \end{nrtc}
                    810: %      \end{nrtc}
                    811: %\end{nrtc}
                    812: %\end{bwslide}
                    813: 
                    814: 
                    815: \begin{bwslide}
                    816: \ctitle {VALUE FIELD\\SIMPLE EXAMPLE --- INTEGER 26}
                    817: 
                    818: \vskip.5in
                    819: \diagram[p]{figureA-28}
                    820: \end{bwslide}
                    821: 
                    822: 
                    823: \begin{bwslide}
                    824: \ctitle {VALUE FIELD\\CONSTRUCTOR EXAMPLE}
                    825: 
                    826: \begin{quote}\small\begin{verbatim}
                    827: Constructor ::=
                    828:     SEQUENCE {
                    829:         name
                    830:             Name,
                    831: 
                    832:         value
                    833:             Value
                    834:     }
                    835: \end{verbatim}\end{quote}
                    836: \end{bwslide}
                    837: 
                    838: 
                    839: \begin{bwslide}
                    840: \ctitle {CONSTRUCTOR EXAMPLE (cont.)}
                    841: 
                    842: \vskip.5in
                    843: \diagram[p]{figureA-30}
                    844: \end{bwslide}
                    845: 
                    846: 
                    847: %\begin{bwslide}
                    848: %\ctitle {VALUE ``ANY'' FIELDS}
                    849: %
                    850: %\begin{nrtc}
                    851: %\item OPAQUE FIELD
                    852: %\item SENDING APPLICATION
                    853: %      \begin{nrtc}
                    854: %      \item   MUST ``KNOW'' WHAT TO SUPPLY
                    855: %      \item   SUPPLIED DATA MUST ALREADY HAVE BER APPLIED
                    856: %      \end{nrtc}
                    857: %\item RECEIVING APPLICATION
                    858: %      \begin{nrtc}
                    859: %      \item   CAN EASILY DECODE BER
                    860: %      \item   MUST ``KNOW'' WHAT IT IS TO MAKE USE OF DATA
                    861: %      \end{nrtc}
                    862: %\end{nrtc}
                    863: %\end{bwslide}
                    864: 
                    865: 
                    866: %\begin{bwslide}
                    867: %\ctitle       {ENCRYPTED}
                    868: %
                    869: %\begin{nrtc}
                    870: %\item MENTIONED FOR CURIOSITY SAKE
                    871: %\item REQUIRES BILATERAL AGREEMENT ON USE
                    872: %\item DOESN'T PREVENT APPLICATION FROM PERFORMING ENCRYPTION ITSELF
                    873: %\end{nrtc}
                    874: %\end{bwslide}
                    875: 
                    876: 
                    877: %\begin{bwslide}
                    878: %\ctitle {IMPORTANT POINT}
                    879: %
                    880: %\begin{nrtc}
                    881: %\item BER TRANSFER SYNTAX CAN BE PARSED WITHOUT REFERENCE TO THE ABSTRACT
                    882: %      SYNTAX, ASN.1
                    883: %\end{nrtc}
                    884: %\end{bwslide}
                    885: 
                    886:        
                    887: %\begin{bwslide}
                    888: %\ctitle {MAKING ASN.1 WORK}
                    889: %
                    890: %\begin{nrtc}
                    891: %\item NEED TOOLS TO FACILITATE DEVELOPMENT OF APPLICATIONS
                    892: %\item GENERATION OF ENCODERS, DECODERS \& PRINTERS FOR ABSTRACT SYNTAX
                    893: %\end{nrtc}
                    894: %\end{bwslide}
                    895: 
                    896: 
                    897: %\begin{bwslide}
                    898: %\ctitle {TOOLS}
                    899: %
                    900: %\begin{nrtc}
                    901: %\item FOR ENCODING \& DECODING
                    902: %      \begin{nrtc}
                    903: %      \item   SEMANTICS OF DATA SUPPLIED BY ASN.1 DESCRIPTION
                    904: %      \item   LOCAL STORAGE STRATEGY
                    905: %              \begin{nrtc}
                    906: %              \item   FIXED
                    907: %              \item   DECLARATIONS
                    908: %              \item   ACTION ROUTINES
                    909: %              \end{nrtc}
                    910: %      \end{nrtc}
                    911: %\end{nrtc}
                    912: %\end{bwslide}
                    913: 
                    914: 
                    915: %\begin{bwslide}
                    916: %\ctitle {AN APPROACH\\STRUCTURE GENERATOR}
                    917: %
                    918: %\begin{nrtc}
                    919: %\item FROM ASN.1 DEFINITION, PRODUCE DATA STRUCTURES FOR
                    920: %      {\em CONCRETE} STORAGE OF VALUES
                    921: %\item STRUCTURES WILL BE USED BY ENCODERS \& DECODERS
                    922: %\item APPLICATION WILL MANIPULATE STRUCTURES AS WELL
                    923: %\end{nrtc}
                    924: %\end{bwslide}
                    925: 
                    926: 
                    927: %\begin{bwslide}
                    928: %\ctitle {AN APPROACH:\\ENCODER/DECODER GENERATOR}
                    929: %
                    930: %\begin{nrtc}
                    931: %\item GENERATE MODULES TO ENCODE \& DECODE ABSTRACT SYNTAX TO \& FROM
                    932: %      CONCRETE DATA STRUCTURES GENERATED IN PREVIOUS STEP
                    933: %\item ALSO GENERATE ``PRETTY PRINTERS'' FOR DISPLAYING PROTOCOL
                    934: %\end{nrtc}
                    935: %\end{bwslide}
                    936: 
                    937: 
                    938: %\begin{bwslide}
                    939: %\ctitle {REFERENCES}
                    940: %
                    941: %\begin{description}
                    942: %\item[ISO/IEC 8324:]  Specification of Abstract Syntax Notation One (ASN.1)
                    943: %\item[ISO/IEC 8323:]  Specification of Basic Encoding Rules for Abstract 
                    944: %                      Syntax Notation One (ASN.1)
                    945: %\end{description}
                    946: %\end{bwslide}

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.