|
|
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.