ГОСТ Р 56844—2015/1SO/IEEE 11073-20101:2004
В настоящем стандарте отсутствуют нестандартные поля, что является результатом адоптации ROSE для
конкретных целей РОС MDC.
В результате этого заголовок ROSE имеет постоянный размер и фиксированную структуру, которая обеспе
чивает эффективный лексический разбор (когда не используется связанный вызов блоха APOU).
Е.2.1.2 Поля сообщения ROSE*
Объяснение полей в блоках данных APDU элемента ROSE дано в Е.2.1.2.1—Е.2.1.2.5.
Е.2.1.2.1 Поле Invoke identifier (идентификатор вызова)
Поле идентификатора вызова — это числовое поле, которое идентифицирует сообщение со стороны отпра
вителя. Если, к примеру, клиент отправляет сообщение-вызов на сервер, то сервер помещает данный идентифи
катор вызова в получившееся сообщение (например, в результат GET или подтверждение Event Report). Данный
механизм позволяет клиенту соотнести ответ с его запросом. (Идентификатор вызова дублируется обратно клиен ту
в сообщении-ответе.)
Вызыватель операций должен убедиться, что идентификаторы вызова (как минимум те, что обрабатываются
в данный момент в системе) уникальны.
Другими словами для реализации процесс получения или процедура получения может быть зарегистрирова
на в компоненте АЕ языка MDDL на вызываемом клиенте, как только придет сообщение-ответ.
Е.2.1.2.2. Поле Linked identifier (связанный идентификатор)
В случае отправки множества ответов (множество сообщений-результатов) на вызов операции поле связан
ного идентификатора будет содержать значение идентификатора вызова операции.
Как и идентификатор вызова в сообщении-результате, связанный идентификатор позволяет получателю ре
зультатов определить, какой процесс вызвал операцию.
Е.2.1.2.3 Поле Operation value (значение операции)
Пользователь или предоставитепь услуги удаленной операции определяет операции, которые могут быть ис
пользованы. Каждая операция имеет соответствующее числовое значение в целях идентификации (определения
см. в Е.2.2).
Е.2.1.2.4 Поле Error value (значение ошибки)
Как и значение операции, числовые значения устанавливаются для определенных условий ошибок. Допу
стимые значения ошибок для языка MDDL определены в CMIP*. Необходимо отметить, что значение ошибки не
является значением операции.
П р и м е ч а н и е — Требуется некоторое разьяснение. Рассмотрим команду GET протокола CMIP’ в ка
честве примера. Предположим, что поле класса управляемого объекта в данном сообщении неправильное, тогда
APDU ошибки удаленной операции (remote operation error, ROER) отправляется обратно, а значение ошибки это
noSuchObjectClass. Другими словами блокAPDU не передает информацию, которая бы указывала на то. что он по
ступил в ответ на запрос GET. Данную информацию можно извлечь при изучении идентификатора вызова, который
является ссылкой на исходное сообщение-запрос GET: отсюда следует требование, чтобы (активные) идентифи
каторы вызова в системе были уникальными.
Е.2.1.2.5 Поле Argument (аргумент)
Удаленный вызов операции можно рассматривать как (удаленный) вызов процедуры. Аргументы, которые
передаются процедуре, просто прикрепляются к сообщению элемента ROSE*. В языке MDDL блоки PDU протокола
CMIP’ являются аргументами сообщений ROSE*.
Е.2.1.3 Обработка связанных ответов
В некоторых случаях вызов операции может привести к образованию множества сообщений-ответов. В язы
ке MDDL это гложет произойти в случае операций, входящих в область действия, или в случае операций (напри
мер. GET), которые возвращают большие количества данных. Данные множественные ответы все связаны с одним
идентификатором вызова (отсюда связанные ответы).
В отношении связанных ответов применяется следующее:
- для всех сообщений-ответов, кроме самого последнего:
- используется вызов линии передачи удаленной операции (ROLIV)APDU;
- поле идентификатора вызова устанавливается респондентом и имеет особую семантику, которая позволя
ет обнаруживать отсутствующие части:
- поле связанного идентификатора имеет значение поля идентификатора вызова запроса:
- для cat-юго последнего сообщения:
- используется APDU remote operation result (RORS):
- поле идентификатора вызова в данном ответе имеет значение поля идентификатора вызова запроса.
П р и м е ч а н и е — Если необходимы два сообщения в ответе, первое - этоAPDU ROLIV с последним битом
вызова с установленным значением 1 и со счетчиком, установленным на 1;
- для ROLIV APDU поле идентификатора вызова имеет следующую семантику:
ROLIV•Invokc-1D ; : - S23UZNT2 {
tf.tate JNT-IJ8 г
1
l o l t v - l i i s t И ) ,
r o i i v n o t - irst
x o ii v - la s t ( i)
n o t-ia s t
12
’,
-- -это первый apdu ROLIV
•• я-iо последний apoi.
roliv
, далее •
следуем один apd- PCRS
47