In the general sense, any application carried out across a
network can be considered a remote operation or set of
operations. The ISO network standards define a notation and
methodology for specifying these operations which has
several advantages over ad hoc methods previously used:
The intention of ROS is to make remote operations look as
similar as possible to a localised procedure call. To allow
a ;SPM_quot;generic;SPM_quot; implementation a single point of call and set of
returns are provided, and the user-specified requests are
;SPM_quot;fed;SPM_quot; through this invokation. This invoke-point allows for
arbitrarily complex arguments to be passed, using the ASN.1
Typical uses of ROS are for the implementation of
;SPM_quot;interactive;SPM_quot; protocols, applications-level exchanges
between two or more processes where there may be bi-
directional exchanges of requests or data. Examples include
Mail Systems, Directory Services and File Transfer Systems.
ROS and Abstract Data Types
To achieve portability, network independence and self-
consistency ROS represents applications, objects and
operations using the concept of abstract data types.
The most familiar application of abstract data types is in
computer languages, where a set of built in types such as
;SPM_quot;integer;SPM_quot; or ;SPM_quot;character string;SPM_quot; can be used to specify other
context-specific complex types.
The use of abstract data types displays several useful
The Application is de-coupled from underlying network
;SPM_quot;environments;SPM_quot; since the operation is defined at a
network-independent level. This makes it highly
The Specification is rigorous and can be made
unambiguous, reducing errors of interpretation and
implementation. Operations become ;SPM_quot;provable;SPM_quot; and
;SPM_quot;testable;SPM_quot;. See #fnasn75#1556> again for an example.
The Notation is simple to learn and very powerful.
Online checking and automatic generation of code is
Existing Specifications provide re-use and extension or
<#1557#> tailoring<#1557#>. Productivity is increased.
The last point can be seen as a disadvantage, since you
still have to find out how to implement a given operation.
That remains a general problem in computing!
As long as the set of type-operations is the only point of
contact for each type, (i.e. it is a Strongly Typed syntax as
in PASCAL or ALGOL) this can be seen as an Object-Oriented
This method for specifying the states and changes of
abstract data is naturally extensible to complete Systems.
ASN.1 and ROS
The basis of the representation and implementation of Remote
Operations in ISO specifications is the ASN.1 syntax as
defined in ISO/CCITT X409.
Data Structures are classified by their Behaviour into
a set of Types.
The set of behaviours for a given type are specified as
a set of ;SPM_quot;atomic;SPM_quot; Operations for that type.
The Operations specify What happens, and not How it
happens. Furthermore this specification is programming
All Data Types and their encoding are defined in ASN.1
The Remote Operation, its parameters returns and error
conditions is defined using the ASN.1 ;SPM_quot;MACRO;SPM_quot;
Actual Remote Operations invocation is implemented
using a set of Operational Protocol Data Units or
OPDU. These are also defined in ASN.1, and may be
mapped on to any suitable underlying network layer,
typically the Session Layer or a Reliable Transfer
Service or RTS.
Figure: The Remote Operations MACRO
As an example...
Figure: Example of a Remote Operation
Thus a minimal Remote Operation with no arguments, errors or
result is represented as an integer returning nothing. The
defines the error return badPIN to be a simple value, with
no arguments and:
defines the error return balenceExceeded to take one integer
argument the allowed cash limit. Mapping the ROS macros
The ROS operations, the results and errors have a set of 4
protocol data units called Operational Protocol Data Units
or OPDU which sequence the exchange of ROS events. Client
and server processes use these OPDU to implement the ROS
The Representation of an Operation is an integer.
The Arguments of the Operation may be any ASN.1 construct.
The Result of the Operation may be any ASN.1 construct.
The Error list of the Operation is a list of integers.
identifying the possible error returns.