|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T s
Length: 14803 (0x39d3) Types: TextFile Names: »services.tex«
└─⟦3d0c2be1b⟧ Bits:30001254 ISODE-5.0 Tape └─⟦eba4602b1⟧ »./isode-5.0.tar.Z« └─⟦d3ac74d73⟧ └─⟦this⟧ »isode-5.0/doc/cookbook/services.tex« └─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0 └─⟦35176feda⟧ »EurOpenD22/isode/isode-6.tar.Z« └─⟦de7628f85⟧ └─⟦this⟧ »isode-6.0/doc/cookbook/services.tex«
% -*- LaTeX -*- (really SLiTeX) \f \begin{bwslide} \part {UNDERLYING SERVICES}\bf \begin{nrtc} \item ABSTRACT SYNTAX NOTATION ONE (ASN.1) \item THE REMOTE OPERATIONS SERVICE \item THE BINDING SERVICE \item A DISCIPLINE FOR MEAL PREPARATION \end{nrtc} \end{bwslide} \f \begin{note}\em this part of the presentation corresponds to the definition of abstract syntax notation one ([ISO~8824]) and both the old- and new-style ros (namely [X.410] and [ISO~9072/1]), along with chapter~3 of The Applications Cookbook \end{note} \f \begin{bwslide} \part* {ABSTRACT SYNTAX NOTATION ONE (ASN.1)}\bf \begin{nrtc} \item UNIVERSAL LANGUAGE TO DESCRIBE DATA WITH STRONG TYPING \item RICH, EXTENSIBLE SYNTAX \item USEFUL FOR SPECIFICATION OF NEW PROTOCOLS \begin{nrtc} \item ``CLEAR TO READ'' SPECIFICATIONS (ha!) \item NOT TIED TO MACHINE-ORIENTED STRUCTURES AND RESTRICTIONS \end{nrtc} \item REPRESENTATION CURRENTLY USED BY ALL OSI APPLICATIONS \end{nrtc} \end{bwslide} \f \begin{bwslide} \ctitle {SYNTAX} \begin{nrtc} \item FORMAT OF A MODULE: \begin{verbatim} <<module>> DEFINITIONS ::= BEGIN <<linkage>> <<declarations>> END \end{verbatim} \item LINKAGE IS USED TO REFERENCE DECLARATIONS IN OTHER MODULES \item THREE KINDS OF DECLARATIONS \begin{nrtc} \item TYPES: DATA STRUCTURES \item VALUES: INSTANCES OF TYPES \item MACROS: LANGUAGE EXTENSION \end{nrtc} \end{nrtc} \end{bwslide} \f \begin{bwslide} \ctitle {SOME EXAMPLES:\\ LINKAGE} \vskip.5in \begin{verbatim} MTSAbstractService { joint-iso-ccitt mhs-motis(6) mts(3) modules(0) mts-abstract-service(3) } DEFINITIONS ::= BEGIN IMPORTS OBJECT, PORT FROM AbstractServiceNotation { joint-iso-ccitt mhs-motis(6) asdc(2) modules(0) notation(1) } ... END \end{verbatim} \end{bwslide} \f \begin{bwslide} \ctitle {SOME EXAMPLES:\\ TYPES AND VALUES} \vskip.5in \begin{verbatim} Multiple-defined-contexts ::= BOOLEAN simple Multiple-defined-contexts ::= FALSE -- or TRUE ContentLength ::= INTEGER RegistrationMailType ::= INTEGER { non-registered-mail (0), registered-mail (1), registered-mail-to-addressee-in-person (2) } mymail RegistrationMailType ::= registered-mail --or 1 \end{verbatim} \end{bwslide} \f \begin{bwslide} \ctitle {SOME EXAMPLES:\\ TYPES AND VALUES (cont.)} \vskip.5in \begin{verbatim} RandomNumber ::= BIT STRING Attribute-Groups ::= BITSTRING { storage(0), security(1), private(2) } groups Attribute-Groups ::= { storage, private } -- or '101'B \end{verbatim} \end{bwslide} \f \begin{bwslide} \ctitle {SOME EXAMPLES:\\ TYPES AND VALUES (cont.)} \vskip.5in \begin{verbatim} Content ::= OCTET STRING NULL SEQUENCE SET BilateralInfo ::= ANY \end{verbatim} \end{bwslide} \f \begin{bwslide} \ctitle {SOME EXAMPLES:\\ TYPES AND VALUES (cont.)} \vskip.5in \begin{verbatim} Name ::= SEQUENCE OF ISO8571-FADU.Node-Name SecurityContext ::= SET OF SecurityLabel MessageDeliveryEnvelope ::= SEQUENCE { message-delivery-identifier MessageDeliveryIdentifier, message-delivery-time MessageDeliveryTime, other-fields OtherMessageDeliveryFields } \end{verbatim} \end{bwslide} \f \begin{bwslide} \ctitle {SOME EXAMPLES:\\ TYPES AND VALUES (cont.)} \vskip.5in \begin{verbatim} MessagesWaiting ::= SET { urgent[0] DeliveryQueue, normal[1] DeliveryQueue, nonUrgent[2] DeliveryQueue, } queue MessagesWaiting ::= { urgent { ... }, normal { ... }, nonUrgent { ... } } \end{verbatim} \end{bwslide} \f \begin{bwslide} \ctitle {SOME EXAMPLES:\\ TYPES AND VALUES (cont.)}\small \vskip.5in \begin{verbatim} PerMessageSubmissionFields ::= SET { ... content-type ContentType, content-identifier ContentIdentifier OPTIONAL, priority Priority DEFAULT normal, per-message-indicators PerMessageIndicators DEFAULT {}, ... } \end{verbatim} \end{bwslide} \f \begin{bwslide} \ctitle {SOME EXAMPLES:\\ TYPES AND VALUES (cont.)} \vskip.5in \begin{verbatim} PDU ::= CHOICE { FTAM-Regime-PDU, File-PDU, Bulk-Data-PDU } SecurityPolicyIdentifier ::= OBJECT IDENTIFIER ISO8571-FADU.Node-Name \end{verbatim} \end{bwslide} \f \begin{bwslide} \ctitle {SOME EXAMPLES:\\ MACROS} \vskip.5in \begin{verbatim} OPERATION MACRO ::= BEGIN TYPE NOTATION ::= "ARGUMENT" NamedType Result Errors | empty VALUE NOTATION ::= value (VALUE INTEGER) Result ::= "RESULT" NamedType | empty Errors ::= "ERRORS" { ErrorNames } | empty NamedType ::= identifier type | type ErrorNames ::= IdentifierList | empty IdentifierList ::= identifier | IdentifierList "," identifier END users OPERATION RESULT IA5List ERRORS { congested, unableToOpenFile } ::= 2 \end{verbatim} \end{bwslide} \f \begin{bwslide} \ctitle {SOME EXAMPLES:\\ MACROS (cont.)} \vskip.5in \begin{verbatim} ERROR MACRO ::= BEGIN TYPE NOTATION ::= "PARAMETER" NamedType | empty VALUE NOTATION ::= value (VALUE INTEGER) NamedType ::= identifier type | type END unableToOpenFile ERROR PARAMETER IA5List ::= 2 \end{verbatim} \end{bwslide} \f \begin{bwslide} \part* {THE REMOTE OPERATIONS SERVICE}\bf \begin{nrtc} \item STANDARDIZED OSI MECHANISM FOR SPECIFYING TRANSACTIONS \item CURRENTLY ONLY CONNECTION-ORIENTED\\ (i.e., ONLY CO-ROS IS DEFINED) \item TERMINOLOGY: ROS-USER, ROS-PROVIDER \end{nrtc} \end{bwslide} \f \begin{bwslide} \ctitle {EXAMPLE INTERACTIONS:\\ INVOKE} \vskip.5in \diagram[p]{figure25} \end{bwslide} \f \begin{bwslide} \ctitle {EXAMPLE INTERACTIONS:\\ RESULT} \vskip.5in \diagram[p]{figure26} \end{bwslide} \f \begin{bwslide} \ctitle {EXAMPLE INTERACTIONS:\\ ERROR} \vskip.5in \diagram[p]{figure27} \end{bwslide} \f \begin{bwslide} \ctitle {EXAMPLE INTERACTIONS:\\ USER REJECTION} \vskip.5in \diagram[p]{figure28} \end{bwslide} \f \begin{bwslide} \ctitle {EXAMPLE INTERACTIONS:\\ PROVIDER REJECTION} \vskip.5in \diagram[p]{figure29} \end{bwslide} \f \begin{bwslide} \ctitle {RO-INVOKE SERVICE} \begin{nrtc} \item UNCONFIRMED SERVICE:\\ RO-INVOKE.REQUEST, RO-INVOKE.INDICATION \item PARAMETERS \[\begin{tabular}{ll} OPERATION NUMBER& integer\\ OPERATION CLASS& (a)synchronous (local)\\ \ \ \ (optional)& \\ ARGUMENT& asn.1 type (APDU)\\ INVOCATION IDENTIFIER& integer\\ LINKED-INVOCATION ID& integer\\ PRIORITY (optional)& integer (local) \end{tabular}\] \item ARGUMENT IS OPTIONAL IN NEW-STYLE ROS \item THE LINKED-INVOCATION IDENTIFIER IS NOT PRESENT IN OLD-STYLE ROS \item APDU IS THE USER-SUPPLIED DATA STRUCTURE, AN APPLICATION PROTOCOL DATA UNIT \end{nrtc} \end{bwslide} \f \begin{bwslide} \ctitle {RO-RESULT SERVICE} \begin{nrtc} \item UNCONFIRMED SERVICE:\\ RO-RESULT.REQUEST, RO-RESULT.INDICATION \item PARAMETERS \[\begin{tabular}{ll} INVOCATION IDENTIFIER& integer\\ RESULT& asn.1 type (APDU)\\ PRIORITY (optional)& integer (local) \end{tabular}\] \item RESULT IS OPTIONAL IN NEW-STYLE ROS \end{nrtc} \end{bwslide} \f \begin{bwslide} \ctitle {RO-ERROR SERVICE} \begin{nrtc} \item UNCONFIRMED SERVICE:\\ RO-ERROR.REQUEST, RO-ERROR.INDICATION \item PARAMETERS \[\begin{tabular}{ll} INVOCATION IDENTIFIER& integer\\ ERROR NUMBER& integer\\ PARAMETER (optional)& asn.1 type (APDU)\\ PRIORITY (optional)& integer (local) \end{tabular}\] \end{nrtc} \end{bwslide} \f \begin{bwslide} \ctitle {RO-U-REJECT SERVICE} \begin{nrtc} \item UNCONFIRMED SERVICE:\\ RO-U-REJECT.REQUEST, RO-U-REJECT.INDICATION \item PARAMETERS \[\begin{tabular}{ll} INVOCATION IDENTIFIER& integer\\ REASON& integer\\ PRIORITY (optional)& integer (local) \end{tabular}\] \end{nrtc} \end{bwslide} \f \begin{bwslide} \ctitle {RO-P-REJECT SERVICE} \begin{nrtc} \item PROVIDER-INITIATED SERVICE:\\ RO-P-REJECT.INDICATION \item PARAMETERS \[\begin{tabular}{ll} INVOCATION IDENTIFIER& integer\\ \ \ \ (optional)& \\ REASON& integer\\ APDU (optional)& asn.1 type\\ \end{tabular}\] \item INVOCATION IDENTIFIER MAY NOT BE PRESENT IF: \begin{nrtc} \item PROBLEM IS NOT RELATED TO A PARTICULAR INVOCATION, OR \item THE INFORMATION IS UNAVAILABLE \end{nrtc} \item IF THE LOCAL PROVIDER COULD NOT SEND AN INVOCATION (OR RESULT OR ERROR) THEN APDU IS THE ASSOCIATED USER-SUPPLIED ARGUMENT \end{nrtc} \end{bwslide} \f \begin{bwslide} \ctitle {REASONS FOR REJECTIONS} \begin{nrtc} \item FOUR CLASSES OF REJECTIONS \begin{nrtc} \item GENERAL PROBLEMS \item INVOKE PROBLEMS \item RETURN RESULT PROBLEMS \item RETURN ERROR PROBLEMS \end{nrtc} \end{nrtc} \end{bwslide} \f \begin{bwslide} \ctitle {GENERAL PROBLEMS:\\ DETECTED BY THE ROS-PROVIDER} \begin{nrtc} \item UNRECOGNIZED APDU \item MISTYPED APDU \item BADLY STRUCTURED APDU \end{nrtc} \end{bwslide} \f \begin{bwslide} \ctitle {INVOKE PROBLEMS:\\ DETECTED BY THE ROS-USER} \begin{nrtc} \item DUPLICATE INVOCATION \item UNRECOGNIZED OPERATION \item MISTYPED ARGUMENT \item RESOURCE LIMITATION \item INITIATOR RELEASING\footnote{not allowed in old-style ros} \item UNRECOGNIZED LINKED ID$^*$ \item LINKED RESPONSE UNEXPECTED$^*$ \item UNEXPECTED CHILD OPERATION$^*$ \end{nrtc} \end{bwslide} \f \begin{bwslide} \ctitle {RETURN RESULT PROBLEMS:\\ DETECTED BY THE ROS-USER} \begin{nrtc} \item UNRECOGNIZED INVOCATION \item RESULT RESPONSE UNEXPECTED \item MISTYPED RESULT \end{nrtc} \end{bwslide} \f \begin{bwslide} \ctitle {RETURN ERROR PROBLEMS:\\ DETECTED BY THE ROS-USER} \begin{nrtc} \item UNRECOGNIZED INVOCATION \item ERROR RESPONSE UNEXPECTED \item UNRECOGNIZED ERROR \item UNEXPECTED ERROR \item MISTYPED PARAMETER \end{nrtc} \end{bwslide} \f \begin{bwslide} \ctitle {REMOTE OPERATION MACROS} \begin{nrtc} \item THE DEFINITIONS FOR REMOTE OPERATIONS USE THE ASN.1 MACRO FACILITY \item ALTHOUGH PROBLEMATIC FOR PARSERS, IT RESULTS IN VASTLY SIMPLIFIED SPECIFICATIONS \end{nrtc} \end{bwslide} \f \begin{bwslide} \ctitle {AN EXAMPLE} \vskip.5in \begin{verbatim} finger OPERATION ARGUMENT IA5List RESULT IA5List ERRORS { congested, unableToAccessFile, unableToPipe, unableToFork, errorReading } ::= 5 congested ERROR ::= 0 \end{verbatim} \end{bwslide} \f \begin{bwslide} \ctitle {REMOTE OPERATION MACROS (cont.)} \begin{nrtc} \item USING THE \verb"LINKED" CLAUSE, AN OPERATION CAN DEFINE LINKED OPERATIONS \item AN OPERATION OR ERROR VALUE CAN ALSO TAKE A GLOBAL VALUE \begin{nrtc} \item AN OBJECT IDENTIFIER IS USED IN ADDITION TO THE OPERATION OR ERROR CODE \end{nrtc} \item THE \verb"BIND" AND \verb"UNBIND" MACROS ARE USED TO DEFINE BINDING INFORMATION \end{nrtc} \end{bwslide} \f \begin{bwslide} \part* {THE BINDING SERVICE}\bf \begin{nrtc} \item OLD- AND NEW-STYLE ROS USE DIFFERENT METHODS FOR BINDING \item FOR OUR PURPOSES, THE METHOD OF BINDING IS UNIMPORTANT \item BUT WE'LL BRIEFLY REVIEW THEM ANYWAY FOR COMPLETENESS \end{nrtc} \end{bwslide} \f \begin{bwslide} \ctitle {OLD-STYLE BINDING} \begin{nrtc} \item IN OLD-STYLE ROS, BINDING WAS DONE IN ONE OF TWO WAYS: \begin{nrtc} \item BY USING AN EXISTING RELIABLE TRANSFER SERVICE ASSOCIATION \item BY USING THE RO-BEGIN AND RO-END SERVICE ([ECMA~TR/31] ONLY) \end{nrtc} \end{nrtc} \end{bwslide} \f \begin{bwslide} \ctitle {OLD-STYLE BINDING (cont.)} \vskip.5in \diagram[p]{figure7} \end{bwslide} \f \begin{bwslide} \ctitle {NEW-STYLE BINDING} \begin{nrtc} \item IN NEW-STYLE ROS, BINDING IS ALSO DONE IN ONE OF TWO WAYS: \begin{nrtc} \item BY USING AN EXISTING RELIABLE TRANSFER SERVICE ASSOCIATION \item BY USING ASSOCIATION CONTROL \end{nrtc} \end{nrtc} \end{bwslide} \f \begin{bwslide} \ctitle {NEW-STYLE BINDING (cont.)} \vskip.5in \diagram[p]{figure8} \end{bwslide} \f \begin{bwslide} \part* {A DISCIPLINE FOR MEAL PREPARATION}\bf \begin{nrtc} \item WE HAVE INTRODUCED \begin{nrtc} \item A MODEL FOR DISTRIBUTED APPLICATIONS, AND \item THE SERVICES AVAILABLE TO THE APPLICATION TO REALIZE THIS \end{nrtc} \item WHAT WE NEED IS THE ``DISCIPLINE'' TO FOCUS OUR ENERGIES \end{nrtc} \end{bwslide} \f \begin{bwslide} \ctitle {INITIATORS} \begin{nrtc} \item IN GENERAL, THERE ARE TWO KINDS OF INITIATOR IMPLEMENTATIONS \item INTERACTIVE \begin{nrtc} \item A USER RUNS A PROGRAM AND INTERACTIVELY DIRECTS THE INVOCATION OF OPERATIONS \end{nrtc} \item EMBEDDED \begin{nrtc} \item A PROGRAM CAUSES AN ASSOCIATION TO BE AUTOMATICALLY FORMED AND OPERATIONS TO BE INVOKED \end{nrtc} \end{nrtc} \end{bwslide} \f \begin{bwslide} \ctitle {RESPONDERS} \begin{nrtc} \item IN GENERAL, THERE ARE TWO KINDS OF RESPONDER IMPLEMENTATIONS, DEPENDING ON HOW ASSOCIATIONS ARE GIVEN TO THE PROGRAM WHICH IMPLEMENTS THE SERVICE \item SINGLE ASSOCIATION (a.k.a. THE DYNAMIC APPROACH) \begin{nrtc} \item EACH TIME THE SERVICE IS REQUESTED, A NEW INSTANCE OF THE PROGRAM IS EXECUTED \end{nrtc} \item MULTIPLE ASSOCIATION (a.k.a. THE STATIC APPROACH) \begin{nrtc} \item EACH TIME THE SERVICE IS REQUESTED, THE REQUEST IS GIVEN TO A SINGLE, ALREADY EXECUTING, INSTANCE OF THE PROGRAM \end{nrtc} \end{nrtc} \end{bwslide} \f \begin{bwslide} \ctitle {GENERAL ORGANIZATION} \begin{nrtc} \item AT COMPILE-TIME: \begin{nrtc} \item USE RO-SPECIFICATION TO GENERATE SUPPORT FACILITIES \end{nrtc} \item AT RUN-TIME: \begin{nrtc} \item USE DIRECTORY SERVICES TO LOCATE/REGISTER SERVICES \item USE ASSOCIATION CONTROL TO BIND/UNBIND APPLICATIONS \item USE REMOTE OPERATIONS TO INVOKE TRANSACTIONS \end{nrtc} \end{nrtc} \end{bwslide} \f \begin{bwslide} \ctitle {STATIC (COMPILE-TIME) ORGANIZATION} \vskip.15in \diagram[p]{figure9} \end{bwslide} \f \begin{bwslide} \ctitle {DYNAMIC (RUN-TIME) ORGANIZATION} \vskip.15in \diagram[p]{figure10} \end{bwslide} \f \begin{bwslide} \ctitle {IN PERSPECTIVE} \begin{nrtc} \item \emph{THE COOKBOOK} PRESENTS \emph{ONE} POSSIBLE METHOD FOR REALIZING THE MODEL USING THE UNDERLYING FACILITIES \item MANY MORE ARE POSSIBLE\\ \begin{nrtc} \item AND SOME WILL BE VASTLY SUPERIOR \end{nrtc} \item THE APPROACH TAKEN BY \emph{THE COOKBOOK} ATTEMPTS TO BALANCE SIMPLICTY AND EXTENSIBILITY \item HENCE, IT MAY STILL BE UNDERDONE FOR SOME CHEFS AND OVERDONE FOR OTHERS \end{nrtc} \end{bwslide}