Next: EMSD PROCEDURE FOR OPERATIONS
Up: Internet DRAFT EMSD -
Previous: EFFICIENT MAIL SUBMISSION AND
  Contents
Subsections
DUPLICATE OPERATION DETECTION SUPPORT
Some operations are idempotent in nature, i.e. they can be performed
more than once without any harm. However, some other operations are
non-idempotent in nature, i.e. they should be performed only once. In
the case of non-idempotent operations, performer should be able to
detect duplicate operations and perform each non- idempotent operation
only once.
Examples of non-idempotent operations are Submission and Delivery of
messages which shouldn't be performed more than once. Examples of
idempotent operations are Submission-control and Delivery-control
which can be performed more than once with no harm.
ESRO Services don't detect duplicate invocation of operations. As a
result, the Duplicate Operation Detection Support Functional Unit is
used to detect duplication when the same operation instance is invoked
more than once. Invoker assigns an Operation Instance Identifier to an
operation and this Operation Instance Identifier is used at the peer
performer entity to detect the duplicate invocation of the same
operation.
Using this support, non-idempotent operations can be repeated over and
over with no harm because the duplicate invocations are detected by
this functional unit. This support helps the performer not to perform
an operation more than once.
Support for duplication detection is realized through allocating
Operation Instance Id (see
Section 4.1.2, "Operation Instance
Identifier") to an operation by invoker. When an operation is invoked
using duplication detection support, performer logs the Operation
Instance Identifier and checks the next operations against
duplication.
Operation value identifies whether performer should detect duplicate
operations (see Section 4.1.1, ``Operation Value")
and Operation Instance Id is assigned by invoker and sent as the first
byte of operation's parameter.
Operation Value
Operation Values are divided into two groups. Operation values from 0
to 31 do not have Duplicate Operation Detection Support (0 to 31) and
operation values from 32 to 63 have Duplicate Operation Detection
Support.
Duplicate Operation Detection Functional Unit checks for duplication
only if Operation Value is in the range of 32 to 63.
When invoker user uses an Operation Value in the range of 32 to 63
which means operation with support for duplication detection, the user
should specify an Operation Instance ID for the operation (see next
section).
Operation Instance Identifier
To support duplication detection, an Operation Instance Identifier is
assigned by invoker user and sent as the first byte of the operation's
parameter. This identifier is used on performer side to detect
duplicate invocation of the same operation. Characteristics of
Operation Instance Identifier is as follows:
- Operation Instance Identifier is one byte and can have values
from 0 to 255.
- Operation Instance Identifier is sent as the first byte of the
operations parameter (without encoding).
- The length of Operation Instance Identifier is 8-bit, but
depending on the performer capabilities, it might keep 0 to 127
Operation Instance Identifiers for duplication detection. The
performer profile defines the number of outstanding Operation
Instance Identifiers that are checked against duplication. When a
performer profile indicates support for 0 outstanding Operation
Instance Identifier, it means it does not have support for Duplicate
Operation Detection. In this case, there should be only one
outstanding operation at any point of time.
- Instance ID check is not part of ESROS, per se. Use of Duplicate
Detection is determined by EMSD-P. Operation Instance ID for
operations 32-63 is the first byte of the argument. Duplicate
Detection suuport strips that byte.
- The Instance ID is not subject to Basic Encoding Rules (BER).
- The invoker user assigns the Operation Instance Identifier to
the operation at the time of requesting the invoke service. The
Operation Value should be in the range of operation values with
duplication detection support, i.e. 32 to 63.
- It's the responsibility of the user to choose Operation Instance
Identifier in a way that uniqely and unambiguously identifies the
operation.
- From the invoker's perspective, assumption is that two
operations with the same operation Instance Identifier are totally
identical which means they produce exact same results.
- Operation Instance Identifier uniqely specifies a non-idempotent
operation and multiple invocations of such an operation will
eventually result in the same outcome because the duplicate
instances are identified and the operation is not performed more
than once.
- From the performer's perspective, assumption is that two
operations with the same Operation Instance Identifier should be
executed once and once only.
- If requested, the degree of duplication checked by Duplicate
Operation Detection Support Functional Unit on the performer's side
(i.e. the total number of outstanding Operation Instance Identifier
kept) can be communicated with the invoker to synchronize the
invocations.
- User of Duplicate Operation Detection Support is responsible to
behave based on the performer profile and its limitations in this
regard. This behavior is defined based on the desired semantic of
the operation which is to be implemented.
- On the performer side, when an Operation Instance Identifier is
received, a previous Operation Instance Identifier whose distance to
this latest one is greater than or equal to half of the wrap-around
range of the Operation Instance Identifier number is expired, i.e.
for an 8-bit Operation Instance Identifier, the distance of 128
causes an old Operation Instance Identifier to expire.
- It's the responsibility of the invoker user to use consecutive
Operation Instance Identifier numbers, or when it skips some
Operation Instance Identifiers, it should remember that if there is
an smaller Operation Instance Identifier on performer side with the
distance explained above, it will be expired.
Next: EMSD PROCEDURE FOR OPERATIONS
Up: Internet DRAFT EMSD -
Previous: EFFICIENT MAIL SUBMISSION AND
  Contents