|
|
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}
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.