home *** CD-ROM | disk | FTP | other *** search
/ Internet Standards / CD2.mdf / ccitt / 1992 / x / x407.asc < prev    next >
Text File  |  1994-01-30  |  83KB  |  2,050 lines

  1.  
  2. _     Fascicle VIII.7 ╤ Rec. X.407
  3.                                                                    
  4.                                Fascicle VIII.7 ╤ Rec. X.407       _
  5. The drawings contained in this recommendation have been done in
  6. Autocad
  7. Recommendation X.407
  8.                                  
  9.             MESSAGE HANDLING SYSTEMS: ABSTRACT SERVICE
  10.                      DEFINITION CONVENTIONS1)
  11.                                  
  12.                          (Melbourne, 1988)
  13.  
  14.      The establishment in various countries of telematic services
  15. and computer╤based store╤and╤forward message services in
  16. association with public data networks creates a need to produce
  17. standards to facilitate international message exchange between
  18. subscribers to such services.
  19.  
  20.      The CCITT,
  21.  
  22. considering
  23.  
  24.      (a)   the need for Message Handling Systems;
  25.  
  26.        (b)     that  Message  Handling  is  a  complex  distributed
  27. information processing task;
  28.  
  29.       (c)    that  a  means for abstractly defining such  tasks  is
  30. required;
  31.  
  32.      (d)   that Recommendation X.200 defines the Reference Model of
  33. Open Systems Interconnection for CCITT applications;
  34.  
  35.       (e)    that  Recommendations X.208, X.217, X.218,  and  X.219
  36. provide the foundation for CCITT applications,
  37.  
  38. unanimously declares
  39.  
  40.       (1)    that  conventions for defining abstract  services  are
  41. defined in Section 2;
  42.  
  43.      (2)   that techniques for the realization of abstract services
  44. so defined are discussed in Section 3.
  45.                                  
  46.                          TABLE OF CONTENTS
  47.  
  48. SECTION 1 ╤ Introduction
  49.  
  50. 0    Introduction
  51.  
  52. 1    Scope
  53.  
  54. 2    References
  55.  
  56. 3    Definitions
  57.  
  58. 4    Abbreviations
  59.  
  60. 5    Conventions
  61.  
  62.      5.1   ASN.1
  63.  
  64.      5.2   Terms
  65.  
  66. SECTION 2 ╤ Abstract service definition conventions
  67.  
  68. 6    Overview
  69.  
  70. 7    Abstract models
  71.  
  72.      7.1   Abstract objects
  73.  
  74.      7.2   Abstract ports
  75.  
  76.      7.3   Abstract services
  77.  
  78.      7.4   Abstract refinements
  79.  
  80. 8    Abstract services
  81.  
  82.      8.1   Abstract procedures
  83.  
  84.      8.2   Abstract bind operations
  85.  
  86.      8.3   Abstract unbind operations
  87.  
  88.      8.4   Abstract operations
  89.  
  90.      8.5   Abstract errors
  91.  
  92. SECTION 3 ╤ Abstract service realizations
  93.  
  94. 9    Overview
  95.  
  96. 10   OSI realizations
  97.  
  98.      10.1    ROS realizations
  99.  
  100.      10.2    Non╤ROS realizations
  101.  
  102. 11   Proprietary realizations
  103.  
  104.      11.1    Distributed realizations
  105.  
  106.      11.2    Non╤distributed realizations
  107.  
  108. Annex A ╤  Example of use of abstract service notation
  109.  
  110. Annex B ╤  Reference definition of object identifiers
  111.  
  112. Annex C ╤  Reference definition of notation
  113.  
  114. Annex  D  ╤   Differences  between  CCITT  Recommendation  and  ISO
  115. Standard
  116.  
  117. Annex E ╤  Index
  118.  
  119. SECTION 1 ╤ INTRODUCTION
  120.  
  121.  
  122. 0    Introduction
  123.  
  124.       This  Recommendation is one of a set of  Recommendations  for
  125. Message Handling. The entire set provides a comprehensive blueprint
  126. for  a  Message  Handling System (MHS) realized by  any  number  of
  127. cooperating open systems.
  128.  
  129.        The   Message  Handling  System  made  possible   by   these
  130. Recommendations  is  a  complex distributed information  processing
  131. task,    many   of   whose   components   themselves   have   these
  132. characteristics.
  133.  
  134.      This Recommendation specifies the conventions for defining the
  135. distributed  information processing tasks of Message  Handling  and
  136. may also be useful for other applications.
  137.  
  138.       The  text  of  this Recommendation is the  subject  of  joint
  139. CCITT╤ISO  agreement.  The corresponding ISO specification  is  ISO
  140. 10021╤3.
  141.  
  142.  
  143. 1    Scope
  144.  
  145.       This Recommendation specifies the conventions used to specify
  146. the  distributed information processing tasks that arise in Message
  147. Handling.
  148.  
  149.       This  Recommendation is structured as follows. Section  1  is
  150. this introduction. Section 2 specifies the conventions for defining
  151. a  distributed  information processing task abstractly.  Section  3
  152. gives  principles for realizing the communication aspects  of  such
  153. tasks  concretely,  such as by Open Systems  Interconnection  (OSI)
  154. protocols. Annexes provide important supplemental information.
  155.  
  156.        There   are   no  requirements  for  conformance   to   this
  157. Recommendation.
  158.  
  159.  
  160. 2    References
  161.  
  162.      This Recommendation cites the documents below.
  163.  
  164. Recommendation X.200        Reference   model   of   open   systems
  165.                interconnection  for  CCITT applications  (see  also
  166.                ISO╩7498).
  167.  
  168. Recommendation X.208     Specification of abstract syntax  notation
  169. one (ASN.1) (see also ISO 8824).
  170.  
  171. Recommendation X.209     Specification of basic encoding rules  for
  172.                abstract  syntax  notation  one  (ASN.1)  (see  also
  173.                ISO╩8825).
  174.  
  175. Recommendation X.217     Association control service definition for
  176.                open  systems interconnection for CCITT applications
  177.                (see also ISO 8649).
  178.  
  179. Recommendation  X.219     Remote operations:  Model,  notation  and
  180. service definition (see also ISO 9072╤1).
  181.  
  182.  
  183. 3    Definitions
  184.  
  185.       For  the  purposes of this Recommendation, the definition  of
  186. Annex E and below apply.
  187.  
  188.       This  Recommendation is based upon the concepts developed  in
  189. Recommendation X.200 and uses the following terms defined in it:
  190.      a)abstract syntax;
  191.      b)Application Layer;
  192.      c)application protocol data unit (APDU);
  193.      d)application protocol;
  194.      e)application service element (ASE);
  195.      f)concrete transfer syntax;
  196.      g)distributed information processing task;
  197.      h)layer service;
  198.      i)layer;
  199.      j)open system;
  200.      k)Open Systems Interconnection (OSI);
  201.      l)real open system.
  202.  
  203.       This  Recommendation  uses  the following  terms  defined  in
  204. Recommendation X.208:
  205.      a)Abstract Syntax Notation One (ASN.1);
  206.      b)(data) type;
  207.      c)(data) value;
  208.      d)import;
  209.      e)Integer;
  210.      f)macro;
  211.      g)module;
  212.      h)Object Identifier;
  213.      i)tag.
  214.  
  215.       This  Recommendation  uses  the following  terms  defined  in
  216. Recommendation X.209:
  217.      a)Basic Encoding Rules.
  218.  
  219.       This  Recommendation  uses  the following  terms  defined  in
  220. Recommendation X.217:
  221.      a)application context (AC).
  222.  
  223.       This  Recommendation  uses  the following  terms  defined  in
  224. Recommendation X.219:
  225.      a)bind operation;
  226.      b)error;
  227.      c)linked;
  228.      d)operation;
  229.      e)Remote Operation Service (ROS);
  230.      f)Remote Operations;
  231.      g)unbind operation.
  232.  
  233.  
  234. 4    Abbreviations
  235.  
  236.       For the purposes of this Recommendation, the abbreviations of
  237. Annex E apply.
  238.  
  239.  
  240. 5    Conventions
  241.  
  242.        This   Recommendation   uses  the  descriptive   conventions
  243. identified below.
  244.  
  245. 5.1  ASN.1
  246.  
  247.       This  Recommendation  uses  for the  indicated  purposes  the
  248. following ASN.1╤based descriptive conventions:
  249.      a)to  define  the OBJECT, PORT, and REFINE macros,  the  ASN.1
  250.         macro notation of Recommenda-tion╩X.208;
  251.      b)to   define  the  ABSTRACT╤BIND,  ╤UNBIND,  ╤OPERATION,  and
  252.         ╤ERROR  macros,  the  BIND, UNBIND,  OPERATION,  and  ERROR
  253.         macros of Recommendation X.219;
  254.      c)to  specify  the abstract syntax of information  objects  in
  255.         the example of Annex A, ASN.1 itself;
  256.      d)to  specify various abstract models in the example of  Annex
  257.         A, the OBJECT, PORT, and REFINE macros of ñ 7;
  258.      e)to  specify  various  abstract services in  the  example  of
  259.         Annex  A, the ABSTRACT╤BIND, ╤OPERATION, and ╤ERROR  macros
  260.         of ñ 8.
  261.  
  262.       ASN.1 appears both in the body of this Recommendation to  aid
  263. the  exposition  and  again, largely redundantly,  in  Annexes  for
  264. reference.   If   differences  are  found  between   the   two,   a
  265. specification error is indicated.
  266.  
  267.      Note ╤ ASN.1 tags are implicit throughout the ASN.1 modules in
  268. the Annexes; the modules are definitive in that respect.
  269.  
  270. 5.2  Terms
  271.  
  272.       Throughout  this Recommendation, terms are rendered  in  bold
  273. when  defined,  in italic when reference is made to them  prior  to
  274. their definitions, without emphasis upon all other occasions.
  275.  
  276.      Terms that are proper nouns are capitalized, generic terms are
  277. not.
  278.  
  279. SECTION 2 ╤ ABSTRACT SERVICE DEFINITION CONVENTIONS
  280.  
  281.  
  282. 6    Overview
  283.  
  284.      When faced with the job of describing and specifying a complex
  285. distributed  information processing task, one is wise to  begin  by
  286. specifying  the task in abstract, rather than concrete terms.  This
  287. approach ensures that the task's functional requirements are stated
  288. independently  of  its  concrete realization.  Such  separation  is
  289. important, among other reasons, because each aspect of the task may
  290. admit  of  several  concrete realizations. In  a  Message  Transfer
  291. System  comprising three message transfer agents, e.g.,  the  first
  292. and  second might interact using OSI communication, the second  and
  293. third by proprietary means.
  294.  
  295.        This   section  specifies  the  conventions  for  abstractly
  296. describing   a   distributed  information  processing   task   both
  297. macroscopically  and  microscopically. The  former  description  is
  298. called an abstract model, the latter an abstract service.
  299.  
  300.       Various  formal  tools  for specifying  abstract  models  and
  301. services  are defined in this section. A comprehensive  example  of
  302. their use is given in Annex A. The reader may wish to refer to that
  303. Annex while reading the present section.
  304.  
  305.      This section covers the following topics:
  306.      a)Abstract models.
  307.      b)Abstract services.
  308.  
  309.       Note  ╤ The formal tools mentioned above are neither a formal
  310. description language nor a substitute for such. They are simply  an
  311. ASN.1  notation that supports the informal descriptive  conventions
  312. defined in this section.
  313.  
  314.  
  315. 7    Abstract models
  316.  
  317.        A  macroscopic  description  of  a  distributed  information
  318. processing  task is called an abstract model (model) of  that  task
  319. and of the environment in which it is carried out. It is based upon
  320. the concepts of abstract objects, ports, services, and refinements.
  321. (The concept of an abstract service is much more fully developed in
  322. ñ 8.)
  323.  
  324. 7.1  Abstract objects
  325.  
  326.       An  abstract object (object) is a functional entity,  one  of
  327. perhaps  several which interact with one another.  Objects  are  of
  328. different  types  which determine their function and  behavior.  An
  329. object  of  one  type,  e.g., might represent  a  system,  multiple
  330. objects  of  another type its users. Objects interact by  means  of
  331. abstract ports.
  332.  
  333.      An object type is specified by means of the OBJECT macro. Such
  334. a  specification  lists the types of abstract  ports  that  provide
  335. access  to  such  an  object. For each asymmetric  port  type,  the
  336. specification indicates whether the ports of that type are consumer
  337. or supplier ports.
  338.  
  339.      OBJECT MACRO ::=
  340.      BEGIN
  341.  
  342.      TYPE NOTATION  ::=  ╥PORTS╙ ╙{╙ PortList ╥}╙ | empty
  343.      VALUE NOTATION ::=  value (VALUE OBJECT IDENTIFIER)
  344.  
  345.      PortList                 ::=  Port ╥,╙ PortList | Port
  346.      Port                ::=  value (PORT) PortType
  347.  
  348.      PortType                 ::=  Symmetric | Asymmetric
  349.  
  350.      Symmetric           ::=  empty
  351.      Asymmetric               ::=  Consumer | Supplier
  352.  
  353.      Consumer            ::=  ╥[C]╙
  354.  
  355.      Supplier                 ::=  ╥[S]╙
  356.  
  357.      END
  358.  
  359.       A  data  value  of type OBJECT is an Object  Identifier  that
  360. unambiguously and uniquely identifies the specified object type.
  361.  
  362.      Note ╤ The keyword ╥OBJECT╙ is reserved in ASN.1. Selection of
  363. a  suitable  replacement  for use in the  present  context  is  for
  364. further study.
  365.  
  366. 7.2  Abstract ports
  367.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
  368.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        An abstract port (port) is a point at which an abstract object
  369. interacts with another abstract object. Ports are of different
  370. types which determine the kinds of interactions they enable. Ports
  371. of one type, e.g., might represent the means by which a directory
  372. system is accessed, ports of another type the means by which it is
  373. administered.
  374.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
  375.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Port types are themselves of the following two varieties:
  376.      a)symmetric:  All  instances  of a  symmetric  port  type  are
  377.         identical;
  378.      b)asymmetric: Each instance of an asymmetric port type  is  of
  379.         one of two kinds, supplier and consumer.
  380.         Note ╤ A particular allocation of the terms ╥supplier╙  and
  381.         ╥consumer╙ is often intuitive. One might naturally consider
  382.         a file system, e.g., to present supplier ports to its users
  383.         and   administrators.  Strictly  speaking,   however,   the
  384.         assignment of the two terms is arbitrary.
  385.  
  386.       Two  objects can interact with one another by means of a port
  387. in  one  and  a  port in the other only while those  ports  are  in
  388. contact  with one another, or bound. The actions by means of  which
  389. this  state is initiated and terminated for one or more port  pairs
  390. are called binding and unbinding, respectively.
  391.  
  392.       Two  ports can be bound only if they match. Any two ports  of
  393. the  same,  symmetric type match. Two ports of the same, asymmetric
  394. type match if and only if one is a supplier, the other a consumer.
  395.  
  396.       A  port type is specified by means of the PORT macro. Such  a
  397. specification identifies the abstract operations that represent the
  398. interactions possible while two such ports are bound.  If  none  is
  399. listed, the abstract operations shall be considered unspecified.
  400.  
  401.      PORT MACRO ::=
  402.      BEGIN
  403.  
  404.      TYPE NOTATION  ::=  Operations | empty
  405.      VALUE NOTATION ::=  value (VALUE OBJECT IDENTIFIER)
  406.  
  407.      Operations               ::=  Symmetrical | Asymmetrical
  408.  
  409.       Symmetrical               ::=   ╥ABSTRACT╙  ╥OPERATIONS╙  ╥{╙
  410. OperationList ╥}╙
  411.      Asymmetrical             ::=  OneSided | TwoSided
  412.  
  413.      OneSided            ::=  Consumer | Supplier
  414.      TwoSided            ::=  Consumer Supplier | Supplier Consumer
  415.  
  416.         Consumer               ::=    ╥CONSUMER╙   ╥INVOKES╙    ╥{╙
  417. OperationList ╥}╙
  418.        Supplier                   ::=   ╥SUPPLIER╙  ╥INVOKES╙   ╥{╙
  419. OperationList ╥}╙
  420.  
  421.       OperationList             ::=  Operation ╥,╙ OperationList  |
  422. Operation
  423.        Operation           ::=   value  (ABSTRACT╤OPERATION)  |  ╤╤
  424. identifying the abstract
  425.                                                  operation by  data
  426. value
  427.                          type ╤╤ identifying the abstract operation
  428. by data type
  429.  
  430.      END
  431.  
  432.       If  the port type is symmetric, both objects offer all listed
  433. abstract  operations.  If the port type is  asymmetric,  the  macro
  434. distinguishes  between the abstract operations an object  with  the
  435. consumer  port  offers and those an object with the  supplier  port
  436. offers.
  437.  
  438.       A  data  value  of  type  PORT is an Object  Identifier  that
  439. unambiguously and uniquely identifies the specified port type.
  440.  
  441. 7.3  Abstract services
  442.  
  443.      An abstract service is the set of capabilities that one object
  444. offers  to another by means of one or more of its ports. The former
  445. object  is  called  an  abstract service provider  (provider),  the
  446. latter  an abstract service user (user). Each port in question  may
  447. be  either  symmetric  or asymmetric and,  if  the  latter,  either
  448. consumer or supplier.
  449.  
  450.       An  abstract  service  may  have  any  number  of  users  and
  451. providers.
  452.  
  453.      Whenever the abstract service ports of a provider are bound to
  454. the   matching  ports  of  a  user,  an  abstract  association  (or
  455. association) is said to exist between the two objects.
  456.  
  457.      An abstract service is specified as indicated in ñ 8.
  458.  
  459.      Note ╤ An abstract service serves much the same purpose within
  460. the  Application Layer as does one of the layer services  of  lower
  461. OSI layers.
  462.  
  463. 7.4  Abstract refinements
  464.  
  465.       An object can be viewed in different ways at different times.
  466. On some occasions it is convenient to think of an object as atomic.
  467. This  is  the  case, e.g., when describing how an object  interacts
  468. with  other  objects  external to it,  i.e.,  when  specifying  its
  469. abstract service. On other occasions, it may be more convenient  to
  470. think  of  an  object  as composite, i.e., constructed  from  other
  471. objects.  This  might  be the case, e.g., when  describing  how  an
  472. object is realized.
  473.  
  474.      Like any objects, component objects have ports. Some are those
  475. visible  on the ╥surface╙ of the constructed object. Others  enable
  476. the  component  objects to interact, thus supporting the  provision
  477. and  use  of lesser abstract services among the component  objects,
  478. which  cooperate  to provide the overall abstract  service  of  the
  479. constructed object.
  480.  
  481.       The functional decomposition of an object into several lesser
  482. objects  is  called  the abstract refinement (refinement)  of  that
  483. object.
  484.  
  485.       The  technique  of refinement can be applied  recursively.  A
  486. component  object  can  itself be refined to  reveal  its  internal
  487. structure.  This  can continue until one reaches component  objects
  488. best considered atomic.
  489.  
  490.       A  refinement is specified by means of the REFINE  macro.  It
  491. identifies  the  object whose internal structure is being  revealed
  492. and  the component objects used in its construction. Each component
  493. object  is  characterized as either unique or recurring. The  macro
  494. also  indicates which ports of component objects are bound to ports
  495. of other component objects, and which are visible at the surface of
  496. the composite object.
  497.  
  498.      REFINE MACRO ::=
  499.      BEGIN
  500.  
  501.      TYPE NOTATION  ::=  Object ╥AS╙ ComponentList
  502.      VALUE NOTATION ::=  value (VALUE OBJECT IDENTIFIER)
  503.  
  504.      ComponentList       ::=  Component ComponentList | Component
  505.      Component           ::=  ObjectSpec Ports
  506.  
  507.      ObjectSpec               ::=  Object | Object ╥RECURRING╙
  508.  
  509.      Ports          ::=  PortSpecList | empty
  510.      PortSpecList             ::=  PortSpec PortSpecList | PortSpec
  511.      PortSpec                 ::=  value (PORT) PortSide PortStatus
  512.  
  513.      PortSide                 ::=  Consumer | Supplier | empty
  514.      Consumer            ::=  ╥[C]╙
  515.      Supplier                 ::=  ╥[S]╙
  516.  
  517.       PortStatus                ::=   ╥VISIBLE╙ |  ╥PAIRED╙  ╥WITH╙
  518. ObjectList
  519.  
  520.      ObjectList               ::=  Object ╥,╙ ObjectList | Object
  521.      Object              ::=  value (OBJECT)
  522.  
  523.      END
  524.  
  525.      A data value of type REFINE is an Object Identifier.
  526.  
  527.      Note ╤ As with objects themselves, ports, in principle, can be
  528. viewed in different ways at different times. On some occasions,  it
  529. is convenient to think of a port (pair) as atomic. However, one can
  530. imagine refining a port itself to examine how communication of this
  531. type can be provided. In this view, a port pair is itself viewed as
  532. being supported by a collection of objects. This would enhance  the
  533. ability   to   specify  communications  capabilities.  This   ╥port
  534. refinement╙ concept is not pursued further in this version of  this
  535. Recommendation.
  536.  
  537.  
  538. 8    Abstract services
  539.  
  540.        A  microscopic  description  of  a  distributed  information
  541. processing  task  is a specification of the abstract  service  that
  542. defines  how the task is initiated, controlled, and terminated.  It
  543. is  based  upon  the  concepts of abstract bind operations,  unbind
  544. operations, operations, and errors, as well as the enabling concept
  545. of abstract procedures.
  546.  
  547.       Note ╤ The macros defined below imply use of ASN.1 to specify
  548. arguments,  results,  and  parameters. Any  context╤specific  tags,
  549. e.g.,  assigned  in  the  course  of the  specifications,  although
  550. meaningless  in  that  context, play an important  role  in  a  ROS
  551. realization of the abstract service.
  552.  
  553. 8.1  Abstract procedures
  554.  
  555.       An  abstract procedure (procedure) is a task that one  object
  556. carries out at another's request. The making of the request and the
  557. carrying  out of the task are called the invocation and performance
  558. of  the  procedure. The objects that issue and act upon the request
  559. are called the invoker and performer, respectively.
  560.  
  561.       A  procedure may (but need not) require that an invoker, upon
  562. invocation, supply to the performer a single information object  of
  563. a prescribed type, which is called the procedure's argument.
  564.  
  565.       Every  performance of every procedure has an outcome, success
  566. or  failure. A procedure is considered to succeed if it is  carried
  567. out in full, to fail if it is terminated prematurely.
  568.  
  569.       A  procedure  may (but need not) require that  the  performer
  570. apprise  the  invoker  of success. It may (but  need  not)  further
  571. require   that  it  supply,  when  reporting  success,   a   single
  572. information  object  of  a prescribed type,  which  is  called  the
  573. procedure's result.
  574.  
  575.       A  procedure  may (but need not) require that  the  performer
  576. apprise  the  invoker  of failure. It may (but  need  not)  further
  577. require that it supply certain information when reporting failure.
  578.  
  579.       Note  ╤ In subsequent ñ ASN.1 is prescribed as the means  for
  580. specifying  the  abstract syntax of the arguments  and  results  of
  581. procedures (as well as of the parameters of abstract errors). These
  582. uses  of  ASN.1  do  not imply that these information  objects  are
  583. necessarily  transported between open systems. In  particular,  the
  584. fact  that  the information objects, by virtue of their description
  585. in  ASN.1  and of its Basic Encoding Rules, have concrete  transfer
  586. syntaxes  is immaterial in the present context. ASN.1 is  simply  a
  587. convenient  tool  for formally describing the information  objects'
  588. abstract syntax.
  589.  
  590. 8.2  Abstract bind operations
  591.  
  592.       An  abstract  bind operation is a procedure whose  successful
  593. performance binds one or more pairs of abstract ports.  The  object
  594. which  invokes  an  abstract  bind operation  is  said  to  be  the
  595. initiator, that which performs it the responder.
  596.  
  597.        An  abstract  bind  operation  is  suitable  for  binding  a
  598. particular set of ports of the initiator to a matching set  of  the
  599. responder.  Where one or more ports in the set are asymmetric,  the
  600. abstract bind operation may be suitable for binding to the consumer
  601. side only, the supplier side only, or to either.
  602.  
  603.      An abstract bind operation is a fully general procedure except
  604. that, if information is conveyed to the invoker upon failure, it is
  605. constrained   to   a  single  information  object,   called   error
  606. information.
  607.  
  608.       An  abstract  bind operation is specified  by  means  of  the
  609. ABSTRACT╤BIND macro whose definition is as follows:
  610.  
  611.      ABSTRACT╤BIND MACRO ::=
  612.      BEGIN
  613.  
  614.      TYPE NOTATION  ::=  Ports Bind
  615.      VALUE NOTATION ::=  value (VALUE BindType)
  616.  
  617.      Ports          ::=  ╥TO╙ ╥{╙ PortList ╥}╙ | empty
  618.      PortLis             ::=  Port ╥,╙ PortList | Port
  619.      Port                ::=  value (PORT) PortSide
  620.      PortSide                 ::=  Consumer | Supplier | empty
  621.      Consumer            ::=  ╥[C]╙
  622.      Supplier                 ::=  ╥[S]╙
  623.  
  624.      Bind           ::=  type (BindType) ╤╤ must be a BIND type
  625.                          | empty <BindType ::= BIND>
  626.  
  627.      END
  628.  
  629.       The ╥Ports╙ clause, introduced by the keyword ╥TO╙, lists the
  630. ports  of a responder which this abstract bind operation will bind.
  631. If  an asymmetric port is listed there, without being qualified  by
  632. ╥[S]╙  or  ╥[C]╙,  this means that the abstract bind  operation  is
  633. suitable for use in binding such a port in either direction.
  634.  
  635.       Note  that the specification of the argument, result,  and/or
  636. error  information is accomplished by means of an  (embedded)  BIND
  637. macro of Remote Operations, defined in Recommendation X.219, and it
  638. is  a  value  of  such a type that the macro returns.  If  none  is
  639. provided, the default ╥BIND╙ is returned.
  640.  
  641.       Note  ╤  The relationship of ABSTRACT╤BIND and BIND can  help
  642. make  trivial  the ROS realization of an abstract  service;  see  ñ
  643. 10.1.
  644.  
  645.       An  abstract  service typically comprises  an  abstract  bind
  646. operation  for  each type of port involved in its  provision.  When
  647. several port types are involved, their abstract bind operations may
  648. but need not be distinct.
  649.  
  650. 8.3  Abstract unbind operations
  651.  
  652.      An abstract unbind operation is a procedure whose performance,
  653. successful  or not, unbinds two ports. It is invoked by the  object
  654. which invoked the corresponding abstract bind (i.e., the initiator)
  655. and performed by the responder.
  656.  
  657.       An  abstract  unbind operation is suitable  for  unbinding  a
  658. particular set of ports of the initiator from a matching set of the
  659. responder.  Where one or more ports in the set are asymmetric,  the
  660. abstract  unbind operation may be suitable for unbinding  from  the
  661. consumer side only, the supplier side only, or either.
  662.  
  663.       An  abstract  unbind operation is a fully  general  procedure
  664. except  that,  if  information  is conveyed  to  the  invoker  upon
  665. failure,  it is constrained to a single information object,  called
  666. error information.
  667.  
  668.       An  abstract  unbind operation is specified by means  of  the
  669. ABSTRACT╤UNBIND macro whose definition is as follows:
  670.  
  671.      ABSTRACT╤UNBIND MACRO ::=
  672.      BEGIN
  673.  
  674.      TYPE NOTATION  ::=  Ports Unbind
  675.      VALUE NOTATION ::=  value (VALUE UnbindType)
  676.  
  677.      Ports          ::=  ╥FROM╙ ╥{╙ PortList ╥}╙
  678.      PortList                 ::=  Port ╥,╙ PortList | Port
  679.      Port                ::=  value (PORT) PortSide
  680.      PortSide                 ::=  Consumer | Supplier | empty
  681.      Consumer            ::=  ╥[C]╙
  682.      Supplier                 ::=  ╥[S]╙
  683.  
  684.      Unbind              ::=  type (UnbindType) |
  685.                          ╤╤ must be an UNBIND type
  686.                          empty <UnbindType ::= UNBIND>.
  687.  
  688.      END
  689.  
  690.       The  ╥Ports╙ clause, introduced by the keyword ╥FROM╙,  lists
  691. the  ports of a responder from which this abstract unbind operation
  692. will  unbind. If an asymmetric port is listed there, without  being
  693. qualified  by  ╥[S]╙ or ╥[C]╙, this means that the abstract  unbind
  694. operation  is suitable for use in unbinding such a port  in  either
  695. direction  (although  the actual direction  is  determined  by  the
  696. direction in which the bind took place).
  697.  
  698.       Note  that the specification of the argument, result,  and/or
  699. error  information is accomplished by means of an (embedded) UNBIND
  700. macro of Remote Operations, defined in Recommendation X.219, and it
  701. is  a  value  of  such a type that the macro returns.  If  none  is
  702. provided, the default ╥UNBIND╙ is returned.
  703.  
  704.       Note  ╤ The relationship of ABSTRACT╤UNBIND and UNBIND  helps
  705. make  trivial  the ROS realization of an abstract  service;  see  ñ
  706. 10.1.
  707.  
  708.       An  abstract  service typically comprises an abstract  unbind
  709. operation  for  each type of port involved in its  provision.  When
  710. several  port types are involved, their abstract unbind  operations
  711. may but need not be distinct.
  712.  
  713. 8.4  Abstract operations
  714.  
  715.       An  abstract operation is a procedure that may be invoked  in
  716. the  context of two bound ports. Its failure has no effect upon the
  717. binding. If the ports are assymmetric, whether the invoker  is  the
  718. object  having  the consumer port, the object having  the  supplier
  719. port,  or  either  is  prescribed by the port.  If  the  ports  are
  720. symmetric, the invoker may be either object. Whether the ports  are
  721. symmetric or asymmetric, the remaining object is the performer.
  722.  
  723.       An abstract operation is a fully general procedure except for
  724. the  information conveyed to the invoker upon failure. An  abstract
  725. operation  fails  when  it encounters an abstract  error,  and  the
  726. information conveyed is constrained to that required to report that
  727. abstract  error.  Whether failure is reported  and,  if  so,  which
  728. abstract errors can be encountered are prescribed for each abstract
  729. operation.
  730.  
  731.        An   abstract  operation  is  specified  by  means  of   the
  732. ABSTRACT╤OPERATION macro. Its definition is identical  to  that  of
  733. the   OPERATION   macro   of   Remote  Operations,   specified   in
  734. Recommendation X.219.
  735.  
  736.      ABSTRACT╤OPERATION MACRO ::= OPERATION
  737.  
  738.      An abstract service comprises zero or more abstract operations
  739. for  each type of port involved in its provision. When several port
  740. types  are involved, they may but need not have abstract operations
  741. in common.
  742.  
  743.       Note  ╤  The equivalence of ABSTRACT╤OPERATION and  OPERATION
  744. helps make trivial the ROS realization of an abstract service;  see
  745. ñ 10.1.
  746.  
  747. 8.5  Abstract errors
  748.  
  749.       An  abstract error is an exceptional condition that may arise
  750. during  the  performance of an abstract operation,  causing  it  to
  751. fail.
  752.  
  753.       When an abstract error is reported, the performer conveys  to
  754. the  invoker  the  identity of the abstract error  and  possibly  a
  755. single information object called its parameter. Whether a parameter
  756. is  returned and, if so, its type are prescribed for each  abstract
  757. error.
  758.  
  759.       An abstract error is specified by means of the ABSTRACT╤ERROR
  760. macro.  Its definition is identical to that of the ERROR  macro  of
  761. Remote Operations, specified in Recommendation X.219.
  762.  
  763.      ABSTRACT╤ERROR; MACRO ::= ERROR
  764.  
  765.      An abstract service comprises the zero or more abstract errors
  766. reported by its abstract operations.
  767.  
  768.       Note ╤ The equivalence of ABSTRACT╤ERROR and ERROR helps make
  769. trivial the ROS realization of an abstract service; see ñ 10.1.
  770.  
  771. SECTION 3 ╤ ABSTRACT SERVICE REALIZATIONS
  772.  
  773.  
  774. 9    Overview
  775.  
  776.       Once  a  distributed  information processing  task  has  been
  777. described and specified in abstract terms, the manner in which each
  778. aspect of the task is to be concretely realized must be prescribed.
  779. As  suggested previously, each aspect may admit of several concrete
  780. realizations.
  781.  
  782.       This  section  specifies principles for concretely  realizing
  783. abstract  models and services. A real x is the computer process  or
  784. system,  or  the  real  open  system that  concretely  realizes  an
  785. abstract object of type x.
  786.  
  787.      This section covers the following topics:
  788.      a)OSI realizations.
  789.      b)Proprietary realizations.
  790.  
  791.       Note  ╤  The aspects of an abstract model stressed  here  are
  792. abstract  ports and their bindings. This is because abstract  ports
  793. mark  the  boundary  not  only between abstract  objects  but  also
  794. between the physical systems that concretely realize those abstract
  795. objects.  Thus  abstract ports and bindings are  the  parts  of  an
  796. abstract  model that must be constructed or constructable with  OSI
  797. tools if open systems interworking is to occur.
  798.  
  799.  
  800. 10   OSI realizations
  801.  
  802.      A primary objective of CCITT Recommendations and ISO Standards
  803. is  to  specify  how distributed information processing  tasks  are
  804. realized when carried out by several cooperating real open systems.
  805.  
  806.       In  the  OSI  environment, objects are realized by  means  of
  807. application processes, with, in general, a many╤to╤many mapping  of
  808. objects to application processes. Communication among objects which
  809. are realized by application processes in different open systems  is
  810. accomplished   by   OSI   application  protocols   (consisting   of
  811. application  contexts). An application context  thus  realizes  the
  812. binding, use, and unbinding of a number of port pairs.
  813.  
  814.      The specification of an application context is in terms of the
  815. coordinated  operation of a number of application╤service╤elements.
  816. Realization is therefore particularly straightforward to specify if
  817. an  application╤service╤element is defined to  correspond  to  each
  818. port whose communication is to be supported.
  819.  
  820.       The  realization of abstract ports and bindings by  means  of
  821. ASEs  and ACs is discussed below. Both ROS and non╤ROS realizations
  822. are considered.
  823.  
  824. 10.1 ROS realizations
  825.  
  826.       The  concrete  realization of ports  and  bindings  is  often
  827. trivial when accomplished by means of Remote Operations.
  828.  
  829.       This  is  true  because it is straightforward  to  define  an
  830. abstract  service  which  is such that  there  exists  a  ROS╤based
  831. application protocol that is functionally identical to it. This  is
  832. true  in  turn  because  the  framework for  the  specification  of
  833. abstract  services is isomorphic to that for the  specification  of
  834. ROS╤based  application  protocols. The correspondences  behind  the
  835. isomorphism are listed in Table 1/X.407.
  836.                                  
  837.                                  
  838.                            TABLE 1/X.407
  839.    Correspondences of abstract services and ROS╤based protocols
  840.                                  
  841.             Aspect of Abstract    Aspect of
  842.             service              ROS╤based protocol
  843.                                  
  844.                                  
  845.              Abstract bind        Bind operation
  846.             operation            
  847.             
  848.                                  
  849.              Abstract unbind      Unbind operation
  850.             operation            
  851.             
  852.                                  
  853.              Abstract operation   Operation
  854.                                  
  855.                                  
  856.              Abstract error       Error
  857.                                  
  858.  
  859.       The  correspondences of the table arise from  the  fact  that
  860. corresponding aspects are formally specified using closely╤related,
  861. or equivalent macros, as summarized in Table 2/X.407.
  862.                                  
  863.                                  
  864.                            TABLE 2/X.407
  865.             Equivalent abstract service and ROS macros
  866.                                          
  867.                   Abstract service macro  ROS macro
  868.                                          
  869.                                          
  870.                    ABSTRACT╤BIND          BIND
  871.                    ABSTRACT╤UNBIND        UNBIND
  872.                    ABSTRACT╤OPERATION     OPERATION
  873.                    ABSTRACT╤ERROR         ERROR
  874.  
  875.       The  definition  of  ROS╤based ASEs and ACs  that  concretely
  876. realize  abstract  ports is explored in Annex  A  by  means  of  an
  877. example.
  878.  
  879.       For the realization to be trivial, it is necessary that there
  880. be  an  abstract bind operation which binds all of the ports  which
  881. must be paired.
  882.  
  883.       Note  ╤ Where there is more than one port (pair) involved  in
  884. the   abstract  service,  this  requires  that  the  abstract  bind
  885. operation be designed for the particular ports involved.  There  is
  886. (currently) no provision for the automatic synthesis of a  suitable
  887. abstract  bind  based, e.g., upon the definitions of abstract  bind
  888. operations defined for the individual ports.
  889.  
  890. 10.2 Non╤ROS realizations
  891.  
  892.       The  concrete  realization of ports and bindings  is  a  more
  893. substantial  task  when  attempted  by  means  other  than   Remote
  894. Operations, and little can be said about the general propositions.
  895.  
  896.        Despite  the  above,  the  following  two  observations  are
  897. relevant:
  898.      a)The  concrete  realization  of an  abstract  service  as  an
  899.         application  protocol is greatly simplified by using  ASN.1
  900.         to  define  its  APDUs.  This is so  because  the  protocol
  901.         specification can simply import relevant types  and  values
  902.         from the abstract service specification.
  903.      b)The  concrete  realization  of  an  abstract  service  whose
  904.         abstract  operations  do  not  report  their  outcomes   is
  905.         conceptually simple. This is so because each such  abstract
  906.         operation  represents an interaction  comprising  a  single
  907.         APDU.  From  this  simplest of all  possible  interactions,
  908.         arbitrarily complex ones can be constructed.
  909.  
  910.  
  911. 11   Proprietary realizations
  912.  
  913.       A  secondary  objective  of  CCITT  Recommendations  and  ISO
  914. Standards  is  to  ensure  that those  portions  of  a  distributed
  915. information  processing task that are carried  out  by  proprietary
  916. means  are  accomplished in such a way that  the  intended  overall
  917. functionality of the system is upheld.
  918.  
  919.       The realization of abstract ports and bindings by proprietary
  920. means   is   briefly   discussed  below.   Both   distributed   and
  921. non╤distributed realizations are considered.
  922.  
  923. 11.1 Distributed realizations
  924.  
  925.       The  concrete realization of ports and bindings by  means  of
  926. proprietary computer communication protocols is a local matter. The
  927. specification of the visible functionality embodied in the abstract
  928. service  provides  a guide to the implementors of  the  proprietary
  929. realizations,  so  that, where such realizations  are  appropriate,
  930. they may play the appropriate role in the overall task.
  931.  
  932. 11.2 Non╤distributed realizations
  933.  
  934.       The  concrete realization of ports and bindings by  means  of
  935. mechanisms  wholly within a single computer is a local  matter.  As
  936. with   the  case  considered  in  ñ  11.1,  the  abstract   service
  937. specification serves as a guide to the implementor in ensuring that
  938. the  proprietary  realization can nonetheless play the  appropriate
  939. role in the overall task.
  940.                                  
  941.                                  
  942.                                  
  943.                               ANNEX A
  944.                                  
  945.                      (to Recommendation X.407)
  946.                                  
  947.             Example of use of abstract service notation
  948.                                  
  949.  
  950.      This Annex is not a part of this Recommendation.
  951.  
  952.       This  Annex  illustrates the use of the  abstract  model  and
  953. service  notation by means of an example. The example involves  two
  954. systems, the Yellow and Green Systems, and their environments,  the
  955. Yellow and Green Environments.
  956.  
  957.        It   uses  the  abstract  model  notation  to  describe  the
  958. environments  separately (ñ A.2 and A.4)  and  to  show  how  their
  959. systems are related: one is constructed from the other (ñ A.6).  It
  960. uses the abstract service notation to describe the capabilities  of
  961. each system (ñ A.3 and A.5). The example concludes by realizing the
  962. systems'  ports  as  ACs  and  ASEs  using  the  ROS  notation   of
  963. Recommendation X.219, as might be appropriate for OSI communication
  964. (ñ A.7 and A.8).
  965.  
  966. A.1  Assignment of object identifiers
  967.  
  968.      The ASN.1 modules defined in this Annex require the assignment
  969. of  a  variety of Object Identifiers. All are defined  below  using
  970. ASN.1.  The assignments are definitive except for those  for  ASN.1
  971. modules   and   the  subject  of  application  service   definition
  972. conventions itself. The definitive assignments for the former occur
  973. in  the  modules  themselves; other references to  them  appear  in
  974. IMPORT clauses. The latter is fixed.
  975.  
  976. ExampleObjectIdentifiers { joint╤iso╤ccitt
  977.           mhs╤motis(6)      asdc(2)      example(1)      modules(0)
  978. object╤identifiers(0) }
  979. DEFINITIONS IMPLICIT TAGS ::=
  980. BEGIN
  981.  
  982. ╤╤ Prologue
  983. ╤╤ Exports everything.
  984.  
  985. IMPORTS ╤╤ nothing ╤╤ ;
  986.  
  987. ID ::= OBJECT IDENTIFIER
  988.  
  989. ╤╤ Abstract Service Definition Conventions Example (not definitive)
  990.  
  991. id╤asdc╤ex   ID  ::=  {  joint╤iso╤ccitt  mhs╤motis   (6)   asdc(2)
  992. example(1) }
  993.      ╤╤ not definitive
  994.  
  995. ╤╤ Categories
  996.  
  997. id╤mod  ID ::= { id╤asdc╤ex 0 } ╤╤ modules; not definitive
  998. id╤ot   ID ::= { id╤asdc╤ex 1 } ╤╤ object types
  999. id╤pt   ID ::= { id╤asdc╤ex 2 } ╤╤ port types
  1000. id╤ref  ID ::= { id╤asdc╤ex 3 } ╤╤ refinements
  1001. id╤ac   ID ::= { id╤asdc╤ex 4 } ╤╤ application contexts
  1002. id╤ase  ID ::= { id╤asdc╤ex 5 } ╤╤ application service elements
  1003. id╤as   ID ::= { id╤asdc╤ex 6 } ╤╤ abstract syntaxes
  1004.  
  1005. ╤╤ Modules
  1006.  
  1007. id╤mod╤object╤identifiers     ID ::= { id╤mod 0 } ╤╤ not definitive
  1008. id╤mod╤ye╤refinement     ID ::= { id╤mod 1 } ╤╤ not definitive
  1009. id╤mod╤y╤abstract╤service     ID ::= { id╤mod 2 } ╤╤ not definitive
  1010. id╤mod╤ge╤refinement     ID ::= { id╤mod 3 } ╤╤ not definitive
  1011. id╤mod╤g╤abstract╤service     ID ::= { id╤mod 4 } ╤╤ not definitive
  1012. id╤mod╤ys╤refinement     ID ::= { id╤mod 5 } ╤╤ not definitive
  1013. id╤mod╤ys╤realization      ID ::= { id╤mod 6 } ╤╤ not definitive
  1014. id╤mod╤gs╤realization      ID ::= { id╤mod 7 } ╤╤ not definitive
  1015.  
  1016. ╤╤ Object types
  1017.  
  1018. id╤ot╤y╤environment      ID ::= { id╤ot 0 }
  1019. id╤ot╤y╤user         ID ::= { id╤ot 1 }
  1020. id╤ot╤y╤system       ID ::= { id╤ot 2 }
  1021. id╤ot╤g╤environment      ID ::= { id╤ot 3 }
  1022. id╤ot╤g╤user         ID ::= { id╤ot 4 }
  1023. id╤ot╤g╤manager        ID ::= { id╤ot 5 }
  1024. id╤ot╤g╤system       ID ::= { id╤ot 6 }
  1025. id╤ot╤agent          ID ::= { id╤ot 7 }
  1026.  
  1027. ╤╤ Port types
  1028.  
  1029. id╤pt╤y╤use ID       ID ::= { id╤pt 0 }
  1030. id╤pt╤g╤use ID       ID ::= { id╤pt 1 }
  1031. id╤pt╤g╤management     ID ::= { id╤pt 2 }
  1032.  
  1033. ╤╤ Refinements
  1034.  
  1035. id╤ref╤y╤environment     ID ::= { id╤ref 0 }
  1036. id╤ref╤g╤environment     ID ::= { id╤ref 1 }
  1037. id╤ref╤y╤system        ID ::= { id╤ref 2 }
  1038.  
  1039. ╤╤ Application contexts
  1040.  
  1041. id╤ac╤y╤use          ID ::= { id╤ac 0 }
  1042. id╤ac╤g╤use          ID ::= { id╤ac 1 }
  1043. id╤ac╤g╤management     ID ::= { id╤ac 2 }
  1044.  
  1045. ╤╤ Application service elements
  1046.  
  1047. id╤ase╤y╤use         ID ::= { id╤ase 0 }
  1048. id╤ase╤g╤use         ID ::= { id╤ase 1 }
  1049. id╤ase╤g╤management      ID ::= { id╤ase 2 }
  1050.  
  1051. ╤╤ Abstract syntaxes
  1052.  
  1053. id╤as╤y╤use          ID ::= { id╤as 0 }
  1054. id╤as╤g╤use          ID ::= { id╤as 1 }
  1055. id╤as╤g╤management     ID ::= { id╤as 2 }
  1056.  
  1057. END ╤╤ of ExampleObjectIdentifiers
  1058.  
  1059. A.2  Refinement of yellow environment
  1060.  
  1061.       The  Yellow  Environment, depicted in  Figure  A╤1/X.407,  is
  1062. formally refined below using the OBJECT and REFINE macros.
  1063.                                  
  1064.                                  
  1065.                  Fig. A╤1/X.407/T0704110-88 = 8 cm
  1066.                                  
  1067.                                  
  1068.  
  1069.       As  Figure  A╤1/X.407 indicates and the  ASN.1  specification
  1070. below  confirms, the Yellow Environment can be modeled as an object
  1071. which can be decomposed into one central object, the Yellow System,
  1072. and  any  number  of other, peripheral objects, yellow  users.  The
  1073. Yellow  System  interacts  with  yellow  users  by  means  of   its
  1074. yellow╤use ports.
  1075.  
  1076. YellowEnvironmentRefinement { joint╤iso╤ccitt
  1077.      mhs╤motis(6) asdc(2) example(1) modules(0) ye╤refinement(1) }
  1078. DEFINITIONS IMPLICIT TAGS ::=
  1079. BEGIN
  1080. ╤╤ Prologue
  1081.  
  1082. EXPORTS
  1083.      yellow╤environment, yellow╤environment╤refinement,
  1084.      yellow╤system, yellow╤user;
  1085.  
  1086. IMPORTS
  1087.      ╤╤ Yellow Abstract Service
  1088.            yellow╤use
  1089.            . . . .
  1090.            FROM YellowAbstractService { joint╤iso╤ccitt
  1091.                 mhs╤motis(6)    asdc(2)    example(1)    modules(0)
  1092. y╤abstract╤service(2) }
  1093.  
  1094.      ╤╤ Example Object Identifiers
  1095.  
  1096.            id╤ot╤y╤environment, id╤ot╤y╤system, id╤ot╤y╤user,
  1097.            id╤ref╤y╤environment
  1098.            . . . .
  1099.            FROM ExampleObjectIdentifiers { joint╤iso╤ccitt
  1100.                 mhs╤motis(6)    asdc(2)    example(1)    modules(0)
  1101. object╤identifiers(0) }
  1102.  
  1103.      ╤╤ Abstract Service Notation
  1104.            OBJECT, REFINE
  1105.            . . . .
  1106.            FROM AbstractServiceNotation { joint╤iso╤ccitt
  1107.              mhs╤motis(6) asdc(2) modules(0) notation(1) };
  1108.  
  1109. ╤╤ Yellow Environment
  1110.  
  1111. yellow╤environment OBJECT
  1112.      ::= id╤ot╤y╤environment
  1113.  
  1114. ╤╤ Yellow Environment refinement
  1115.  
  1116. yellow╤environment╤refinement REFINE yellow╤environment AS
  1117.      yellow╤user RECURRING
  1118.      yellow╤system
  1119.         yellow╤use [S] PAIRED WITH yellow╤user
  1120.      ::= id╤ref╤y╤environment
  1121.  
  1122. ╤╤ Component object types
  1123.  
  1124. yellow╤user OBJECT
  1125.      PORTS {
  1126.            yellow╤use [C] }
  1127.      ::= id╤ot╤y╤user
  1128.  
  1129. yellow╤system OBJECT
  1130.  
  1131.      PORTS {
  1132.            yellow╤use [S] }
  1133.      ::= id╤ot╤y╤system
  1134.  
  1135. END ╤╤ of YellowEnvironmentRefinement
  1136.  
  1137. A.3  Definition of yellow abstract service
  1138.  
  1139.       The  abstract service that the Yellow System provides to  its
  1140. users  is  formally defined below using the PORT and ABSTRACT╤BIND,
  1141. ╤OPERATION, and ╤ERROR macros.
  1142.  
  1143.       As  the  ASN.1 specification indicates, the abstract  service
  1144. that  the Yellow System provides comprises ports of a single  kind,
  1145. yellow╤use.  Each  port comprises a number of  abstract  operations
  1146. which  collectively report a number of abstract errors. The  Yellow
  1147. System  guards  its ports by means of an abstract  bind  operation,
  1148. YellowBind,   which   demands   that  users   identify   themselves
  1149. convincingly before further interaction occurs. An abstract  unbind
  1150. operation,  YellowUnbind, which constitutes the  finalization  step
  1151. required to conclude an interaction.
  1152.  
  1153. YellowAbstractService { joint╤iso╤ccitt
  1154.           mhs╤motis(6)      asdc(2)      example(1)      modules(0)
  1155. y╤abstract╤service(2) }
  1156. DEFINITIONS IMPLICIT TAGS ::=
  1157. BEGIN
  1158. ╤╤ Prologue
  1159.  
  1160. EXPORTS
  1161.      AuthenticateUser, Yellow╤operation╤1, . . . yellow╤use;
  1162.  
  1163. IMPORTS
  1164.      ╤╤ Example Object Identifiers
  1165.            id╤pt╤y╤use
  1166.            . . . .
  1167.            FROM ExampleObjectIdentifiers { joint╤iso╤ccitt
  1168.                 mhs╤motis(6)    asdc(2)    example(1)    modules(0)
  1169. object╤identifiers(0) }
  1170.  
  1171.      ╤╤ Abstract Service Notation
  1172.            ABSTRACT╤BIND, ABSTRACT╤ERROR, ABSTRACT╤OPERATION, PORT
  1173.            . . . .
  1174.            FROM AbstractServiceNotation { joint╤iso╤ccitt
  1175.              mhs╤motis(6) asdc(2) modules(0) notation(1) };
  1176.  
  1177. ╤╤ Port type
  1178.  
  1179. yellow╤use PORT
  1180.      CONSUMER INVOKES {
  1181.            Yellow╤operation╤1, . . . }
  1182.      ::= id╤pt╤y╤use
  1183.  
  1184. ╤╤ Abstract bind operation
  1185.  
  1186. Credentials ::= SET {
  1187.            name     [0] IA5String,
  1188.            password [1] IA5String }
  1189.  
  1190. YellowBind ::= ABSTRACT╤BIND
  1191.            TO { yellow╤use[S] }
  1192.  
  1193.      BIND
  1194.  
  1195.            ARGUMENT credentials Credentials
  1196.              BIND╤ERROR ENUMERATED {
  1197.                name╤or╤password╤invalid(0) }
  1198.  
  1199. ╤╤ Abstract unbind operation
  1200.  
  1201. YellowUnbind ::= ABSTRACT╤UNBIND
  1202.      FROM { yellow╤use[S] }
  1203.  
  1204. ╤╤ Abstract operations
  1205.  
  1206. Yellow╤operation╤1 ::= ABSTRACT╤OPERATION
  1207.            ARGUMENT . . .
  1208.            RESULT . . .
  1209.            ERRORS {
  1210.              yellow╤error╤1, . . . }
  1211.  
  1212. . . .
  1213.  
  1214. ╤╤ Abstract errors
  1215.  
  1216. yellow╤error╤1 ABSTRACT╤ERROR
  1217.            PARAMETER . . .
  1218.            ::= 1
  1219.  
  1220. . . .
  1221.  
  1222. END ╤╤ of YellowAbstractService
  1223.  
  1224. A.4  Refinement of green environment
  1225.  
  1226.       The  Green  Environment,  depicted in  Figure  A╤2/X.407,  is
  1227. formally refined below using the OBJECT and REFINE macros.
  1228.                                  
  1229.                                  
  1230.                  Fig. A╤2/X.407/T0704120-88 = 8cm
  1231.                                  
  1232.                                  
  1233.  
  1234.       As  Figure  A╤2/X.407 indicates and the  ASN.1  specification
  1235. below  confirms, the Green Environment can be modeled as an  object
  1236. which  can be decomposed into one central object, the Green System;
  1237. any  number  of  other, peripheral objects, green  users;  and  any
  1238. number  of yet additional objects, green managers. The Green System
  1239. interacts  with green users and managers by means of its  green╤use
  1240. ports,   and   with  green  managers  (alone)  by  means   of   its
  1241. green╤management ports.
  1242.  
  1243. GreenEnvironmentRefinement { joint╤iso╤ccitt
  1244.      mhs╤motis(6) asdc(2) example(1) modules(0) ge╤refinement(3) }
  1245. DEFINITIONS IMPLICIT TAGS ::=
  1246. BEGIN
  1247. ╤╤ Prologue
  1248.  
  1249. EXPORTS
  1250.      green╤environment, green╤environment╤refinement,
  1251.      green╤manager, green╤system, green╤user;
  1252.  
  1253. IMPORTS
  1254.  
  1255.      ╤╤ Green Abstract Service
  1256.            green╤use, green╤management
  1257.            . . . .
  1258.            FROM GreenAbstractService { joint╤iso╤ccitt
  1259.                 mhs╤motis(6)    asdc(2)    example(1)    modules(0)
  1260. g╤abstract╤service(4) }
  1261.  
  1262.      ╤╤ Example Object Identifiers
  1263.                      id╤ot╤g╤environment,          id╤ot╤g╤manager,
  1264. id╤ref╤g╤environment
  1265.            id╤ot╤g╤user, id╤ot╤g╤system,
  1266.            . . . .
  1267.            FROM ExampleObjectIdentifiers { joint╤iso╤ccitt
  1268.                 mhs╤motis(6)    asdc(2)    example(1)    modules(0)
  1269. object╤identifiers(0) }
  1270.  
  1271.      ╤╤ Abstract Service Notation
  1272.            OBJECT, REFINE
  1273.            . . . .
  1274.            FROM AbstractServiceNotation { joint╤iso╤ccitt
  1275.              mhs╤motis(6) asdc(2) modules(0) notation(1) };
  1276.  
  1277. ╤╤ Green Environment
  1278.  
  1279. green╤environment OBJECT
  1280.      ::= id╤ot╤g╤environment
  1281.  
  1282. ╤╤ Green Environment refinement
  1283.  
  1284. green╤environment╤refinement REFINE green╤environment AS
  1285.      green╤user          RECURRING
  1286.      green╤manager  RECURRING
  1287.      green╤system
  1288.         green╤use        [S] PAIRED WITH green╤user, green╤manager
  1289.         green╤management [S] PAIRED WITH green╤manager
  1290.      ::= id╤ref╤g╤environment
  1291.  
  1292. ╤╤ Component object types
  1293.  
  1294. green╤user OBJECT
  1295.      PORTS {
  1296.            green╤use          [C] }
  1297.      ::= id╤ot╤g╤user
  1298.  
  1299. green╤manager OBJECT
  1300.      PORTS {
  1301.            green╤use          [C],
  1302.            green╤management   [C] }
  1303.      ::= id╤ot╤g╤manager
  1304.  
  1305. green╤system OBJECT
  1306.      PORTS {
  1307.            green╤use          [S],
  1308.            green╤management   [S] }
  1309.      ::= id╤ot╤g╤system
  1310.  
  1311. END ╤╤ of GreenEnvironmentRefinement
  1312.  
  1313. A.5  Definition of green abstract service
  1314.  
  1315.       The  abstract service that the Green System provides  to  its
  1316. users  and  managers is formally defined below using the  PORT  and
  1317. ABSTRACT╤BIND, ╤OPERATION, and ╤ERROR macros.
  1318.  
  1319.       As  the  ASN.1 specification indicates, the abstract  service
  1320. that  the  Green  System provides comprises  ports  of  two  kinds,
  1321. green╤use  and green╤management. A port of either kind comprises  a
  1322. number of abstract operations which collectively report a number of
  1323. abstract  errors.  The Green System guards its ports  by  means  of
  1324. abstract bind operations, AuthenticateUser and AuthenticateManager,
  1325. which   demand   that   users  and  managers  identify   themselves
  1326. convincingly  before  further interaction can  occur.  No  abstract
  1327. unbind  operations are specified, indicating that  no  finalization
  1328. step is required to conclude an interaction.
  1329.  
  1330. GreenAbstractService { joint╤iso╤ccitt
  1331.           mhs╤motis(6)      asdc(2)      example(1)      modules(0)
  1332. g╤abstract╤service(4) }
  1333. DEFINITIONS IMPLICIT TAGS ::=
  1334. BEGIN
  1335. ╤╤ Prologue
  1336.  
  1337. EXPORTS
  1338.      AuthenticateManager, AuthenticateUser, green╤management,
  1339.      Green╤management╤operation╤1, . . . green╤use,
  1340.      Green╤use╤operation╤1, . . .;
  1341.  
  1342. IMPORTS
  1343.      ╤╤ Example Object Identifiers
  1344.            id╤pt╤g╤use, id╤pt╤g╤management
  1345.            . . . .
  1346.            FROM ExampleObjectIdentifiers { joint╤iso╤ccitt
  1347.                 mhs╤motis(6)    asdc(2)    example(1)    modules(0)
  1348. object╤identifiers(0) }
  1349.  
  1350.      ╤╤ Abstract Service Notation
  1351.            PORT, ABSTRACT╤BIND, ABSTRACT╤OPERATION, ABSTRACT╤ERROR
  1352.            . . . .
  1353.            FROM AbstractServiceNotation { joint╤iso╤ccitt
  1354.              mhs╤motis(6) asdc(2) modules(0) notation(1) };
  1355.  
  1356. ╤╤ Port types
  1357.  
  1358. green╤use PORT
  1359.      CONSUMER INVOKES {
  1360.            Green╤use╤operation╤1, . . . }
  1361.      ::= id╤pt╤g╤use
  1362.  
  1363. green╤management PORT
  1364.      CONSUMER INVOKES {
  1365.            Green╤management╤operation╤1, . . . }
  1366.      ::= id╤pt╤g╤management
  1367.  
  1368. ╤╤ Abstract bind operations
  1369.  
  1370. Credentials ::= SET {
  1371.      name  [0] IA5String,
  1372.      password  [1] IA5String }
  1373.  
  1374. AuthenticateUser ::= ABSTRACT╤BIND
  1375.      ARGUMENT credentials Credentials
  1376.      BIND╤ERROR ENUMERATED {
  1377.         name╤or╤password╤invalid(0) }
  1378.  
  1379. AuthenticateManager ::= ABSTRACT╤BIND
  1380.      ARGUMENT credentials Credentials
  1381.      BIND╤ERROR ENUMERATED {
  1382.         name╤or╤password╤invalid(0),
  1383.         not╤a╤manager         (1) }
  1384.  
  1385. ╤╤ Abstract operations
  1386.  
  1387. Green╤use╤operation╤1 ::= ABSTRACT╤OPERATION
  1388.      ARGUMENT . . .
  1389.      RESULT . . .
  1390.      ERRORS {
  1391.            green╤error╤1, . . . }
  1392.  
  1393. . . .
  1394.  
  1395. Green╤management╤operation╤1 ::= ABSTRACT╤OPERATION
  1396.      ARGUMENT . . .
  1397.      RESULT . . .
  1398.      ERRORS {
  1399.         green╤error╤1, . . . }
  1400.  
  1401. . . .
  1402.  
  1403. ╤╤ Abstract errors
  1404.  
  1405. green╤error╤1 ABSTRACT╤ERROR
  1406.      PARAMETER . . .
  1407.      ::= 1
  1408.  
  1409. . . .
  1410.  
  1411. END ╤╤ of GreenAbstractService
  1412.  
  1413.  A.6 Refinement of yellow system
  1414.  
  1415.       The  Yellow System, depicted in Figure A╤3/X.407, is formally
  1416. refined below using the OBJECT and REFINE macros.
  1417.                                  
  1418.                                  
  1419.                  Fig. A╤3/X.407/T0704130-88 = 8cm
  1420.                                  
  1421.                                  
  1422.  
  1423.       As the figure indicates and the ASN.1 specification confirms,
  1424. the  Yellow  System,  when  examined closely,  has  components.  In
  1425. particular, the Yellow System comprises the Green System and  green
  1426. managers, augmented by objects of an as yet unseen variety,  agent.
  1427. An  agent serves as an intermediary between the Green System and  a
  1428. yellow  user. It might be thought of as adding value to  the  Green
  1429. System.  In any case, it is a provider of a yellow╤use port  and  a
  1430. consumer of a green╤use port.
  1431.  
  1432. YellowSystemRefinement { joint╤iso╤ccitt
  1433.      mhs╤motis(6) asdc(2) example(1) modules(0) ys╤refinement(5) }
  1434. DEFINITIONS IMPLICIT TAGS ::=
  1435. BEGIN
  1436. ╤╤ Prologue
  1437.  
  1438. EXPORTS
  1439.      agent, yellow╤system╤refinement;
  1440.  
  1441. IMPORTS
  1442.      ╤╤ Yellow Environment Refinement
  1443.            yellow╤system, yellow╤use
  1444.            . . . .
  1445.            FROM YellowEnvironmentRefinement { joint╤iso╤ccitt
  1446.                 mhs╤motis(6)    asdc(2)    example(1)    modules(0)
  1447. ye╤refinement(1) }
  1448.  
  1449.      ╤╤ Green Environment Refinement
  1450.            green╤management, green╤manager, green╤system,
  1451.            green╤use
  1452.            . . . .
  1453.            FROM GreenEnvironmentRefinement { joint╤iso╤ccitt
  1454.                 mhs╤motis(6)    asdc(2)    example(1)    modules(0)
  1455. ge╤refinement(3) }
  1456.  
  1457.      ╤╤ Example Object Identifiers
  1458.            id╤ot╤agent, id╤ref╤y╤system
  1459.            . . . .
  1460.            FROM ExampleObjectIdentifiers { joint╤iso╤ccitt
  1461.                 mhs╤motis(6)    asdc(2)    example(1)    modules(0)
  1462. object╤identifiers(0) }
  1463.  
  1464.      ╤╤ Abstract Service Notation
  1465.      OBJECT, REFINE
  1466.         FROM AbstractServiceNotation { joint╤iso╤ccitt
  1467.            mhs╤motis(6) asdc(2) modules(0) notation(1) };
  1468.  
  1469. ╤╤ Yellow System refinement
  1470.  
  1471. yellow╤system╤refinement REFINE yellow╤system AS
  1472.      agent RECURRING
  1473.            yellow╤use    [S] VISIBLE
  1474.      green╤manager RECURRING
  1475.      green╤system
  1476.            green╤use     [S] PAIRED WITH agent, green╤manager
  1477.            green╤management   [S] PAIRED WITH green╤manager
  1478.      ::= id╤ref╤y╤system
  1479.  
  1480. ╤╤ Component object type
  1481.  
  1482. agent OBJECT
  1483.      PORTS {
  1484.            yellow╤use    [S],
  1485.            green╤use     [C] }
  1486.      ::= id╤ot╤agent
  1487.  
  1488. END ╤╤ of YellowSystemRefinement
  1489.  
  1490. A.7  Realization of yellow system
  1491.  
  1492.      The abstract service of the Yellow System is formally realized
  1493. below,   by  means  of  ROS,  using  the  APPLICATION╤CONTEXT   and
  1494. APPLICATION╤SERVICE╤ELEMENT macros of Recommendation X.219.
  1495.  
  1496.       As  the  ASN.1 specification indicates, the abstract  service
  1497. that  the  Yellow  System provides is realized  as  a  single  ASE,
  1498. yellow╤use╤ASE,  and a single and corresponding AC,  yellow╤use╤AC.
  1499. Each abstract bind operation, abstract operation, or abstract error
  1500. in  the  abstract  service has a corresponding and equivalent  bind
  1501. operation,  operation,  or error, respectively,  in  its  ROS╤based
  1502. realization.
  1503.  
  1504.       Note that Integer values are assigned to the operations;  the
  1505. corresponding  abstract operations require  and  received  no  such
  1506. values.
  1507.  
  1508. YellowSystemRealization { joint╤iso╤ccitt
  1509.      mhs╤motis(6) asdc(2) example(1) modules(0) ys╤realization(6) }
  1510. DEFINITIONS IMPLICIT TAGS ::=
  1511. BEGIN
  1512. ╤╤ Prologue
  1513.  
  1514. EXPORTS
  1515.      yellow╤use╤AC, yellow╤use╤ASE;
  1516.  
  1517. IMPORTS
  1518.      ╤╤ Yellow Abstract Service
  1519.            Yellow╤operation╤1, . . . yellow╤use, YellowBind,
  1520.            YellowUnbind
  1521.            . . . .
  1522.            FROM YellowAbstractService { joint╤iso╤ccitt
  1523.                 mhs╤motis(6)    asdc(2)    example(1)    modules(0)
  1524. y╤abstract╤service(2) }
  1525.  
  1526.      ╤╤ Example Object Identifiers
  1527.            id╤ac╤y╤use, id╤as╤y╤use, id╤ase╤y╤use
  1528.            . . . .
  1529.            FROM ExampleObjectIdentifiers { joint╤iso╤ccitt
  1530.                 mhs╤motis(6)    asdc(2)    example(1)    modules(0)
  1531. object╤identifiers(0) }
  1532.  
  1533.      ╤╤ Remote Operations APDUs
  1534.            rOSE
  1535.            . . . .
  1536.            FROM Remote╤Operations╤APDUs { joint╤iso╤ccitt
  1537.              remote╤operations(4) apdus(1) }
  1538.  
  1539.      ╤╤ Association Control
  1540.            aCSE
  1541.            . . . .
  1542.            FROM Remote╤Operation╤Notation╤extension
  1543.              { joint╤iso╤ccitt remote╤operations(4)
  1544.              notation╤extension(2) }
  1545.  
  1546.      ╤╤ Remote Operations Notation Extension
  1547.            APPLICATION╤CONTEXT, APPLICATION╤SERVICE╤ELEMENT
  1548.            . . . .
  1549.                 FROM     Remote╤Operations╤Notation╤extension     {
  1550. joint╤iso╤ccitt
  1551.              remote╤operations(4) notation╤extension(2) };
  1552.  
  1553. ACSE╤AS OBJECT IDENTIFIER ::=
  1554.            { joint╤iso╤ccitt association╤control(2)
  1555.            abstractSyntax(1) apdus(0) version1(1) }
  1556.  
  1557. ╤╤ Application context
  1558.  
  1559. yellow╤use╤AC APPLICATION╤CONTEXT
  1560.      APPLICATION SERVICE ELEMENTS { aCSE }
  1561.      BIND YellowBind
  1562.      UNBIND YellowUnbind
  1563.      REMOTE OPERATIONS { rOSE }
  1564.      INITIATOR CONSUMER OF { yellow╤use╤ASE }
  1565.      ABSTRACT SYNTAXES { yellow╤use╤AS, aCSE╤AS }
  1566.      ::= id╤ac╤y╤use
  1567.  
  1568. ╤╤ Application service element
  1569.  
  1570. yellow╤use╤ASE APPLICATION╤SERVICE╤ELEMENT
  1571.      CONSUMER INVOKES {
  1572.            yellow╤operation╤1, . . . }
  1573.      ::= id╤ase╤y╤use
  1574.  
  1575. yellow╤operation╤1 Yellow╤operation╤1 ::= 1
  1576. . . .
  1577.  
  1578. ╤╤ Abstract syntax
  1579.  
  1580. yellow╤use╤AS OBJECT IDENTIFIER ::= id╤as╤y╤use
  1581.  
  1582. END ╤╤ of YellowSystemRealization
  1583.  
  1584. A.8  Realization of green system
  1585.  
  1586.       The abstract service of the Green System is formally realized
  1587. below,   by  means  of  ROS,  using  the  APPLICATION╤CONTEXT   and
  1588. APPLICATION╤SERVICE╤ELEMENT macros of Recommendation X.219.
  1589.  
  1590.       As  the  ASN.1 specification indicates, the abstract  service
  1591. that   the   Green  System  provides  is  realized  as  two   ASEs,
  1592. green╤use╤ASE and green╤management╤ASE, and two, corresponding ACs,
  1593. green╤use╤AC and green╤management╤AC. Each abstract bind operation,
  1594. abstract operation, or abstract error in the abstract service has a
  1595. corresponding and equivalent bind operation, operation,  or  error,
  1596. respectively, in its ROS╤based realization.
  1597.  
  1598.       Note that Integer values are assigned to the operations;  the
  1599. corresponding  abstract operations require  and  received  no  such
  1600. values.
  1601.  
  1602. GreenSystemRealization { joint╤iso╤ccitt
  1603.      mhs╤motis(6) asdc(2) example(1) modules(0) gs╤realization(7) }
  1604. DEFINITIONS IMPLICIT TAGS ::=
  1605. BEGIN
  1606. ╤╤ Prologue
  1607.  
  1608. EXPORTS
  1609.      green╤management╤AC, green╤management╤ASE, green╤use╤AC,
  1610.      green╤use╤ASE;
  1611.  
  1612. IMPORTS
  1613.      ╤╤ Green Abstract Service
  1614.            AuthenticateManager, AuthenticateUser,
  1615.            green╤management, Green╤management╤operation╤1, . . .
  1616.            green╤use, Green╤use╤operation╤1, . . .
  1617.            . . . .
  1618.            FROM GreenAbstractService { joint╤iso╤ccitt
  1619.                 mhs╤motis(6)    asdc(2)    example(1)    modules(0)
  1620. g╤abstract╤service(4) }
  1621.  
  1622.      ╤╤ Example Object Identifiers
  1623.            id╤ac╤g╤use,            id╤ase╤g╤use,       id╤as╤g╤use,
  1624.                  id╤ac╤g╤management,           id╤ase╤g╤management,
  1625. id╤as╤g╤management
  1626.            . . . .
  1627.            FROM ExampleObjectIdentifiers { joint╤iso╤ccitt
  1628.                 mhs╤motis(6)    asdc(2)    example(1)    modules(0)
  1629. object╤identifiers(0) }
  1630.  
  1631.      ╤╤ Remote Operations APDUs
  1632.            rOSE
  1633.            . . . .
  1634.            FROM Remote╤Operations╤APDUs { joint╤iso╤ccitt
  1635.              remote╤operations(4) apdus(1) }
  1636.  
  1637.      ╤╤ Association Control
  1638.            aCSE
  1639.            . . . .
  1640.                 FROM     Remote╤Operations╤Notation╤extension     {
  1641. joint╤iso╤ccitt
  1642.              remote╤operations(4) notation╤extension(2) }
  1643.  
  1644.      ╤╤ Remote Operations Notation Extension
  1645.            APPLICATION╤CONTEXT, APPLICATION╤SERVICE╤ELEMENT
  1646.            . . . .
  1647.                 FROM     Remote╤Operations╤Notation╤extension     {
  1648. joint╤iso╤ccitt
  1649.              remote╤operations(4) notation╤extension(2) };
  1650.  
  1651. aCSE╤AS OBJECT IDENTIFIER ::=
  1652.            { joint╤iso╤ccitt association╤control(2)
  1653.            abstractSyntax(1) apdus(0) version1(1) }
  1654.  
  1655. ╤╤ Application contexts
  1656.  
  1657. green╤use╤AC APPLICATION╤CONTEXT
  1658.         APPLICATION SERVICE ELEMENTS { aCSE }
  1659.         BIND AuthenticateUser
  1660.         UNBIND NoOperation
  1661.         REMOTE OPERATIONS { rOSE }
  1662.         INITIATOR CONSUMER OF { green╤use╤ASE }
  1663.         ABSTRACT SYNTAXES { green╤use╤AS, aCSE╤AS }
  1664.         ::= id╤ac╤g╤use
  1665.  
  1666. green╤management╤AC APPLICATION╤CONTEXT
  1667.         APPLICATION SERVICE ELEMENTS { aCSE }
  1668.         BIND AuthenticateManager
  1669.         UNBIND NoOperation
  1670.         REMOTE OPERATIONS { rOSE }
  1671.         INITIATOR CONSUMER OF { green╤management╤ASE }
  1672.         ABSTRACT SYNTAXES { green╤management╤AS, aCSE╤AS }
  1673.         ::= id╤ac╤g╤management
  1674.  
  1675. NoOperation ::= UNBIND
  1676.  
  1677. ╤╤ Application service elements
  1678.  
  1679. green╤use╤ASE APPLICATION╤SERVICE╤ELEMENT
  1680.         CONSUMER INVOKES {
  1681.              green╤use╤operation╤1, . . . }
  1682.         ::= id╤ase╤g╤use
  1683.  
  1684. green╤management╤ASE APPLICATION╤SERVICE╤ELEMENT
  1685.         CONSUMER INVOKES {
  1686.            green╤management╤operation╤1, . . .}
  1687.         ::= id╤ase╤g╤management
  1688.  
  1689. green╤use╤operation╤1 Green╤use╤operation╤1 ::= 1
  1690. . . .
  1691.  
  1692. green╤management╤operation╤1  Green╤management╤operation╤1  ::=  50
  1693. ...
  1694.  
  1695. ╤╤ Abstract syntaxes
  1696.  
  1697. green╤use╤AS OBJECT IDENTIFIER ::= id╤as╤g╤use
  1698.  
  1699. green╤management╤AS OBJECT IDENTIFIER ::= id╤as╤g╤management
  1700.  
  1701. END ╤╤ of GreenSystemRealization
  1702.                                  
  1703.                                  
  1704.                                  
  1705.                               ANNEX B
  1706.                                  
  1707.                      (to Recommendation X.407)
  1708.                                  
  1709.             Reference definition of object identifiers
  1710.                                  
  1711.  
  1712.      This Annex is an integral part of this Recommendation.
  1713.  
  1714.       This  Annex  defines  for reference purposes  various  Object
  1715. Identifiers cited in the ASN.1 modules of Annex C. It uses ASN.1.
  1716.  
  1717.       With  the exception of those assigned in Annex A, all  Object
  1718. Identifiers this Recommendation assigns are assigned in this Annex.
  1719. The Annex is definitive for all but those for ASN.1 modules and the
  1720. subject  of application service definition conventions itself.  The
  1721. definitive  assignments  for  the  former  occur  in  the   modules
  1722. themselves; other references to them appear in IMPORT clauses.  The
  1723. latter is fixed.
  1724.  
  1725. ASDCObjectIdentifiers { joint╤iso╤ccitt
  1726.      mhs╤motis(6) asdc(2) modules(0) object╤identifiers(0) }
  1727. DEFINITIONS IMPLICIT TAGS ::=
  1728. BEGIN
  1729. ╤╤ Prologue
  1730.  
  1731. ╤╤ Exports everything.
  1732.  
  1733. IMPORTS ╤╤ nothing╤╤;
  1734.  
  1735. ID ::= OBJECT IDENTIFIER
  1736.  
  1737. ╤╤ Abstract Service Definition Conventions (not definitive)
  1738.  
  1739. id╤asdc  ID  ::= { joint╤iso╤ccitt mhs╤motis(6) asdc(2)  }  ╤╤  not
  1740. definitive
  1741.  
  1742. ╤╤ Categories
  1743.  
  1744. id╤mod  ID ::= { id╤asdc 0 } ╤╤ modules; not definitive
  1745. id╤ex   ID ::= { id╤asdc 1 } ╤╤ example; not definitive
  1746.  
  1747. ╤╤ Modules
  1748.  
  1749. id╤mod╤object╤identifiers     ID ::= { id╤mod 0 } ╤╤ not definitive
  1750. id╤mod╤notation                     ID ::= {  id╤mod  1  }  ╤╤  not
  1751. definitive
  1752.  
  1753. END ╤╤ of ASDCObjectIdentifiers
  1754.                                  
  1755.                                  
  1756.                                  
  1757.                               ANNEX C
  1758.                                  
  1759.                      (to Recommendation X.407)
  1760.                                  
  1761.                  Reference definition of notation
  1762.                                  
  1763.  
  1764.      This Annex is an integral part of this Recommendation.
  1765.  
  1766.       This  Annex, a supplement to section 2, defines for reference
  1767. purposes  the notation for specifying abstract models and services.
  1768. It employs ASN.1.
  1769.  
  1770. AbstractServiceNotation { joint╤iso╤ccitt
  1771.      mhs╤motis(6) asdc(2) modules(0) notation(1) }
  1772. DEFINITIONS IMPLICIT TAGS ::=
  1773. BEGIN
  1774. ╤╤ Prologue
  1775.  
  1776. EXPORTS
  1777.  
  1778.      ABSTRACT╤BIND, ABSTRACT╤ERROR, ABSTRACT╤OPERATION,
  1779.      ABSTRACT╤UNBIND, OBJECT, PORT, REFINE;
  1780.  
  1781. IMPORTS
  1782.  
  1783.      ╤╤ Remote Operations Notation
  1784.            BIND, ERROR, OPERATION, UNBIND
  1785.            . . . .
  1786.            FROM Remote╤Operation╤Notation { joint╤iso╤ccitt
  1787.              remote╤operations(4) notation(0) };
  1788.  
  1789. ╤╤ Object macro
  1790.  
  1791. OBJECT; MACRO ::=
  1792. BEGIN
  1793.  
  1794. TYPE NOTATION       ::=  ╥PORTS╙ ╥{╙ PortList ╥}╙ | empty
  1795. VALUE NOTATION      ::=  value (VALUE OBJECT IDENTIFIER)
  1796.  
  1797. PortList                 ::=  Port ╥ , ╙ PortList | Port
  1798. Port           ::=  value (PORT) PortType
  1799.  
  1800. PortType                 ::=  Symmetric | Asymmetric
  1801.  
  1802. Symmetric           ::=  empty
  1803. Asymmetric          ::=  Consumer | Supplier
  1804.  
  1805. Consumer            ::=  ╥[C]╙
  1806. Supplier                 ::=  ╥[S]╙
  1807.  
  1808. END
  1809.  
  1810. ╤╤ Port macro
  1811.  
  1812. PORT MACRO ::=
  1813. BEGIN
  1814.  
  1815. TYPE NOTATION       ::=  Operations | empty
  1816. VALUE NOTATION      ::=  value (VALUE OBJECT IDENTIFIER)
  1817.  
  1818. Operations          ::=  Symmetrical | Asymmetrical
  1819.  
  1820. Symmetrical                 ::=    ╙ABSTRACT╙   ╥OPERATIONS╙    ╥{╙
  1821. OperationList ╥}╙
  1822. Asymmetrical             ::=  OneSided | TwoSided
  1823.  
  1824. OneSided            ::=  Consumer | Supplier
  1825. TwoSided            ::=  Consumer Supplier | Supplier Consumer
  1826.  
  1827. Consumer            ::=  ╥CONSUMER╙ ╥INVOKES╙ ╥{╙ OperationList ╥}╙
  1828. Supplier                    ::=     ╥SUPPLIER╙    ╥INVOKES╙     ╥{╙
  1829. OperationList ╥}╙
  1830.  
  1831. OperationList                 ::=  Operation ╥ , ╙ OperationList  |
  1832. Operation
  1833. Operation           ::=  value (ABSTRACT╤OPERATION)
  1834.  
  1835. END
  1836.  
  1837. ╤╤ Refine macro
  1838.  
  1839. REFINE MACRO ::=
  1840. BEGIN
  1841.  
  1842. TYPE NOTATION       ::=  Object ╥AS╙ ComponentList
  1843. VALUE NOTATION      ::=  value (VALUE OBJECT IDENTIFIER)
  1844.  
  1845. ComponentList            ::=  Component ComponentList | Component
  1846. Component           ::=  ObjectSpec PortSpecList
  1847.  
  1848. ObjectSpec          ::=  Object | Object ╙RECURRING╙
  1849.  
  1850. PortSpecList             ::=  PortSpec PortSpecList | PortSpec
  1851. PortSpec                 ::=  value (PORT) PortType PortStatus
  1852.  
  1853. PortType                 ::=  Consumer | Supplier | empty
  1854. Consumer            ::=  ╥[C]╙
  1855. Supplier                 ::=  ╥[S]╙
  1856.  
  1857. PortStatus          ::=  ╥VISIBLE╙ | ╥PAIRED╙ ╥WITH╙ ObjectList
  1858.  
  1859. ObjectList          ::=  Object ╥,╙ ObjectList | Object
  1860. Object              ::=  value (OBJECT)
  1861.  
  1862. END
  1863.  
  1864. ╤╤ Abstract bind, unbind, operation, and error macros
  1865.  
  1866. ABSTRACT╤BIND MACRO ::=
  1867. BEGIN
  1868.  
  1869. TYPE NOTATION       ::=  Ports Bind
  1870. VALUE NOTATION      ::=  value (VALUE BindType)
  1871.  
  1872. Ports               ::=  ╥TO╙ ╥{╙ PortList ╥}╙ | empty
  1873. PortList                 ::=  Port ╥ , ╙ PortList | Port
  1874. Port           ::=  value (PORT) PortSide
  1875. PortSide                 ::=  Consumer | Supplier | empty
  1876. Consumer            ::=  ╥[C]╙
  1877. Supplier                 ::=  ╥[S]╙
  1878.  
  1879. Bind           ::=  type (BindType) ╤╤ must be a BIND type
  1880.                     | empty <BindType ::= BIND>
  1881.  
  1882. END
  1883.  
  1884. ABSTRACT╤UNBIND MACRO ::=
  1885. BEGIN
  1886.  
  1887. TYPE NOTATION       ::=  Ports Unbind
  1888. VALUE NOTATION      ::=  value (VALUE UnbindType)
  1889.  
  1890. Ports               ::=  ╥FROM╙ ╥{╙ PortList ╥}╙ | empty
  1891. PortList                 ::=  Port ╥ , ╙ PortList | Port
  1892. Port           ::=  value (PORT) PortSide
  1893. PortSide                 ::=  Consumer | Supplier | empty
  1894. Consumer            ::=  ╥[C]╙
  1895. Supplier                 ::=  ╥[S]╙
  1896.  
  1897. Unbind               ::=   type (UnbindType) ╤╤ must be  an  UNBIND
  1898. type
  1899.                     | empty <UnbindType ::= UNBIND>
  1900.  
  1901. END
  1902.  
  1903. ABSTRACT╤OPERATION MACRO ::= OPERATION
  1904.  
  1905. ABSTRACT╤ERROR MACRO ::= ERROR
  1906.  
  1907. END ╤╤ of AbstractServiceNotation
  1908.                                  
  1909.                                  
  1910.                                  
  1911.                               ANNEX D
  1912.                                  
  1913.                      (to Recommendation X.407)
  1914.                                  
  1915.      Differences between CCITT Recommendation and ISO Standard
  1916.                                  
  1917.  
  1918.      This Annex is not a part of this Recommendation.
  1919.  
  1920.       This  Annex  lists  all but the purely stylistic  differences
  1921. between this Recommendation and the corresponding ISO International
  1922. Standard.
  1923.  
  1924.      No differences between the two specifications exist.
  1925.                                  
  1926.                                  
  1927.                                  
  1928.                               ANNEX E
  1929.                                  
  1930.                      (to Recommendation X.407)
  1931.                                  
  1932.                                Index
  1933.                                  
  1934.  
  1935.      This Annex indexes this Recommendation. It gives the number(s)
  1936. of  the section(s) on which each item in each of several categories
  1937. is defined. Its coverage of each category is exhaustive.
  1938.  
  1939.      This Annex indexes items (if any) in the following categories:
  1940.      a)abbreviations;
  1941.      b)terms;
  1942.      c)information items;
  1943.      d)ASN.1 modules;
  1944.      e)ASN.1 macros;
  1945.      f)ASN.1 types;
  1946.      g)ASN.1 values;
  1947.      h)bilateral agreements;
  1948.      i)items for further study;
  1949.      j)items to be supplied.
  1950.  
  1951. E.1  Abbreviations
  1952.      AC  3
  1953.      APDU  3
  1954.      ASE  3
  1955.      ASN.1  3
  1956.      OSI  3
  1957.      ROS  3
  1958.  
  1959. E.2  Terms
  1960.  
  1961. abstract association  7.3
  1962.  
  1963. abstract bind operation  8.2
  1964.  
  1965. abstract error  8.5
  1966.  
  1967. abstract model  7
  1968.  
  1969. abstract object  7.1
  1970.  
  1971. abstract operation  8.4
  1972.  
  1973. abstract port  7.2
  1974.  
  1975. abstract procedure  8.1
  1976.  
  1977. abstract refinement  7.4
  1978.  
  1979. abstract service  7.3
  1980.  
  1981. abstract service provider  7.3
  1982.  
  1983. abstract service user  7.3
  1984.  
  1985. abstract unbind operation  8.3
  1986.  
  1987. argument  8.1
  1988.  
  1989. association  7.3
  1990.  
  1991. asymmetric  7.2
  1992.  
  1993. binding  7.2
  1994.  
  1995. bound  7.2
  1996.  
  1997. consumer  7.2
  1998.  
  1999. error information  8.3
  2000.  
  2001. Blancinitiator  8.2
  2002.  
  2003. invocation  8.1
  2004.  
  2005. invoker  8.1
  2006.  
  2007. match  7.2
  2008.  
  2009. model  7
  2010.  
  2011. object  7.1
  2012.  
  2013. parameter  8.5
  2014.  
  2015. performance  8.1
  2016.  
  2017. performer  8.1
  2018.  
  2019. port  7.2
  2020.  
  2021. procedure  8.1
  2022.  
  2023. provider  7.3
  2024.  
  2025. real  9
  2026.  
  2027. refinement  7.4
  2028.  
  2029. responder  8.2
  2030.  
  2031. result  8.1
  2032.  
  2033. supplier  7.2
  2034.  
  2035. symmetric  7.2
  2036.  
  2037. unbinding  7.2
  2038.  
  2039. user  7.3
  2040.  
  2041.  
  2042.  
  2043.  
  2044. _______________________________
  2045.  
  2046. 1)    Recommendation X.407 and ISO 10021╤3, Information  processing
  2047.  systems   ╤   Text  Communication  ╤  MOTIS  ╤  Abstract   Service
  2048.  Definition Conventions, were developed in close collaboration  and
  2049.  are technically aligned.
  2050.