allgosts.ru35.240 Применение информационных технологий35 ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ

ГОСТ Р 71809-2024 Цифровая промышленность. Унифицированная архитектура OPC. Часть 4. Сервисы

Обозначение:
ГОСТ Р 71809-2024
Наименование:
Цифровая промышленность. Унифицированная архитектура OPC. Часть 4. Сервисы
Статус:
Действует
Дата введения:
01.02.2025
Дата отмены:
-
Заменен на:
-
Код ОКС:
35.240.99 , 03.100.30

Текст ГОСТ Р 71809-2024 Цифровая промышленность. Унифицированная архитектура OPC. Часть 4. Сервисы

ФЕДЕРАЛЬНОЕ АГЕНТСТВО

ПО ТЕХНИЧЕСКОМУ РЕГУЛИРОВАНИЮ И МЕТРОЛОГИИ

НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

ГОСТР

71809—

2024

Цифровая промышленность

УНИФИЦИРОВАННАЯ АРХИТЕКТУРА ОРС

Часть 4

Сервисы

(IEC 62541-4:2020, NEQ)

Издание официальное

Москва Российский институт стандартизации 2025

ГОСТ Р 71809—2024

Предисловие

1 РАЗРАБОТАН Ассоциацией «Цифровые инновации в машиностроении» (АЦИМ) и Федеральным государственным бюджетным учреждением «Российский институт стандартизации» (ФГБУ «Институт стандартизации»)

2 ВНЕСЕН Техническим комитетом по стандартизации ТК 306 «Измерения, управление и автоматизация в промышленных процессах»

3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 29 ноября 2024 г. № 1805-ст

4 Настоящий стандарт разработан с учетом основных нормативных положений международного стандарта МЭК 62541-4:2020 «Унифицированная архитектура ОРС. Часть 4. Сервисы» (IEC 62541-4:2020 «ОРС unified architecture — Part 4: Services», NEQ)

5 ВВЕДЕН ВПЕРВЫЕ

Правила применения настоящего стандарта установлены в статье 26 Федерального закона от 29 июня 2015 г. № 162-ФЗ «О стандартизации в Российской Федерации». Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе «Национальные стандарты», а официальный текст изменений и поправок — в ежемесячном информационном указателе «Национальные стандарты». В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске ежемесячного информационного указателя «Национальные стандарты». Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования — на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.rst.gov.ru)

©Оформление. ФГБУ «Институт стандартизации», 2025

Настоящий стандарт не может быть полностью или частично воспроизведен, тиражирован и распространен в качестве официального издания без разрешения Федерального агентства по техническому регулированию и метрологии

II

ГОСТ Р 71809—2024

Содержание

1 Область применения..................................................................1

2 Нормативные ссылки..................................................................1

3 Термины, определения и сокращения....................................................2

3.1 Термины и определения............................................................2

3.2 Сокращения......................................................................2

4 Общие положения....................................................................3

4.1 Условные обозначения для определения служб........................................3

4.2 Модель набора служб..............................................................4

4.3 Процедуры службы «запрос/ответ»...................................................8

5 Наборы служб........................................................................8

5.1 Общие положения.................................................................8

5.2 Заголовок ответа и заголовок запроса службы..........................................8

5.3 Результаты службы................................................................8

5.4 Набор служб обнаружения..........................................................9

5.5 Набор служб защищенного канала..................................................19

5.6 Набор служб сессии..............................................................24

5.7 Набор служб управления узлами....................................................34

5.8 Набор служб представлений.......................................................41

5.9 Набор служб запросов............................................................50

5.10 Набор службы атрибутов.........................................................56

5.11 Набор службы метода............................................................66

5.12 Набор служб элемента мониторинга................................................69

5.13 Набор службы подписки..........................................................84

6 Поведение при использовании служб..................................................103

6.1 Безопасность...................................................................103

6.2 Службы авторизации.............................................................111

6.3 Вызов службы без сессии.........................................................113

6.4 Сертификаты программного обеспечения............................................115

6.5 Аудит..........................................................................115

6.6 Резервирование.................................................................118

6.7 Восстановление соединений......................................................132

6.8 Долговечные подписки...........................................................133

7 Определения типов основных параметров..............................................134

7.1 Описание приложения...........................................................134

7.2 Сертификат экземпляра приложения...............................................135

7.3 Результат просмотра.............................................................136

7.4 Фильтр контента.................................................................136

7.5 Счетчик........................................................................147

7.6 Точка продолжения..............................................................147

7.7 Значение данных................................................................148

7.8 Диагностическая информация.....................................................150

7.9 Параметры конфигурации обнаружения.............................................151

7.10 Описание конечной точки........................................................151

7.11 Расширенный идентификатор узла................................................152

III

ГОСТ Р 71809—2024

7.12 Расширяемый параметр.........................................................153

7.13 Индекс.......................................................................153

7.14 Идентификатор целого числа.....................................................153

7.15 Режим безопасности сообщений..................................................153

7.16 Параметры контроля............................................................154

7.17 Параметры фильтра мониторинга.................................................155

7.18 Режим мониторинга.............................................................161

7.19 Параметры атрибута узла........................................................161

7.20 Параметры данных уведомления..................................................167

7.21 Уведомительное сообщение......................................................169

7.22 Область числовых значений......................................................169

7.23 Набор данных запроса..........................................................170

7.24 Идентификатор «чтение значения»................................................171

7.25 Ссылочное описание............................................................172

7.26 Относительный путь............................................................172

7.27 Зарегистрированный сервер.....................................................173

7.28 Заголовок запроса..............................................................174

7.29 Заголовок ответа...............................................................176

7.30 Отказ службы..................................................................177

7.31 Токен аутентификации сессии....................................................177

7.32 Дата подписи..................................................................178

7.33 Подписанный сертификат программного обеспечения................................179

7.34 Код состояния.................................................................179

7.35 Временные отметки для возврата.................................................187

7.36 Параметры токена идентификации пользователя....................................187

7.37 Политика токенов пользователя...................................................195

7.38 Время версии..................................................................196

7.39 Описание представления........................................................196

Библиография.......................................................................197

IV

ГОСТ Р 71809—2024

Введение

Настоящий стандарт является четвертой частью серии стандартов «Цифровая промышленность. Унифицированная архитектура ОРС». Он является нормативным представлением служб, определяющих взаимодействия между клиентами и серверами ОРС UA, которые реализуются клиентами ОРС с помощью серверов ОРС UA.

Настоящий стандарт определяет концепцию вызова служб без участия сессий, а также общую структуру служб, позволяющую передавать любое количество атрибутов в службу добавления узлов с возможностями: повторной отправки всех данных элементов мониторинга в подписке с помощью метода Resend Data, поддержки долговременных подписок (время жизни — часы или дни), поддержки обнаружения в масштабах всей сети с помощью фильтров возможностей.

Настоящий стандарт определяет порядок использования службы авторизации для запроса пользовательских токенов доступа, веб-токенов JSON (JWTs) в качестве нового пользовательского токена, а также определяет требование по защите от атак на токен идентификации пользователя.

В связи с тем, что некоторые элементы данного стандарта могут являться объектом патентных прав, ТК 306 не несет ответственности за выявление любых таких патентных прав.

V

ГОСТ Р 71809—2024

НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

Цифровая промышленность

УНИФИЦИРОВАННАЯ АРХИТЕКТУРА ОРС

Часть 4

Сервисы

ОРС unified architecture. Part 4. Services

Дата введения — 2025—02—01

1 Область применения

В настоящем стандарте определены сервисы, представляющие собой набор служб, обеспечивающих абстрактные вызовы удаленных процедур (RPC), которые реализуются серверами ОРС UA и вызываются клиентами ОРС UA. Через эти службы происходят взаимодействия между клиентами и серверами ОРС UA. Сервисы считаются абстрактными, поскольку в данном стандарте не определен механизм реализации RPC.

Службы, поддерживаемые для реализации сервисами ОРС UA, определяют ряд отображений. Например, в ГОСТ Р 71811 сервисы реализуют методы сетевых служб XML, а также WSDL. Стандарт МЭК 62541-7 [1] определяет службы, которые должны быть реализованы, чтобы соответствовать определенному профилю.

2 Нормативные ссылки

В настоящем стандарте использованы нормативные ссылки на следующие стандарты:

ГОСТ Р 71807 Цифровая промышленность. Унифицированная архитектура ОРС. Часть 2. Модель безопасности

ГОСТ Р 71808 Цифровая промышленность. Унифицированная архитектура ОРС. Часть 3. Модель адресного пространства

ГОСТ Р 71810—2024 Цифровая промышленность. Унифицированная архитектура ОРС. Часть 5. Информационная модель

ГОСТ Р 71811 Цифровая промышленность. Унифицированная архитектура ОРС. Часть 6. Сопоставления

Примечание — При пользовании настоящим стандартом целесообразно проверить действие ссылочных стандартов в информационной системе общего пользования — на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет или по ежегодному информационному указателю «Национальные стандарты», который опубликован по состоянию на 1 января текущего года, и по выпускам ежемесячного информационного указателя «Национальные стандарты» за текущий год. Если заменен ссылочный стандарт, на который дана недатированная ссылка, то рекомендуется использовать версию этого стандарта с учетом всех внесенных в данную версию изменений. Если заменен ссылочный стандарт, на который дана датированная ссылка, то рекомендуется использовать версию этого стандарта с указанным выше годом утверждения (принятия). Если после утверждения настоящего стандарта в ссылочный стандарт, на который дана датированная ссылка, внесено изменение, затрагивающее положение, на которое дана ссылка, то это положение рекомендуется применять без учета данного изменения. Если ссылочный стандарт отменен без замены, то положение, в котором дана ссылка на него, рекомендуется применять в части, не затрагивающей эту ссылку.

Издание официальное

1

ГОСТ Р 71809—2024

3 Термины, определения и сокращения

3.1 Термины и определения

3.1.1 неисправный сервер (failed server): Сервер, который не может работать.

Примечание — В системах с резервированием ОРС UA отказавший сервер — сервер, который недоступен или не может обслуживать данные.

3.1.2 обход отказа (failover): Акт переключения источника или цели информации.

Примечание — В системах с резервированием ОРС UA обход отказа — это действие, при котором клиент переключается с отказавшего или деградировавшего сервера на другой сервер в резервированном наборе (обход отказа сервера). В некоторых случаях клиент может не знать о происходящем обходе отказа (прозрачное резервирование). Обход отказа клиента — это действие, при котором альтернативный клиент заменяет существующее соединение неисправного или деградировавшего клиента с сервером.

3.1.3 сервер-шлюз (gateway server): Сервер, который выступает в качестве посредника для одного или нескольких серверов.

Примечание — Примером применения серверов-шлюзов является ограничение внешнего доступа, обеспечения преобразования протоколов или предоставления функций, которые не поддерживаются базовыми серверами.

3.1.4 имя хоста (host name): Уникальный идентификатор машины в сети.

Примечание — Данный идентификатор является уникальным в пределах локальной сети, но может быть уникальным в глобальном масштабе. Например, идентификатором может быть IP-адрес.

3.1.5 резервирование (redundancy): Наличие дублирующих компонентов, позволяющих продолжить работу после отказа одного из компонентов ОРС UA.

Примечание — Это может относиться к серверам, клиентам или сетям.

3.1.6 набор резервных серверов (redundant server set): Два или более сервера, которые являются резервными по отношению друг к другу.

Примечание — Набор резервных серверов — это группа серверов, настроенных на обеспечение резервирования. Эти серверы имеют требования, связанные с адресным пространством, и обеспечивают обходы отказа.

3.1.7 токен безопасности (security token): Идентификатор для набора криптографических ключей.

Примечание — Все токены безопасности принадлежат контексту безопасности. Для ОРС UA контекстом безопасности является защищенный канал.

3.1.8 сертификат программного обеспечения (software certificate): Цифровой сертификат для программного продукта, который может быть установлен на нескольких хостах для описания возможностей программного продукта.

Примечание — Различные установки одного программного продукта могут иметь один и тот же сертификат программного обеспечения. Сертификаты программного обеспечения не имеют отношения к безопасности. Они используются для идентификации программного продукта и его поддерживаемых функций. Сертификаты программного обеспечения описаны в 6.4.

3.2 Сокращения

В настоящем стандарте применены следующие сокращения:

API — программный интерфейс приложения (Application Programming Interface);

DA — доступ к данным (Data Access);

IP — интернет-протокол (Internet protocol);

NAT — преобразование сетевых адресов (Network Address Translation);

OPC — система стандартов открытой платформы взаимодействия (Open Platform Communication);

UA — унифицированная архитектура (Unified Architecture);

2

ГОСТ Р 71809—2024

URI — унифицированный идентификатор ресурса (Uniform Resource Identifier);

URL — унифицированный указатель местонахождения ресурса (Uniform Resource Locator);

UTC — всемирное координированное время (Coordinated Universal Time);

HTTP — протокол передачи гипертекста (HyperText Transfer Protocol);

HTTPS — расширение протокола HTTP для поддержки шифрования в целях повышения безопасности (данные передаются поверх криптографических протоколов);

СДС — список доверия сертификатов (Certificate Trust List);

СО — центр сертификации (Certificate Authority);

СОС — список отозванных сертификатов (Certificate Revocation List).

4 Общие положения

4.1 Условные обозначения для определения служб

Службы ОРС UA содержат параметры, которые передаются между клиентом и сервером. Спецификации служб ОРС UА используют таблицы для описания параметров служб, как показано в таблице 1. В этой таблице параметры разделены на параметры запроса и параметры ответа.

Таблица 1—Таблица определения служб

Имя

Тип

Описание

Запрос

Определяет параметры запросов службы

Имя простого параметра

Описание этого параметра

Имя сконструированного параметра

Описание сконструированного параметра

Имя компонентного параметра

Описание компонентного параметра

Ответ

Определяет параметры ответа службы

Графы «Имя», «Тип» и «Описание» содержат имя, тип данных и описание каждого параметра. Все параметры являются обязательными, хотя некоторые могут не использоваться при определенных обстоятельствах. В графе «Описание» указывается значение, которое должно быть предоставлено, если параметр не используется.

В этих таблицах определены два типа параметров: простые и сконструированные. Простые параметры имеют простой тип данных, например «Булево» или «Строка».

Сконструированные параметры состоят из двух или более компонентных параметров, которые могут быть простыми или сконструированными. Имена компонентных параметров служб располагаются с отступом под именем сконструированного параметра.

Типы данных, используемые в таблице, могут быть базовыми типами, общими типами для нескольких служб или типами, специфичными для конкретных служб. Базовые типы данных определены в ГОСТ Р 71808. Базовые типы, используемые в службах, перечислены в таблице 2. Типы данных, которые являются общими для нескольких служб, определены в разделе 7. Типы данных, специфичные для служб, определены в таблице параметров служб.

Таблица 2 — Типы параметров, определенные в ГОСТ Р 71808

Тип параметра

Base Data Type

Boolean

Byte String

Double

Duration

3

ГОСТ Р 71809—2024

Параметры сервисных примитивов «Запрос» и «Указание» представлены в таблице 1 как параметры запроса. Аналогично параметры сервисных примитивов «Ответ» и «Подтверждение» представлены в таблице 1 как параметры ответа. Все параметры запроса и ответа передаются между отправителем и получателем без изменений. Поэтому отдельные графы для значений параметров запроса, указания, ответа и подтверждения не требуются и намеренно опущены для улучшения понимания контента.

В настоящем стандарте представлены обзор и концепции ОРС UA, обеспечивающей универсальный механизм обмена данными в промышленных системах контроля и управления.

В настоящий стандарт включены термины и определения, дано описание других частей серии стандартов «Цифровая промышленность. Унифицированная архитектура ОРС», совместно с которыми его следует использовать.

4.2 Модель набора служб

В данном разделе указаны службы ОРС UA. Определения службы ОРС UAявляются абстрактными описаниями и не представляют собой спецификации для реализации. Преобразование между абстрактными описаниями сервисов и стеком связи, полученным из этих служб, определено в ГОСТ Р 71811. При реализации сервисов в виде веб-служб службы ОРС UA соответствуют веб-службам, а отдельная служба ОРС UA соответствует операции веб-службы.

Эти сервисы организованы в наборы служб. Каждый набор служб определяет набор связанных служб. Организация в наборах служб — это логическая группировка, используемая в данном стандарте и не используемая в реализации.

Набор служб обнаружения, показанный на рисунке 1, определяет службы, которые позволяют клиенту обнаруживать конечные точки, реализованные сервером, и читать конфигурацию безопасности для каждой из этих конечных точек.

Службы обнаружения

Рисунок 1 — Набор служб обнаружения

4

ГОСТ Р 71809—2024

Набор служб защищенного канала, показанный на рисунке 2, определяет службы, которые позволяют клиенту установить канал связи для обеспечения конфиденциальности и целостности сообщений, которыми обмениваются с сервером.

Службы защищенного канала

Рисунок 2 — Набор служб защищенного канала

Набор служб сессионного уровня, показанный на рисунке 3, определяет службы, позволяющие клиенту аутентифицировать пользователя, от имени которого он действует, и управлять сессиями.

Службы сессионного уровня

Сервер

Сессия

Рисунок 3 — Набор служб уровня сессий

Набор служб управления узлами, показанный на рисунке 4, определяет службы, которые позволяют клиенту добавлять, изменять и удалять узлы в адресном пространстве.

Рисунок 4 — Набор служб управления узлами

Набор служб представления, показанный на рисунке 5, определяет службы, которые позволяют клиентам просматривать адресное пространство или подмножества адресного пространства, называемые представлениями. Набор служб запросов позволяет клиентам получать подмножество данных из адресного пространства или представления.

5

ГОСТ Р 71809—2024

Рисунок 5 — Набор служб представления

Набор служб атрибутов показан на рисунке 6. Он определяет службы, которые позволяют клиентам читать и записывать атрибуты узлов, включая их исторические значения. Поскольку значение переменной моделируется как атрибут, эти службы позволяют клиентам читать и записывать значения переменных.

Рисунок 6 — Набор служб атрибутов

Набор служб метода показан на рисунке 7. Он определяет службы, которые позволяют клиентам вызывать методы. При вызове методы выполняются до конца. Они могут быть вызваны входными параметрами, зависимыми от метода, и могут возвращать специфическое для метода описание вывода.

6

ГОСТ Р 71809—2024

Набор служб элемента мониторинга и набор служб подписки, представленные на рисунке 8, используются вместе для подписки на узлы в адресном пространстве ОРС UA.

Рисунок 8 — Наборы служб элемента мониторинга и подписок

Набор служб элемента мониторинга определяет службы, которые позволяют клиентам создавать, изменять и удалять предметы контроля, используемые для отслеживания атрибутов для изменения значений и объектов для событий.

Эти уведомления ставятся в очередь для передачи клиенту по подпискам.

Набор служб подписки определяет службы, которые позволяют клиентам создавать, изменять и удалять подписки. Подписки отправляют клиенту уведомления, созданные с помощью элемента мони-

7

ГОСТ Р 71809—2024

торинга. Службы подписки также обеспечивают восстановление клиентов после пропущенных сообщений и ошибок связи.

4.3 Процедуры службы «запрос/ответ»

Процедуры службы «запрос/ответ» описывают обработку запросов, полученных сервером, и последующий возврат ответов. Процедуры начинаются с того, что запрашивающий клиент отправляет серверу сообщение с запросом на службу.

После получения запроса сервер в два этапа обрабатывает сообщение. На первом этапе он пытается декодировать и найти службу для выполнения. Обработка ошибок на этом этапе зависит от используемой технологии связи и описана в ГОСТ Р 71811.

В случае успеха он пытается получить доступ к каждой операции, указанной в запросе, и выполнить запрошенную операцию. Для каждой операции в запросе сервер генерирует отдельный код успешного завершения/отказа, который он включает в сообщение положительного ответа вместе с любыми данными, которые должны быть возвращены.

Для выполнения этих операций и клиент, и сервер могут использовать API стека связи для создания и интерпретации сообщений и для доступа к запрошенной операции.

Реализация обработки каждого запроса или ответа службы должна проверять, что каждый параметр службы находится в пределах указанного диапазона для этого параметра.

5 Наборы служб

5.1 Общие положения

В настоящем разделе определены наборы служб ОРС UA и их службы. Раздел 7 содержит определения общих параметров, используемых этими службами. В 6.5 описаны требования к аудиту для всех служб.

Поддерживает ли сервер набор служб или службу в наборе служб, определяется его профилем. Профили описаны в МЭК 62541-7 [1].

5.2 Заголовок ответа и заголовок запроса службы

Каждый запрос службы имеет заголовок запроса, а каждый ответ службы имеет заголовок ответа.

Структура заголовка запроса определена в 7.28 и содержит общие параметры запроса, такие как токен аутентификации, временную отметку и обработку запроса.

Структура заголовка ответа определена в 7.29 и содержит общие параметры ответа, такие как результат обслуживания и диагностическую информацию.

5.3 Результаты службы

Результаты службы возвращаются на двух уровнях в ответах ОРС UA, один из которых указывает статус вызова службы, а другой указывает статус каждой операции, запрошенной службой.

Результаты службы определяются через код состояния (см. 7.34).

Статус вызова службы представлен результатом службы, содержащимся в заголовке ответа (см. 7.29). Механизм возврата этого параметра зависит от технологии связи, используемой для передачи ответа службы, и определен в ГОСТ Р 71811.

Статус отдельных операций в заявке отображается отдельными кодами состояния.

Следующие случаи определяют использование этих параметров.

Некорректный код возвращается в результат службы, если произошел сбой самой службы. В этом случае возвращается отказ службы. Отказ службы определен в 7.30.

Корректный код возвращается в результат службы, если служба полностью или частично выполнена успешно. В этом случае возвращаются другие описания ответа. Клиент всегда должен проверять параметры ответа, особенно все коды состояния, связанные с каждой операцией. Эти коды состояния могут указывать на плохие или неопределенные результаты для одной или нескольких операций, запрошенных в вызове службы.

Все службы с массивами операций в запросе должны возвращать неверный код в результат службы, если массив данных пуст.

Службы определяют различные конкретные коды состояния, и сервер должен использовать эти конкретные коды состояния, как описано в службе. Клиент должен иметь возможность обрабатывать 8

ГОСТ Р 71809—2024

эти специфические для службы коды состояния. Кроме того, клиент должен ожидать другие общие коды состояния, определенные в таблицах 177 и 178. Дополнительные подробности по обработке клиентом конкретных кодов состояния могут быть определены в МЭК 62541-7 [1].

Если сервер обнаруживает с помощью некоторого внеполосного механизма, что учетные данные приложения или пользователя, используемые для создания сессии или защищенного канала, были скомпрометированы, то сервер должен немедленно завершить все сессии и каналы, которые используют эти учетные данные. В этом случае код результата службы должен быть или «Некорректно_ Идентификационный токен отклонен», или «Некорректно_Сертификат ненадежный».

Синтаксический анализ сообщения может завершиться отказом из-за синтаксических ошибок или если данные, содержащиеся в сообщении, превышают диапазоны, поддерживаемые получателем. Когда это происходит, сообщения должны быть отклонены получателем. Если получателем является сервер, то он должен вернуть ответ сбой службы с кодом результата «Некорректно_Ошибка декодирования» или «Некорректно_Превышены пределы кодирования». Если получателем является клиент, то стек связи должен сообщить об этих ошибках клиентскому приложению.

Многие приложения устанавливают ограничения на размер сообщений и/или элементов данных, содержащихся в этих сообщениях. Например, сервер может отклонять запросы, содержащие строковые значения длиннее определенной длины. Эти ограничения обычно устанавливаются администраторами и применяются ко всем соединениям между клиентом и сервером.

Клиенты, которые получают от сервера отказы «Некорректно_Превышены пределы кодирования», вероятно, должны будут переформулировать свои запросы. Администратору может потребоваться увеличить лимиты для клиента, если он получает ответ от сервера с этим сбоем.

В некоторых случаях ошибки синтаксического анализа являются непоправимыми, и вернуть ошибку невозможно. Например, входящее сообщение может превышать буферный объем получателя. В этих случаях эти ошибки могут рассматриваться как сбой связи, требующий восстановления защищенного канала (см. 5.5).

Клиент и сервер уменьшают вероятность непоправимой ошибки, обменивая свои ограничения на размер сообщения в службе создания сессии. Это позволит любой из сторон избежать отправки сообщения, вызывающего сбой связи. Сервер должен вернуть сбой «Некорректно_Ответ слишком велик», если сериализованное ответное сообщение превышает размер сообщения, указанного клиентом. Точно так же стек связи с клиентом должен сообщать приложению об ошибке «Некорректно_3апрос слишком велик» перед отправкой сообщения, превышающего лимит сервера.

Следует обратить внимание, что ограничения на размер сообщения применяются только к необработанному тексту сообщения и не включают заголовки или эффект от применения какой-либо защиты. Это означает, что тело сообщения меньше указанного максимума может вызвать непоправимую ошибку.

5.4 Набор служб обнаружения

5.4.1 Обзор

Настоящий набор служб определяет службы, используемые для обнаружения конечных точек, реализуемых сервером, и чтения конфигурации безопасности для этих конечных точек. Службы обнаружения реализуются отдельными серверами и выделенными серверами обнаружения. В МЭК 62541-12 [2] описано, как использовать службы обнаружения с выделенными серверами обнаружения.

Каждый сервер должен иметь конечную точку обнаружения, к которой клиенты могут получить доступ без установления сессии. Эта конечная точка может не быть той же конечной точкой сессии, которую клиенты используют для установления защищенного канала. Клиенты читают информацию о безопасности, необходимую для установки защищенного канала, вызывая службу получения конечной точки на конечную точку обнаружения.

Кроме того, серверы могут регистрироваться на хорошо известном сервере обнаружения, используя службу регистрации сервера. Позднее клиенты могут обнаружить любые зарегистрированные серверы, вызвав службу поиска серверов на сервере обнаружения.

Процесс обнаружения с использованием поиска сервера проиллюстрирован на рисунке 9. Для ясности в поиске серверов и получении конечных точек на рисунке 9 опущено установление защищенного канала (с режимом безопасности сообщений «ОТСУТСТВУЕТ»),

9

ГОСТ Р 71809—2024

Конечная точка Конечная Конечная

обнаружения точка сессии точка сессии

Рисунок 9 — Процесс обнаружения

URL-адрес конечной точки обнаружения должен предоставлять всю информацию, которая необходима клиенту для подключения к конечной точке обнаружения.

После того, как клиент осуществит выборку конечных кочек, клиент может сохранить эту информацию и использовать ее для повторного подключения напрямую к серверу без прохождения процесса обнаружения. Если клиент обнаруживает, что не может подключиться, возможно, конфигурация сервера изменилась и клиенту необходимо снова пройти процесс обнаружения.

Конечная точка обнаружения не требует защиты сообщений, но может потребовать защиты транспортного уровня. В производственных системах администраторы могут отключить обнаружение по соображениям безопасности, а клиенты должны полагаться на кэшированные описания конечных точек. Для обеспечения поддержки систем с отключенной службой обнаружения клиенты должны разрешить администраторам вручную обновлять описания конечных точек, используемые для подключения к серверу. Серверы должны позволять администраторам отключать конечные точки обнаружения.

Клиент должен быть осторожен при использовании информации, полученной от конечных точек обнаружения, поскольку она не имеет защиты. Клиент делает это, сравнивая информацию, возвращаемую от конечных точек обнаружения, с информацией, возвращаемой в ответе создания сессии. Клиент должен убедиться, что:

a) URI приложения, указанные в сертификате сервера, являются такими же, как URI приложения, указанные в описании конечной точки;

б) сертификат сервера, возвращенный в ответе создания сессии, совпадает с сертификатом, использованным для создания защищенного канала;

в) описания конечных точек, возвращенных из конечной точки обнаружения, являются такими же, как описания конечных точек, возвращенных в ответе создания сессии.

Если клиент обнаруживает, что одно из вышеуказанных требований не выполняется, то клиент должен закрыть защищенный канал и сообщить об ошибке.

Клиент должен убедиться, что имя хоста, указанное в сертификате сервера, совпадает с именем хоста, указанным в URL конечной точки, указанном в описании конечной точки, возвращенном службой создания сессии. Если имеется разница, то клиент должен сообщить о разнице и служба может закрыть защищенный канал. Серверы должны добавить все возможные имена хоста, такие как MyHost и MyHost.local, в сертификат сервера. Сюда входят IP-адреса хоста или имени хоста, предоставленные маршрутизатором NAT, используемым для подключения к серверу.

10

ГОСТ Р 71809—2024

5.4.2 Поиск серверов

5.4.2.1 Описание

Служба поиска возвращает известные серверы соответствующему сервису или серверу обнаружения. Поведение серверов обнаружения подробно описано в МЭК 62541-12 [2].

Клиент может уменьшить количество возвращаемых результатов, указав критерии фильтрации. Сервер обнаружения возвращает пустой список, если ни один сервер не соответствует критериям, указанным клиентом. Критерии фильтрации, поддерживаемые данной службой, описаны в 5.4.2.2.

Каждый сервер должен предоставлять конечную точку обнаружения, поддерживающую эту службу. Сервер всегда должен возвращать запись, которая описывает себя, однако в некоторых случаях может быть возвращено более одной записи. Серверы шлюза должны возвращать запись для каждого сервера, к которому они предоставляют доступ, плюс (необязательно) запись, которая позволяет получить доступ к серверу шлюза как к обычному серверу ОРС UA. Непрозрачные резервные серверы должны предоставлять запись для каждого сервера в наборе резервных серверов.

Каждый сервер должен иметь глобальный уникальный идентификатор, называемый URI сервера. Этот идентификатор должен быть полностью определенным именем домена, однако это может быть глобальный уникальный идентификатор или аналогичная конструкция, обеспечивающая глобальную уникальность. URI сервера, возвращаемый этой службой, должен являться тем же значением, что и индекс 0 свойства массив сервера. URI сервера возвращается как поле URI приложения в описание приложения (см. 7.1).

Каждый сервер также должен иметь удобочитаемый идентификатор, называемый именем сервера, который необязательно должен быть глобально уникальным. Этот идентификатор может быть доступен в нескольких областях.

Сервер может иметь несколько имен хоста. По этой причине клиент должен передать службе поиска URL-адрес, который он использовал для подключения к конечной точке. Служба поиска должна использовать эту информацию для возврата ответов, доступных клиенту через предоставленный URL.

Служба поиска не требует защиты сообщений, но требует безопасность на транспортном уровне.

Доступ к серверам допустимо получать через сервер шлюза, и он должен иметь значение, указанное для сервера шлюза URI в их описании приложения (см. 7.1). URL обнаружения, указанные в описании приложения, должны принадлежать серверу шлюза.

Серверам обнаружения допустимо возвращать несколько записей для одного и того же сервера, если к этому серверу можно получить доступ по нескольким путям. Службу поиска допустимо использовать без защиты, и поэтому она уязвима для атак типа «отказ в обслуживании» (DOS). Сервер должен минимизировать объем обработки, необходимый для отправки ответа для этой службы. В условиях высокого трафика сервер должен добавить небольшую задержку перед началом обработки запроса.

5.4.2.2 Параметры

Параметры службы поиска определены в таблице 3.

Таблица 3 — Параметры службы поиска серверов

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса. Токен аутентификации всегда имеет пустое значение. Токен аутентификации следует игнорировать, если он предусмотрен. Тип «Заголовок запроса» определен в 7.28

URL конечной точки

String

Сетевой адрес, который клиент использовал для доступа конечной точки обнаружения. Сервер использует информацию для определения, какие URL-адреса он должен вернуть по умолчанию, если он не распознает имя хоста в URL-адресе

Идентификатор языка

Идентификатор языка

Список используемых языков. Сервер должен вернуть имя приложения в описание приложения, определенное в 7.1, используя один из указанных языков. Если сервер поддерживает более одного запрошенного языка, тогда сервер должен использовать язык, который появляется первым в этом списке. Если сервер не поддерживает ни один из запрошенных языков, он выбирает соответствующий язык по умолчанию. Сервер выбирает соответствующий язык по умолчанию, если этот список пуст

11

ГОСТ Р 71809—2024

Окончание таблицы 3

Имя

Тип

Описание

URI сервера

String

Список серверов для возврата.

Все известные серверы возвращаются, если список пуст. URI сервера соответствует URI приложения из описания приложения, определенного в 7.1

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа. Тип «Заголовок ответа» определен в 7.29

Серверы

Описание приложения

Список серверов, соответствующих критериям, указанным в запросе. Этот список пуст, если ни один сервер не соответствует критериям. Тип «Описание приложения» определен в 7.1

5.4.2.3 Результаты службы

Общие коды состояния определены в таблице 177.

5.4.3 Поиск серверов в сети

5.4.3.1 Описание

Служба возвращает серверы, известные серверу обнаружения. В отличие от поиска серверов, эта служба реализуется только серверами обнаружения.

Клиент может уменьшить количество возвращаемых результатов, указав критерии фильтрации. Если ни один сервер не соответствует критериям, указанным клиентом, возвращается пустой список.

Эта служба не требует защиты сообщений, но может потребовать защиты транспортного уровня.

Каждый раз, когда сервер обнаружения создает или обновляет запись в своем кэше, он должен присвоить записи в монотонно возрастающий идентификатор. Это позволяет клиентам запрашивать записи партиями, указав идентификатор последней записи, полученной при последнем обращении к поиску серверов в сети. Для поддержки этого сервер обнаружения должен возвращать записи в числовом порядке, начиная с наименьшего идентификатора записи. Сервер обнаружения также должен вернуть время последнего сброса счетчика, например из-за перезапуска сервера обнаружения. Если клиент обнаруживает, что это время является более поздним, чем последний раз, когда клиент вызывал службу, он должен снова вызвать службу с начальным значением идентификатора записи, равным 0.

Службу поиска допустимо использовать без защиты, и поэтому она уязвима для атак типа «отказ в обслуживании» (DOS). Сервер должен минимизировать объем обработки, необходимый для отправки ответа для данной службы.

5.4.3.2 Параметры

Параметры службы поиска определены в таблице 4.

Таблица 4 — Параметры службы поиска серверов в сети

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса. Токен аутентификации всегда имеет пустое значение. Токен аутентификации игнорируется, если тип «Заголовок запроса» определен как установлено в 7.28

Начальный идентификатор записи

Счетчик

Возвращаются записи с идентификатором больше заданного числа. Для начала с первой записи в кэше требуется указать 0

Максимальное количество записей для возврата

Ulnt32

Максимальное количество записей, возвращаемых в ответ. 0 означает, что ограничений нет

Фильтр возможностей сервера

String

Список фильтров возможностей сервера. Набор разрешенных возможностей сервера определен в МЭК 62541-12 [2].

Возвращаются только записи со всеми указанными возможностями сервера.

Сравнение является нечувствительным к регистру.

Если этот список пуст, фильтрация не выполняется

12

Окончание таблицы 4

ГОСТ Р 71809—2024

Имя

Тип

Описание

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа.

Тип «Заголовок ответа» определен в 7.29

Время последнего сброса счетчика

Время UTC

Последний сброс счетчиков

Серверы

Сервер в сети

Список записей DNS-сервисы, соответствующих критериям, указанным в запросе.

Список пуст, если ни один сервер не соответствует критериям

Идентификатор записи

Ulnt32

Уникальный идентификатор записи.

Его можно использовать для получения следующей партии серверов при последующем вызове команды поиска серверов в сети

Имя сервера

String

Имя сервера, указанное в объявлении mDNS (см. МЭК 62541-12 [2]). Может являться тем же самым, что и имя приложения для сервера

Обнаружение URL

String

URL-адрес конечной точки обнаружения

Возможности сервера

String

Набор возможностей сервера, поддерживаемых сервером.

Набор разрешенных возможностей сервера определен в МЭК 62541-12 [2]

5.4.3.3 Результаты службы

Общие коды состояния определены в таблице 177.

5.4.4 Получение конечных точек

5.4.4.1 Описание

Данная служба возвращает конечные точки, поддерживаемые сервером, и всю информацию о конфигурации, необходимую для установления защищенного канала и сессии.

Эта служба не требует защиты сообщений, но может потребовать защиты транспортного уровня.

Клиент может уменьшить количество возвращаемых результатов, указав критерии фильтрации на основе идентификаторов языков и профиля переноса URI. Сервер возвращает пустой список, если конечные точки не соответствуют критериям, указанным клиентом. Критерии фильтрации, поддерживаемые данной службой, описаны в 5.4.4.2.

Сервер может поддерживать несколько конфигураций безопасности для одной и той же конечной точки. В этой ситуации сервер должен возвращать отдельные записи описания конечной точки для каждой доступной конфигурации. Клиенты должны рассматривать каждую из этих конфигураций как отдельные конечные точки, даже если физический URL-адрес совпадает.

Конфигурация безопасности для конечной точки состоит из четырех компонентов:

- сертификат экземпляра серверного приложения;

- режим безопасности сообщений;

- политика безопасности;

- поддерживаемые токены идентификации пользователя.

Сертификат экземпляра приложения используется для защиты запроса открытия защищенного канала (см. 5.5.2). Режим безопасности сообщений и политика безопасности сообщают клиенту, как защитить сообщения, отправленные через защищенный канал. Токены идентификатора пользователя сообщают клиенту, какой тип учетных данных пользователя должен быть передан серверу в запросе активации сессии (см. 5.6.3).

Если для URI политики безопасности установлено значение «ОТСУТСТВИЕ» и ни одна из политик токенов пользователя не требует шифрования, клиент должен игнорировать экземпляр серверного приложения.

Каждое описание конечной точки также указывает URI для транспортного профиля, который поддерживает конечная точка. Транспортные профили определяют такую информацию, как формат кодирования сообщений и версия протокола, которые определены в МЭК 62541-7 [1].

13

ГОСТ Р 71809—2024

Сообщения защищаются путем применения стандартных алгоритмов криптографии к сообщениям перед их отправкой по сети. Точный набор используемых алгоритмов зависит от политики безопасности для конечной точки. Определение профилей для общих политик безопасности и присвоение им уникального URI — см. МЭК 62541-7 [1]. Приложения должны иметь встроенную информацию о поддерживаемых ими политиках безопасности, в результате в описании конечной точки указывается только URI профиля для политики безопасности. Клиент не может подключиться к конечной точке, которая не поддерживает политику безопасности, которую она распознает.

В описании конечной точки допустимо указание, что режим безопасности сообщения «ОТСУТСТВУЕТ». Эта конфигурация не рекомендуется, если приложения не обмениваются данными в физически изолированной сети, где риск вторжения чрезвычайно мал.

Допустимо, что сервер имеет несколько имен хоста. В таком случае клиент должен передать службе URL-адрес, который он использовал для подключения к конечной точке. Служба будет использовать эту информацию для возврата ответов, доступных клиенту через предоставленный URL.

В случае, когда служба используется без защиты, она уязвима для атак типа «отказ в обслуживании» (DOS). Сервер должен минимизировать объем обработки, необходимый для отправки ответа для данной службы.

Описания конечных точек, возвращаемых в ответе, должны указывать информацию о конечной точке для сервера шлюза, которая определена для доступа к другому серверу. В названных ситуациях URI сервера шлюза указывается в описании конечной точки, и все проверки безопасности, используемые для проверки сертификатов, должны использовать URI сервера шлюза (см. 6.1.3) вместо URI сервера.

Чтобы подключиться к серверу через шлюз, клиент должен установить защищенный канал с сервером шлюза. Затем клиент должен вызвать службу создания сессии и передать URI сервера, указанный в описании конечной точки, на сервер шлюза. Затем сервер шлюза должен подключиться к базовому серверу от имени клиента. Процесс подключения к серверу через сервер шлюза показан на рисунке 10.

Конечная точка Конечная обнаружения точка сессии

Рисунок 10 — Использование сервера шлюза

5.4.4.2 Параметры

Параметры службы определены в таблице 5.

14

Таблица 5 — Описание службы получения конечных точек

ГОСТ Р 71809—2024

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса. Токен аутентификации всегда имеет пустое значение. Токен аутентификации следует игнорировать, если он предусмотрен.

Тип «Заголовок запроса» определен в 7.28

URL конечной точки

String

Сетевой адрес, который клиент использовал для доступа к конечной точке обнаружения.

Сервер использует эту информацию для диагностики и определения, какие URL-адреса возвращать в ответе.

Сервер должен вернуть подходящий URL-адрес по умолчанию, если он не распознает имя хоста в URL-адресе

Идентификаторы языка

Идентификатор языка

Список используемых языков.

Задает языковой стандарт, используемый при возврате строк, удобочитаемых человеком. Идентификатор языка описан в 5.4.2.2

Профиль URI

String

Список транспортного профиля, который должна поддерживать возвращенная конечная точка. URI для транспортных профилей определен в МЭК 62541-7 [1].

Конечные точки возвращаются, если список пуст.

Если является URL-адресом, к этому URL-адресу может быть добавлена строка запроса транспортных профилей, поддерживающих строки запроса, которые определены в МЭК 62541-7 [1]

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа.

Тип «Заголовок ответа» определен в 7.29

Конечная точка

Описание конечной точки

Список конечных точек, соответствующих критериям, указанным в запросе. Этот список будет пустым, если ни одна конечная точка не соответствует критериям. Тип «Описание конечной точки» определен в 7.10

5.4.4.3 Результаты службы

Общие коды состояния определены в таблице 177.

5.4.5 Регистрация сервера

5.4.5.1 Описание

Данная служба реализуется серверами обнаружения.

Данная служба регистрирует сервер с сервером обнаружения. Настоящая служба будет вызываться сервером или отдельной утилитой настройки. Клиенты не используют эту службу.

Сервер должен установить защищенный канал с сервером обнаружения перед вызовом этой службы. Защищенный канал описан в 5.5. Администратор сервера должен предоставить серверу описание конечной точки для сервера обнаружения как часть процесса настройки. Серверы обнаружения должны отклонить регистрацию, если предоставленный URI сервера не соответствует URI приложению в сертификате сервера, использованном для создания защищенного канала.

Эта служба может быть вызвана только через защищенный канал, поддерживающий аутентификацию клиента (т. е. HTTPS не может использоваться для вызова этой службы).

Сервер предоставляет только свой URI сервера и URL-адрес конечных точек обнаружения на сервер обнаружения. Клиенты должны использовать службу получения конечных точек для получения самой последней информации о конфигурации непосредственно с сервера.

Сервер должен предоставить себе локализованное имя на всех поддерживаемых им языках.

Серверы должны иметь возможность регистрироваться на сервере обнаружения, работающем на той же машине. Точные механизмы зависят от реализации сервера обнаружения и описаны в ГОСТ Р 71811.

Существуют два типа приложений сервера: те, которые запускаются вручную, включая запуск операционной системы при загрузке, и те, которые запускаются автоматически, когда клиент пытается

15

ГОСТ Р 71809—2024

подключиться. Процесс регистрации, который должен использовать сервер, зависит от того, в какую категорию он попадает.

Процесс регистрации для серверов, запускаемых вручную, показан на рисунке 11.

Администратор

Сервер

Сервер обнаружения

Клиент

Начало

Истечение таймера регистрации

Регистрация сервера (Онлайн = Истина)

Регистрация сервера (Онлайн = Истина)

Поиск серверов ()

Срок онлайн-регистрации истекает, серверы должны регистрироваться не реже одного раза в 10 мин

Описания приложений[ ]

Остановка

Удаление истекших регистраций

Регистрация сервера (Онлайн = Истина)

Репострация сервера (Онлайн = Ложь)

Поиск серверов ()

Ничего не найдено

Поиск серверов ()

Ничего не найдено

Рисунок 11 — Процесс регистрации серверов, запускаемых вручную

Процесс регистрации для серверов, запускаемых автоматически, показан на рисунке 12.

Администратор

Сервер

Файловая система

Сервер обнаружения

Клиент

Установка

Создание файла семафора

Регистрация сервера

Загрузка регистрации при запуске

Проверка семафора

* Сохранение

। регистрации

D Проверка

файла семафора

Поиск серверов()

Деинсталляция

Удаление

Описания приложений[]

у Файл семафора

Автономная регистрация удаляется, когда файл семафора больше не доступен. Сервер также может пометить себя как автономный, переименовав или переместив файл семафора

Проверка семафора

Удаление регистрации

Поиск серверов()

Рисунок 12 — Процесс регистрации серверов, запускаемых автоматически

Процесс регистрации разработан так, чтобы быть независимым от платформы, надежным и способным минимизировать проблемы, вызванные ошибками конфигурации. В нормальных условиях запущенные вручную серверы должны регистрироваться на сервере обнаружения, пока они могут получать соединения от клиентов. Если сервер переходит в автономный режим, он должен зарегистрироваться

16

ГОСТ Р 71809—2024

еще раз и указать, что он отключен. Период повторной регистрации должен быть настраиваемым. Максимальное время составляет 10 мин. При возникновении ошибки во время регистрации (например, сервер обнаружения не запущен) сервер должен периодически повторять попытки регистрации. Частота этих попыток должна начинаться с 1 с, но постепенно увеличиваться до тех пор, пока частота регистрации не станет такой же, как при отсутствии ошибок. Рекомендуемый подход состоит в том, чтобы удвоить период каждой попытки до достижения максимума.

Когда автоматически запускаемый сервер (или его программа установки) регистрируется на сервере обнаружения, он должен предоставить путь к файлу семафора, который сервер обнаружения может использовать, чтобы определить, был ли сервер удален с машины. Сервер обнаружения должен иметь доступ на чтение к файловой системе, содержащей файл.

5.4.5.2 Параметры

Параметры службы определены в таблице 6.

Таблица 6 — Параметры службы регистрации сервера

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса. Токен аутентификации всегда имеет пустое значение.

Тип «Заголовок запроса» определен в 7.28

Сервер

Зарегистрированный сервер

Сервер для регистрации.

Тип «Зарегистрированный сервер» определен в 7.27

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа.

Тип «Заголовок ответа» определен в 7.29

5.4.5.3 Результаты службы

В таблице 7 определены результаты службы, относящиеся к этой службе. Общие коды состояния определены в таблице 177.

Таблица 7 — Результирующие коды службы регистрации сервера

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса. Токен аутентификации всегда имеет пустое значение.

Тип «Заголовок запроса» определен в 7.28

Сервер

Зарегистрированный сервер

Сервер для регистрации. Тип «Зарегистрированный сервер» определен в 7.27

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа.

Тип «Заголовок ответа» определен в 7.29

5.4.6 Регистрация сервера 2

5.4.6.1 Описание

Эта служба регистрации используется серверами обнаружения.

Эта служба регистрации позволяет серверу регистрировать свои URL обнаружения и возможности на сервере обнаружения. Он дополняет регистрационную информацию из регистрации сервера информацией, необходимой для службы поиска серверов в сети. Эта служба вызывается сервером или отдельной утилитой настройки. Службу регистрации клиенты не используют.

Серверы, поддерживающие регистрацию сервера 2, должны попытаться зарегистрироваться на сервере обнаружения, использующем эту службу, и должны вернуться к регистрации сервера, если регистрация сервера 2 завершается неудачно со статусом «Некорректно_Служба не поддерживается».

17

ГОСТ Р 71809—2024

Сервер обнаружения, реализующий службу регистрации, должен назначать уникальные идентификаторы записей каждый раз при вызове этой службы. См. 5.4.3 для получения более подробной информации.

Служба регистрации может вызывать только через защищенный канал, поддерживающий аутентификацию клиента (т. е. HTTPS не может использоваться для вызова этой службы).

5.4.6.2 Параметры

Параметры службы регистрации определены в таблице 8.

Таблица 8 — Регистрации сервера 2

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса. Токен аутентификации всегда имеет пустое значение. Тип «Заголовок запроса» определен в 7.28

Сервер

Зарегистрированный сервер

Сервер для регистрации. Тип «Зарегистрированный сервер» определен в 7.27

Конфигурация обнаружения

Расширяемый параметр конфигурации обнаружения

Дополнительное описание конфигурации для регистрации сервера.

Конфигурация обнаружения — это расширяемый тип параметра, определенный в 7.9.

Серверы обнаружения, которые не понимают настройку, должны вернуть «Некорректно_Не поддерживается» для этой настройки

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа.

Тип «Заголовок ответа» определен в 7.29

Результаты конфигурации

Код состояния

Список результатов для параметров конфигурации обнаружения

Информация по диагностике

Информация по диагностике

Список диагностической информации для параметров конфигурации обнаружения. Этот список пуст, если диагностическая информация не была запрошена в заголовке запроса или если диагностическая информация не была обнаружена при обработке запроса

5.4.6.3 Результаты службы регистрации

В таблице 9 определены результаты службы регистрации. Общие коды состояния определены в таблице 177.

Таблица 9 — Результирующие коды службы регистрации сервера 2

Символический идентификатор

Описание

Некорректно_НедействительныйАргумент

Описание этого результирующего кода см. в таблице 177

Некорректный_11Р1СервераНедействительный

Описание этого результирующего кода см. в таблице 177

Некорректно_ОтсутствуетИмяСервера

Не указано имя сервера

Heкoppeктнo_OтcyтcтвиeOбнapyжeнияURL

Не указан URL-адрес обнаружения

Некорректно_ОтсутствуетФайл Семафоров

Указанный файл семафора недействителен

Некорректно_СервисНеПоддерживается

Описание этого результирующего кода см. в таблице 177

5.4.6.4 Коды состояния

В таблице 10 определены значения для параметров уровня работы результатов настройки, которые относятся к данной службе. Общие коды состояния определены в таблице 178.

18

Таблица 10 — Результирующие коды уровня работы регистрации сервера 2

ГОСТ Р 71809—2024

Символический идентификатор

Описание

Некорректно_НеПоддерживается

Описание этого результирующего кода см. в таблице 178

5.5 Набор служб защищенного канала

5.5.1 Обзор

Настоящий набор служб определяет службы, используемые для открытия канала связи, который обеспечивает конфиденциальность и целостность всех сообщений, которыми обменивается сервер. Базовые концепции безопасности ОРС UA определены в ГОСТ Р 71807.

Службы защищенного канала не реализуются непосредственно приложением ОРС UA. Они предоставляются стеком связи, на котором построено приложение ОРС UA. Например, сервер ОРС UA может быть построен на стеке, который позволяет приложениям устанавливать защищенный канал с использованием HTTPS. В этих случаях приложение ОРС UA должно проверить, что полученное сообщение было в контексте HTTPS-соединений. В ГОСТ Р 71811 описано, как реализованы службы защищенного канала.

Защищенный канал — длительное логическое соединение между одним клиентом и одним сервером. Этот канал поддерживает набор ключей, известных только клиенту и серверу, которые используются для аутентификации и шифрования сообщений, отправляемых по сети. Служба защищенного канала позволяет клиенту и серверу безопасно согласовывать используемые ключи.

Логические соединения могут быть инициированы клиентом или сервером, как описано в ГОСТ Р 71811.

После установления соединения защищенный канал открывается и закрывается клиентом с помощью службы защищенного канала.

Описание конечной точки сообщает клиенту, как установить защищенный канал с данной конечной точкой. Клиент может получить описание конечной точки от сервера обнаружения, через некоторый сервер, не определенный через UA, или из своей собственной настройки.

Точные алгоритмы, используемые для аутентификации и шифрования сообщений, описаны в поле политика безопасности описания конечной точки. Клиент должен использовать эти алгоритмы при создании защищенного канала.

Политики безопасности, определенные в МЭК 62541-7 [1], отключают аутентификацию и шифрование, в результате чего создается защищенный канал, не обеспечивающий безопасности.

Когда клиент и сервер обмениваются данными через защищенный канал, они должны проверить, что все входящие сообщения были подписаны и зашифрованы в соответствии с требованиями, указанными в описании конечной точки. Приложение ОРС UA не должно обрабатывать сообщения, не соответствующие этим требованиям.

Связь между защищенным каналом и приложением ОРС UA зависит от технологии реализации. В ГОСТ Р 71811 определены требования, которые зависят от используемой технологии.

Корреляция между сессией приложения ОРС UA и защищенным каналом проиллюстрирована на рисунке 13. Стек связи используется приложениями ОРС САдля обмена сообщениями. На первом этапе службы защищенного канала используются для установления защищенного канала между двумя стеками связи, который обеспечивает безопасный обмен сообщениями. На втором этапе приложения ОРС UA используют набор служб сессии для установления сессии приложения ОРС UA.

19

ГОСТ Р 71809—2024

Клиент ОРС UA

Сервер ОРС UA

Приложение ОРС UA

Сессия

Приложение ОРС UA

Стек связи

4

Защищенный канал

Стек связи

Рисунок 13 — Защищенный канал и службы сессии

После того, как клиент установил сессию, он может пожелать получить доступ к сессии с другого защищенного канала. Клиент может сделать это, проверив новый защищенный канал с помощью службы активации сессии, описанной в 5.6.3.

Система, в которой сервер действует как клиент для других серверов, называется цепочкой серверов. В такой системе сервер должен иметь возможность поддерживать безопасность на уровне пользователя. Под этим подразумевается, что идентификатор пользователя должен быть передан базовому серверу или должен быть сопоставлен с соответствующим идентификатором пользователя в базовом сервере. Недопустимо игнорировать безопасность на уровне пользователя. Это необходимо для обеспечения безопасности и того, что пользователь не получит информацию, к которой у него не должно быть доступа. По возможности сервер должен олицетворять исходного клиента, передавая удостоверение пользователя исходного клиента нижестоящему серверу, когда он вызывает службу активации сессии. Если олицетворение не является вариантом, тогда сервер должен сопоставить исходный идентификатор пользователя клиента с новым идентификатором пользователя, который распознает базовый сервер.

5.5.2 Открытие защищенного канала

5.5.2.1 Описание

Настоящая служба используется для открытия или обновления защищенного канала, который может применяться для обеспечения конфиденциальности и целостности обмена сообщениями во время сессии. Эта служба требует, чтобы стек связи применял различные алгоритмы безопасности к сообщениям по мере их отправки и получения. Конкретные реализации этой службы для различных стеков связи описаны в ГОСТ Р 71811.

Каждый защищенный канал имеет глобальный уникальный идентификатор и действителен для определенной комбинации экземпляров клиентского и серверного приложений. Каждый канал содержит один или несколько токенов безопасности, которые идентифицируют набор криптографических ключей, которые используются для шифрования и аутентификации сообщений. Токены безопасности имеют глобально уникальные идентификаторы, которые прикрепляются к каждому сообщению, защищенному токеном. Это позволяет авторизованному получателю знать, как расшифровать и проверить сообщение.

Токены безопасности имеют ограниченный срок действия, согласованный со службой. Однако различия между системными часами на разных машинах и задержки в сети означают, что действительные сообщения могут поступать после истечения срока действия токена. Чтобы предотвратить отмену действительных сообщений, приложения должны выполнять следующее:

а) клиенты должны запрашивать новый токен безопасности по истечении 75 % его срока действия. Это должно гарантировать, что клиенты получат новый токен безопасности до истечения срока действия старого;

б) серверы должны использовать существующий токен безопасности для защиты исходящих сообщений до тех пор, пока не истечет срок действия токена безопасности или пока сервер не получит сообщение, защищенное новым токеном безопасности. Это должно гарантировать, что клиенты не от-

20

ГОСТ Р 71809—2024

клонят сообщения, защищенные новым токеном безопасности, которые поступают до того, как клиент получит новый токен безопасности;

в) клиенты должны принимать сообщения, защищенные истекшим токеном безопасности, в течение максимум 25 % времени срока использования токена. Это должно гарантировать, что сообщения, отправленные сервером до истечения срока действия токена, не будут отклонены из-за сетевых задержек.

Каждый защищенный канал существует до тех пор, пока он не будет явно закрыт или пока не истечет срок действия последнего токена и не истечет период перекрытия. Приложение сервера должно ограничивать количество защищенных каналов. Для защиты от некорректного поведения клиентов и отклонения атак на службы сервер должен закрыть самый старый защищенный канал, которому не назначена сессия, до достижения максимального количества поддерживаемых защищенных каналов.

Сообщения запроса и ответа открытия защищенного канала должны быть подписаны закрытым ключом отправителя. Эти сообщения должны всегда быть зашифрованы. Если транспортный уровень не обеспечивает шифрование, то эти сообщения должны быть зашифрованы открытым ключом получателя. Эти требования для службы открытия защищенного канала применяются только в том случае, если для параметра политики безопасности URI установлено значение «ОТСУТСТВУЕТ».

Если протокол, представленный в ГОСТ Р 71811, требует, чтобы сертификаты экземпляров приложения использовались в службе открытия защищенного канала, то клиенты и серверы должны проверить, что одни и те же сертификаты используются в службах создания сессии и активации сессии. Сертификаты не предоставляются и не подлежат проверке, если для URI политики безопасности установлено значение «ОТСУТСТВУЕТ».

Если политика безопасности URI не отображает значение «ОТСУТСТВУЕТ», клиент должен проверить, что имя хоста, указанное в сертификате сервера, совпадает с именем хоста, указанным в URL конечной точки. Если имеется разница, то клиент должен сообщить о разнице и может не открывать защищенный канал. Серверы должны добавить все возможные имена хоста, такие как MyHost и MyHost. local, в сертификат сервера. Сюда входят IP-адреса хоста или имя хоста, предоставленные маршрутизатором NAT, используемым для подключения к серверу.

Клиенты должны быть готовы заменить имя хоста, возвращенное в описание конечной точки, на IP-адрес для вызова службы получения конечных точек.

5.5.2.2 Параметры

Параметры службы определены в таблице 11.

В отличие от других служб, параметры этой службы дают только абстрактное определение. Информация в сети зависит от отображений, представленных в ГОСТ Р 71811.

Таблица 11 — Параметры службы открытия защищенного канала

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса. Токен аутентификации всегда имеет пустое значение.

Тип «Заголовок запроса» определен в 7.28

Сертификат клиента

Сертификат экземпляра приложения

Сертификат, идентифицирующий клиента.

Запрос открытия защищенного канала должен быть подписан закрытым ключом для этого сертификата.

Тип «Сертификат экземпляра приложения» определен в 7.2.

Если для URI политики безопасности установлено значение «ОТСУТСТВУЕТ», сервер должен игнорировать сертификат экземпляра приложения

Тип запроса

Перечисление. Тип запроса «Токен безопасности»

Тип запроса «Токен безопасности».

Перечисление, которое должно быть одним из следующих: «ДОБАВИТЬ_0» создает новый токен безопасности для нового защищенного канала.

«ОБНОВИТЬ_1» создает новый токен безопасности для существующего защищенного канала

21

ГОСТ Р 71809—2024

Продолжение таблицы 11

Имя

Тип

Описание

Идентификатор защищенного канала

Базовый тип данных

Идентификатор защищенного канала, которому должен принадлежать новый токен. Этот параметр должен быть пустым при создании нового защищенного канала.

Определение протокола безопасности по ГОСТ Р 71811 выбирает конкретный тип данных

Режим безопасности

Перечисление Режим безопасности сообщений

Тип защиты, применяемой к сообщениям.

Тип «Режим безопасности сообщений» определен в 7.15.

Создание защищенного канала требуется, даже если режим безопасности «ОТСУТСТВУЕТ». Точное поведение зависит от используемого отображения и описано в ГОСТ Р 71811

Политика безопасности URI

String

URI для политики безопасности для использования при защите сообщений, отправляемых через защищенный канал.

Наборы известных URI и связанных с ними политик безопасности определены в МЭК 62541-7 [1]

Случайное число клиента

Строка байтов

Случайное число, которое не должно использоваться ни в каком другом запросе. Новое случайное число клиента должно генерироваться каждый раз, когда защищенный канал обновляется.

Данный параметр должен иметь длину, равную длине случайного числа защищенного канала, согласно политике безопасности, представленной в МЭК 62541-7 [1]. Политика безопасности идентифицируется с помощью политики безопасности URI

Запрошенный срок действия

Продолжительность

Запрошенный срок действия в миллисекундах для нового токена безопасности. Он указывает, когда клиент ожидает обновить защищенный канал, снова вызвав службу открытия защищенного канала. Если защищенный канал не обновляется, то все сообщения, отправленные с использованием текущих токенов безопасности, должны быть отклонены получателем.

Некоторые криптоаналитические атаки становятся проще, поскольку доступно больше материалов, зашифрованных с помощью определенного ключа. Ограничивая объем данных, обрабатываемых с применением определенного ключа, эти атаки усложняются. Объем данных, которыми обмениваются клиент и сервер, должен быть ограничен путем установления нового токена безопасности по истечении срока действия.

Установка запрошенного срока действия зависит от ожидаемого количества сообщений, которыми обмениваются, и их размера за время срока действия

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа (определение типа «Заголовок ответа» см. в 7.29)

Токен безопасности

Токен безопасности канала

Описывает новый токен безопасности, выпущенный сервером. Эта структура определяется в соответствии со следующими элементами с отступом

Идентификатор канала

Базовый тип данных

Уникальный идентификатор защищенного канала. Это идентификатор, который должен предоставляться всякий раз, когда защищенный канал обновляется.

Конкретное определение протокола безопасности в ГОСТ Р 71811 выбирает конкретный тип данных

Идентификатор токена

Byte String

Уникальный идентификатор для одного токена безопасности в канале. Это идентификатор, который должен передаваться с сообщением, защищенным с помощью токена безопасности

22

Окончание таблицы 11

ГОСТ Р 71809—2024

Имя

Тип

Описание

Создание

Время Ute

Время создания токена безопасности

Обновленный срок действия

Продолжительность

Срок действия токена безопасности в миллисекундах. Время истечения срока действия токена в формате UTC можно рассчитать, прибавив время действия к времени создания

Случайный код сервера

Byte String

Случайное число, которое не должно использоваться ни в каком другом запросе. Новый случайный код сервера должен генерироваться каждый раз, когда защищенный канал обновляется.

Этот параметр должен иметь длину, равную длине случайного числа защищенного канала, определенную для политики безопасности в МЭК 62541-7 [1]. Политика безопасности идентифицируется с помощью политики безопасности URI

5.5.2.3 Результаты службы

В таблице 12 определены результаты службы, специфичные для этой службы. Общие коды состояния определены в таблице 177.

Таблица 12 — Результирующие коды службы открытия защищенного канала

Символический идентификатор

Описание

Некорректно_Проверка

БезопасностиНеУдалась

Описание этого результирующего кода см. в таблице 177

Некорректно_СрокДействия

СертификатаНедействителен

Описание этого результирующего кода см. в таблице 177

Некорректно_ВремяИздателя

СертификатаНедействительно

Описание этого результирующего кода см. в таблице 177

Некорректно_СертификатИмени

ХостаНедействителен

Описание этого результирующего кода см. в таблице 177

Некорректно_иП1Сертификата

Недействителен

Описание этого результирующего кода см. в таблице 177

Некорректно_Использование СертификатаНеРазрешено

Описание этого результирующего кода см. в таблице 177

Некорректно_Использование

ИздателяСертификата

НеРазрешено

Описание этого результирующего кода см. в таблице 177

Некорректно_Сертификат Ненадежный

Описание этого результирующего кода см. в таблице 177

Некорректно_ОтзывСертификата Неизвестен

Описание этого результирующего кода см. в таблице 177

Некорректно_ОтзывИздателя

СертификатаНеизвестен

Описание этого результирующего кода см. в таблице 177

Некорректно_СертификатОтозван

Описание этого результирующего кода см. в таблице 177

Не ко р ректн ы й_Издател ь Се рти фи ката Отозван

Описание этого результирующего кода см. в таблице 177

Некорректно_ТипЗапроса Неверный

Тип запроса токена безопасности недействителен

Некорректно_РежимБезопасности Отклонен

Режим безопасности не соответствует требованиям, установленным сервером

Некорректно_Политика БезопасностиОтклонена

Политика безопасности не соответствует требованиям, установленным сервером

23

ГОСТ Р 71809—2024

Окончание таблицы 12

Символический идентификатор

Описание

Некорректно_Идентификатор

ЗащищенногоКаналаНедействителен

Описание этого результирующего кода см. в таблице 177

Некорректно_СлучайныйКод

Недействителен

Описание этого результирующего кода см. в таблице 177. Сервер должен проверить минимальную длину случайного кода клиента и вернуть этот статус, если его длина менее 32 байтов. Проверить наличие дублированных случайных кодов можно только в вызовах открытия защищенного канала с типом запроса «ОБНОВИТЬ_1»

5.5.3 Закрытие защищенного канала

5.5.3.1 Описание

Служба используется для отключения защищенного канала.

Сообщения запроса должны быть подписаны соответствующим ключом, связанным с текущим токеном для защищенного канала.

5.5.3.2 Параметры

Параметры службы определены в таблице 13.

При отображении конкретных протоколов, представленных в ГОСТ Р 71811, ответ может быть пропущен.

Таблица 13 — Параметры службы закрытия защищенного канала

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса. Токен аутентификации всегда имеет пустое значение.

Тип «Заголовок запроса» определен в 7.28

Идентификатор защищенного канала

Базовый тип данных

Идентификатор для закрытия защищенного канала.

Конкретное определение протокола безопасности по ГОСТ Р 71811 выбирает конкретный тип данных

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа (см. 7.29 для определения заголовка ответа)

5.5.3.3 Результаты службы

В таблице 14 представлены результаты службы, специфичные для этой службы. Общие коды состояния представлены в таблице 177.

Таблица 14 — Результирующие коды службы закрытия защищенного канала

Символический идентификатор

Описание

Некорректно_Идентификатор

ЗащищенногоКаналаНедействителен

Описание этого результирующего кода см. в таблице 177

5.6 Набор служб сессии

5.6.1 Обзор

Настоящий набор служб определяет службы для установления соединения уровня конкретного применения в контексте сессии.

24

ГОСТ Р 71809—2024

5.6.2 Создание сессии

5.6.2.1 Описание

Настоящая служба используется клиентом ОРС UA для создания сессии, и сервер возвращает два значения, которые однозначно идентифицирует сессия. Первое значение — идентификатор сессии, который используется для идентификации сессии в журналах аудита и в адресном пространстве сервера. Второй — токен аутентификации, который используется для связывания входящего запроса с сессией.

Перед вызовом этой службы клиент должен создать защищенный канал с помощью службы открытия защищенного канала, чтобы гарантировать целостность всех сообщений, которыми обмениваются во время сессии. Данный защищенный канал имеет уникальный идентификатор, который сервер должен связать с токеном аутентификации. Сервер может принимать запросы от токена аутентификации, только если они связаны с тем же защищенным каналом, который использовался для создания сессии. Клиент может связать новый защищенный канал с сессией, вызвав метод активации сессии.

Защищенный канал всегда управляется стеком связи, что означает, что он должен предоставлять API-интерфейсы, которые сервер может использовать для получения информации о защищенном канале, используемом для любого данного запроса. Стек связи должен, как минимум, обеспечивать политику безопасности и режим безопасности, используемые защищенным каналом. Он также должен предоставить идентификатор защищенного канала, который однозначно идентифицирует защищенный канал или сертификат клиента, используемый для создания защищенного канала. Сервер использует один из них, чтобы идентифицировать защищенный канал, используемый для отправки запроса. В 7.31 описывается, как создать токен аутентификации для различных типов стека связи.

В зависимости от политики безопасности и защищенного канала, обмен сертификатов экземпляра приложения и случайного кода может быть необязательным, а подписи могут быть пустыми. Определение политик безопасности и обработки этих параметров — см. МЭК 62451-7 [1].

Сервер возвращает свои описания конечных точек в ответе. Клиенты используют эту информацию, чтобы определить, совпадает ли список описания конечных точек, возвращенный от конечной точки обнаружения, с конечными точками, находящимися на сервере. Если есть разница, клиент должен закрыть сессию и сообщить об ошибке. Сервер возвращает все описания конечных точек для URI сервера, указанного клиентом в запросе. Клиент проверяет описания конечных точек только с помощью транспортного профиля URI, который соответствует профилю URI, указанному в исходном запросе получения конечных точек. Клиент может пропустить эту проверку, если описания конечных точек были предоставлены доверенным источником, например администратором.

Сессия, созданная с помощью этой службы, не должна использоваться до тех пор, пока клиент не вызовет службу активации сессии и не предоставит свои сертификаты программного обеспечения и не докажет, что владеет своим сертификатом экземпляра приложения и любым токеном идентификации пользователя, который он предоставил.

Приложение сервера должно ограничивать количество сессий. Для защиты от некорректного поведения клиентов и отказа от служебных атак сервер должен закрыть самую старую сессию, которая не была активирована, до достижения максимального количества поддерживаемых сессий.

Параметр сертификатов программного обеспечения в ответе сервера является нерекомендуемым, для того чтобы уменьшить размер сообщения для приложений ОРС UA с ограниченными ресурсами. Сертификаты программного обеспечения предоставляются в адресном пространстве сервера, как определено в ГОСТ Р 71810. Сертификат программного обеспечения определяет возможности сервера, а также содержит список профилей ОРС UA, поддерживаемых сервером. Профили ОРС UA определены в МЭК 62541-7 [1].

Дополнительные сертификаты, выпущенные другими организациями, могут быть включены для определения дополнительных возможностей сервера. Примеры этих профилей включают поддержку определенных информационных моделей и поддержку доступа к определенным типам устройств.

При создании сессии сервер добавляет запись для клиента в свою переменную массива данных диагностики сессии. Описание этой переменной — по ГОСТ Р 71810.

Сессии создаются таким образом, чтобы они не зависели от основного коммуникационного соединения. Если коммуникационное соединение не работает, сессия не инициируется немедленно. Точный механизм восстановления после основной ошибки коммуникационного соединения зависит от отображения защищенного канала, как описано в ГОСТ Р 71811.

Сессии завершаются сервером автоматически, если клиент не может отправить запрос службы для сессии в течение периода ожидания, согласованного сервером в ответе службы создания сессии.

25

ГОСТ Р 71809—2024

Такое завершение защищает сервер от сбоев клиента и от ситуаций, когда отказавшее базовое соединение не может быть восстановлено. Клиенты должны быть готовы своевременно отправлять запросы, чтобы сессия не закрывалась автоматически. Клиенты могут прекратить сессию, используя службу закрытия сессии.

Когда сессия завершается, все неотправленные запросы на сессию прерываются, а коды состояния «Некорректно_Сессия завершена» возвращаются клиенту. Сервер удаляет запись для клиента из своей переменной массива данных диагностики сессии и уведомляет других клиентов, которые были подписаны на эту запись.

Если клиент вызывает службу закрытия сессии, то все подписки, связанные с сессией, удаляются, если для метки удаления подписки установлено значение «ИСТИНА». Если сервер завершает сессию по любой другой причине, подписки, связанные с сессией, не удаляются. Каждая подписка имеет свой срок действия для защиты от потери данных в случае прекращения работы сессии. В этих случаях подписку можно переназначить другому клиенту до истечения срока ее действия.

Агрегирующие серверы действуют как клиенты для других серверов. Эти серверы поддерживают более одного системного пользователя, выступая в качестве их агента по отношению к серверам, которые они представляют. Безопасность для агрегирующих серверов поддерживается на двух уровнях.

Во-первых, каждый запрос службы ОРС UA содержит параметр строки, который используется для передачи идентификатора записи аудита. Клиент или любой сервер, работающий как клиент, может создать запись в локальном журнале аудита для отправляемого запроса. Данная запись позволяет клиенту передать идентификатор для нее с запросом. Если сервер ведет журнал аудита, он включает идентификатор в запись журнала аудита. Возможность связать записи журнала аудита, созданные клиентом, позволяет отслеживать журналы аудита в системе. Дополнительная информация по аудиту — по ГОСТ Р 71807.

Сервер, который ведет журнал аудита, должен предоставлять информацию в записях журнала аудита через сообщения о событиях, определенные в этом журнале. Сервер выбирает предоставление информации аудита только через сообщения о событиях. Тип события аудита определен в ГОСТ Р 71808.

Во-вторых, эти агрегирующие серверы могут открывать независимые сессии для базовых серверов для каждого клиента, который получает доступ к данным от них. На рисунке 14 представлена эта концепция.

Клиенты обычно поддерживают одного пользователя системы

Агрегирующий сервер устанавливает отдельную сессию со своими базовыми серверами

Рисунок 14 — Мультиплексирование пользователей в сессии

5.6.2.2 Параметры

Параметры службы определены в таблице 15.

26

Таблица 15 — Описание службы создания сессии

ГОСТ Р 71809—2024

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса. Токен аутентификации всегда имеет пустое значение. Тип «Заголовок запроса» определен в 7.28

Описание клиента

Описание приложения

Информация, описывающая приложение клиента. Тип «Описание приложения» определен в 7.1

URI сервера

String

Это значение указывается, только если описание конечной точки имеет URI сервера шлюза.

Это значение URI приложения из описания конечной точки, которое является URI приложения для базового сервера. Тип «Описание конечной точки» определен в 7.10

URI конечной точки

String

Сетевой адрес, который клиент использовал для доступа к сеансу конечной точки.

Часть имени хоста URI-адреса должна являться одним из имен хоста для приложения, которые указаны в сертификате экземпляра приложения сервера (см. 7.2). Сервер должен вызвать событие аудита типа «Событие несоответствие URL», если URI-адрес не соответствует имени хоста сервера. Тип события аудита типа «Событие несоответствие» определен в ГОСТ Р 71810.

Сервер использует эту информацию для диагностики и определения набора описания конечных точек, возвращаемых в ответе

Имя сессии

String

Удобочитаемая строка, идентифицирующая сеанс. Сервер делает имя и идентификатор сеанса видимыми в своем адресном пространстве для диагностических целей. Клиент должен предоставить имя, уникальное для экземпляра клиента.

Если этот параметр не указан, сервер должен присвоить значение

Случайное число клиента

ByteString

Случайное число, которое нельзя использовать ни в каких других запросах. Этот номер должен иметь минимальную длину 32 байта. Профили могут увеличивать необходимую длину. Сервер должен использовать это значение, чтобы в ответе подтвердить наличие сертификата экземпляра приложения

Сертификат клиента

Сертификат экземпляра приложения

Сертификат экземпляра приложения, выданный клиенту.

Тип «Сертификат экземпляра приложения» определен в 7.2.

Если для политики безопасности URI установлено значение «ОТСУТСТВИЕ», сервер должен игнорировать сертификат экземпляра приложения

Запрошенное время ожидания сеанса

Продолжительность

Запрошенное максимальное количество миллисекунд, в течение которых сеанс должен оставаться открытым без активности. Если клиенту не удается оформить запрос сервисы в течение этого интервала, сервер автоматически завершает работу сеанса клиента

Максимальный размер сообщения ответа

Целое число без знака 32

Максимальный размер тела (текста) любого сообщения ответа в байтах. Сервер должен вернуть ошибку сервиса «Некорректно_Ответ слишком велик» если ответное сообщение превышает этот предел.

Нулевое значение указывает, что этот параметр не используется.

Транспортные протоколы в ГОСТ Р 71811 могут предполагать минимальные размеры сообщений.

Дополнительные сведения об использовании этого параметра см. в 5.3

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа (тип «Заголовок ответа» см. в 7.29)

27

ГОСТ Р 71809—2024

Продолжение таблицы 15

Имя

Тип

Описание

Идентификатор сеанса

Идентификатор узла

Уникальный идентификатор узла, присвоенный сервером сеансу. Этот идентификатор используется для доступа к диагностической информации для сеанса в адресном пространстве сервера. Он также используется в журналах аудита и любых событиях, которые сообщают информацию, относящуюся к сеансу. Диагностическая информация сеанса описана ГОСТ Р 71810. Журналы аудита и связанные с ними события описаны в 6.5

Токен аутентификации

Сеанс токена аутентификации

Уникальный идентификатор, присвоенный сервером для сеанса. Этот идентификатор должен передаваться в заголовок запроса каждого запроса и использоваться с защищенным каналом, чтобы определить, имеет ли клиент доступ к сеансу. Этот идентификатор не может быть использован повторно таким образом, чтобы клиент или сервер могли спутать их с предыдущим или существующим сеансом.

Тип «Сеанс токена аутентификации» определен в 7.31

Пересмотренное время ожидания клиента

Продолжительность

Фактическое максимальное количество миллисекунд, в течение которых сеанс должен оставаться открытым без активности. Сервер должен попытаться удовлетворить запрос клиента для этого параметра, но может согласовать это значение, чтобы удовлетворить свои собственные ограничения

Случайный код сервера

ByteString

Случайное число, которое нельзя использовать ни в каких других запросах. Число должно иметь минимальную длину 32 байта. Клиент должен использовать это значение для подтверждения владения своим сертификатом экземпляра приложения в запросе активации сеанса.

Данное значение допускается применять для подтверждения владения токеном идентификации пользователя, указанным в запросе активации сеанса

Сертификат сервера

Сертификат экземпляра приложения

Сертификат экземпляра приложения, выданный сервером.

Сервер должен доказать владение, используя секретный ключ для подписи случайного кода, предоставленного клиентом в запросе. Клиент должен убедиться, что этот сертификат совпадает с тем, который он использовал для создания защищенного канала.

Тип «Сертификат экземпляра приложения» определен в 7.2.

Если для политики безопасности URI указано «ОТСУТСТВИЕ» и ни одна из политик токенов пользователя не требует шифрования, клиент должен игнорировать сертификат экземпляра приложения

Конечные точки сервера

Описание конечной точки

Сервер должен вернуть набор описания конечных точек, доступных для URI-сервера, указанного в запросе. Тип «Описание конечной точки» определен в 7.10. Если клиент использовал конечные точки обнаружения для получения их описания, он должен сверить этот список со списком из конечных точек обнаружения.

Рекомендуется, чтобы согласно настоящему стандарту сервер включал в себя параметры: URI приложения, URL конечной точки, режим безопасности, URI политики безопасности, токен идентификации пользователей, URI профиля переноса и уровень безопасности с другими параметрами, установленными на ноль. Клиент должен подтверждать только рекомендуемые параметры

Сертификаты программного обеспечения сервера

Подписанный сертификат программного обеспечения

Данный параметр является нерекомендуемым, и массив должен быть пустым. Сертификаты программного обеспечения предоставляются в адресное пространство сервера, как определено в ГОСТ Р 71810

28

Окончание таблицы 15

ГОСТ Р 71809—2024

Имя

Тип

Описание

Подпись сервера

Дата подписи

Подпись, созданная с помощью секретного ключа, связанного с сертификатом сервера. Данный параметр вычисляется добавлением случайного числа клиента к сертификату клиента и подписания полученной последовательности байтов. Если сертификат клиента содержит цепочку, то расчет подписи должен проводиться только на листе сертификата. Для обратной совместимости клиент должен проверить подпись с полной цепочкой, если проверка с листовым сертификатом не удалась. Алгоритм подписи должен являться асимметричным алгоритмом подписи, указанным в политике безопасности для конечной точки. Тип «Даты подписи» определен в 7.32

Максимальный запрос

Целое число без знака 32

Максимальный размер тела любого сообщения запроса в байтах

Размер сообщения

Endpoint Description

Стек связи клиента должен возвращать приложению ошибку (с ошибкой «запрос слишком велик», если сообщение запроса превышает этот предел). Нулевое значение указывает, что этот параметр не используется. Минимальные значения или значения по умолчанию для конкретных протоколов — согласно ГОСТ Р 71811.

В 5.3 приведена дополнительная информация об использовании этого параметра

5.6.2.3 Результаты службы

В таблице 16 определены результаты службы, специфичные для этой службы, общие коды состояния представлены в таблице 177.

Таблица 16 — Результирующие коды службы создания сессии

Символический идентификатор

Описание

Некорректно_ Идентификатор

ЗащищенногоКанала

Недействителен

Описание этого результирующего кода см. в таблице 177

Некорректно_СлучайныйКод

Недействителен

Описание этого результирующего кода см. в таблице 177.

Сервер должен проверить минимальную длину случайного кода клиента и вернуть этот статус, если длина является менее 32 байтов. Проверка на дублированный случайный код не является обязательной и требует доступа к случайному коду, используемому для создания защищенного канала

Некорректно_ ПроверкаБезопасности НеУдалась

Описание этого результирующего кода см. в таблице 177

Некорректно_ СрокДействияСертификата

Недействителен

Описание этого результирующего кода см. в таблице 177

Некорректно_ ВремяИздателяСертификата

Недействительно

Описание этого результирующего кода см. в таблице 177

Некорректно_СертификатИмениХоста Недействителен

Описание этого результирующего кода см. в таблице 177

Некорректно_11К1Сертификата

Недействительный

Описание этого результирующего кода см. в таблице 177

Некорректно_ Использование СертификатаНеРазрешено

Описание этого результирующего кода см. в таблице 177

Некорректно_Использование

ИздателяСертификата

НеРазрешено

Описание этого результирующего кода см. в таблице 177

29

ГОСТ Р 71809—2024

Окончание таблицы 16

Символический идентификатор

Описание

Некорректно_Сертификат

Ненадежный

Описание этого результирующего кода см. в таблице 177

Некорректно_Отзыв

СертификатаНеизвестен

Описание этого результирующего кода см. в таблице 177

Некорректно_Отзыв ИздателяСертификата Неизвестен

Описание этого результирующего кода см. в таблице 177

Некорректно_СертификатОтозван

Описание этого результирующего кода см. в таблице 177

Некорректно_Издатель

СертификатаОтозван

Описание этого результирующего кода см. в таблице 177

Некорректно_СлишкомМногоСеансов

Сервер достиг максимального количества сессий

Некорректно_иК1Сервера

Недействителен

Описание этого результирующего кода см. в таблице 177

5.6.3 Активация сессии

5.6.3.1 Описание

Служба активации сессии используется клиентом для указания идентификации пользователя, связанного с сессией. Этот запрос службы должен быть отправлен клиентом до того, как он отправит любой запрос службы, кроме закрытия сессии после создания сессии. В противном случае сервер закроет сессию.

Когда клиент вызывает службу активации сессии, он должен доказать, что это то же приложение, которое вызвало службу создания сессии. Клиент создает подпись с закрытым ключом, связанным с сертификатом клиента, указанным в запросе создания сессии. Данная подпись создается путем добавления последнего случайного кода сервера, предоставленного сервером, к сертификату сервера и вычислениям подписи полученной последовательности байтов.

Случайный код сервера нельзя использовать повторно. По этой причине сервер возвращает новый случайный код сервера каждый раз, когда вызывается служба активации сессии.

Когда служба активации сессии вызывается в первый раз, сервер должен отклонить запрос, если защищенный канал не совпадает с тем, который связан с запросом создания сессии. Последующие вызовы активации сессии могут быть связаны с разными защищенными каналами. В этом случае сервер должен проверить, что сертификат, который клиент использовал для создания нового защищенного канала, такой же, как и сертификат, использованный для создания изначального защищенного канала. Кроме того, сервер должен проверить, что клиент предоставил токен идентификации пользователя, идентичный токену, который в настоящее время связан с сессией. Как только сервер принимает новый защищенный канал, он должен отклонять запросы, отправленные через старый защищенный канал.

Служба активации сессии используется для связывания личности пользователя с сессией. Когда клиент предоставляет идентификационные данные пользователя, он должен предоставить доказательство того, что он уполномочен использовать данную идентификацию пользователя. Точный механизм, используемый для предоставления этого доказательства, зависит от типа токена идентификации пользователя. Если токеном является токен идентификации имени пользователя, то доказательством является пароль, включенный в токен. Если токеном является токен идентификации Х509, тогда доказательством является подпись, созданная с помощью закрытого ключа, связанного с сертификатом. Данные для подписи создаются путем добавления последнего случайного кода сервера к сертификату сервера, указанному в ответе создания сессии. Если токен содержит секрет, его следует зашифровать с помощью открытого ключа от сертификата сервера.

Серверы должны принимать надлежащие меры для защиты от атак на токены идентификации пользователя. Такая атака предполагается, если происходят повторные попытки подключения с недопустимыми токенами идентификации пользователя. Один из вариантов — заблокировать клиента ОРС UA на определенный период времени, если проверка токена идентификации пользователя не удалась несколько раз. Клиент ОРС UA определяется либо IP-адресом для незащищенных соединений, либо URI экземпляра приложения для защищенных соединений. Другой вариант — отложить ответ службы

30

ГОСТ Р 71809—2024

в случае сбоя проверки идентификации пользователя. Это время задержки может быть увеличено при повторных отказах. Случайные отказы не должны задерживать соединения с действительными токенами.

Клиенты могут изменить идентификацию пользователя, связанного с сессией, вызвав службу активации сессии. Сервер проверяет подписи, предоставленные с запросом, а затем проверяет подлинность нового пользователя. Если ошибок не происходит, сервер заменяет идентификатор пользователя для сессии. Изменение идентификатора пользователя для сессии может вызвать прерывания в активных подписках, потому что серверу может потребоваться разорвать соединения с базовой системой и восстановить их, используя новые учетные данные.

Когда клиент предоставляет список идентификаторов языковых стандартов в запросе, каждый идентификатор языкового стандарта должен содержать языковой компонент. Допускается дополнительно вводить компонент <страна/регион>. Когда сервер возвращает локализованный текст в контексте сессии, он может возвращать как язык, так и страну/регион или только язык в качестве идентификатора языковых стандартов по умолчанию.

Когда сервер возвращает строку клиенту, он сначала определяет, есть ли для него доступные переводы. Если есть, то сервер возвращает строку, чей идентификатор языкового стандарта точно соответствует идентификатору языкового стандарта с наивысшим приоритетом в списке, предоставленном клиентом.

Если нет точных совпадений, то сервер игнорирует компонент <страна/регион> идентификатора языкового стандарта и возвращает строку, компонент <язык> которой соответствует компоненту <язык> идентификатора языкового стандарта с наивысшим приоритетом в предоставленном клиентом списке.

Если совпадений по-прежнему нет, сервер возвращает имеющуюся у него строку с идентификатором языкового стандарта.

Ожидается, что сервер шлюза будет олицетворять пользователя, предоставленного клиентом, когда он подключается к базовому серверу. Это означает, что он должен повторно вычислить подписи токена идентификации пользователя, используя случайный код, предоставленный базовым сервером. Сервер шлюза должен использовать свои собственные учетные данные, если токен идентификации пользователя, предоставленный клиентом, не поддерживает работу от имени другого пользователя.

5.6.3.2 Параметры

Параметры службы определены в таблице 17.

Таблица 17 — Описание службы активации сессии

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса.

Тип «Заголовок запроса» определен в 7.28

Подпись клиента

Дата подписи

Это подпись, созданная с помощью секретного ключа, связанного с сертификатом клиента. Этот параметр рассчитывается путем добавления случайного кода сервера к сертификату сервера и подписания полученной последовательности байтов.

Если сертификат сервера содержит цепочку, алгоритм подписи должен являться асимметричным алгоритмом подписи, указанным в политике безопасности для конечной точки, см. ГОСТ Р 71807. Тип «дата подписи» определен в 7.32

Сертификаты программного обеспечения клиента

Подписанный сертификат программного обеспечения

Зарезервировано для использования в будущем.

Тип «Подписанный сертификат программного обеспечения» определен в 7.33

31

ГОСТ Р 71809—2024

Окончание таблицы 17

Имя

Тип

Описание

Идентификаторы языка

Идентификатор языка

Список идентификаторов языка в порядке приоритета для локализованных строк. Первый идентификатор языка в списке имеет наивысший приоритет. Если сервер возвращает клиенту локализованную строку, сервер должен вернуть перевод с наивысшим приоритетом, который он может. Если у него нет перевода ни для одного из языков, указанных в этом списке, то он должен вернуть имеющееся у него значение строки и включить идентификатор языка в строку. Для получения более подробной информации об идентификаторах языков см. ГОСТ Р 71808. Если клиент не может указать хотя бы один идентификатор языка, сервер должен использовать любой, который у него есть. Этот параметр указывается только при первом вызове службы активации сеанса во время одного применения сеанса. Если это не указано, сервер продолжит использовать текущие идентификаторы языка для сеанса

Токен идентификации пользователя

Расширенный параметр токена идентификации пользователя

Учетные данные пользователя, связанного с приложением клиента. Сервер использует эти учетные данные, чтобы определить, следует ли разрешить клиенту активировать сеанс и к каким ресурсам клиент имеет доступ во время этого сеанса.

Токен идентификации пользователя — это расширенный тип параметра, определенный в 7.36.

Описание конечной точки определяет, какой токен идентификации пользователей сервер должен принять.

Нулевой или пустой токен пользователя всегда следует интерпретировать как анонимный

Подпись токена пользователя

Дата подписи

Если клиент указал токен идентификации пользователя, который поддерживает цифровые подписи, он должен создать подпись и передать ее в качестве этого параметра. В противном случае параметр равен нулю.

Алгоритм подписи зависит от типа токена идентификации. Тип даты подписи определен в 7.32

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа (определение заголовок ответа см. в 7.29)

Случайный код сервера

Строка байтов

Случайное число, которое нельзя использовать ни в каких других запросах.

Это число должно иметь минимальную длину 32 байта.

Клиент должен использовать это значение, чтобы доказать, что он владеет своим сертификатом экземпляра приложения при следующем вызове запроса активации сеанса

Результаты

Код успешного завершения

Список результатов проверки сертификатов программного обеспечения (см. 7.34 для определения кода состояния)

Диагностическая информация

Диагностическая информация

Список диагностической информации, связанной с ошибками проверки сертификата программного обеспечения (определение диагностической информации см. в 7.8). Этот список пуст, если диагностическая информация не была запрошена в заголовке запроса или если диагностическая информация не была обнаружена при обработке запроса

5.6.3.3 Результаты службы

В таблице 18 представлены результаты службы, характерные для конкретной службы. Общие коды состояния представлены в таблице 177.

32

Таблица 18 — Результирующие коды службы активации сессии

ГОСТ Р 71809—2024

Символический идентификатор

Описание

Некорректно_

Идентификационный

ТокенНедействителен

Описание этого результирующего кода см. в таблице 177

Некорректно_ Идентификационный ТокенОтклонен

Описание этого результирующего кода см. в таблице 177

Некорректно_Доступ

ПользователяЗапрещен

Описание этого результирующего кода см. в таблице 177

Некорректно_Подпись

ПриложенияНедействительна

Подпись, предоставленная приложением клиента, отсутствует или недействительна

Некорректно_Подпись

ПользователяНедействительна

Подпись токена пользователя отсутствует или недействительна

Некорректно_Отсутствие

ДействительныхСертификатов

Клиент не предоставил хотя бы один действительный сертификат программного обеспечения, соответствующий требованиям профиля для сервера

Некорректно_Изменение

ИдентификатораНеПоддерживается

Сервер не поддерживает изменение идентификатора пользователя, присвоенного сеансу

5.6.4 Закрытие сессии

5.6.4.1 Описание

Служба закрытие сессии используется для прекращения сессии. При получении запроса «закрыть сессию» сервер выполняет следующие действия:

а) прекращает прием запросов на сессию. Все последующие запросы на сессию отклоняются;

б) возвращает отрицательные ответы с кода состояния «некорректно_сессия закрыта» на все запросы, которые в настоящее время не выполнены, для обеспечения своевременного возврата ответа «закрытьсессию». Клиентам настоятельно рекомендуется дождаться завершения всех невыполненных запросов, прежде чем отправлять запрос «закрытьсессию»;

с) удаляет запись для клиента в его переменной массива данных диагностики сессии.

Когда служба закрытия сессии вызывается до того, как сессия успешно активирована, сервер должен отклонить запрос, если защищенный канал не совпадает с тем, который был связан с запросом создания сессии.

5.6.4.2 Параметры

Параметры службы определены в таблице 19.

Таблица 19 — Описание службы закрытия сессии

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса (определение «Заголовок запроса» см. в 7.28)

Удаление подписок

Логическое значение

Если значение — истина, сервер удаляет все подписки, связанные с сеансом. Если значение — ложь, сервер сохраняет подписки, связанные с сеансом, до тех пор, пока они не истекут, исходя из их собственного срока действия

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа (тип «Заголовок ответа» см. в 7.29)

33

ГОСТ Р 71809—2024

5.6.4.3 Результаты службы

В таблице 20 определены результаты, специфичные для этой службы. Общие коды состояния представлены в таблице 177.

Таблица 20 — Результирующие коды службы закрытия сессии

Символический идентификатор

Описание

Некорректно_ИдентификаторСеанса Недействителен

Описание этого результирующего кода см. в таблице 177

5.6.5 Отмена

5.6.5.1 Описание

Данная служба используется для отмены невыполненных запросов службы. Успешно отмененные запросы службы должны отвечать «Некорректно_ЗапросОтмененКлиентом».

5.6.5.2 Параметры

Параметры службы отмены определены в таблице 21.

Таблица 21—Параметры службы отмены

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса (тип «Заголовок запроса» см. в 7.28)

Обработка запроса

Идентификатор целого числа

Обработка запроса назначена одному или нескольким запросам, которые необходимо отменить. Все неотправленные запросы, совпадающие с обработкой запроса, будут отменены

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа (тип «Заголовок ответа» см. в 7.29)

Отменить счет

Целое число без знака 32

Количество отмененных запросов

5.6.5.3 Результаты службы

Общие коды состояния определены в таблице 177.

5.7 Набор служб управления узлами

5.7.1 Обзор

Настоящий набор служб определяет службы для добавления и удаления узлов адресного пространства и ссылок между ними. Все добавленные узлы продолжают существовать в адресном пространстве, даже если клиент, создавший их, отключается от сервера.

5.7.2 Добавление узлов

5.7.2.1 Описание

Данная служба используется для добавления одного или нескольких узлов в иерархию адресного пространства. Используя эту службу, каждый узел добавляется как целевой узел иерархической ссылки, чтобы гарантировать, что адресное пространство полностью подключено и что узел добавлен как дочерний в иерархии адресного пространства (см. ГОСТ Р 71808).

Когда сервер создает экземпляр типа определения узла, он должен создать ту же иерархию узлов под новым объектом или переменной в зависимости от правила моделирования каждой декларации экземпляра. Должны быть созданы все узлы с правилом моделирования «обязательно» или должна быть сделана ссылка на существующий узел, соответствующий декларации экземпляра. Создание узлов с другими правилами моделирования зависит от конкретного сервера.

5.7.2.2 Параметры

Параметры службы определены в таблице 22.

34

Таблица 22 — Описание службы добавления узлов

ГОСТ Р 71809—2024

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса (тип «Заголовок запроса» см. в 7.28)

Узлы для добавления

Элемент Добавление узлов

Список узлов для добавления. Все узлы добавляются как ссылка на существующий узел с использованием иерархического ссылочного типа. Со следующими элементами эта структура представляется с отступом

Идентификатор родительского узла

Расширенный идентификатор узла

Расширенный идентификатор узла родительского узла для ссылки.

Расширенный идентификатор узла определен в 7.11

Идентификатор ссылочного типа

Идентификатор узла

Идентификатор узла иерархического ссылочного типа для использования в качестве ссылки от родительского узла к новому узлу

Запрошенный новый идентификатор узла

Расширенный идентификатор узла

Для добавления расширенный идентификатор узла запрашивается клиентом. Индекс сервера в таком идентификаторе узла должен быть 0. Если сервер не может использовать этот идентификатор узла, он отклоняет этот узел и возвращает код ошибки. Если клиент не запрашивает идентификатор узла, то он устанавливает значение этого параметра равным пустому расширенному идентификатору узла. Если добавляемый узел ссылочного типа, его идентификатор узла должен быть числовым. Для описания идентификатора узлов см. ГОСТ Р 71808

Поисковое имя

Квалифицированное имя

Поисковое имя добавляемого узла

Класс узла

Класс узла

Класс узла добавляемого узла

Атрибуты узла

Расширяемый параметр Атрибуты узла

Атрибуты, относящиеся к классу узла. Тип параметра атрибуты узла — это расширяемый тип параметра, указанный в 7.19.

Клиенту разрешено опускать значения для некоторых или всех атрибутов. Если значение атрибута равно нулю, сервер должен использовать значения по умолчанию из определения типа узла. Если определение типа узла не было предоставлено, сервер должен выбрать подходящее значение по умолчанию.

Сервер может по-прежнему добавлять дополнительный атрибут к узлу с соответствующим значением по умолчанию, даже даже если клиент не указывает значение.

Определение типа

Расширенный идентификатор узла

Идентификатор узла определения типа узла для добавления узла. Этот параметр должен быть нулевым для всех классов узла, кроме объекта и переменной, в этом случае он должен быть предоставлен

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа (определение «Заголовок ответа» см. в 7.29)

Результаты

Добавить результаты узла

Список результатов для добавляемых узлов. Размер и порядок списка соответствуют размеру и порядку параметра запроса узлы для добавления. Эта структура определяется в соответствии со следующими элементами с отступом

Код состояния

Код состояния

Код состояния для добавляемого узла (определение «Код состояния» см. 7.34)

Идентификатор добавленного узла

Идентификатор узла

Сервер назначил идентификатор узла добавленного узла. Нулевой идентификатор узла, если операция не удалась

35

ГОСТ Р 71809—2024

Окончание таблицы 22

Имя

Тип

Описание

Диагностическая информация

Диагностическая информация

Список диагностической информации для добавляемых узлов (определение для диагностической информации см. в 7.8). Размер и порядок списка соответствуют размеру и порядку параметра запроса узла для добавления. Этот список пуст, если диагностическая информация не была запрошена в заголовке запроса или если диагностическая информация не была обнаружена при обработке запроса

5.7.2.3 Результаты службы

В таблице 23 определены результаты службы, специфичные для этой службы. Общие коды состояния определены в таблице 177.

Таблица 23 — Результирующие коды службы добавления узлов

Символический идентификатор

Описание

Некорректно_НечегоДелать

Описание этого результирующего кода см. в таблице 177

Некорректно_СлишкомМногоОпераций

Описание этого результирующего кода см. в таблице 177

5.7.2.4 Коды состояния

В таблице 24 определены значения параметра кода состояния, специфичные для данной службы. Общие коды состояния определены в таблице 178.

Таблица 24 — Коды результатов уровня операций добавления узлов

Символический идентификатор

Описание

Некорректно_Идентификатор

РодительскогоУзла Недействителен

Идентификатор родительского узла не указывает на действительный узел

Некорректно_Иденификатор

ТипаУказателя Недействителен

Описание этого результирующего кода см. в таблице 178

Некорректно_СсылкаНеРазрешена

Ссылка не может быть создана, поскольку она нарушает ограничения, налагаемые моделью данных

Некорректно_ИдентификаторУзлаОтклонен

Запрошенный идентификатор узла был отклонен либо потому, что он был недопустимым, либо потому, что сервер не позволяет клиенту указывать идентификаторы узлов

Некорректно_ИдентификаторУзлаСуществует

Запрошенный идентификатор узла уже используется другим узлом

Некорректно_КлассУзлаНедействителен

Описание этого результирующего кода см. в таблице 178

Некорректно_ИмяПросмотраНедействительно

Описание этого результирующего кода см. в таблице 178

Некорректно_ИмяПросмотраДублируется

Имя просмотра не уникально среди узлов, которые имеют одинаковые отношения с родительским

Некорректно_АтрибутыУзлаНедействительны

Атрибуты узла недействительны для класса узла

Некорректно_Определение

ТипаНедействительно

Описание этого результирующего кода см. в таблице 178

Некорректно_Доступ

ПользователяЗапрещен

Описание этого результирующего кода см. в таблице 177

5.7.3 Добавление ссылок

5.7.3.1 Описание

Данная служба используется для добавления одной или нескольких ссылок на один или несколько узлов. Класс узла — это входной параметр, который используется для проверки того, что добавля-

36

ГОСТ Р 71809—2024

емая ссылка соответствует классу узла целевого узла. Этот параметр не проверяется, если ссылка ссылается на целевой узел на удаленном сервере.

Добавление новых ссылок на адресное пространство требует, чтобы сервер добавил новые идентификаторы сервера в переменную массива сервера. Поэтому удаленные серверы идентифицируются по их URI, а не по индексу массива сервера. Это позволяет серверу добавлять удаленные URI сервера к своему массиву сервера.

5.7.3.2 Параметры

Параметры службы определены в таблице 25.

Таблица 25 — Параметры службы добавления ссылок

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса (определение «Заголовок запроса» см. в 7.28)

Ссылки для добавления

Элемент добавление ссылки

Список экземпляров ссылки для добавления в узле источника. Целевой класс узла каждой ссылки в списке должен соответствовать классу узла целевого узла. Эта структура определяется в соответствии со следующими элементами с отступом

Идентификатор узла источника

Идентификатор узла

Идентификатор узла, на который будет добавлена ссылка. Исходный узел всегда должен существовать в сервере для добавления ссылки. Параметр перенаправления может иметь значение ложь, если целевой узел находится на локальном сервере, а исходный узел — на удаленном сервере

Идентификатор типа указателя

Идентификатор узла

Идентификатор узла ссылочного типа, определяющий ссылку

Перенаправление

Логическое значение

Если значение «истина», сервер создает прямую ссылку. Если значение равно «ложь», сервер создает обратную ссылку

URI целевого сервера

Строка

URI удаленного сервера. Если этот параметр не равен нулю, он переопределяет индекс сервера в целевом идентификаторе узла

Целевой идентификатор узла

Расширенный идентификатор узла

Расширенный идентификатор узла целевого узла. Тип «Расширенный идентификатор узла» определен в 7.11

Целевой класс узла

Класс узла

Класс узла целевого узла. Клиент должен указать это, поскольку целевой узел может быть недоступен непосредственно сервером

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа (определение «заголовок ответа» см. в 7.29)

Результаты

Код состояния

Список кодов состояния для добавления ссылок (см. 7.34 для определения кода состояния). Размер и порядок списка соответствуют размеру и порядку параметра запроса добавление ссылки

Диагностическая информация []

Диагностическая информация

Список диагностической информации для добавления ссылок (определение «Диагностическая информация» см. 7.8). Размер и порядок списка соответствуют размеру и порядку параметра запроса добавление ссылки. Этот список пуст, если диагностическая информация не была запрошена в заголовке запроса или если диагностическая информация не обнаружена при обработке запроса

5.7.3.3 Результаты службы

В таблице 26 определены результирующие коды, специфичные для этой службы. Общие коды состояния определены в таблице 177.

37

ГОСТ Р 71809—2024

Таблица 26 — Результирующие коды службы добавления ссылок

Символический идентификатор

Описание

Некорректно_НечегоДелать

Описание этого результирующего кода см. в таблице 177

Некорректно_СлишкомМногоОпераций

Описание этого результирующего кода см. в таблице 177

5.7.3.4 Коды состояния

В таблице 27 определены значения результирующих кодов, характерные для данной службы. Общие коды состояния определены в таблице 178.

Таблица 27 — Результирующие коды рабочего уровня добавления ссылок

Символический идентификатор

Описание

Некорректно_Идентификатор

УзлаИсточникаНедействителен

Описание этого результирующего кода см. в таблице 178

Некорректно_Идентификатор

СсылочногоТипаНедействителен

Описание этого результирующего кода см. в таблице 178

Некорректно_11Р1Сервера

Недействителен

Описание этого результирующего кода см. в таблице 177

Некорректно_Идентификатор

ЦелевогоУзлаНедействителен

Описание этого результирующего кода см. в таблице 178

Некорректно_КлассУзла

Недействителен

Описание этого результирующего кода см. в таблице 178

Некорректно_СсылкаНеРазрешена

Ссылка не может быть создана, потому что она нарушает ограничения, наложенные моделью данных на этом сервере

Некорректно_СсылкаТолькоНа МестномУровне

Тип ссылки недействителен для ссылки на удаленный сервер

Некорректно_Доступ

ПользователяЗапрещен

Описание этого результирующего кода см. в таблице 177

Некорректно_Повторная

СсылкаНеДопускается

Тип ссылки между узлами уже определен

Некорректно_Недействительная Самоссылка

Сервер не разрешает этот тип самоссылки на этом узле

5.7.4 Удаление узлов

5.7.4.1 Описание

Данная служба используется для удаления одного или нескольких узлов из адресного пространства.

Когда какой-либо из узлов, удаленных при вызове этой службы, является целевым узлом ссылки, то эти ссылки остаются неразрешенными на основе параметра удаления целевых ссылок.

Когда отслеживается какой-либо из узлов, удаленных при вызове этой службы, то клиенту мониторинга отправляется уведомление, содержащее код состояния «некорректно_идентификаторузлане-известен», указывающее, что узел был удален.

5.7.4.2 Параметры

Параметры службы определены в таблице 28.

38

Таблица 28 — Параметры службы удаления узлов

ГОСТ Р 71809—2024

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса (определение «Заголовок запроса» см. в 7.28)

Узлы для удаления 0

Элемент удаления узлов

Список узлов для удаления. Эта структура определяется в соответствии со следующими элементами с отступом

Идентификатор узла

Идентификатор узла

Идентификатор узла удаляемого узла

Удаление целевых ссылок

Логическое значение

Параметр логическое значение со следующими значениями. Истина — удалить ссылки в целевых узлах, которые ссылаются на удаляемый узел.

Ложь — далить только те ссылки, для которых удаляемый узел является источником. Сервер не может гарантировать, что он сможет удалить все ссылки из целевых узлов, если этот параметр «истина»

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа (определение «Заголовок ответа» см. в 7.29)

Результаты []

Код состояния

Список кодов состояния для удаляемых узлов (см. 7.34 для определения кода состояния). Размер и порядок списка соответствуют размеру и порядку списка параметра запроса узлы для удаления

Диагностическая информация

Диагностическая информация

Список диагностической информации для узлов, подлежащих удалению (определение «диагностическая информация» см. в 7.8). Размер и порядок списка соответствуют размеру и порядку параметра запроса узла для удаления. Этот список пуст, если диагностическая информация не была запрошена в заголовке запроса или если диагностическая информация не обнаружена при обработке запроса

5.7.4.3 Результаты службы

В таблице 29 определены результаты службы, специфичные для этой службы. Общие коды состояния определены в таблице 177.

Таблица 29 — Результирующие коды службы удаления узлов

Символический идентификатор

Описание

Некорректно_НечегоДелать

Описание этого результирующего кода см. в таблице 177

Некорректно_СлишкомМного Операций

Описание этого результирующего кода см. в таблице 177

5.7.4.4 Коды состояния

В таблице 30 определены значения параметра результатов, относящиеся к данной службе. Общие коды состояния определены в таблице 178.

Таблица 30 — Результирующие коды рабочего уровня удаления узлов

Символический идентификатор

Описание

Некорректно_ИдентификаторУзла Недействителен

Описание этого результирующего кода см. в таблице 178

Некорректно_ИдентификаторУзла Неизвестен

Описание этого результирующего кода см. в таблице 178

39

ГОСТ Р 71809—2024

Окончание таблицы 30

Символический идентификатор

Описание

Некорректно_ДоступПользователя

Запрещен

Описание этого результирующего кода см. в таблице 177

Некорректно_НетПравНаУдаление

Описание этого результирующего кода см. в таблице 178

Неуверенно_СсылкаНеУдалена

Сервер не смог удалить все целевые ссылки

5.7.5 Удаление ссылок

5.7.5.1 Описание

Эта служба используется для удаления одной или нескольких ссылок на узел.

Когда любая из ссылок, удаленных при вызове этой службы, содержится в представлении, тогда свойство версии представления обновляется, если это свойство поддерживается.

Описание службы определено в таблице 31.

Таблица 31 — Параметры службы удаления ссылок

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса (определение заголовка запроса см. в 7.28)

Ссылки для удаления

Элемент удалить ссылки

Список ссылок для удаления. Эта структура определяется в соответствии со следующими элементами с отступом

Идентификатор узла источника

Идентификатор узла

Идентификатор узла, содержащего ссылку на удаление

Идентификатор ссылочного типа

Идентификатор узла

Идентификатор узла ссылочного типа, который определяет ссылку для удаления

Перенаправить

Логическое значение

Если значение «истина», сервер удаляет прямую ссылку. Если значение равно «ложь», сервер удаляет обратную ссылку

Целевой идентификатор узла

Расширенный идентификатор узла

Идентификатор узла целевого узла ссылки.

Если индекс сервера указывает, что целевой узел является удаленным узлом, тогда идентификатор узла должен содержать абсолютный URI имени пространства. Если целевой узел является локальным узлом, идентификатор узла должен содержать индекс имени пространства

Удалить в обоих направлениях

Логическое значение

Параметр логическое значение со следующими значениями.

Истина — удалить указанную ссылку и противоположную ссылку из целевого узла. Если целевой узел находится на удаленном сервере, ему разрешается удалить только указанную ссылку.

Ложь — удалить только указанную ссылку

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа (определение «заголовок ответа» см. в 7.29)

Результаты []

Код состояния

Список коды состояния для исключенных ссылок (см. 7.34 для определения кода состояния). Размер и порядок списка соответствуют размеру и порядку параметра запроса ссылки для удаления

Диагностическая информация []

Диагностическая информация

Список диагностической информации для удаления (см. определение «Диагностическая информация» в 7.8). Размер и порядок списка соответствуют размеру и порядку параметра запроса ссылки для удаления. Список пуст, если диагностическая информация не обнаружена при обработке запроса

40

ГОСТ Р 71809—2024

5.7.5.2 Результаты службы

В таблице 32 определены результаты службы, специфичные для этой службы. Общие коды состояния определены в таблице 177.

Таблица 32 — Результирующие коды службы удаления ссылок

Символический идентификатор

Описание

Некорректно_НечегоДелать

Описание этого результирующего кода см. в таблице 177

Некорректно_СлишкомМногоОпераций

Описание этого результирующего кода см. в таблице 177

5.7.5.3 Коды состояния

В таблице 33 определены значения параметра результатов, характерные для данной службы. Общие коды состояния определены в таблице 178.

Таблица 33 — Результирующие коды рабочего уровня удаления ссылок

Символический идентификатор

Описание

Некорректно_Идентификатор

УзлаИсточника Недействителен

Описание этого результирующего кода см. в таблице 178

Некорректно_ИдентификаторТипа

УказателяНедействителен

Описание этого результирующего кода см. в таблице 178

Некорректный_ИндексСервера Недействителен

Индекс сервера недействителен

Некорректный_Идентификатор

ЦелевогоУзлаНедействителен

Описание этого результирующего кода см. в таблице 178

Некорректный_Доступ

ПользователяЗапрещен

Описание этого результирующего кода см. в таблице 177

Некорректный_НетПравНаУдаление

Описание этого результирующего кода см. в таблице 178

5.8 Набор служб представлений

5.8.1 Обзор

Клиенты должны использовать службы просмотра набора служб представления для навигации по адресному пространству или по представлению, которое является подмножеством адресного пространства.

Представление — подмножество адресного пространства, созданное сервером. В версиях четвертой части стандартов ОРС UA допускается определение службы для создания определяемых клиентом представлений. Для описания организации представлений в адресном пространстве см. ГОСТ Р 71810.

5.8.2 Просмотр

5.8.2.1 Описание

Служба просмотра используется для обнаружения ссылок указанного узла. Поиск может быть дополнительно ограничен использованием представления. Служба поиска также поддерживает возможность примитивной фильтрации.

Если обработка всех узлов для просмотра занимает больше времени, чем указание тайм-аута клиента, то серверу допускается возвращение нулевых результатов сточкой продолжения для затронутых узлов до истечения тайм-аута.

5.8.2.2 Параметры

Параметры службы определены в таблице 34.

41

ГОСТ Р 71809—2024

Таблица 34 — Параметры службы поиска

Имя

Описание

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса (определение «заголовок запроса» см. в 7.28)

Представление

Описание представления

Описание представления для просмотра (см. 7.39 для определения описания представления). Пустое значение описания представления указывает на все адресное пространство. Использование пустого значения описания представления приводит к возврату всех ссылок узлов для просмотра. Использование любого другого представления приводит к возврату только ссылок узлов для просмотра, которые определены для этого представления

Запрошенное максимальное количество ссылок на узел

Счетчик

Указывает максимальное количество возвращаемых ссылок для каждого начального узла, указанного в запросе. Значение 0 указывает на то, что клиент не налагает ограничений (определение «счетчик» см. в 7.5)

Узлы для просмотра

Описание просмотра

Список узлов для просмотра. Эта структура определяется в соответствии со следующими элементами с отступом

Идентификатор узла

Идентификатор узла

Идентификатор узла для просмотра. Если представление предоставляется, то оно должно включать этот узел

Направление просмотра

Тип-перечисление направления просмотра

Тип-перечисление, определяющий направление последующих ссылок. Имеет следующие значения:

вперед_0 выбирает только прямые ссылки;

назад_1 выбирает только обратные ссылки;

оба_2 выберите прямые и обратные ссылки.

Возвращенные ссылки указывают направление, которому следовал сервер в параметре перенаправления описания ссылки.

Симметричные ссылки всегда считаются направленными вперед, поэтому для флажка «перенаправить» всегда устанавливается значение истина, а симметричные ссылки не возвращаются, если направление просмотра установлено на «назад_1»

Идентификатор типа указателя

Идентификатор узла

Указывает идентификатор узла ссылочного типа, на который необходимо подписаться. Возвращаются только экземпляры этого ссылочного типа или его подтипы.

Если не указано, возвращаются все ссылки, а включение подтипов игнорируется

Включение подтипов

Логическое значение

Указывает, следует ли включать в просмотр подтипы ссылочного типа. Если значение «истина», то возвращаются экземпляры идентификатора типа указателя и все его подтипы

Маска класса узла

Целое число без знака 32

Определяет класс узлов целевого узла. Возвращаются только целевые узлы с выбранными классами узлов. Классам узла присваиваются следующие флажки-признаки: 0 объект 1 переменная 2 метод 3 тип объекта 4 тип переменной 5 ссылочный тип 6 тип данных 7 представление

Если установлен ноль, возвращаются все классы узлов.

Если класс узла для удаленного узла неизвестен, маска класса узла игнорируется

42

Окончание таблицы 34

ГОСТ Р 71809—2024

Имя

Описание

Описание

Маска результата

Целое число без знака 32

Задает поля в структуре «эталонное описание», которые должны быть возвращены. Полям присваиваются следующие флажки-признаки:

0 ссылочный тип

1 перенаправить

2 класс узла

3 имя просмотра

4 отображаемое имя

5 определение типа

Тип «эталонное описание» определен в 7.25

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа (определение «заголовка ответа» см. в 7.29)

Результаты

Результат просмотра

Список результатов просмотра. Размер и порядок списка соответствуют размеру и порядку узлов для просмотра, указанных в запросе.

Тип результата просмотра определен в 7.3

Диагностическая информация

Диагностическая информация

Список диагностической информации для результатов (определение «диагностическая информация» см. в 7.8). Размер и порядок списка соответствуют размеру и порядку параметра ответа результатов. Этот список пуст, если диагностическая информация не запрашивалась в заголовке запроса или если диагностическая информация не была внесена в обработку запроса

5.8.2.3 Результаты службы

В таблице 35 определены результаты службы, специфичные для этой службы. Общие коды состояния определены в таблице 177.

Таблица 35 — Результирующие коды службы просмотра

Символический идентификатор

Описание

Некорректно_ИдентификаторПредставления Неизвестен

Описание этого результирующего кода см. в таблице 177

Некорректно_ОтметкаВремени

ПредставленияНедействительна

Описание этого результирующего кода см. в таблице 177

Некорректно_Несоответствие

ПараметровПредставленияНедействительно

Описание этого результирующего кода см. в таблице 177

Некорректно_ВерсияПредставления Недействительна

Описание этого результирующего кода см. в таблице 177

Некорректно_НечегоДелать

Описание этого результирующего кода см. в таблице 177

Некорректно_СлишкомМногоОпераций

Описание этого результирующего кода см. в таблице 177

5.8.2.4 Коды состояния

В таблице 36 определены значения параметра результатов, специфичные для этой службы. Общие коды состояния определены в таблице 178.

43

ГОСТ Р 71809—2024

Таблица 36 — Результирующие коды рабочего уровня просмотра

Символический идентификатор

Описание

Некорректно_ИдентификаторУзла Недействителен

Описание этого результирующего кода см. в таблице 178

Некорректно_ИдентификаторУзла Неизвестен

Описание этого результирующего кода см. в таблице 178

Некорректно_ИдентификаторТипа

УказателяНедействителен

Описание этого результирующего кода см. в таблице 178

Некорректно_Направление

ПросмотраНедействительно

Описание этого результирующего кода см. в таблице 178

Некорректно_УзелНеВПредставлении

Описание этого результирующего кода см. в таблице 178

Некорректно_НетТочекПродолжения

Описание этого результирующего кода см. в таблице 178

Неопределенно_ДоступныНеВсеУзлы

Результаты просмотра могут быть неполными из-за недоступности подсистемы

5.8.3 Дальнейший поиск

5.8.3.1 Описание

Данная служба используется для запроса следующего набора информации ответа о поиске или дальнейшем поиске, который слишком велик для отправки в одном ответе. «Слишком велик» в этом контексте означает, что сервер не может вернуть больший ответ или что количество возвращаемых результатов превышает максимальное количество возвращаемых результатов, которое было указано клиентом в исходном запросе поиска. Дальнейший поиск должен быть представлен на той же сессии, которая использовалась для отправки поиска или дальнейшего поиска, который продолжается.

5.8.3.2 Параметры

Параметры службы определены в таблице 37.

Таблица 37 — Параметры службы дальнейшего поиска

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса (определение «заголовок запроса» см. в 7.28)

Выпуск точек продолжения

Логическое значение

Параметр логического значения со следующими значениями.

Истина — переданные точки продолжения должны быть сброшены для освобождения ресурсов на сервере. Точки продолжения выпускаются, а массивы результатов и диагностической информация являются пустыми.

Ложь— переданные точки продолжения должны использоваться для получения следующего набора информации просмотра Клиент всегда должен использовать точку продолжения, возвращенную ответом просмотра или просмотра далее, чтобы освободить ресурсы для точки продолжения на сервере. Если клиент не желает получать следующий набор информации о просмотре, необходимо вызвать службы поиска далее с этим параметром, установленным на значении «истина»

44

Окончание таблицы 37

ГОСТ Р 71809—2024

Имя

Тип

Описание

Точки продолжения

Точка продолжения

Список определенных сервером непрозрачных значений, которые представляют точки продолжения. Значение точки продолжения было возвращено клиенту в предыдущем ответе просмотра или просмотра далее. Эти значения используются для идентификации ранее обработанного запроса «просмотр или искать далее», который продолжается, и точки в наборе результатов, с которой следует продолжить выполнение ответа «просмотр».

Клиенты могут смешивать точки продолжения из разных ответов просмотра или просмотра далее.

Тип точки продолжения описан в 7.6

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа (определение «заголовок ответа» см. в 7.29)

Результаты

Результат просмотра

Список ссылок, соответствующих критериям, указанным в исходном запросе просмотр.

Размер и порядок этого списка соответствуют размеру и порядку параметра запроса точки продолжения.

Тип результата просмотра определен в 7.3

Диагностическая информация

Диагностическая информация

Список диагностической информации для результатов (см. 7.8 для определения диагностической информации). Размер и порядок списка соответствуют размеру и порядку параметра результатов ответа. Этот список пуст, если диагностическая информация не была запрошена в заголовке запроса или если диагностическая информация не была обнаружена при обработке запроса

5.8.3.3 Результаты службы

В таблице 38 определены результаты службы, специфичные для этой службы. Общие коды состояния определены в таблице 177.

Таблица 38 — Результирующие коды службы дальнейшего поиска

Символический идентификатор

Описание

Некорректно_НечегоДелать

Описание этого результирующего кода см. в таблице 177

Некорректно_СлишкомМногоОпераций

Описание этого результирующего кода см. в таблице 177

5.8.3.4 Коды состояния

В таблице 39 определены значения параметра результатов, специфичные для этой службы. Общие коды состояния определены в таблице 178.

Таблица 39 — Результирующие коды рабочего уровня дальнейшего поиска

Символический идентификатор

Описание

Некорректно_ИдентификаторУзла Недействителен

Описание этого результирующего кода см. в таблице 178

Некорректно_ИдентификаторУзла Неизвестен

Описание этого результирующего кода см. в таблице 178

Некорректно_ИдентификаторТипа

УказателяНедействителен

Описание этого результирующего кода см. в таблице 178

45

ГОСТ Р 71809—2024

Окончание таблицы 39

Символический идентификатор

Описание

Некорректно_Направление

ПросмотраНедействительно

Описание этого результирующего кода см. в таблице 178

Некорректно_УзелНеВПредставлении

Описание этого результирующего кода см. в таблице 178

Некорректно_ТочкаПродолжения

Недействительна

Описание этого результирующего кода см. в таблице 178

5.8.4 Преобразование путей просмотра в идентификаторы узлов

5.8.4.1 Описание

Служба преобразования путей просмотра используется для запроса, чтобы сервер преобразовал один или несколько путей просмотра в идентификаторы узлов. Каждый путь просмотра состоит из начального узла и относительного пути. Указанный начальный узел определяет узел, на котором основан относительный путь. Относительный путь содержит последовательность типов ссылок и поисковых имен.

Одной из целей службы преобразования путей просмотра является разрешение программирования на основе определений типов. Поисковые имена должны быть уникальными в контексте определений типов. Допускается, что клиент может создать поисковый путь, который действителен для определения типа, и использовать этот путь для экземпляров типа.

Пример — тип объекта «котел» может иметь переменную «датчик температуры». В качестве декларации экземпляра графический элемент, запрограммированный на «котел», требует отображения значения «теплового датчика». Если графический элемент будет вызываться на «котел1», тогда для вызова экземпляра «котел» необходимо вызвать службу преобразования путей просмотра, указав идентификатор узла «котел1» в качестве начального узла и поисковое имя «датчик температуры» в качестве поискового пути. Служба вернет идентификатор узла «теплового датчика» «котла1», и графический элемент сможет подписаться на его атрибут значения.

Одной из основных целей службы преобразования путей просмотра является поддержка программирования с учетом определений типов, идентификаторов узлов на основе определения типа начального узла, который возвращается как первый идентификатор узла в списке. Если у узла есть несколько целей с одним и тем же поисковым именем, сервер должен вернуть список идентификаторов узлов.

5.8.4.2 Параметры

В таблице 40 определены параметры для службы.

Таблица 40 — Параметры службы преобразования путей просмотра в идентификаторы узлов

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса (определение «заголовок запроса» см. в 7.28)

Пути просмотра

Путь просмотра

Список путей просмотра, для которых запрашиваются идентификаторы узла. Эта структура определяется в соответствии со следующими элементами с отступом

Начальный узел

Идентификатор узла

Идентификатор узла начального узла для пути просмотра

Относительный путь

Относительный путь

Путь, по которому следует идти от начального узла

В последнем элементе относительного пути всегда должно быть указано имя цели. Это еще больше ограничивает определение типа относительный путь. Сервер должен вернуть «Некорректно_ИмяПросмотра-Недействительно», если имя цели отсутствует.

Структура относительного пути определена в 7.26

46

Окончание таблицы 40

ГОСТ Р 71809—2024

Имя

Тип

Описание

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа (определение «заголовок ответа» см. в 7.29)

Результаты

Результат пути просмотра

Список результатов для списка путей просмотра. Размер и порядок списка соответствуют размеру и порядку параметра запроса пути просмотра. Эта структура определяется в соответствии со следующими элементами с отступом

Код состояния

Код состояния

Код состояния для пути просмотра (см. 7.34 для определения кода состояния)

Цели

Цель пути просмотра

Список целей для относительного пути от начального узла. Эта структура определяется в соответствии со следующими элементами с отступом.

Сервер может встретить ссылку на узел на другом сервере, по которой он не может следовать во время обработки относительного пути. Если это происходит, сервер возвращает идентификатор узла внешнего узла и устанавливает параметр оставшийся индекс пути, чтобы указать, какие элементы относительного пути еще необходимо обработать. Для завершения операции клиент должен подключиться к другому серверу и снова вызвать эту службу, используя целевой объект как начальный узел и необработанные элементы как относительный путь

Идентификатор цели

Расширенный идентификатор узла

Идентификатор для цели относительного пути

Оставшийся индекс пути

Индекс

Индекс первого необработанного элемента в относительном пути.

Это значение должно быть равно максимальному значению типа данных «индекс», если все элементы были обработаны (см. 7.13 для определения «индекс»)

Диагностическая информация

Диагностическая информация

Список диагностической информации для списка путей просмотра (определение «диагностическая информация» см. в 7.8). Размер и порядок списка соответствуют размеру и порядку параметра запроса пути просмотра. Этот список пуст, если диагностическая информация не была запрошена в заголовке запроса или если диагностическая информация не была обнаружена при обработке запроса

5.8.4.3 Результаты службы

В таблице 41 определены результаты службы, специфичные для этой службы. Общие коды состояния определены в 7.34.

Таблица 41 — Результирующие коды службы преобразования путей просмотра в идентификаторы узлов

Символический идентификатор

Описание

Некорректно_НечегоДелать

Описание этого результирующего кода см. в таблице 177

Некорректно_СлишкомМногоОпераций

Описание этого результирующего кода см. в таблице 177

5.8.4.4 Коды состояния

В таблице 42 определены значения для рабочего уровня параметров кодов состояния, специфичные для данной службы. Общие коды состояния определены в таблице 178.

47

ГОСТ Р 71809—2024

Таблица 42 — Результирующие коды рабочего уровня преобразования путей просмотра в идентификаторы узлов

Символический идентификатор

Описание

Некорректно_Идентификатор

УзлаНедействителен

Описание этого результирующего кода см. в таблице 178

Некорректно_Идентификатор

УзлаНеизвестен

Описание этого результирующего кода см. в таблице 178

Некорректно_НечегоДелать

Описание этого результирующего кода см. в таблице 177. Данный код указывает на то, что относительный путь содержал пустой список

Некорректно_ИмяПросмотра

Недействительно

Описание этого результирующего кода см. в таблице 178. Данный код указывает на то, что имя цели отсутствовало в относительном пути

Неопределенно_СсылкаВнеСервера

Элемент пути имеет цели, которые находятся на другом сервере

Некорректно_Слишком

МногоСоответствий

Запрошенная операция имеет слишком много совпадений для возврата. Пользователи должны использовать запросы для больших наборов результатов. Серверы должны разрешить не менее 10 совпадений, прежде чем возвращать этот код ошибки

Некорректно_Слишком

СложныйЗапрос

Запрошенная операция требует слишком много ресурсов на сервере

Некорректно_НетСовпадений

Запрошенный относительный путь не может быть разрешен для цели, чтобы вернуться

5.8.5 Регистрация узлов

5.8.5.1 Описание

Допускается, что сервер не имеет прямого доступа к информации, которой он управляет. Если переменные или службы находятся в базовых системах, где требуются дополнительные усилия для установления соединения с этими системами, применяется служба регистрации узлов. Регистрация узлов, к которым обращаются клиенты (например, для записи, вызова), позволяет серверам настраивать необходимые атрибуты, определяющие эффективность операции доступа. Меры по оптимизации производительности при использовании зарегистрированных идентификаторов зависят от поставщика. Зарегистрированные идентификаторы узлов действительны только в течение текущей сессии. Для освобождения ресурсов клиенты должны отменять регистрацию ненужных идентификаторов.

Служба регистрации узлов не проверяет идентификаторы узлов из запроса. Серверы копируют неизвестные идентификаторы узлов. Структурные ошибки идентификаторов узлов (нарушение размера, недопустимые типы идентификаторов) являются причиной сбоя всей службы.

Для целей аудита серверы должны использовать только канонический идентификатор узла, который является значением его атрибута.

5.8.5.2 Параметры

Параметры службы определены в таблице 43.

Таблица 43 — Параметры службы регистрации узлов

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса (определение «заголовок запроса» см. в 7.28)

Узлы для регистрации

Идентификатор узла

Список идентификаторов узлов для регистрации, который клиент получил посредством просмотра, запроса или каким-либо другим способом

48

Окончание таблицы 43

ГОСТ Р 71809—2024

Имя

Тип

Описание

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры запроса (определение «заголовок запроса» см. в 7.28)

Зарегистрированные идентификаторы узлов

Идентификатор узла

Список идентификаторов узла, которые клиент будет использовать для последующих операций доступа. Размер и порядок этого списка соответствуют размеру и порядку параметра запроса узлы для регистрации.

Допускается, что сервер может вернуть идентификатор узла из запроса или новый (псевдоним) идентификатор узла. Рекомендуется, чтобы сервер возвращал числовой идентификатор узла для использования псевдонимов.

Если для узла не поддерживается оптимизация, сервер должен вернуть идентификатор узла из запроса

5.8.5.3 Результаты службы

В таблице 44 определены результаты службы, специфичные для этой службы. Общие коды состояния определены в таблице 177.

Таблица 44 — Результирующие коды службы регистрации узлов

Символический идентификатор

Описание

Некорректно_НечегоДелать

Описание этого результирующего кода см. в таблице 177

Некорректно_СлишкомМного Операций

Описание этого результирующего кода см. в таблице 177

Некорректно_Идентификатор

УзлаНедействителен

Описание этого результирующего кода см. в таблице 178.

Серверы должны полностью отклонить запрос регистрации узлов, если какой-либо из идентификаторов узла в параметре узлы для регистрации структурно недействителен

5.8.6 Разрегистрация узлов

5.8.6.1 Описание

Эта служба используется для отмены регистрации идентификаторов узла, полученных через службу регистрации узлов.

Разрегистрация узлов (отмена регистрации) не проверяет идентификаторы узла из запроса. Серверы просто отменяют регистрацию идентификаторов узла, которые известны как зарегистрированные идентификаторы узла. Любые идентификаторы узла, которые есть в списке, но не зарегистрированы, игнорируются.

5.8.6.2 Параметры

Параметры службы разрегистрации узлов определены в таблице 45.

Таблица 45 — Параметры службы разрегистрации узлов

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Заголовок запроса «Общие параметры запроса» (определение «заголовок запроса» см. в 7.28)

Узлы для отмены регистрации

Узел

Идентификатор узла «Список идентификаторов узла», которые были получены через сервис регистрации узлов

Ответ

Заголовок ответа

Заголовок ответа

Заголовок ответа «Общие параметры ответа» (определение «заголовок ответа» см. в 7.29)

49

ГОСТ Р 71809—2024

5.8.6.3 Результаты службы

В таблице 46 определены результаты службы, специфичные для этой службы. Общие коды состояния определены в таблице 177.

Таблица 46 — Результирующие коды службы разрегистрации узлов

Символический идентификатор

Описание

Некорректно_НечегоДелать

Описание этого результирующего кода см. в таблице 177

Некорректно_СлишкомМногоОпераций

Описание этого результирующего кода см. в таблице 177

5.9 Набор служб запросов

5.9.1 Обзор

Набор служб запросов используется для отправки запроса серверу. Запрос ОРС UA является универсальным в том смысле, что он обеспечивает независимую от механизма хранения возможность запроса, которая может использоваться для доступа к широкому спектру хранилищ данных ОРС UA и системам управления информацией. Запрос ОРС UA позволяет клиенту получать доступ к данным, поддерживаемым сервером, без информации о логической схеме, используемой для внутреннего хранения данных. Информации адресного пространства достаточно.

Предполагается, что приложение ОРС UA будет использовать службу запросов ОРС UA как часть процесса инициализации или периодического шага синхронизации информации. Например, запрос ОРС UA может использоваться для массового доступа к данным постоянного хранилища, чтобы инициализировать приложение анализа с текущим состоянием конфигурации системы. Запрос также может использоваться для инициализации или заполнения данных для отчета.

Запрос определяет, какие экземпляры одного или нескольких узлов определений типов в адресном пространстве должны предоставлять набор атрибутов. Результаты, возвращаемые сервером, имеют форму массива наборов данных запроса. Выбранные значения атрибутов в каждом наборе данных запроса берутся из определения выбранного узла определения типов или связанного узла определения типов и отображаются в результатах в том же порядке, что и атрибуты, которые были переданы в запрос. Запрос также поддерживает фильтрацию узлов на основе значений атрибутов, а также отношений между узлами определения типов.

5.9.2 Запрашиваемые представления

Представление — подмножество адресного пространства, доступного на сервере. Для описания организации представлений в адресном пространстве см. ГОСТ Р 71810.

Для любого существующего представления допускается использование запроса для возврата подмножества данных из представления. Когда приложение выдает запрос к представлению, должны возвращаться только данные, определенные представлением. Данные, не включенные в представление, но включенные в исходное адресное пространство, не возвращаются.

Служба запросов поддерживает доступ к текущим и историческим данным. Служба поддерживает клиента, запрашивающего предыдущую версию адресного пространства. Клиенты должны указывать версию представления или временную отметку в запросе для доступа к прошлым версиям адресного пространства. Запрос ОРС UA дополняет доступ к данным за прошлые периоды. Первый используется для запроса существующего адресного пространства, последний используется для запроса значения атрибутов во времени. Если узел не находится в текущем адресном пространстве, допускается использование запроса для извлечения части прошлого адресного пространства, чтобы получать доступ к истории значений атрибутов с использованием исторического доступа.

Серверы, поддерживающие запрос, должны иметь доступ к адресному пространству, связанному с локальным сервером и любыми представлениями, доступными на локальном сервере. Если представление или адресное пространство ссылается на удаленный сервер, доступ к адресному пространству удаленного сервера не обязателен. Если сервер подключается к удаленному серверу, доступ должен осуществляться с использованием идентификатора пользователя клиента, как описано в 5.5.1.

5.9.3 Первый запрос

5.9.3.1 Описание

Служба «первый запрос» используется для отправки запроса на сервер. Допускаются вариации сложности запроса от простого до сложного. Запрос запрашивает данные из экземпляров узла опреде-

50

ГОСТ Р 71809—2024

ления типов или узла определения типов с учетом ограничений, установленных фильтром. Запрос запрашивает данные из экземпляров связанных типов узлов, указывая относительный путь из исходного узла определения типов. Для ограничения экземпляров, предоставляющих данные, в фильтре допускается создание отдельного набора путей. Если путь включает в себя несколько операторов отношения, то для определения многозвенного пути между исходными экземплярами и целевыми экземплярами вводится фильтрация. Например, полное описание фильтра контента см. в 7.4.

Клиент предоставляет массив описания типа узла, который определяет идентификатор узла определения типа и выбирает, какие атрибуты должны быть возвращены в ответе. Клиент также может предоставить набор относительных путей через систему типов, начиная с исходного узла определения типа. Используя эти пути, клиент выбирает набор атрибутов из узлов, которые связаны с экземплярами исходного узла определения типа. Дополнительно клиент может запросить сервер вернуть экземпляры подтипов узла определения типов. Если выбранный атрибут не существует в узле определения типа, но существует в подтипе, предполагается, что он имеет нулевое значение в рассматриваемом узле определения типа. Следовательно, это не является условием ошибки, и для атрибута возвращается нулевое значение.

Для сокращения разброса результатов применяются фильтры, ограничивающие атрибуты и свойства определенными значениями. Допускается использование фильтра для ограничения клиентом набора результатов, что позволяет более точно указать, как экземпляры должны быть связаны, используя операторы «отношения к». Если экземпляр в верхней части пути «отношения к» не может быть отслежен до конца пути через указанные пересылки, наборы данных запроса не возвращаются для начального экземпляра или любого из промежуточных экземпляров.

При запросе связанных экземпляров в относительном пути клиент должен дополнительно запросить ссылки. Ссылка запрашивается через относительный путь, который включает только тип ссылки. Если все ссылки желательны, то указывается корневой тип ссылки. Ссылки возвращаются как часть наборов данных запроса.

Службы запросов разрешают особую обработку поля имя цели в относительном пути. При использовании запроса в пути необходим тип идентификатора узла, а не квалифицированное имя. Клиенту допускается указать идентификатор узла в квалифицированном имени. Для этого требуется установить нулевое значение для индекса пространства имен цели и представление xml идентификатора узла для части имени цели. Представление xml определено в ГОСТ Р 71811. Когда совпадающие экземпляры возвращаются как целевой узел, целевой узел должен быть экземпляром указанного типа или подтипа указанного типа.

В таблице 47 определены параметры запроса. В таблице 48 определены параметры ответа для службы «первый запрос».

Таблица 47 — Параметры запроса «первый запрос»

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса («заголовок запроса» см. в 7.28)

Представление

Описание представления

Задает представление и временной контекст для сервера («описание представления» см. в 7.39)

Типы узла

Описание типа узла

Это описание типа узла. Эта структура определяется в соответствии со следующими элементами с отступом

Определение типа узла

Расширенный идентификатор узла

Идентификатор узла источника определения типа узла экземпляров, для которых должны быть возвращены данные

Включение подтипов

Логическое значение

Флаг, указывающий, должен ли сервер включать экземпляры подтипов определения типа узла в список экземпляров типа узла

Данные для возврата

Описание данных запроса

Задает атрибут или ссылку от исходного определения типа узла вдоль заданного относительного пути, для которого должны быть возвращены данные. Эта структура определяется в соответствии со следующими элементами с отступом

51

ГОСТ Р 71809—2024

Окончание таблицы 47

Имя

Тип

Описание

Относительный путь

Относительный путь

Путь просмотра относительно исходного узла, который определяет узел, содержащий запрашиваемые данные, где исходный узел является экземпляром узла типа, определенного типом определения узла. Узлы экземпляра дополнительно ограничиваются фильтром, предоставляемым как часть этого вызова. Определение для относительного пути см. в 7.26.

Этот относительный путь может заканчиваться ссылкой, и в этом случае эталонное описание ссылки будет возвращено как ее значение.

Поле имя цели относительного пути может содержать тип идентификатора узла. Для этого нужно установить для параметра индекса пространства имени цели значение ноль, а для части имени имя цели — xml-представление идентификатора узла. Представление xml определено в МЭК 62541-8 [4]. Когда совпадающие экземпляры возвращаются как целевой узел, он должен быть экземпляром указанного типа или подтипа указанного типа

Идентификатор атрибута

Идентификатор целого числа

Идентификатор атрибута. Это должен быть действительный идентификатор атрибута. Идентификатор целого числа определен в 7.14. Идентификатор целого числа для атрибутов определен в ГОСТ Р 71811. Если относительный путь заканчивается ссылкой, тогда этот параметр равен 0 и игнорируется сервером

Диапазон индексов

Область числовых значений

Этот параметр используется для идентификации отдельного элемента структуры или массива, или одного диапазона индексов для массивов. Если указан диапазон элементов, значения возвращаются как составные. Первый элемент обозначается индексом 0 (ноль). Тип «область числовых значений» определен в 7.22.

Этот параметр имеет значение ноль, если указанный атрибут не является массивом или структурой. Однако, если указанный атрибут является массивом или структурой и этот параметр имеет значение ноль, тогда все элементы должны быть включены в диапазон параметр имеет значение ноль, тогда все элементы должны быть включены в диапазон

Фильтр

Фильтр контента

Результирующие узлы должны быть ограничены узлами, соответствующими критериям, определенным фильтром. Фильтр контента обсуждается в 7.4. Если предоставляется пустой фильтр, то должно быть исследовано все адресное пространство, и будут возвращены все узлы, содержащие соответствующий запрошенный атрибут или ссылку

Максимальный набор возвращаемых данных

Счетчик

Количество наборов данных запроса, которые клиент хочет, чтобы сервер возвращал в ответе и при каждом последующем продолжении вызова «ответ». Сервер может дополнительно ограничить ответ, но не должен превышать этот предел. Значение 0 указывает, что клиент не налагает ограничений

Максимальное количество возвращаемых ссылок

Счетчик

Количество ссылок, которые клиент хочет, чтобы сервер возвращал в ответе для каждого набора данных запроса и при каждом последующем вызове ответа. Сервер может дополнительно ограничить ответ, но не должен превышать этот предел. Значение 0 указывает, что клиент не налагает ограничений.

Например, результат, в котором возвращаются 4 узла, но каждый имеет 100 ссылок, если этот предел был установлен на 50, тогда при первоначальном вызове будут возвращены только первые 50 ссылок для каждого узла и будет установлена точка продолжения, указывающая на дополнительные данные

52

Таблица 48 — Параметры ответа «первый запрос»

ГОСТ Р 71809—2024

Имя

Тип

Описание

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа (определение «заголовок ответа» см. в 7.29)

Наборы данных запроса

Набор данных запроса

Массив наборов данных запроса. Этот массив будет пустым, если ни один узел или ссылка не соответствуют критериям типов узла. В этом случае параметр «точка продолжения» должен быть пустым.

Тип набора данных запроса определен в 7.23

Точка продолжения

Точка продолжения

Определяемое сервером непрозрачное значение, которое идентифицирует точку продолжения.

Точка продолжения используется только тогда, когда результаты запроса слишком велики, чтобы их можно было вернуть в одном ответе. «Слишком велик» в этом контексте означает, что сервер не может вернуть больший ответ или что количество наборов данных запроса для возврата превышает максимальное количество наборов данных запроса для возврата, указанное клиентом в запросе.

Точка продолжения используется в сервисе запрос далее. Когда не используется, значение этого параметра равно нулю. Если точка продолжения возвращается, клиент должен вызвать запрос далее, чтобы получить следующий набор данных запроса или освободить ресурсы для точки продолжения на сервере.

Точка продолжения остается активной до тех пор, пока клиент не передаст точку продолжения запросу далее или сеанс не будет закрыт. Если достигнута максимальная точка продолжения, самая старая точка продолжения будет сброшена.

Тип точки продолжения описан в 7.6

Результаты синтаксического анализа

Результат синтаксического анализа

Список результатов синтаксического анализа первого запроса. Размер и порядок списка соответствуют размеру и порядку параметра запроса «типы узла». Эта структура определяется в соответствии со следующими элементами с отступом.

Этот список заполняется любыми кодами состояния, которые связаны с обработкой типов узлов, которые являются частью запроса. Массив может быть пустым, если ошибок не было. Если какой-либо тип узла привел к ошибке, все типы узлов должны иметь связанный код состояния

Код состояния

Код состояния

Результат синтаксического анализа запрошенного описания типа узла

Коды состояния данных

Код состояния

Список результатов для данных для возврата. Размер и порядок списка соответствуют размеру и порядку параметра запроса «данные для возврата». Массив может быть пустым, если ошибок не было

Диагностическая информация о данных

Диагностическая информация

Список диагностической информации данных для возврата (определение «диагностическая информация» см. в 7.8). Размер и порядок списка соответствуют размеру и порядку параметра запроса данные для возврата. Этот список пуст, если диагностическая информация не была запрошена в заголовке запроса или если диагностическая информация не была обнаружена при обработке запроса

Диагностическая информация

Диагностическая информация

Список диагностической информации для запрашиваемого описания типа узла. Этот список пуст, если диагностическая информация не была запрошена в заголовке запроса или если диагностическая информация не была обнаружена при обработке запроса

Результат фильтра

Фильтр контента Результат

Структура, содержащая все ошибки, связанные с фильтром.

Эта структура должна быть пустой, если ошибок не возникало. Тип результата фильтра контента определен в 7.4.2

53

ГОСТ Р 71809—2024

5.9.3.2 Результаты службы

Если запрос недействителен или не может быть обработан, то наборы данных запроса не возвращаются, а возвращается только результат службы, результат фильтра, результаты грамматического разбора и необязательная диагностическая информация. В таблице 49 определены результаты службы, специфичные для этой службы. Общие коды состояния определены в таблице 177.

Таблица 49 — Результирующие коды службы «первый запрос»

Символический идентификатор

Описание

Некорректно_НечегоДелать

Описание этого результирующего кода см. в таблице 177

Некорректно_СлишкомМного Операций

Описание этого результирующего кода см. в таблице 177

Некорректно_ФильтрКонтента

Недействительный

Описание этого результирующего кода см. в таблице 178

Некорректно_Идентификатор ПредставленияНеизвестен

Описание этого результирующего кода см. в таблице 177

Некорректно_ОтметкаВремени

ПредставленияНедействительна

Описание этого результирующего кода см. в таблице 177

Некорректно_Несоответствие

ПараметровПредставления

Недействительно

Описание этого результирующего кода см. в таблице 177

Некорректно_Версия

ПредставленияНедействительна

Описание этого результирующего кода см. в таблице 177

Некорректно_НеверныйФильтр

Указанный фильтр недействителен, конкретные ошибки см. в результате фильтра

Некорректно_ОшибкаСпискаУзлов

Предоставленные типы узла содержат ошибку, конкретные ошибки см. в результатах синтаксического анализа

Некорректно_Представление

Недействительное

Предоставленное описание представления не является действительным описанием представления

БезОшибки_РезультатыМогутБыть Неполными

Сервер должен был следовать ссылке на узел на удаленном сервере, но этого не произошло. Набор результатов может быть неполным

5.9.3.3 Коды состояния

В таблице 50 определены значения параметра «результаты грамматического разбора кода состояния», специфичные для этого службы. Общие коды состояния определены в таблице 178.

Таблица 50 — Результирующие коды рабочего уровня

Символический идентификатор

Описание

Некорректно_ИдентификаторУзла Недействителен

Описание этого результирующего кода см. в таблице 178

Некорректно_ИдентификаторУзла Неизвестен

Описание этого результирующего кода см. в таблице 178

Некорректно_НеЯвляется

ОпределениемТипа

Предоставленный идентификатор узла не был определением типа идентификатора узла

Некорректно_ИдентификаторАтрибута Недействительный

Описание этого результирующего кода см. в таблице 178

Некорректно_ДиапазонИндексов Недействительный

Описание этого результирующего кода см. в таблице 178

54

ГОСТ Р 71809—2024

5.9.4 Следующий запрос

5.9.4.1 Описания

Данная служба используется для запроса следующего набора информации ответа с заголовком «первый запрос» или «следующий запрос», который слишком велик для отправки в одном ответе. «Слишком велик» в этом контексте означает, что сервер не может вернуть больший ответ или что количество наборов данных запроса для возврата превышает максимальное количество наборов данных запроса для возврата, которое было указано клиентом в исходном запросе. Следующий запрос должен быть отправлен на той же сессии, которая использовалась для отправки первого запроса или следующего запроса, который продолжается.

5.9.4.2 Параметры

В таблице 51 определены параметры для службы.

Таблица 51 — Параметры службы «следующий запрос»

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса (определение заголовок запроса см. в 7.28)

Выпуск точки продолжения

Логическое значение

Параметр логического значения со следующими значениями.

Истина — пройденная точка продолжения должна быть сброшена до свободных ресурсов.

Ложь — пройденная точка продолжения должна применяться для получения следующего набора данных запроса.

Клиент должен всегда использовать точку продолжения, возвращенную ответом «первый запрос», или запроса далее «следующий запрос», чтобы освободить ресурсы для точки продолжения на сервере. Если клиент не желает получать следующий набор информации запроса, запрос должен быть вызван с этим параметром, установленным на истине. Если для параметра установлено значение True, все параметры в ответе должны содержать пустые массивы

Точка продолжения

Точка продолжения

Сервер определил непрозрачное значение, которое представляет точка продолжения. Значение точки продолжения было возвращено клиенту в предыдущем ответе «первый запрос» или далее «следующий запрос». Это значение применяется для идентификации ранее обработанного запроса первый запрос или запрос далее, который продолжается, и точки в наборе результатов, с которой следует продолжить просмотр ответа. Тип «точка продолжения» описан в 7.6

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа (определение «заголовок ответа» см. в 7.29)

Наборы данных запроса

Набор данных запроса

Массив наборов данных запроса.

Тип набора данных запроса определен в 7.23

Пересмотренная точка продолжения

Точка продолжения

Определяемое сервером непрозрачное значение, которое представляет точку продолжения. Оно применяется только в том случае, если возвращаемая информация слишком велика, чтобы содержаться в одном ответе. Когда не применяется или когда установлено выпустить точку продолжения, значение этого параметра равно нулю.

Тип «точка продолжения» описан в 7.6

5.9.4.3 Результаты службы

В таблице 52 определены результаты службы, специфичные для этой службы. Общие коды состояния определены в таблице 177.

55

ГОСТ Р 71809—2024

Таблица 52 — Результирующие коды службы «следующий запрос»

Символический идентификатор

Описание

Некорректно_Точка

ПродолженияНедействительна

Описание этого результирующего кода см. в таблице 178

5.10 Набор службы атрибутов

5.10.1 Обзор

Настоящий набор служб предоставляет службы для доступа к атрибутам, которые являются частью узлов.

5.10.2 Чтение

5.10.2.1 Описание

Данная служба используется для чтения одного или нескольких атрибутов одного или нескольких узлов. Для созданных значений атрибутов, элементы которых проиндексированы, таких как массив, эта служба позволяет клиентам читать весь набор проиндексированных значений как составной элемент, читать отдельные элементы или диапазоны элементов составного элемента.

Параметр maxage (максимальное время действия) используется для указания серверу доступа к значению из базового источника данных, такого как устройство, если его копия данных старше, чем указано в maxage. Если сервер не может соответствовать запрошенному максимальному времени действия, он возвращает значение «лучшее из возможного» вместо отклонения запроса.

5.10.2.2 Параметры

Параметры службы определены в таблице 53.

Таблица 53 — Параметры службы чтения

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса (определение «заголовок запроса» см. в 7.28)

Максимальное время

Продолжительность

Максимальное время действия считываемого значения в миллисекундах. Время действия значения основано на разнице между сервером временной отметки и временем, когда сервер начинает обработку запроса.

Например, если клиент указывает maxage, равный 500 миллисекундам, и требуется 100 миллисекунд, пока сервер начинает обработку запроса, время действия возвращаемого значения может быть 600 миллисекунд до момента, когда оно было запрошено.

Если сервер имеет одно или несколько значений атрибута, которые находятся в пределах максимального времени действия, он может вернуть любое из значений или прочитать новое значение из источника данных. Количество значений атрибута, которое имеет сервер, зависит от количества предметов контроля, определенных для атрибута. В любом случае клиент не может делать предположений о том, какая копия данных будет возвращена.

Если сервер не имеет значения, которое находится в пределах максимального возраста, он должен попытаться прочитать новое значение из источника данных.

Если сервер не может удовлетворить запрошенное максимальное время, он возвращает свое значение «лучшее из возможного», а не отклоняет запрос. Это может произойти, когда время, необходимое серверу для обработки и возврата нового значения данных после обращения к нему, превышает указанное максимальное время действия.

Если максимальное время установлено на 0, сервер должен попытаться прочитать новое значение из источника данных.

Если максимальное время установлено на максимальное значение «целое число32» или больше, сервер должен попытаться получить кэшированное значение.

Отрицательные значения недопустимы для maxage

56

Окончание таблицы 53

ГОСТ Р 71809—2024

Имя

Тип

Описание

Временные отметки для возврата

Тип-перечисление временные отметки для возврата

Тип-перечисление, определяющий временные отметки, возвращаемые для каждого запрошенного атрибута значения переменной. Тип-перечисление временной отметки для возврата определен в 7.35

Узлы для чтения

Идентификатор значения чтения

Список узлов и их атрибутов для чтения. Для каждой записи в этом списке возвращается код состояния и, если он указывает на успех, также значение атрибута. Тип параметра «идентификатор значения чтения» определен в 7.24

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа (определение «заголовок ответа» см. в 7.29)

Результаты

Значение данных

Список значений атрибутов (определение значений данных см. в 7.7). Размер и порядок этого списка соответствуют размеру и порядку параметра запроса узлы для чтения. В этом списке есть одна запись для каждого узла, содержащегося в параметре «узлы для чтения»

Диагностическая информация

Диагностическая информация

Список диагностической информации (определение «диагностическая информация» см. в 7.8). Размер и порядок этого списка соответствуют размеру и порядку параметра запроса «узлы для чтения». В этом списке есть одна запись для каждого узла, содержащегося в параметре «узлы для чтения». Этот список пуст, если диагностическая информация не запрашивалась в заголовке запроса или если при обработке запроса диагностическая информация не была внесена

5.10.2.3 Результаты службы

В таблице 54 определены результаты службы, специфичные для этой службы. Общие коды состояния определены в таблице 177.

Таблица 54 — Результирующие коды службы чтения

Символический идентификатор

Описание

Некорректно_НечегоДелать

Описание этого результирующего кода см. в таблице 177

Некорректно_СлишкомМного Операций

Описание этого результирующего кода см. в таблице 177

Некорректно_Максимальное

ВремяДействияНедействительно

Параметр максимального времени действия недействителен

Некорректно_ВременнаяОтметка

ДляВозвратаНедействительна

Описание этого результирующего кода см. в таблице 177

5.10.2.4 Коды состояния

В таблице 55 определены значения эксплуатационного уровня кода состояния, содержащиеся в структуре значения данных каждого элемента результатов. Общие коды состояния определены в таблице 178.

57

ГОСТ Р 71809—2024

Таблица 55 — Чтение результирующих кодов рабочего уровня

Символический идентификатор

Описание

Некорректно_Идентификатор

УзлаНедействителен

Описание этого результирующего кода см. в таблице 178

Некорректно_Идентификатор

УзлаНеизвестен

Описание этого результирующего кода см. в таблице 178

Некорректно_Идентификатор

АтрибутаНедействительный

Описание этого результирующего кода см. в таблице 178

Некорректно_Диапазон

ИндексовНедействительный

Описание этого результирующего кода см. в таблице 178

Некорректно_НетДанных

ДиапазонаИндекса

Описание этого результирующего кода см. в таблице 178

Некорректно_Кодирование

ДанныхНедействительно

Описание этого результирующего кода см. в таблице 178

Некорректно_КодированиеДанных НеПоддерживается

Описание этого результирующего кода см. в таблице 178

Некорректно_НеЧитается

Описание этого результирующего кода см. в таблице 178

Некорректно_Доступ

ПользователяЗапрещен

Описание этого результирующего кода см. в таблице 177

Некорректно_Режим

БезопасностиНедостаточный

Описание этого результирующего кода см. в таблице 178

5.10.3 Чтение истории

5.10.3.1 Описание

Эта служба используется для чтения исторических значений или событий одного или нескольких узлов. Для созданных значений атрибутов, элементы которых проиндексированы, таких как массив, эта служба позволяет клиентам читать весь набор проиндексированных значений как составной элемент, читать отдельные элементы или диапазоны элементов составного элемента. Серверы могут делать исторические значения доступными для клиентов, использующих эту службу, хотя сами исторические значения не отображаются в адресном пространстве.

Атрибут «уровень доступа», определенный в ГОСТ Р 71808, указывает, что узел поддерживает исторические значения. Несколько параметров запроса указывают, как сервер должен получать доступ к значениям из базового источника данных истории. Атрибут уведомителя событий, определенный в ГОСТ Р 71808, указывает на поддержку узлом исторических событий.

Параметр точка продолжения в чтении истории используется для отметки точки, с которой следует продолжить чтение, если не все значения могут быть возвращены в одном ответе. Это значение непрозрачно для клиента и используется только для поддержания информации о состоянии, с которой сервер должен продолжить. Сервер может использовать временную отметку последнего возвращенного элемента данных, если временная отметка уникальна. Это может уменьшить потребность в сервере для хранения информации о состоянии для точки продолжения.

В некоторых случаях для чтения данных всеми узлами может потребоваться больше времени, чем указано в рекомендации тайм-аута клиента. Затем серверу допускается вернуть нулевые результаты с точки продолжения для затронутых узлов до истечения времени ожидания. Это позволяет серверу возобновить сбор данных при следующем вызове чтения клиента.

Дополнительные сведения о чтении исторических данных и исторических событий см. в МЭК 62451-11 [3].

5.10.3.2 Параметры

Параметры службы определены в таблице 56.

58

Таблица 56 — Параметры службы «чтение истории»

ГОСТ Р 71809—2024

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса (определение «заголовок запроса» см. в 7.28)

Детали чтения истории

Расширяемый параметр «подробная информация о чтении истории»

Детали определяют типы чтения истории, которые могут быть выполнены. Тип параметра детали чтения истории — это расширяемый тип параметра, формально определенный в МЭК 62451-11 [3]. Тип «Расширяемый параметр» определен в 7.12

Временные отметки для возврата

Тип-перечисление «временная отметка возврата»

Тип-перечисление, указывающее временные отметки, которые должны быть возвращены для каждого запрошенного атрибута значения переменной. Тип-перечисление «временная отметка для возврата» определен в 7.35.

Указание для параметра «временная отметка для возврата» значения «ни одной» недопустимо. В этом случае сервер должен вернуть «Некорректно_Недействительный КодСостоянияАргумента» отметки времени. МЭК 62451-11 [3] определяет исключения, в которых этот параметр следует игнорировать

Выпуск продолжения

Логическое значение

Параметр логического значения со следующими значениями

Точки

Истина — пройденные точки продолжения должны быть сброшены на свободные ресурсы на сервере.

Ложь — пройденные точки продолжения будут использоваться для получения следующего набора исторической информации.

Клиент всегда должен использовать точку продолжения, возвращенную ответом чтения истории, чтобы освободить ресурсы для точки продолжения на сервере.

Если клиент не желает получать следующий набор исторической информации, необходимо вызвать сервис «чтение истории» с этим параметром, установленным на истине

Узлы для чтения

Идентификатор значения «чтение истории»

Этот параметр содержит список элементов, по которым должен выполняться исторический поиск. Эта структура определяется в соответствии со следующими элементами с отступом

Идентификатор узла

Идентификатор узла

Если информация об истории не обработана, обработана, изменена или несвоевременна, идентификатор узлов, исторические значения которых необходимо прочитать, должен включать на выдаваемое значение временную отметку.

Если узел не поддерживает запрошенный доступ к историческим значениям или историческим событиям, должен быть сгенерирован ответ об ошибке для данного узла

Диапазон индексов

Область числовых значений

Настоящий параметр используется для идентификации одного элемента массива или одного диапазона индексов для массивов. Если указан диапазон элементов, значения возвращаются как составные. Первый элемент обозначается индексом 0 (ноль). Тип «область числовых значений» определен в 7.22.

Этот параметр имеет значение «пусто», если значение не является массивом. Однако, если значение является массивом и этот параметр имеет значение «пусто», тогда все элементы должны быть включены в диапазон

59

ГОСТ Р 71809—2024

Продолжение таблицы 56

Имя

Тип

Описание

Кодирование данных

Квалифицированное имя

Квалифицированное имя, указывающее кодировку данных, которая должна быть возвращена для считываемого значения (см. 7.24 для определения того, как указать кодировку данных).

Этот параметр применяется только в том случае, если тип данных переменной является подтипом структуры.

Указание этого параметра является ошибкой, если тип данных переменной не является подтипом структуры. Параметр игнорируется при чтении истории событий

Точка продолжения

Точка продолжения

Для каждого элемента «узлы для чтения» этот параметр указывает точку продолжения, возвращенную из предыдущего вызова сервиса «чтение истории», позволяя клиенту продолжить чтение с последнего полученного значения.

Чтение истории используется для выбора упорядоченной последовательности исторических ценностей или событий. Точка продолжения отмечает точку в этой упорядоченной последовательности, так что сервер возвращает подмножество последовательности, которая следует за этой точкой.

Пустое значение указывает, что этот параметр не используется. См. 7.6 для общего описания сервиса «точка продолжения».

Сервис точка продолжения более подробно описан в МЭК 62451-11 [3]

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа (тип «заголовок ответа» см. в 7.29)

Результаты

Результат «чтение истории»

Список прочитанных результатов. Размер и порядок списка соответствуют размеру и порядку параметра запроса узлы для чтения. Эта структура определяется в соответствии со следующими элементами с отступом

Код состояния

Код состояния

Код состояния для элемента узлы для чтения (определение код состояния см. в 7.34)

Точка продолжения

Точка продолжения

Настоящий параметр используется только в том случае, если количество возвращаемых значений слишком велико для возврата в одном ответе или если время ожидания, указанное в качестве подсказки клиентом, близко к истечению, и не все узлы были обработаны.

Когда этот параметр не используется, его значение равно «пусто». Серверы должны поддерживать как минимум одну точку продолжения за сеанс. Серверы указывают максимальную историю точки продолжения за сеанс в объекте возможностей сервера, определенном в ГОСТ Р 71810. Точка продолжения остается активной до тех пор, пока клиент не передаст точку продолжения в чтение истории или сеанс не будет закрыт. Если достигнуты максимальные точки продолжения, самая старая точка продолжения будет сброшена

Данные истории

С возможностью подключения расширений Параметр «данные истории»

Исторические данные, возвращенные для узла.

Тип параметра данные истории — это расширяемый тип параметра, формально определенный в МЭК 62451-11 [3]. Он определяет типы исторических данных, которые могут быть возвращены. Базовый тип «расширяемый параметр» определен в 7.12

60

Окончание таблицы 56

ГОСТ Р 71809—2024

Имя

Тип

Описание

Диагностическая информация

Диагностическая информация

Список диагностической информации. Размер и порядок списка соответствуют размеру и порядку параметра запроса «узлы для чтения». В этом списке имеется одна запись для каждого узла, содержащегося в параметре «узлы для чтения». Этот список пуст, если диагностическая информация не была запрошена в заголовке запроса или если диагностическая информация не была обнаружена при обработке запроса

5.10.3.3 Результаты службы

В таблице 57 определены результаты службы, специфичные для этой службы. Общие коды состояния определены в таблице 177.

Таблица 57 — Результирующие коды службы чтения истории

Символический идентификатор

Описание

Некорректно_НечегоДелать

Описание этого результирующего кода см. в таблице 177

Некорректно_СлишкомМного Операций

Описание этого результирующего кода см. в таблице 177

Некорректно_Временные

ОтметкиДляВозвратаНедействительны

Описание этого результирующего кода см. в таблице 177

Некорректно_ОперацияИстории

Недействительна

Описание этого результирующего кода см. в таблице 178

Некорректно_ОперацияИстории

НеПоддерживается

Описание этого результирующего кода см. в таблице 178.

Запрошенная операция истории не поддерживается сервером

5.10.3.4 Коды состояния

В таблице 58 определены значения параметра «код состояния уровня операции», специфичные для данной службы. Общие коды состояния определены в таблице 178. Конкретные коды состояния доступа к истории определены в МЭК 62541-11 [3].

Таблица 58 — Результирующие коды рабочего уровня чтения истории

Символический идентификатор

Описание

Некорректно_ИдентификаторУзла Недействителен

Описание этого результирующего кода см. в таблице 178

Некорректно_ИдентификаторУзла Неизвестен

Описание этого результирующего кода см. в таблице 178

Некорректно_Кодирование

ДанныхНедействительно

Описание этого результирующего кода см. в таблице 178

Некорректно_КодированиеДанных НеПоддерживается

Описание этого результирующего кода см. в таблице 178

Некорректно_ДоступПользователя Запрещен

Описание этого результирующего кода см. в таблице 177

Некорректно_ТочкаПродолжения Недействительна

Описание этого результирующего кода см. в таблице 177

Некорректно_Недействительны АргументВременнойОтметки

Указанная временная отметка для возврата была недействительной

61

ГОСТ Р 71809—2024

Окончание таблицы 58

Символический идентификатор

Описание

Некорректно_ОперацияИстории

НеПоддерживается

Описание этого результирующего кода см. в таблице 178.

Запрошенная операция истории не поддерживается для запрошенного узла

Некорректно_НетТочекПродолжения

Описание этого результирующего кода см. в таблице 178. Для правил применения этого кода состояния см. 7.6

5.10.4 Запись

5.10.4.1 Описание

Данная служба используется для записи значений в один или несколько атрибутов одного или нескольких узлов. Для созданных значений атрибутов, элементы которых проиндексированы, таких как массив, эта служба позволяет клиентам записывать весь набор индексированных значений как составной элемент, записывать отдельные элементы или диапазоны элементов составной части.

Значения записываются в источник данных, например на устройство, и служба не возвращается, пока не запишет значения или не определит, что значение не может быть записано. В некоторых случаях сервер будет успешно записывать значения данных на промежуточную систему или сервер и не будет знать, был ли источник данных обновлен правильно. В этих случаях сервер должен сообщить код успешного завершения, который указывает, что запись не была проверена. В тех случаях, когда сервер может проверить, что он успешно записал в источник данных, он сообщает о безусловном успехе.

Порядок обработки операций на сервере не определен и зависит от различных источников данных и внутренней логики сервера. Если комбинация атрибута и узла содержится более чем в одной операции, порядок обработки не определен. Если клиенту требуется последовательная обработка, ему необходимы отдельные вызовы службы.

Возможно, что сервер может успешно записать одни атрибуты, но не другие. Ответственность за откат (возврат) лежит на клиенте.

Если сервер позволяет записывать атрибуты с типа данных «локализованный текст», клиент может добавить или перезаписать текст для языка, написав текст с соответствующим идентификатором языка. Запись пустой строки для текста для языкового стандарта приведет к удалению строки для этого языкового стандарта. Запись пустой строки для языкового стандарта и не пустой строки для текста устанавливает текст для инвариантного языкового стандарта. Запись пустой строки для текста и пустой строки для языкового стандарта удаляет записи для всех языковых стандартов. Если клиент пытается записать языковой стандарт, который либо синтаксически недействителен, либо не поддерживается, сервер возвращает «Некорректно_ЯзыковойСтандартНеПоддерживается». Поведение записи для атрибутов значения с типом данных «локализованный текст» зависит от сервера, но рекомендуется следовать тем же правилам.

5.10.4.2 Параметры

Параметры службы определены в таблице 59.

Таблица 59 — Параметры службы «запись»

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса (определение «заголовок запроса» см. в 7.28)

Узлы для записи

Написание значения

Список узлов и их атрибутов для записи. Эта структура определяется в соответствии со следующими элементами с отступом

Идентификатор узла

Идентификатор узла

Идентификатор узла, который содержит атрибуты

Идентификатор атрибута

Идентификатор целого числа

Идентификатор атрибута. Это должен быть действительный идентификатор атрибута. Идентификатор целого числа определен в 7.14. Идентификаторы целого числа для атрибутов определены в ГОСТ Р 71811

62

Окончание таблицы 59

ГОСТ Р 71809—2024

Имя

Тип

Описание

Диапазон индексов

Область числовых значений

Настоящий параметр используется для идентификации одного элемента массива или одного диапазона индексов для массивов. Первый элемент обозначается индексом 0 (ноль). Тип «область числовых значений» определен в 7.22.

Этот параметр не используется, если указанный атрибут не является массивом. Однако, если указанный атрибут является массивом и этот параметр не используется, тогда все элементы должны быть включены в диапазон.

Параметр имеет значение пусто, если не используется.

Сервер должен вернуть ошибку «Некорректно_

ЗаписьНеПоддерживается», если указан диапазон индексов и запись диапазона индексов для узла невозможна

Значение

Значение данных

Значение атрибута узла (определение значений данных см. в 7.7). Если указан параметр диапазон индексов, то значение должно являться массивом, даже если записывается только один элемент.

Если указан источник временной отметки или сервер временной отметки, сервер должен использовать эти значения. Сервер возвращает ошибку «Некорректно_ЗаписьНеПоддерживается», если он не поддерживает запись временных отметок.

Сервер должен вернуть ошибку «Некорректно_НесоответствиеТи-па», если тип данных записанного значения не совпадает с типом или подтипом типа данных атрибута. На основе иерархии типа данных подтипы атрибутов типа данных принимаются сервером. Серверы могут отклонять подтипы, определенные в более новых версиях спецификации, чем поддерживаемые сервером с «Некорректно_Не-соответствиеТипа». Для атрибута значение «тип данных» определяется через атрибут типа данных. Строка байтов структурно аналогична одномерному массиву байтов. Сервер должен принять строку байтов, если ожидается массив байтов.

Сервер возвращает ошибку «Некорректно_КодированиеДанныхНе-Поддерживается», если он не поддерживает предоставленную кодировку данных.

Простые типы данных (см. ГОСТ Р 71808) используют то же представление на соединительной линии, что и их супертипы, поэтому запись значения простых данных нельзя отличить от записи значения их супертипа. Сервер предполагает, что при получении правильного представления соединительной линии для простых типов данных был выбран правильный тип. Серверам разрешено налагать дополнительные проверки данных на значение независимо от кодировки (например, наличие изображения в формате gif в строке байтов). В этом случае сервер должен вернуть ошибку «Некорректно_Несоот-ветствие Типа», если проверка не удалась

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа (определение «заголовок ответа» см. в 7.29)

Результаты

Код состояния

Список результатов для записи узлов (определение «код состояния» см. 7.34). Размер и порядок списка соответствуют размеру и порядку параметра запроса «узлы для записи». В этом списке есть одна запись для каждого узла, содержащегося в параметре «узлы для записи»

Диагностическая информация

Диагностическая информация

Этот список пуст, если диагностическая информация не была запрошена в заголовке запроса или если диагностическая информация не была обнаружена при обработке запроса

63

ГОСТ Р 71809—2024

5.10.4.3 Результаты службы

В таблице 60 определены результаты службы, специфичные для этой службы. Общие коды состояния определены в таблице 177.

Таблица 60 — Результирующие коды службы запись

Символический идентификатор

Описание

Некорректно_НечегоДелать

Описание этого результирующего кода см. в таблице 177

Некорректно_СлишкомМногоОпераций

Описание этого результирующего кода см. в таблице 177

5.10.4.4 Коды состояния

В таблице 61 определены значения параметра результатов, специфичные для этого службы. Общие коды состояния определены в таблице 178.

Таблица 61 — Результирующие коды рабочего уровня «запись»

Символический идентификатор

Описание

Корректно_3авершается

Асинхронно

Описание этого результирующего кода см. в таблице 177.

Значение было успешно записано в промежуточную систему, но сервер не знает, правильно ли был обновлен источник данных

Некорректно_Идентификатор

УзлаНедействителен

Описание этого результирующего кода см. в таблице 178

Некорректно_Идентификатор

УзлаНеизвестен

Описание этого результирующего кода см. в таблице 178

Некорректно_Идентификатор АтрибутаНедействительный

Описание этого результирующего кода см. в таблице 178

Некорректно_Диапазон

ИндексовНедействительный

Описание этого результирующего кода см. в таблице 178

Некорректно_НетДанных

ДиапазонаИндекса

Описание этого результирующего кода см. в таблице 178

Некорректно_3апись

НеПоддерживается

Запрошенная операция записи не поддерживается.

Если клиент пытается записать какое-либо значение, код состояния, комбинацию временных отметок, а сервер не поддерживает запрошенную комбинацию (которая может быть единственной величиной, такой как просто временная отметка); тогда сервер не должен выполнять какую-либо запись на этот узел и должен возвращать этот код состояния для этого узла. Он также используется, если запись диапазона индексов не поддерживается для узла

Некорректно_

Незаписываемый

Описание этого результирующего кода см. в таблице 178

Некорректно_Доступ

ПользователяЗапрещен

Описание этого результирующего кода см. в таблице 177.

У текущего пользователя нет разрешения на запись атрибута

Некорректно_ВыходЗаПределы

Диапазона

Описание этого результирующего кода см. в таблице 178.

Если клиент пытается записать значение вне допустимого диапазона, например значение, не содержащееся в типе данных перечисления узла, сервер должен вернуть этот код состояния для этого узла

Некорректно_НесоответствиеТипа

Описание этого результирующего кода см. в таблице 178

Некорректно_Кодирование

ДанныхНеПоддерживается

Описание этого результирующего кода см. в таблице 178

64

Окончание таблицы 61

ГОСТ Р 71809—2024

Символический идентификатор

Описание

Некорректно_Отсутствует

ВзаимодействиеПроцессов

Описание этого результирующего кода см. в таблице 178

Некорректно_Языковой

СтандартНеПоддерживается

Языковой стандарт в запрошенной операции записи не поддерживается

5.10.5 Обновление истории

5.10.5.1 Описание

Настоящая служба используется для обновления исторических значений или событий одного или нескольких узлов. Несколько параметров запроса указывают, как сервер должен обновлять историческое значение или событие. Допустимыми действиями являются: вставить, заменить или удалить.

5.10.5.2 Параметры

Параметры службы определены в таблице 62.

Таблица 62 — Параметры службы обновления истории

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса (определение «заголовок запроса» см. в 7.28)

Сведения об обновлении истории

Расширяемый параметр сведения об обновлении истории

Сведения, определенные для этого обновления. Тип параметра сведения об обновлении истории — это расширяемый тип параметра, формально определенный в МЭК 62451-11 [3]. Он определяет типы обновлений истории, которые могут быть выполнены. Тип «расширяемый параметр» определен в 7.12

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа (определение «заголовок ответа» см. в 7.29)

Результаты

Обновление истории результата

Список результатов обновления для подробностей обновления истории. Размер и порядок списка соответствуют размеру и порядку элемента сведений параметра. Сведения об обновлении истории, указанном в запросе, — см. МЭК 62541-11 [3]. Эта структура определяется в соответствии со следующими элементами с отступом

Код состояния

Код состояния

Код состояния для обновления узла (определение «код состояния» см. в 7.34)

Результаты операции

Код состояния

Список кодов состояния для операций, выполняемых на узле. Размер и порядок списка соответствуют размеру и порядку любого списка, определенного элементом подробностей, сообщаемым этой записью результата

Диагностическая информация

Диагностическая информация

Список диагностической информации для операций, которые должны выполняться на узле (определение «диагностическая информация» см. в 7.8). Размер и порядок списка соответствуют размеру и порядку любого списка, определенного элементом сведений, о которых сообщает эта запись результатов. Этот список пуст, если диагностическая информация не была запрошена в заголовке запроса или если диагностическая информация не была обнаружена при обработке запроса.

Список диагностической информации для сведений об обновлении истории. Размер и порядок списка соответствуют размеру и порядку элемента сведений параметра «сведения об обновлении истории», указанного в запросе. Этот список пуст, если диагностическая информация не была запрошена в заголовке запроса или если диагностическая информация не была обнаружена при обработке запроса

65

ГОСТ Р 71809—2024

5.10.5.3 Результаты службы

В таблице 63 определены результаты службы, специфичные для этой службы. Общие коды состояния определены в таблице 177.

Таблица 63 — Результирующие коды службы обновления истории

Символический идентификатор

Описание

Некорректно_НечегоДелать

Описание этого результирующего кода см. в таблице 177

Некорректно_СлишкомМногоОпераций

Описание этого результирующего кода см. в таблице 177

5.10.5.4 Коды состояния

В таблице 64 определены значения параметров кодов состояния и результатов операции, специфичные для этой службы. Общие коды состояния определены в таблице 178. Коды состояния, специфичные для доступа к истории, определены в МЭК 62451-11 [3].

Таблица 64 — Результирующие коды рабочего уровня «обновление истории»

Символический идентификатор

Описание

Некорректно_НеЗаписываемый

Описание этого результирующего кода см. в таблице 178

Некорректно_Операция

ИсторииНеДействительна

Описание этого результирующего кода см. в таблице 178

Некорректно_Операция

ИсторииНеПоддерживается

Описание этого результирующего кода см. в таблице 178

НекорректноЛоступ

ПользователяЗапрещен

Описание этого результирующего кода см. в таблице 177.

У текущего пользователя нет разрешения на обновление истории

5.11 Набор службы метода

5.11.1 Обзор

Методы представляют собой вызовы функций объектов. Они определены в ГОСТ Р 71808.

Методы вызываются и возвращаются только после завершения (успешного или неудачного). Время выполнения методов может варьироваться в зависимости от выполняемой ими функции.

Набор служб методов определяет средства для вызова методов. Метод должен являться компонентом объекта. Обнаружение предоставляется через службы просмотра и запроса. Клиенты обнаруживают методы, поддерживаемые сервером, просматривая ссылки на объекты-владельцы, которые идентифицируют их поддерживаемые методы.

Поскольку методы могут управлять некоторыми аспектами работы предприятия, вызов метода может зависеть от окружающих или других условий. Особенно это может быть истина при попытке повторно вызвать метод сразу после того, как он завершил выполнение. Условия, необходимые для вызова метода, возможно, еще не вернулись в состояние, позволяющее запустить метод снова.

5.11.2 Вызов

5.11.2.1 Описание

Данная служба используется для вызова (инициации) списка методов.

Служба обеспечивает передачу входных и выходных аргументов в/из метода. Эти аргументы определяются свойствами метода.

Если метод вызывается в контексте сессии и сессия завершается, результаты выполнения метода не могут быть возвращены клиенту и не учитываются. Это не зависит от задачи, фактически выполняемой сервером.

Порядок обработки операций на сервере не определен и зависит от различных задач и внутренней логики сервера. Если метод содержится более чем в одной операции, порядок обработки не определен. Если клиенту требуется последовательная обработка, ему необходимы отдельные вызовы службы.

5.11.2.2 Параметры

Параметры службы определены в таблице 65.

66

Таблица 65 — Параметры службы «вызов»

ГОСТ Р 71809—2024

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса (определение «заголовок запроса» см. в 7.28)

Методы для вызова

Запрос вызова метода

Список методов для вызова. Эта структура определяется в соответствии со следующими элементами с отступом

Идентификатор объекта

Идентификатор узла

Идентификатор узла должен соответствовать объекту или типу объекта, для которого вызывается метод.

В случае типа объекта тип объекта или супертип типа объекта должен быть источником ссылки наличия компонента (или подтипа ссылки наличия компонента) на метод, указанный в идентификаторе метода.

В случае объекта объект или тип объекта, или супертип этого типа объекта должен быть источником ссылки наличия компонента (или подтипа ссылки наличия компонента) на метод, указанный в идентификаторе метода.

Описания объектов и их методов — см. в ГОСТ Р 71808

Идентификатор метода

Идентификатор узла

Идентификатор узла вызываемого метода.

Если идентификатор объекта является идентификатором узла объекта, разрешено использовать идентификатор узла метода, который является целью ссылки наличия компонента из типа объекта

Входные аргументы

Базовый тип данных

Список значений входных аргументов. Пустой список указывает на отсутствие входных аргументов. Размер и порядок этого списка соответствуют размеру и порядку входных аргументов, определенных введением свойства «входные аргументы метода».

Имя, описание и тип данных каждого аргумента определяются структурой аргумента в каждом элементе свойства «входные аргументы метода»

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа (определение «заголовок ответа» см. в 7.29)

Результаты

Результат вызова метода

Результат для вызовов метода. Эта структура определяется в соответствии со следующими элементами с отступом

Код состояния

Код состояния

Код состояния метода, выполняемого на сервере. Для этого кода состояния устанавливается значение кода состояния «некоррек-тно_недопустимыйаргумент», если хотя бы один входной аргумент нарушил ограничение (например, неправильный тип данных, значение вне диапазона).

Для этого кода состояния устанавливается некорректный код состояния, если выполнение метода на сервере завершилось неудачно, например на основе исключения

Результаты входных аргументов

Код успешного завершения

Список кодов состояния, соответствующих входным аргументам.

Этот список пуст, если результатом уровня операции не является некорректно недопустимый аргумент.

Заполненный список, он имеет одну длину со списком входных аргументов

Диагностическая информация входных аргументов

Диагностическая информация

Список диагностической информации, соответствующей входным аргументам. Этот список пуст, если диагностическая информация не была запрошена в заголовке запроса или если диагностическая информация не была обнаружена при обработке запроса

67

ГОСТ Р 71809—2024

Окончание таблицы 65

Имя

Тип

Описание

Выходные аргументы

Базовый тип данных

Список значений выходных аргументов. Пустой список указывает на отсутствие выходных аргументов. Размер и порядок этого списка соответствуют размеру и порядку выходных аргументов, определенных свойством выходных аргументов метода

Диагностическая информация

Диагностическая информация

Список диагностической информации для кода состояния результатов. Этот список пуст, если диагностическая информация не была запрошена в заголовке запроса или если диагностическая информация не была обнаружена при обработке запроса

5.11.2.3 Результаты службы

В таблице 66 определены результаты службы, специфичные для этой службы. Общие коды состояния определены в таблице 177.

Таблица 66 — Результирующие коды службы «вызов»

Символический идентификатор

Описание

Некорректный_НечегоДелать

Описание этого результирующего кода см. в таблице 177

Некорректный_СлишкомМногоОпераций

Описание этого результирующего кода см. в таблице 177

5.11.2.4 Коды состояния

В таблице 67 определены значения параметра «код состояния», а в таблице 68 определены значения параметра «результаты входных аргументов», специфичные для этой службы. Общие коды состояния определены в таблице 178.

Поставщики серверов или сопутствующие спецификации ОРС UA могут повторно использовать существующие коды состояния для информации об ошибках приложения. Это действительно до тех пор, пока каноническое описание кода состояния не имеет другого значения, чем описание конкретного приложения. Чтобы устранить какую-либо неопределенность, сервер должен включать описание конкретного приложения в диагностическую информацию.

Успешные коды состояния с подстатусом не должны использоваться в качестве кодов состояния, поскольку многие привязки языков программирования могут вызвать такие коды, чтобы генерировать исключение.

Таблица 67 — Результирующие коды рабочего уровня вызова

Символический идентификатор

Описание

Некорректно_ИдентификаторУзла Недействителен

Описание этого результирующего кода см. в таблице 178. Обозначает, что указанный объект недействителен

Некорректно_ИдентификаторУзла Неизвестен

Описание этого результирующего кода см. в таблице 178. Обозначает, что указанный объект недействителен

Некорректно_Невыполнимо

Выполняемый атрибут не допускает выполнение метода

Некорректно_АргументыОтсутствуют

Клиент не указал все входные аргументы для метода

Некорректно_Слишком

МногоАргументов

Клиент указал больше входных аргументов, чем определено для метода

Некорректно_Недопустимый Аргумент

Описание этого результирующего кода см. в таблице 177.

Используется для указания в результатах уровня операции, что один или несколько входных аргументов недопустимы. Результаты входных аргументов содержат конкретный код статуса для каждого недопустимого аргумента

Некорректно Доступ

ПользователяЗапрещен

Описание этого результирующего кода см. в таблице 177

68

Окончание таблицы 67

ГОСТ Р 71809—2024

Символический идентификатор

Описание

Некорректно_Режим

Безопасности Н едостаточн ы й

Описание этого результирующего кода см. в таблице 178

Некорректно_МетодНедействителен

Идентификатор метода не относится к методу для указанного объекта

Некорректно_Отсутствует

ВзаимодействиеПроцессов

Описание этого результирующего кода см. в таблице 178

Таблица 68 — Результирующие коды входного аргумента вызова

Символический идентификатор

Описание

Некорректно_ВыходЗаПределы

Диапазона

Описание этого результирующего кода см. в таблице 178.

Используется, чтобы указать, что входной аргумент находится за пределами допустимого диапазона, аргумент не имеет правильного типа данных.

Строка байтов структурно аналогична одномерному массиву байтов. Сервер должен принять строку байтов, если ожидается массив байтов.

5.12 Набор служб элемента мониторинга

5.12.1 Модель элемента мониторинга

5.12.1.1 Обзор

Клиенты определяют элементы мониторинга для подписки на данные и события. Каждый элемент мониторинга идентифицирует элемент, который необходимо отслеживать, и подписку, которая будет использоваться для отправки уведомлений. Элементом мониторинга может быть любой атрибут узла.

Уведомления — это структуры данных, которые описывают возникновение изменений данных и событий. Они упаковываются в уведомительные сообщения для передачи клиенту. Подписка периодически отправляет уведомительное сообщение с заданным пользователем интервалом публикации. Цикл, в течение которого отправляются эти сообщения, называется циклом публикации.

Для элементов мониторинга определены четыре основных параметра, которые сообщают серверу, как элемент должен быть выбран, оценен, и должен быть составлен отчет. Эти параметры — интервал выборки, режим мониторинга, фильтр и параметр очереди. Рисунок 15 иллюстрирует эти концепции.

Отчеты могут быть включены или отключены для подписки

Отчеты для элемента мониторинга

Режим мониторинга определяет, включены или отключены выборка и отправка уведомлений

Выборка для элемента мониторинга

Подписка

Атрибуты очередности описывают очередь уведомлений для подписки

Элемент мониторинга

Элемент мониторинга

Элемент мониторинга

Фильтры используются для выбора образцов или событий для отчета

Атрибут

Переменная

Узел

Интервал выборки _____определяет циклическую скорость, используемую сервером для выборки реального элемента

Элемент мониторинга может отслеживать атрибут, значение или узел, предоставляющий события

Рисунок 15 — Модель элемента мониторинга

69

ГОСТ Р 71809—2024

Атрибуты, кроме атрибута значения, отслеживаются только на предмет изменения значения. Фильтр не используется для этих атрибутов. Любое изменение значения этих атрибутов вызывает создание уведомления.

Атрибут значения используется при мониторинге переменных. Значения переменных отслеживаются на предмет изменения значения или изменения их статуса. Фильтры, определенные в настоящем стандарте (см. 7.17.2) и в МЭК 62451-8 [4], используются для определения того, достаточно ли велико изменение значения, чтобы вызвать создание уведомления для переменной.

Объекты и представления могут использоваться для мониторинга событий. События доступны только с узлов, на которых установлен уведомитель события: флажок-признак подписки на события атрибута. Фильтр, определенный в настоящем стандарте (см. 7.17.3), используется для определения того, отправлено ли событие, полученное от узла, клиенту. Фильтр также позволяет выбирать поля «тип события», которые будут содержаться в событии, такие как идентификатор события, тип события, узел источника, время и описание. ОРС UA описывает модель события и базовые типы событий.

Свойства базовых типов событий и представление базовых типов событий в адресном пространстве указаны в ГОСТ Р 71810.

5.12.1.2 Интервал выборки

Каждому элементу мониторинга, созданному клиентом, назначается интервал выборки, который либо наследуется от интервала публикации подписки, либо определен специально для переопределения этой частоты. Отрицательное число указывает, что запрашивается интервал выборки по умолчанию, определенный интервалом публикации подписки. Интервал выборки указывает на максимальную скорость, с которой сервер должен выполнять выборку из своего базового источника на предмет изменений данных.

Клиент должен определить интервал выборки 0, если он подписывается на события.

Назначенный интервал выборки определяет «максимальную» циклическую частоту, которую сервер использует для выборки элемента из его источника. «Лучшее из возможного» в этом контексте означает, что сервер делает все возможное для выборки с этой скоростью. Выборка на более высоких скоростях приемлема, но не обязательна для удовлетворения потребностей клиента. То, как сервер обрабатывает частоту дискретизации и как часто он фактически опрашивает свой источник данных внутри, является деталью реализации сервера. Однако время между значениями, возвращаемыми клиенту, должно быть более или равно интервалу выборки.

Клиент также может указать 0 для интервала выборки, что указывает на то, что сервер должен использовать самую быструю практическую скорость. Ожидается, что серверы будут поддерживать только ограниченный набор интервалов выборки для оптимизации своей работы. Если точный интервал, запрошенный клиентом, не поддерживается сервером, то сервер назначает элементу мониторинга наиболее подходящий интервал, определенный сервером. Он возвращает этот назначенный интервал клиенту. Объект возможностей сервера, определенный в ГОСТ Р 71810, определяет интервалы выборки, поддерживаемые сервером.

Сервер может поддерживать данные, которые собираются на основе модели выборки или генерируются на основе модели на основе исключений. Самый быстрый поддерживаемый интервал выборки может быть равен 0, что указывает на то, что элемент данных основан на исключении, а не в результате выборки в какой-то определенный период. Модель на основе исключений означает, что базовая система не требует выборки и сообщает об изменениях данных.

Клиент может использовать измененные значения интервала выборки в качестве подсказки для установки интервала публикации, а также счетчика активности подписки. Если, например, наименьший измененный интервал выборки элементов мониторинга составляет 5 с, то время до отправки подтверждения активности должно быть более 5 с. Следует обратить внимание, что во многих случаях сервер ОРС UA предоставляет доступ к изолированной системе и, следовательно, не знает логики обновления данных. В этом случае даже если сервер ОРС UA выполняет выборку с согласованной скоростью, данные могут обновляться базовой системой с гораздо меньшей скоростью. В этом случае изменения могут быть обнаружены только при такой меньшей скорости.

Если поведение, с помощью которого базовая система обновляет элемент, известно, оно будет доступно через атрибут «минимальный интервал выборки», определенный в ГОСТ Р 71808. Если сервер указывает значение для атрибута «минимальный интервал выборки», он всегда должен возвращать пересмотренный интервал выборки, который равен или превышает минимальный интервал выборки, если клиент подписывается на атрибут значения.

70

ГОСТ Р 71809—2024

Клиенты также должны знать, что выборка сервером ОРС UA и цикл обновления базовой системы обычно не синхронизируются. Это может вызвать дополнительные задержки в обнаружении изменений, как показано на рисунке 16.

Цикл обнаружения базовой системы (каждые 15 с)

Фактическое изменение происход ит в прямых кавычках: «12»

Рисунок 16 — Типичная задержка при обнаружении изменений

5.12.1.3 Режим мониторинга

Параметр режима мониторинга используется для включения и отключения выборки элемента мониторинга, а также для обеспечения независимого включения и отключения отчетов об уведомлениях. Эта возможность позволяет настроить элемент мониторинга на выборку, выборку и составление отчетов или ни то, ни другое. Отключение выборки не приводит к изменению значений любого другого параметра элемент мониторинга, например его интервала выборки.

Когда элемент мониторинга включен (т. е. когда режим мониторинга изменяется с «дезактивирован на отбор или отчет» или он создается в активном состоянии, сервер должен сообщить о первом образце как можно скорее, и время этого образца становится отправной точкой для следующего интервала выборки.

5.12.1.4 Фильтр

Каждый раз, когда выполняется выборка элемента мониторинга, сервер оценивает выборку, используя фильтр, определенный для элемента мониторинга. Параметр фильтра определяет критерии, которые сервер использует, чтобы определить, следует ли генерировать уведомление для выборки. Тип фильтра зависит от типа отслеживаемого элемента. Например, фильтр изменения данных и фильтр агрегата используются при мониторинге значений переменных, а фильтр событий используется при мониторинге событий. Дополнительные фильтры могут быть определены в других частях системы стандартов ОРС UA.

5.12.1.5 Параметры очереди

Если образец соответствует критериям фильтра, создается уведомление, которое ставится в очередь для передачи по подписке. Размер очереди определяется при создании элемента мониторинга. Когда очередь заполнена и получено новое уведомление, сервер либо отбрасывает самое старое уведомление и ставит в очередь новое, либо заменяет последнее добавленное в очередь значение новым. Элемент мониторинга настроен для использования одной из этих политик отмены при создании элемента мониторинга. Если уведомление отклоняется для значения данных и размер очереди больше единицы, то устанавливается флажок-признак (флаг) переполнения в части информационные флажки кода состояния «значение данных». Если «не учитывать самое старое» имеет значение «верно», самое старое значение удаляется из очереди, а следующее значение в очереди получает установленный

71

ГОСТ Р 71809—2024

флажок. Если «неучитыватьсамоестарое» имеет значение «ложь», последнее добавленное в очередь значение заменяется новым значением. Новое значение получает установленный флажок, чтобы указать потерянные значения в следующем уведомительном сообщении. На рисунке 17 показана обработка переполнения очереди.

Рисунок 17 — Обработка переполнения очереди

Если размер очереди равен единице, она становится буфером, который всегда содержит самое новое уведомление. В этом случае если интервал выборки элемента мониторинга короче, чем интервал публикации подписки, элемент мониторинга будет иметь избыточную выборку, и клиент всегда будет получать самое актуальное значение. Политика отбрасывания игнорируется, если размер очереди равен единице.

С другой стороны, клиент может захотеть подписаться на непрерывный поток уведомлений без каких-либо пропусков, но не хочет, чтобы о них сообщалось с интервалом выборки. В этом случае элемент мониторинга будет создан с размером очереди, достаточно большим для хранения всех уведомлений, сгенерированных между двумя последовательными циклами публикации. Затем, в каждом цикле публикации, подписка будет отправлять все уведомления, поставленные в очередь для отслеживаемого элемента, клиенту. Сервер должен возвращать уведомления для любого конкретного элемента в том же порядке, в котором они находятся в очереди.

Сервер может выполнять выборку с большей частотой, чем интервал выборки, для поддержки других клиентов; клиент должен ожидать значений только в согласованном интервале выборки. Сервер может доставить меньше значений, чем продиктовано интервалом выборки, на основе ограничений фильтра и реализации. Если фильтр изменения данных настроен для элемента мониторинга, он всегда применяется к самому новому значению в очереди по сравнению с текущим образцом.

Если, например, абсолютная полоса нечувствительности в фильтре изменения данных равна «10», очередь может состоять из значений в следующем порядке:

100

111

100

89

100

Организация очереди данных может привести к неожиданному поведению при использовании фильтра полосы нечувствительности, а количество обнаруженных изменений может превышать коли-

72

ГОСТ Р 71809—2024

чество значений, которые можно поддерживать. Новое первое значение в очереди не может превышать предел полосы нечувствительности предыдущего значения, отправленного клиенту.

Размер очереди — это максимальное значение, поддерживаемое сервером при мониторинге событий. В этом случае за буфер событий отвечает сервер. Если события потеряны, в очередь помещается событие типа переполнение очереди событий. Это событие генерируется, когда первое событие отбрасывается в элемент мониторинга, подписанный на события. Он помещается в очередь элемента мониторинга в дополнение к размеру очереди, определенной для этого элемента мониторинга, без отбрасывания любого другого события. Если для параметра «неучитыватьсамоестарое» установлено значение верно, он помещается в начало очереди и никогда не отбрасывается, в противном случае — помещается в конце. Агрегирующий сервер не должен передавать такое событие. Он должен обрабатываться так же, как и другие сценарии ошибки соединения.

5.12.1.6 Триггерная модель

Служба элемента мониторинга позволяет добавлять элементы, о которых сообщается только при срабатывании какого-либо другого элемента (триггерного элемента). Это делается путем создания связей между триггерными элементами и элементами для отчета. Режим мониторинга элементов для отчета установлен на выборку, поэтому уведомления будут отбираться и помещаться в очередь, не сообщая о них. Рисунок 18 иллюстрирует эту концепцию.

Триггерный элемент---------- определяет набор элементов, подвергнутых триггерам

Триггерные ссылки связывают триггерные элементы с элементами для отчета. Эти ссылки определены для

Элементы для отчета - это элементы мониторинга, уведомления о которых отправляются при срабатывании триггерного элемента. Их срок существования не зависит от времени жизни триггерных элементов, которые на них ссылаются

триггерного элемента и удаляются при удалении триггерного элемента

Рисунок 18 — Триггерная модель

Триггерный механизм — это полезная функция, которая позволяет клиентам уменьшить объем данных в сети, настроив некоторые элементы на частую выборку, но сообщать только тогда, когда происходит какое-либо другое событие.

Указаны следующие триггерные поведения:

а) если режим мониторинга триггерного элемента — отбор, то не сообщается, когда триггерный элемент запускает элементы для отчета;

б) если режим мониторинга триггерного элемента — отчет, то сообщается, когда триггерный элемент запускает элементы для отчета;

в) если режим мониторинга триггерного элемента — дезактивирован, то триггерный элемент не запускает элементы для отчета;

г) если режим мониторинга элемента для отчета — отбор, то сообщается, когда триггерный элемент запускает элементы для отчета;

д) если режим мониторинга элемента, о котором необходимо сообщить, — отчет, это фактически приводит к игнорированию триггерного элемента. Все уведомления об элементах для отчета отправляются после истечения интервала публикации;

е) если режим мониторинга объекта для отчета — дезактивирован, то выборка объекта для отчета не будет производиться, и, следовательно, не будет никаких уведомлений для отчета;

ж) первый триггер должен произойти, когда первое уведомление ставится в очередь для триггерного элемента после создания ссылки.

Клиенты создают и удаляют триггерные связи между триггерным элементом и набором элементов для отчета. Если элемент мониторинга, представляющий элемент для отчета, удаляется до удаления связанной с ним триггерной ссылки, триггерная ссылка также удаляется, но в остальном элемент запуска не затрагивается.

73

ГОСТ Р 71809—2024

Удаление элемента мониторинга не следует путать с удалением контролируемого атрибута. Если узел, содержащий контролируемый атрибут, удален, элемент мониторинга генерирует уведомление с кодом состояния «Некорректно_ИдентификаторУзлаНеизвестен», который указывает на удаление, но элемент мониторинга не удаляется.

5.12.2 Создание элементов мониторинга

5.12.2.1 Описание

Настоящая служба используется для создания и добавления одного или нескольких элементов мониторинга в подписку. Элемент мониторинга автоматически удаляется сервером при удалении подписки. Удаление элемента мониторинга приводит к удалению всего набора связанных с ним ссылок на элементы, но не влияет на элементы элемента мониторинга, на которые ссылаются триггерные элементы.

Повторный вызов службы создания элементов мониторинга для добавления небольшого количества элементов мониторинга каждый раз может отрицательно сказаться на производительности сервера. Вместо этого клиенты должны по возможности добавлять в подписку полный набор элементов мониторинга.

Когда добавляется элемент мониторинга, сервер выполняет для него обработку инициализации. Обработка инициализации определяется типом уведомления отслеживаемого элемента. Типы уведомлений указаны в спецификации типа доступа стандарта, например в МЭК 62451-8 [4].

Когда пользователь добавляет предмет контроля, к которому пользователю отказано в доступе для чтения, операция добавления для элемента должна быть успешной, и в ответе на публикацию должен быть возвращен отрицательный статус «Некорректно_НеЧитается» или «Некорректно_Доступ-ПользователяЗапрещен». Это то же самое поведение для случая, когда права доступа изменяются после вызова создания элементов мониторинга. Если права доступа меняются на права чтения, сервер должен начать отправку данных для элемента мониторинга. Та же процедура должна применяться к диапазону индексов, который не доставляет данные для текущего значения, но может доставлять данные в будущем.

После создания элемента мониторинга допускается удаление узлов мониторинга из адресного пространства. Это не влияет на истинность элемента мониторинга, но «Некорректно_Идентификатор УзлаНеизвестен» должен быть возвращен в ответе публикации. Элемент мониторинга снова станет истинным, если узел будет снова добавлен в адресное пространство, а элемент мониторинга все еще существует. Если известно, что идентификатор узла является истинным для сервера, но соответствующие атрибуты узла в настоящее время недоступны, сервер может разрешить создание элемента мониторинга и вернуть соответствующий код состояния «неверно» в ответе публикации.

Параметр возврата создания элементов мониторинга или последней службы изменения элементов мониторинга применяется к элементам мониторинга и используется в качестве параметров диагностической информации при отправке уведомлений в ответе «публикация».

Недопустимые значения параметров запроса, которые могут быть изменены, не вызывают ошибок. Вместо этого сервер выберет значения по умолчанию и укажет их в соответствующем измененном параметре.

ОРС UA рекомендует, чтобы клиент повторно использовал подписку после короткого прерывания сети, активировав существующую сессию на новом защищенном канале, как описано в 6.7. Если клиент вызвал службу создания элементов мониторинга во время прерывания сети и вызов на сервере был успешным, но не вернулся клиенту, тогда клиент не знает, являлся ли вызов успешным. Клиент может получать изменения данных для этих отслеживаемых элементов, но не может их удалить, поскольку ему неизвестен дескриптор сервера для каждого элемента мониторинга. Клиент также не может определить, было ли создание успешным. Удаление и повторное создание подписки также не является вариантом, поскольку может быть несколько элементов контроля, работающих в обычном режиме, которые не следует прерывать. Для разрешения ситуации объект сервера предоставляет метод получения элементов мониторинга, возвращающий список дескрипторов сервера и клиента для элементов мониторинга в подписке. Этот метод определен в ГОСТ Р 71810.

5.12.2.2 Параметры

Параметры службы определены в таблице 69.

74

Таблица 69 — Параметры службы создания элементов мониторинга

ГОСТ Р 71809—2024

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса (определение «заголовок запроса» см. в 7.28)

Подписка

Идентификатор целого числа

Назначенный сервером идентификатор для подписки, который будет сообщать об уведомлениях для этого предмета контроля (определение для идентификатора целого числа см. в 7.14)

Временные отметки для возврата

Тип-перечисление «временная отметка для возврата»

Тип-перечисление, определяющий атрибуты временной отметки, передаваемые для каждого элемента мониторинга. Тип-перечисление «временная отметка для возврата» определен в 7.35.

При контроле событий это относится только к полям событий типа «значение данных»

Элементы

для создания

Элементы мониторинга контроля «создать запрос»

Список элементов мониторинга, который будет создан и назначен указанной подпиской. Эта структура определяется в соответствии со следующими элементами с отступом

Предмет для мониторинга

Чтение идентификатора значения

Определяет предмет в адресном пространстве для контроля. Для контроля событий элемент идентификатор атрибута структуры «чтение идентификатора значения» является идентификатором атрибута «уведомление о событиях». Тип «чтение идентификатора значения» определен в 7.24

Режим мониторинга

Тип-перечисление «режим контроля»

Режим контроля, который должен быть установлен для элемента мониторинга. Тип-перечисление «режима контроля» определен в 7.18

Запрошенные параметры

Параметры мониторинга

Запрошенные параметры контроля. Серверы согласовывают значения этих параметров на основе подписки и возможностей сервера. Тип «параметры мониторинга» определен в 7.16. Общие параметры ответа (определение «заголовок ответа» см. в 7.29)

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа (определение «заголовок ответа» см. в 7.29)

Результаты

Элемент мониторинга «создание результата»

Список результатов, которые должны быть созданы. Размер и порядок списка соответствуют размеру и порядку параметра запроса элементов для создания. Эта структура определяется в соответствии со следующими элементами с отступом

Код состояния

Код состояния

Код состояния для элемента мониторинга, который должен быть создан (определение «код состояния» см. 7.34)

Идентификатор предмета контроля

Идентификатор целого числа

Идентификатор, назначенный сервером для элемента мониторинга (определение «идентификатор целого числа» см. в 7.14). Этот идентификатор уникален в пределах подписки, но может не быть уникальным в пределах сервера или сеанса. Этот параметр присутствует только в том случае, если код состояния указывает, что элемент мониторинга был успешно создан

75

ГОСТ Р 71809—2024

Окончание таблицы 69

Имя

Тип

Описание

Пересмотренный интервал выборки

Продолжительность

Фактический интервал выборки, который сервер будет использовать.

Это значение зависит от ряда факторов, включая возможности базовой системы. Сервер всегда должен возвращать пересмотренный интервал выборки, который равен запрошенному интервалу выборки или превышает его. Если запрошенный интервал выборки превышает максимальное значение интервала выборки, поддерживаемого сервером, возвращается максимальное значение интервала выборки

Измененный размер очереди

Счетчик

Фактический размер очереди, которую будет использовать сервер

Результат фильтра

Расширяемый параметр контроля результата фильтра

Содержит все измененные значения параметров или результаты ошибок, связанные с фильтром мониторинга, указанным в запрошенных параметрах. Этот параметр может иметь значение «пусто», если ошибок не было.

Тип параметра «результат фильтра мониторинга» — это тип параметра с возможностью подключения расширений, указанный в 7.17

Диагностическая информация

Диагностическая информация

Список диагностической информации для создания элемента мониторинга (определение «диагностическая информация» см. в 7.8). Размер и порядок списка соответствуют размеру и порядку параметра запроса элементов для создания. Этот список пуст, если диагностическая информация не была запрошена в заголовке запроса или если диагностическая информация не была обнаружена при обработке запроса

5.12.2.3 Результаты службы

В таблице 70 определены результаты службы, специфичные для этой службы. Общие коды состояния определены в таблице 177.

Таблица 70 — Результирующие коды службы создания элементов мониторинга

Символический идентификатор

Описание

Некорректно_НечегоДелать

Описание этого результирующего кода см. в таблице 177

Некорректно_СлишкомМногоОпераций

Описание этого результирующего кода см. в таблице 177

Некорректно_временныеОтметки

ДляВозвратаНедействительны

Описание этого результирующего кода см. в таблице 177

Некорректно_Идентификатор

ПодпискиНедействителен

Описание этого результирующего кода см. в таблице 177

5.12.2.4 Коды состояния

В таблице 71 определены значения рабочего уровня параметра «код состояния, специфичный для данной службы». Общие коды состояния определены в таблице 178.

Таблица 71 — Результирующие коды рабочего уровня создания элементов мониторинга

Символический идентификатор

Описание

Некорректно_РежимКонтроля

Недействительный

Описание этого результирующего кода см. в таблице 178

Некорректно_ИдентификаторУзла Недействителен

Описание этого результирующего кода см. в таблице 178

76

Окончание таблицы 71

ГОСТ Р 71809—2024

Символический идентификатор

Описание

Некорректно_ИдентификаторУзла Неизвестен

Описание этого результирующего кода см. в таблице 178

Некорректно_Идентификатор АтрибутаНедействителен

Описание этого результирующего кода см. в таблице 178

Некорректно_ДиапазонИндексов

Недействительный

Описание этого результирующего кода см. в таблице 178

Некорректно_НетДанныхДиапазона Индекса

Описание этого результирующего кода см. в таблице 178

Некорректно_НетДанныхДиапазона Индекса

Если размерность массива имеет фиксированную длину, которая не может измениться, и в указанном диапазоне индексов нет данных, «Некорректно_НетДанныхДиапазонаИндекса» возвращается в создание элементов мониторинга. В противном случае, если длина массива является динамической, сервер должен вернуть этот статус в ответе на публикацию для элемента мониторинга, если в пределах диапазона нет данных

Некорректно_КодированиеДанных Недействительно

Описание этого результирующего кода см. в таблице 178

Некорректно_КодированиеДанных НеПоддерживается

Описание этого результирующего кода см. в таблице 178

Некорректно_ПредметКонтроля

Недействительный

Описание этого результирующего кода см. в таблице 178

Некорректно_ФильтрПредмета КонтроляНеПоддерживается

Описание этого результирующего кода см. в таблице 178

Некорректно_ФильтрНеРазрешен

Описание этого результирующего кода см. в таблице 177

Некорректно_СлишкомМного ЭлементовМониторинга

Сервер достиг максимального количества элементов мониторинга

5.12.3 Изменение элементов мониторинга

5.12.3.1 Описание

Данная служба используется для изменения элемента мониторинга подписки. Изменения в настройках элемента мониторинга немедленно применяются сервером. Они вступают в силу в кратчайшие сроки, но не позднее, чем после дважды обновленного пересмотренного интервала выборки.

Параметр возврата диагностической информации в заголовке запроса создания элементов мониторинга или последней службы изменения элементов мониторинга применяется к элементам мониторинга и используется в качестве параметров диагностической информации при отправке уведомлений в ответе публикации.

Недопустимые значения запроса параметров запроса, которые могут быть изменены, не вызывают ошибок. Вместо этого сервер выберет значения по умолчанию и укажет их в соответствующем измененном параметре.

5.12.3.2 Параметры

Параметры службы определены в таблице 72.

77

ГОСТ Р 71809—2024

Таблица 72 — Параметры службы изменения элементов мониторинга

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса (определение заголовок запроса см. в 7.28)

Подписка

Идентификатор целого числа

Идентификатор, назначенный сервером для подписки, используемый для квалификации отслеживаемого идентификатора элементов мониторинга (см. 7.14 для определения идентификатора целого числа)

Временные отметки для возврата

Тип-перечисление «временные отметки для возврата»

Тип-перечисление, указывающий атрибуты временной метки, которые должны быть переданы для каждого изменяемого элемента мониторинга. Тип-перечисление «временные отметки для возврата» определен в 7.35. При контроле событий это относится только к полям событий типа «значение данных»

Предметы для изменения

Запрос изменения предмета контроля

Список элементов мониторинга, которые необходимо изменить. Эта структура определяется в соответствии со следующими элементами с отступом

Идентификатор элемента мониторинга

Идентификатор целого числа

Идентификатор, назначенный сервером для элемента мониторинга

Запрошенные параметры

Элементы мониторинга

Запрошенные значения для параметров контроля. Тип элемента мониторинга определен в 7.16.

Если количество уведомлений в очереди превышает новый размер очереди, уведомления, превышающие размер, должны быть отбракованы в соответствии с настроенной политикой отбраковки

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа (определение «заголовок ответа» см. в 7.29)

Результаты

Запрос изменения элемента мониторинга

Список результатов элементов мониторинга для изменения. Размер и порядок списка соответствуют размеру и порядку параметра запроса элементов для возврата. Эта структура определяется в соответствии со следующими элементами с отступом

Код состояния

Код состояния

Код состояния для элемента мониторинга, который должен быть изменен (см. 7.34 для определения кода состояния)

Пересмотренный интервал выборки

Продолжительность

Фактический интервал выборки, который сервер будет использовать. Сервер возвращает значение, которое он фактически будет использовать для интервала выборки. Это значение зависит от ряда факторов, включая возможности базовой системы.

Сервер всегда должен возвращать пересмотренный интервал выборки, который равен запрошенному интервалу выборки или превышает его. Если запрошенный интервал выборки превышает максимальное значение интервала выборки, поддерживаемое сервером, возвращается максимальное значение интервала выборки

Измененный размер очереди

Счетчик

Фактический размер очереди, которую будет использовать сервер

78

Окончание таблицы 72

ГОСТ Р 71809—2024

Имя

Тип

Описание

Результат фильтра

Расширяемый параметр «результат фильтра контроля»

Содержит все измененные значения параметров или результаты ошибок, связанные с фильтром мониторинга, указанным в запросе. Этот параметр может иметь значение «пусто», если ошибок не было. Тип параметра «результат фильтра мониторинга» — это расширяемый тип параметра, указанный в 7.17

Диагностическая информация

Диагностическая информация

Список диагностической информации, которую необходимо изменить для элементов мониторинга (определение для диагностической информации см. в 7.8). Размер и порядок списка соответствуют размеру и порядку параметра запроса «элементы для изменения». Этот список пуст, если диагностическая информация не была запрошена в заголовке запроса или если диагностическая информация не была обнаружена при обработке запроса

5.12.3.3 Результаты службы

В таблице 73 определены результаты службы, специфичные для этой службы. Общие коды состояния определены в таблице 177.

Таблица 73 — Результирующие коды службы изменения элементов мониторинга

Символический идентификатор

Описание

Некорректно_НечегоДелать

Описание этого результирующего кода см. в таблице 177

Некорректно_СлишкомМногоОпераций

Описание этого результирующего кода см. в таблице 177

Некорректно_ВременныеОтметки

ДляВозвратаНедействительно

Описание этого результирующего кода см. в таблице 177

Некорректно_Некорректный_

ИдентификаторПодпискиНедействителен

Описание этого результирующего кода см. в таблице 177

5.12.3.4 Коды состояния

В таблице 74 определены значения для рабочего уровня параметра «код состояния», специфичного для данной службы. Общие коды состояния определены в таблице 178.

Таблица 74 — Результирующие коды рабочего уровня изменения элементов мониторинга

Символический идентификатор

Описание

Некорректно_ИдентификаторЭлемента МониторингаНедействителен

Описание этого результирующего кода см. в таблице 178

Некорректно_ЭлементМониторинга Недействительно

Описание этого результирующего кода см. в таблице 178

Некорректно_ФильтрЭлемента

МониторингаНеПоддерживается

Описание этого результирующего кода см. в таблице 178

Некорректно_ФильтрНеРазрешен

Описание этого результирующего кода см. в таблице 177

5.12.4 Набор «режим контроля»

5.12.4.1 Описание

Данная служба используется для установки режима контроля для одного или нескольких элементов мониторинга подписки. Установка режима на отключенный приводит к удалению всех уведомлений в очереди.

5.12.4.2 Параметры

Параметры службы определены в таблице 75.

79

ГОСТ Р 71809—2024

Таблица 75 — Параметры службы набора режима мониторинга

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса (определение заголовок запроса см. в 7.28)

Идентификатор подписки

Идентификатор целого числа

Идентификатор, назначенный сервером для подписки, используемый для квалификации идентификаторов элемента мониторинга (определение для идентификатора целого числа см. в 7.14)

Режим мониторинга

Тип-перечисление режим мониторинга

Режим контроля, который необходимо установить для элементов мониторинга. Тип-перечисление «режим мониторинга» определен в 7.18

Идентификатор элементов мониторинга

Идентификатор целого числа

Список идентификаторов, назначенных сервером для элементов мониторинга

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа (определение заголовок ответа см. в 7.29)

Результаты

Код состояния

Список кодов состояния для элементов мониторинга, которые необходимо включить/отключить (определение кода состояния см. в 7.34). Размер и порядок списка соответствуют размеру и порядку параметра запроса «идентификаторы элементов мониторинга»

Диагностическая информация

Диагностическая информация

Список диагностической информации для элементов мониторинга, которые необходимо включить/отключить (определение для диагностической информации см. в 7.8). Размер и порядок списка соответствуют размеру и порядку параметра запроса идентификаторы элементов мониторинга. Этот список пуст, если диагностическая информация не была запрошена в заголовке запроса или если диагностическая информация не была обнаружена при обработке запроса

5.12.4.3 Результаты службы

В таблице 76 определены результаты службы, специфичные для этой службы. Общие коды состояния определены в таблице 177.

Таблица 76 — Результирующие коды служб набора режима мониторинга

Символический идентификатор

Описание

Некорректно_НечегоДелать

Описание этого результирующего кода см. в таблице 177

Некорректный_СлишкомМногоОпераций

Описание этого результирующего кода см. в таблице 177

Некорректно_ИдентификаторПодписки Недействителен

Описание этого результирующего кода см. в таблице 177

Некорректно_РежимМониторинга

Недействительный

Описание этого результирующего кода см. в таблице 178

5.12.4.4 Коды состояния

В таблице 77 определены значения параметра результатов рабочего уровня, специфичных для этой службы. Общие коды состояния определены в таблице 178.

80

Таблица 77 — Результирующие коды рабочего уровня набора режима мониторинга

ГОСТ Р 71809—2024

Значение

Описание

Некорректно_ИдентификаторЭлемента МониторингаНедействителен

Описание этого результирующего кода см. в таблице 178

5.12.5 Набор взведения триггера

5.12.5.1 Описание

Данная служба используется для создания и удаления триггерных ссылок для триггерного элемента. Триггерный элемент и элементы для отчета должны принадлежать одной и той же подписке.

Каждая триггерная ссылка связывает триггерный элемент с элементом для отчета. Каждая ссылка представлена идентификатором элемента мониторинга для элемента для отчета. Если этот идентификатор недействителен, возвращается код ошибки.

Для описания триггерной модели см. 5.12.1.6.

5.12.5.2 Параметры

Параметры службы определены в таблице 78.

Таблица 78 — Параметры службы набора взведения триггера

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса (определение «заголовок запроса» см. в 7.28)

Идентификатор подписки

Идентификатор целого числа

Идентификатор, присвоенный сервером для подписки, который содержит триггерный элемент и элементы для отчета (определение «идентификатор целого числа» см. в 7.14)

Идентификатор триггерного элемента

Идентификатор целого числа

Присвоенный сервером идентификатор предмета контроля, используемого в качестве триггерного элемента

Ссылки для добавления

Идентификатор целого числа

Список присвоенных сервером идентификаторов элементов для отчета, которые должны быть добавлены в качестве триггерных ссылок. Список ссылок для удаления обрабатывается перед ссылками для добавления

Ссылки для удаления

Идентификатор целого числа

Список присвоенных сервером идентификаторов элементов, которые необходимо сообщить для триггерных ссылок, которые должны быть удалены. Список ссылок для удаления обрабатывается перед ссылками для добавления

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа (определение «заголовок ответа» см. в 7.29)

Добавление результатов

Код состояния

Список кодов состояния для добавляемых элементов (см. 7.34 для определения кода состояния). Размер и порядок списка соответствуют размеру и порядку параметра ссылки для добавления, указанного в запросе

Добавление диагностической информации

Диагностическая информация

Список диагностической информации для добавления ссылок (определение «диагностическая информация» см. в 7.8) Размер и порядок списка соответствуют размеру и порядку параметра запроса ссылки для добавления. Этот список пуст, если диагностическая информация не была запрошена в заголовке запроса или если диагностическая информация не была обнаружена при обработке запроса

81

ГОСТ Р 71809—2024

Окончание таблицы 78

Имя

Тип

Описание

Удаление результатов

Код состояния

Список кодов состояния для элементов, которые необходимо удалить. Размер и порядок списка соответствуют размеру и порядку параметра ссылки для удаления, указанного в запросе

Удаление диагностической информации

Диагностическая информация

Список диагностической информации для ссылок, которые необходимо удалить. Размер и порядок списка соответствуют размеру и порядку параметра запроса. Этот список пуст, если диагностическая информация не была запрошена в заголовке запроса или если диагностическая информация не была обнаружена при обработке запроса

5.12.5.3 Результаты службы

В таблице 79 определены результаты службы, специфичные для этой службы. Общие коды состояния определены в 7.34.

Таблица 79 — Результирующие коды службы набора взведения триггера

Символический идентификатор

Описание

Некорректно_НечегоДелать

Описание этого результирующего кода см. в таблице 177

Некорректно_СлишкомМногоОпераций

Описание этого результирующего кода см. в таблице 177

Некорректно_Идентификатор

ПодпискиНедействителен

Описание этого результирующего кода см. в таблице 177

Некорректный_Идентификатор

ЭлементаМониторингаНедействителен

Описание этого результирующего кода см. в таблице 178

5.12.5.4 Коды состояния

В таблице 80 определены значения результатов параметров, специфичные для этой службы. Общие коды состояния определены в таблице 178.

Таблица 80 — Результирующие коды рабочего уровня набора взведения триггера

Символический идентификатор

Описание

Некорректно_Идентификатор

ЭлементаМониторингаНедействителен

Описание этого результирующего кода см. в таблице 178

5.12.6 Удаление элементов мониторинга

5.12.6.1 Описание

Данная служба используется для удаления одного или нескольких элементов мониторинга подписки. При удалении элементов мониторинга также удаляются ссылки на триггерный элемент.

Однако успешное удаление элемента мониторинга может не удалить уведомления для элемента мониторинга, которые находятся в процессе отправки подпиской. Таким образом, клиенты могут получать уведомления о элементе мониторинга после того, как они получили положительный ответ о том, что элемент мониторинга был удален.

5.12.6.2 Параметры

Параметры службы определены в таблице 81.

82

Таблица 81 — Параметры службы удаления элементов мониторинга

ГОСТ Р 71809—2024

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса (определение «заголовок запроса» см. в 7.28)

Идентификатор подписки

Идентификатор целого числа

Идентификатор, присвоенный сервером для подписки, который содержит элементы мониторинга, которые необходимо удалить (определение «идентификатор целого числа» см. в 7.14)

Идентификатор элементов мониторинга

Идентификатор целого числа

Список идентификаторов, присвоенных сервером для элемента мониторинга, которые необходимо удалить

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа (определение «заголовок ответа» см. в 7.29)

Результаты

Код состояния

Список кодов состояния для элемента мониторинга, который необходимо удалить (определение «код состояния» см. 7.34). Размер и порядок списка соответствуют размеру и порядку параметра запроса «идентификаторы элемента мониторинга»

Диагностическая информация

Диагностическая информация

Список диагностической информации для элементов мониторинга, которые необходимо удалить (определение «диагностическая информация» см. в 7.8). Размер и порядок списка соответствуют размеру и порядку параметра запроса «идентификаторы элемента мониторинга». Этот список пуст, если диагностическая информация не была запрошена в заголовке запроса или если диагностическая информация не была обнаружена при обработке запроса

5.12.6.3 Результаты службы

В таблице 82 определены результаты службы, специфичные для этого службы. Общие коды состояния определены в таблице 177.

Таблица 82 — Результирующие коды службы удаления элементов мониторинга

Символический идентификатор

Описание

Некорректно_НечегоДелать

Описание этого результирующего кода см. в таблице 177

Некорректно_СлишкомМногоОпераций

Описание этого результирующего кода см. в таблице 177

Некорректно_ИдентификаторПодписки Недействителен

Описание этого результирующего кода см. в таблице 177

5.12.6.4 Коды состояния

В таблице 83 определены значения параметра результатов, относящиеся к этой службе. Общие коды состояния определены в таблице 178.

Таблица 83 — Результирующие коды рабочего уровня удаления элементов мониторинга

Символический идентификатор

Описание

Некорректно_ИдентификаторЭлемента МониторингаНедействителен

Описание этого результирующего кода см. в таблице 178

83

ГОСТ Р 71809—2024

5.13 Набор службы подписки

5.13.1 Модель подписки

5.13.1.1 Описание

(описание элементов мониторинга см. в 5.12.1).

а) Подписки имеют набор элементов мониторинга, назначенных им клиентом. Элементы мониторинга генерируют уведомления, которые должны быть отправлены клиенту, имеющему подписку публикации. Каждый раз при выполнении сервер пытается отправить клиенту уведомительное сообщение.

б) Подписки имеют интервал публикации. Интервал подписки используются для отправки уведомлений клиенту. Их общий порядок работы кратко изложен ниже. Их точный порядок работы описан в 5.13.1.2.

в) Уведомительные сообщения отправляются клиенту в ответ на запросы публикации. Запросы публикации обычно ставятся в очередь для сессии по мере их получения, и один из них извлекается из очереди и обрабатывается подпиской, связанной с этим сессией, для каждого цикла публикации, если есть уведомления для отчета. Если их нет, запрос публикации не удаляется из очереди из сессии, и сервер ждет до следующего цикла и снова проверяет наличие уведомлений.

г) В начале цикла, если есть уведомления для отправки, но нет запросов публикации в очереди, сервер переходит в состояние ожидания для получения запроса публикации. Когда он получен, он немедленно обрабатывается, не дожидаясь следующего цикла публикации.

д) Уведомительные сообщения уникально идентифицируются порядковыми номерами, которые позволяют клиентам обнаруживать пропущенные сообщения. Интервал публикации также определяет интервал выборки по умолчанию для элементов мониторинга.

е) В подписках имеется счетчик активности соединения, который подсчитывает количество последовательных циклов публикации, в которых не было уведомлений для сообщения клиенту. По достижении максимального числа активности соединения запрос на публикацию удаляется из очереди и используется для возврата сообщения об активности соединения. Это сообщение об активности соединения информирует клиента о том, что подписка все еще активна. Каждое сообщение об активности соединения является ответом на запрос публикации, в котором параметр «уведомительное сообщение» не содержит никаких уведомлений, но содержит порядковый номер следующего уведомительного сообщения, подлежащего отправке. В следующих пунктах термин «уведомительное сообщение» относится к ответу на запрос публикации, в котором параметр «уведомительное сообщение» фактически содержит одно или несколько уведомлений, в отличие от сообщения об активности соединения, в котором этот параметр не содержит уведомлений. Максимальное насчитанное число активности соединения устанавливается клиентом во время создания подписки и может быть впоследствии изменен с помощью службы изменения подписки. Подобно обработке уведомлений, описанной выше в пункте в), если в очереди нет запросов на публикацию, сервер ожидает получения следующего запроса и немедленно отправляет подтверждение активности соединения, не дожидаясь следующего цикла публикации.

ж) Публикация с помощью подписки может быть включена или отключена клиентом при создании или впоследствии использования службы установления режима публикации. При отключении подписка перестает отправлять уведомительное сообщение клиенту. Тем не менее подписка продолжает выполняться циклически и отправляет клиенту сообщения об активности соединения.

и) Подписки имеют счетчик времени жизни, который подсчитывает количество последовательных циклов публикации, в которых не было доступных запросов публикации для отправки ответа публикации для подписки. Любой вызов службы, который использует идентификатор подписки или обработку ответа публикации, сбрасывает счетчик времени существования этой подписки. Когда этот счетчик достигает значения, рассчитанного для срока действия подписки на основе параметра «максимальное количество сообщений об активности соединения в службе создания подписки» (5.13.2), подписка закрывается. Закрытие подписки приводит к удалению элементов мониторинга. Кроме того, сервер должен отправить уведомительное сообщение — уведомление об изменении статуса с кодом состояния «Некорректно_БлокировкаПоПревышениюВремени». Тип уведомительного сообщения «уведомление об изменении статуса» определен в 7.20.4.

к) Сессии поддерживают очередь повторной передачи отправленных уведомительных сообщений. Уведомительные сообщения сохраняются в этой очереди до тех пор, пока они не будут подтверждены. Сессия должна поддерживать размер очереди на повторную передачу, по крайней мере, в два раза превышающий количество запросов публикации за сессию, поддерживаемых сервером. Минимальный размер очереди на повторную передачу может быть изменен профилем в МЭК 62541-7 [1].

84

ГОСТ Р 71809—2024

Минимальное количество запросов публикации за сессию, которое должен поддерживать сервер, определено в МЭК 62541-7 [1]. Клиенты должны подтверждать уведомительные сообщения по мере их получения. В случае переполнения очереди повторной передачи самое старое отправленное уведомительное сообщение удаляется. Если подписка передается в другую сессию, помещенные в очередь уведомительные сообщения для этой подписки перемещаются из старого сообщения сессии в новое.

Порядковый номер — это 32-разрядное целое число без знака, которое увеличивается на единицу для каждого отправленного уведомительного сообщения. Значение 0 никогда не используется для порядкового номера. Первое уведомительное сообщение, отправленное в подписку, имеет порядковый номер 1. Если порядковый номер перемещается, он перемещается на 1.

Когда подписка создается, первое сообщение отправляется в конце первого цикла публикации, чтобы проинформировать клиента о том, что подписка действует. Уведомительное сообщение отправляется, если есть уведомления, готовые к отправке. Если их нет, вместо этого отправляется сообщение об активности соединения, которое содержит порядковый номер 1, что указывает на то, что первое уведомительное сообщение еще не было отправлено. Это единственный раз, когда сообщение об активности соединения отправляется без ожидания достижения максимального числа сообщений об активности соединения, как указано в пункте е).

Клиент должен быть готов к тому, что ответы на публикацию для подписки будут приходить чаще, чем соответствующий интервал публикации. Одним из примеров является ситуация, когда количество доступных уведомлений превышает параметр подписки «максимальное количество уведомлений за публикацию». Клиент всегда может контролировать время ответов на публикацию, не ставя запросы публикации в очередь. Если клиент не ставит в очередь запросы публикации на сервере, сервер может отправить ответ публикации только в том случае, если он получает новый запрос публикации. Это увеличит задержку доставки уведомлений, но позволит клиенту регулировать количество полученных ответов публикации в ситуациях с высокой нагрузкой.

Значение порядкового номера никогда не сбрасывается в течение срока действия подписки. Следовательно, один и тот же порядковый номер не может повторно использоваться в подписке до тех пор, пока не будет отправлено более четырех миллиардов уведомительных сообщений. При постоянной скорости одной тысячи уведомительных сообщений в секунду для данной подписки повторное использование одного и того же порядкового номера может занять около пятидесяти дней. Это позволяет клиентам безопасно рассматривать порядковые номера как уникальные.

Порядковые номера также используются клиентами для подтверждения получения уведомительного сообщения. Запросы на публикацию позволяют клиенту подтвердить все уведомления до определенного порядкового номера и подтвердить порядковый номер последнего полученного уведомительного сообщения. Между ними может быть один или несколько промежутков (разрывов). Подтверждения позволяют серверу удалять уведомительное сообщение из очереди на повторную передачу.

Клиенты могут запросить повторную передачу выбранных уведомительных сообщений с помощью службы повторной публикации. Эта служба возвращает запрошенное сообщение.

Подписки предназначены для работы независимо от фактического коммуникационного соединения между клиентом ОРС UA и сервером и независимо от сессии. Кратковременные прерывания связи можно обрабатывать без потери данных или событий. Чтобы гарантировать, что более длительные прерывания связи или запланированные отключения могут обрабатываться без потери данных или событий, сервер ОРС UA может поддерживать длительные подписки. Если эта функция поддерживается, сервер принимает большое значение параметра «количество запрошенного срока действия подписки» и большое значение параметра «размер очереди элемента мониторинга». В 6.8 описано, как можно создавать и использовать долговечные подписки.

5.13.1.2 Таблица состояния

Таблица состояний формально описывает работу подписки. Данная таблица описывает следующую модель операций. Это описание применяется, когда публикация включена или отключена для подписки.

После создания подписки сервер запускает таймер публикации и перезапускает его по истечении срока его действия. Если таймер истекает количество раз, определенное для срока действия подписки, без получения запроса службы подписки от клиента, подписка предполагает, что клиент больше не присутствует, и прекращает свое действие.

Клиенты отправляют запросы на публикацию на серверы для получения уведомлений. Запросы на публикацию не направлены ни на одну подписку и, следовательно, могут использоваться любой подпиской. Каждый содержит подтверждения для одной или нескольких подписок. Эти подтверждения

85

ГОСТ Р 71809—2024

обрабатываются при получении запроса публикации. Затем сервер помещает запрос в очередь, общую для всех подписок, за исключением следующих случаев:

а) предыдущий ответ на публикацию указывал, что имеются еще несколько уведомлений, готовых к передаче, и больше не было запросов на публикацию в очереди для их передачи;

б) таймер публикации подписки истек, и должны были быть отправлены либо уведомления, либо сообщение о сохранении активности, которое необходимо было отправить.

В этих случаях вновь полученный запрос на публикацию немедленно обрабатывается первой подпиской для обнаружения либо случая а), либо случая б).

Каждый раз, когда время действия таймера публикации истекает, он немедленно сбрасывается. Если имеются уведомления или сообщение об активности соединения, которое необходимо отправить, он извлекает из очереди и обрабатывает запрос публикации. Когда подписка обрабатывает запрос на публикацию, она получает доступ к очередям своих элементов мониторинга и удаляет из очереди свои уведомления, если таковые имеются. Подписка возвращает эти уведомления в ответе, устанавливая флаг «большеуведомлений», если она не смогла вернуть все доступные уведомления в ответе.

Если были отправлены уведомления или сообщение об активности соединения, но не было запросов на публикацию в очереди, подписка предполагает, что запрос на публикацию запаздывает, и ожидает получения следующего запроса на публикацию, как описано в перечислении б).

Если подписка отключена по истечении таймера публикации или при отсутствии доступных уведомлений, она переходит в состояние проверки активности и устанавливает счетчик проверки активности на максимальное значение, определенное для подписки.

Находясь в состоянии сохранения активности, она проверяет наличие уведомлений каждый раз, когда истекает таймер публикации. Если было создано одно или несколько уведомлений, запрос публикации удаляется из очереди, а в ответе возвращается уведомительное сообщение. Однако если таймер публикации истекает, а уведомление не становится доступным, запрос публикации удаляется из очереди, и в ответе возвращается сообщение проверки активности. Подписка затем возвращается в нормальное состояние ожидания истечения таймера публикации снова. Если в любом из этих случаев запросы публикации отсутствуют в очереди, подписка ожидает получения следующего запроса на публикацию, как описано в перечислении б).

Состояния подписки определены в таблице 84.

Таблица 84 — Состояния подписки

Состояние

Описание

Закрыта

Подписка еще не создана или прекращена

Создание

Подписка создается

Нормальное

Подписка циклически проверяет наличие уведомлений от элементов мониторинга. Счетчик активности соединения в этом состоянии не используется

Отсрочена

Таймер публикации истек и имеются доступные уведомления или сообщение об активности соединения готово к отправке, но нет запросов на публикацию в очереди. В этом состоянии следующий запрос на публикацию обрабатывается при его получении. Счетчик активности соединения в этом состоянии не используется

Активность соединения

Подписка циклически проверяет наличие уведомлений от элементов мониторинга или счетчика активности соединения для обратного отсчета до 0 от своего максимума

Таблица состояний описана в таблице 85. Применяются следующие правила и соглашения:

а) события представляют собой получение запросов службы и возникновение внутренних событий, таких как истечение срока действия таймера;

б) события запросов службы могут сопровождаться условиями, которые проверяют значения параметров службы. Имена параметров начинаются со строчной буквы;

в) внутренние события могут сопровождаться условиями, которые проверяют значения переменных состояния. Переменные состояния определены в 5.13.1.3. Они начинаются с заглавной буквы;

г) запрос службы и внутренние события могут сопровождаться условиями, представленными функциями, возвращаемое значение которых проверяется. Функции обозначаются знаком «()» после имени. Они описаны в 5.13.1.4;

86

ГОСТ Р 71809—2024

д) когда событие принято, определяется первый переход для текущего состояния, и поиск переходов выполняется последовательно на предмет первого перехода, который соответствует критериям события или условий. Если ничего не найдено, событие игнорируется;

е) действия описываются функциями и состояниями манипуляции с переменными;

ж) событие «истечение срока действия таймера» запускается, когда соответствующий ему счетчик достигает нуля.

Таблица 85 — Таблица состояний подписки

Номер пункта

Текущее состояние

Событие/условия

Действие

Следующее состояние

1

Закрыта

Получение запроса «создание подписки»

Создание подписки ()

Создание

2

Создание

Создание подписки завершено неуспешно

Возвращение отрицательного ответа ()

Закрыта

3

Создание

Создание подписки завершено успешно

Инициализация подписки () Сообщение отправлено = ложь вернуть ответ ()

Нормальное

4

Нормальное

Получить запрос на публикацию && (

Публикация разрешена == ложь li

(публикация разрешена == истина && больше уведомлений == ложь)

)

Удалить подтвержденные уведомительные сообщения () Поставить в очередь запрос на публикацию ()

Нормальное

5

Нормальное

Получить запрос на публикацию && публикация разрешена == истина

&& больше уведомлений == истина

Сбросить счетчик времени действия ()

Удалить подтвержденные уведомительные сообщения () Возвратить уведомления () Сообщение отправлено = истина

Нормальное

6

Нормальное

Срок действия таймера публикации истекает && запрос на публикацию в очереди == истина && публикация разрешена == истина && уведомления доступны == истина

Сбросить счетчик времени действия () Запустить таймер публикации ()

Удалить из очереди запрос на публикацию ()

Возвратить уведомления () Сообщение отправлено == истина

Нормальное

7

Нормальное

Срок действия таймера публикации истекает

&& запрос на публикацию в очереди == истина

&& сообщение отправлено == ложь

&&

(

Публикация разрешена == ложь li

(публикация разрешена == истина

&& уведомления доступны == ложь)

)

Сбросить счетчик времени действия ()

Запустить таймер публикации 0

Удалить из очереди запрос на публикацию ()

Вернуть активность соединения ()

Сообщение отправлено == истина

Нормальное

87

ГОСТ Р 71809—2024

Продолжение таблицы 85

Номер пункта

Текущее состояние

Событие/условия

Действие

Следующее состояние

8

Нормальное

Срок действия таймера публикации истекает

&& запрос на публикацию в очереди == ложь

&&

(

Сообщение отправлено == ложь li

(публикация разрешена == истина

&& уведомления доступны == истина)

)

Запустить таймер публикации 0

Отсрочена

9

Нормальное

Срок действия таймера публикации истекает && сообщение отправлено == истина && (

Публикация разрешена == ложь li

(публикация разрешена == истина

&& уведомления доступны == ложь)

)

Запустить таймер публикации 0

Сбросить счетчик активности соединения ()

Активность соединения

10

Отсрочена

Получить запрос на публикацию && публикация разрешена == истина && (уведомления доступны == истина ii больше уведомлений == истина)

Сбросить счетчик времени действия ()

Удалить подтвержденные уведомительные сообщения () Возвратить уведомления () Сообщение отправлено = истина

Нормальное

11

Отсрочена

Получить запрос на публикацию &&

(

Публикация разрешена == ложь li

(публикация разрешена

== истина

&& уведомления доступны == ложь

&& больше уведомлений == ложь)

)

Сбросить счетчик времени действия ()

Удалить подтвержденные уведомительные сообщения () Вернуть активность соединения ()

Сообщение отправлено = истина

Активность оединения

12

Отсрочена

Срок действия таймера публикации истекает

Запустить таймер публикации 0

Отсрочена

13

Активность соединения

Получить запрос на публикацию

Удалить подтвержденные

Активность соединения

88

Продолжение таблицы 85

ГОСТ Р 71809—2024

Номер пункта

Текущее состояние

Событие/условия

Действие

Следующее состояние

14

Активность соединения

Срок действия таймера публикации истекает && публикация разрешена == истина && уведомления доступны == истина && запрос на публикацию в очереди == истина

Сбросить счетчик времени действия ()

Запустить таймер публикации 0

Удалить из очереди запрос на публикацию ()

Возвратить уведомления () Сообщение отправлено == истина

Нормальное

15

Активность соединения

Срок действия таймера публикации истекает

&& запрос на публикацию в очереди == истина

&& счетчик активности соединения == 1

&&

(

Публикация разрешена == ложь li

(публикация разрешена == True

&& уведомления доступны == False)

Запустить таймер публикации 0

Удалить из очереди запрос на публикацию ()

Вернуть активность соединения ()

Сбросить счетчик активности соединения ()

Активность соединения

16

Активность соединения

Срок действия таймера публикации истекает && счетчик активности соединения> 1 && (

Публикация разрешена == ложь II

(публикация разрешена == истина

&& уведомления доступны == ложь)

)

Запустить таймер публикации 0

Счетчик активности соединения--

Активность соединения

17

Активность соединения

Срок действия таймера публикации истекает

&& запрос на публикацию в очереди == ложь

&& ( Счетчик активности соединения == 1

II

(счетчик активности соединения> 1

&& публикация разрешена == истина

&& уведомления доступны == истина) )

Запустить таймер публикации 0

Отсроченный

18

Нормальное: - отсрочена - активность соединения

Получить запрос на изменение подписки

Сбросить счетчик времени действия ()

Обновить параметры подписки ()

Вернуть ответ ()

Прежнее

89

ГОСТ Р 71809—2024

Окончание таблицы 85

Номер пункта

Текущее состояние

Событие/условия

Действие

Следующее состояние

19

Нормальное: - отсрочена - активность соединения

Получить запрос на установку режима публикации

Сбросить счетчик времени действия ()

Установить публикация разрешена ()

Больше уведомлений = ложь Вернуть ответ ()

19

20

Нормальное: - отсрочена - активность соединения

Получить запрос на повторную публикацию

&& запрошенное сообщение найдено == истина

Сбросить счетчик времени действия ()

Вернуть ответ ()

Прежнее

21

Нормальное: - отсрочена - активность соединения

Получить запрос на повторную публикацию

&& запрошенное сообщение найдено == ложь

Сбросить счетчик времени действия ()

Вернуть отрицательный ответ 0

Прежнее

22

Нормальное: - отсрочена - активность соединения

Получить запрос на передачу подписки && сеанс изменен () == ложь

Сбросить счетчик времени действия ()

Вернуть отрицательный ответ 0

Прежнее

23

Нормальное: - отсрочена - активность соединения

Получить запрос на передачу подписки && сеанс изменен () == истина && клиент подтвержден () ==истина

Установить сеанс ()

Сбросить счетчик времени действия ()

Вернуть ответ ()

Выдать уведомление об изменении статуса ()

Прежнее

24

Нормальное: - отсрочена - активность соединения

Получить запрос на передачу подписки && сеанс изменен () == истина

&& клиент подтвержден () == ложь

Вернуть отрицательный ответ 0

Прежнее

25

Нормальное: - отсрочена - активность соединения

Получить запрос на удаление подписки && подписка назначена клиенту = истина

Удалить предметы контроля ()

Удалить очередь запросов на публикацию клиента ()

Закрыта

26

Нормальное: - отсрочена - активность соединения

Получить запрос на удаление подписки

&& подписка назначена клиенту ==ложь

Сбросить счетчик времени действия ()

Вернуть отрицательный ответ 0

Прежнее

27

Нормальное: - отсрочена - активность соединения

Счетчик срока действия == 1

Счетчик срока действия уменьшается, если истекает срок действия таймера публикации и запрос на публикацию в очереди == ложь

Счетчик срока действия сбрасывается, если запрос на публикацию в очереди == истина

Удалить предметы контроля () Выдать уведомление об изменении статуса ()

Закрыта

5.13.1.3 Параметр состояния и параметры

Параметры состояния определены в алфавитном порядке в таблице 86.

90

Таблица 86 — Переменные состояния и параметры

ГОСТ Р 71809—2024

Параметр состояния

Описание

Больше уведомлений

Логическое значение, для которого установлено значение «истина», только с помощью функции «создать уведомительное сообщение» (), когда было слишком много уведомлений для одного уведомительного сообщения

Поздний запрос на публикацию

Логическое значение, для которого установлено значение «истина», чтобы отразить, что в последний раз, когда сработал таймер публикации, не было запросов на публикацию в очереди

Счетчик срока действия

Значение, которое содержит количество последовательных срабатываний таймера публикации без активности клиента до прекращения подписки

Сообщение отправлено

Логическое значение, для которого установлено значение «истина», означает, что подписке было отправлено уведомительное сообщение или сообщение, подтверждающее активность. Это флаг, который используется для обеспечения того, чтобы уведомительное сообщение или сообщение, подтверждающее активность, отправлялось при первом срабатывании таймера публикации

Уведомления доступны

Логическое значение, для которого установлено значение «истина», только когда есть хотя бы один элемент мониторинга, который находится в режиме отчета и имеет уведомления в очереди, или есть хотя бы один элемент для отчета, чей триггерный элемент сработал и который имеет уведомления в очереди. Переход этого параметра состояния с «ложь» на «истина» создает событие «новое уведомление, поставленное в очередь» в таблице состояний

Публикация разрешена

Параметр, который запрашивает включение или отключение публикации

Запрос на публикацию в очереди

Логическое значение, для которого установлено значение «истина» только при наличии сообщения запроса на публикацию, помещенного в очередь на подписку

Запрошенное сообщение найдено

Логическое значение, для которого установлено значение «истина», только когда запрошенное для повторной передачи сообщение было найдено в очереди на повторную передачу

Номер последовательности

Значение, в котором записано значение порядкового номера, используемого в уведомительном сообщении

Подписка назначена клиенту

Логическое значение, для которого установлено значение «истина», только когда запрошенная на удаление подписка назначается клиенту, отправившему запрос. Подписка присваивается создавшему ее клиенту. Это назначение можно изменить только после успешного завершения сервиса передачи подписки

5.13.1.4 Функции

Функции действий определены в алфавитном порядке в таблице 87.

Таблица 87 — Функции

Функция

Описание

Клиент подтвержден ()

Логическая функция, которая возвращает значение «истина», только когда клиент, отправляющий запрос передачи подписки, работает от имени того же пользователя и поддерживает те же профили, что и клиент предыдущего сеанса

Создать уведомительное сообщение ()

Увеличивает номер последовательности и создает уведомительное сообщение из элементов мониторинга, назначенных подписке.

Сохраняет вновь созданное уведомительное сообщение в очереди на повторную передачу.

Если все доступные уведомления могут быть отправлены в ответе на публикацию, для параметра состояния «больше уведомлений» устанавливается значение «ложь». В противном случае устанавливается значение «истина»

Создание подписки ()

Попытка создать подписку

91

ГОСТ Р 71809—2024

Продолжение таблицы 87

Функция

Описание

Удалить подтвержденные уведомительные сообщения ()

Удаляет уведомительное сообщение из очереди на повторную передачу, подтвержденное запросом

Удалить очередь запросов на публикацию клиента ()

Чистит очередь запросов на публикацию для клиента, отправляющего запрос «удалить подписки», если этому клиенту больше не назначено подписок

Удалить элементы мониторинга ()

Удаляет все элементы мониторинга, присвоенные подписке

Удалить из очереди запрос на публикацию ()

Отменяет очередь запроса на публикацию в порядке «первым поступил — первым выбыл».

Проверяет, что запрос на публикацию еще действителен, проверяя подсказку «превышение времени ожидания в заголовке запроса». Если время ожидания запроса истекло, отправляет результат службы «Некорректно_Превышение ВремениОжидания» для запроса и удаляет из очереди другой запрос публикации.

Сбросить счетчик времени действия ()

Поставить в очередь запрос на публикацию ()

Ставит запрос на публикацию в очередь

Инициализация подписки ()

Сбрасывает счетчик времени действия () «больше уведомлений = ложь, изменение скорости публикации = ложь»

Публикация разрешена = значение параметра «публикация разрешена» в запросе создание подписки».

Запрос на публикацию в очереди = ложь номер последовательности = 0 установить сеанс ()

Запустить таймер публикации ()

Выдать уведомление об изменении состояния ()

Выдает уведомительное сообщение «уведомление об изменении состояния» с кодом состояния для изменения статуса подписки. Тип уведомительного сообщения «уведомление об изменении состояния» определен в 7.20.4. Код состояния «Некорректно_ПревышениеВремениОжидания» используется, если срок действия истекает, и «Корректный_Подписка Передана», если подписки были переданы другой сессии

Сбросить счетчик активности соединения ()

Сбрасывает счетчик активности соединения до максимального значения счетчика активности соединения подписки. Максимальное значение счетчика активности соединения устанавливается клиентом при создании подписки и может быть изменено с помощью службы изменения подписки

Сбросить счетчик времени действия ()

Сбрасывает переменную счетчика срока действия на значение, указанное для времени существования подписки в службе создание подписки (см. 5.13.2)

Вернуть активность соединения ()

Создает сообщение об активности соединения (), возвращает ответ ()

Вернуть отрицательный ответ ()

Возвращает ответ на запрос службы, указывающий на соответствующую ошибку уровня сервиса. Никакие параметры не возвращаются, кроме заголовка ответа, который содержит код состояния уровня службы

Возвратить уведомления ()

Создать уведомительное сообщение ()

Вернуть ответ ()

Если (больше уведомлений == истина) && (запрос на публикацию в очереди == истина){

Удалить из очереди запрос на публикацию ()

Пройдите через эту функцию еще раз}

Вернуть ответ ()

Возвращает соответствующий ответ, устанавливая соответствующие значения параметров и коды состояния, определенные для службы

92

Окончание таблицы 87

ГОСТ Р 71809—2024

Функция

Описание

Сеанс изменен ()

Функция логического значения, которая возвращает значение «истина», только когда сессия, используемая для отправки запроса передачи подписки, отличается от сессии клиента, связанного в настоящее время с подпиской

Установить разрешение публикации ()

Устанавливает для переменной параметра разрешения «публикация значение параметра разрешения публикации», полученного в запросе

Установить сеанс

Устанавливает информацию о сессии для подписки, чтобы она совпадала с сессией, на которой был выдан запрос передачи на подписку

Запустить таймер публикации ()

Запускает или перезапускает таймер публикации и уменьшает значение переменной «счетчик срока действия»

Обновить параметры подписки ()

Согласует и обновляет параметры подписки. Если новый интервал проверки активности меньше текущего значения счетчика активности соединения, выполняет сброс счетчика активности соединения () и сброс счетчика времени действия ()

5.13.2 Создание подписки

5.13.2.1 Описание

Данная служба используется для создания подписки. Подписки контролируют набор элементов мониторинга для уведомлений и возвращают их клиенту в ответах на запросы публикации.

Недопустимые значения запроса для параметров, которые можно изменить, не вызывают ошибок. Вместо этого сервер выберет значения по умолчанию и укажет их в соответствующем измененном параметре.

5.13.2.2 Параметры

Параметры службы определены в таблице 88.

Таблица 88 — Параметры службы создания подписки

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса (определение «заголовок запроса» см. в 7.28)

Запрошенный интервал публикации

Продолжительность

Настоящий интервал определяет циклическую скорость, с которой подписка запрашивается для возврата уведомлений клиенту. Этот интервал выражается в миллисекундах. Этот интервал представлен таймером публикации в таблице состояний подписки (см. 5.13.1.2).

Согласованное значение для этого параметра, возвращаемое в ответе, используется как интервал выборки по умолчанию для элементов мониторинга, назначенных этой подписке.

Если запрошенное значение равно 0 или отрицательно, сервер должен пересмотреть это значение с максимально быстрым поддерживаемым интервалом публикации

Значение счетчика «запрошенный срок действия»

Счетчик

Запрошенное значение счетчика времени существования (определение для счетчика см. в 7.5). Значение счетчика времени существования должно быть в три раза больше, чем значение счетчика активности соединения. Когда таймер публикации использовал это количество раз, а запрос публикации не доступен для отправки уведомительного сообщения, сервер удаляет подписку

93

ГОСТ Р 71809—2024

Окончание таблицы 88

Имя

Тип

Описание

Значение счетчика «запрошенная максимальная активность соединения»

Счетчик

Запрошенное максимальное значение счетчика активности соединения (определение для счетчика см. в 7.5). Когда таймер публикации использовал это количество раз без запроса отправки уведомительного сообщения, подписка отправляет клиенту сообщение, подтверждающее активность. Согласованное значение для этого параметра возвращается в ответе.

Если запрошенное значение равно 0, сервер должен пересмотреть с наименьшим поддерживаемым значением счетчика активности соединения

Максимальное количество уведомлений за публикацию

Счетчик

Максимальное количество уведомлений, которые клиент желает получить в одном ответе на публикацию. Нулевое значение указывает на отсутствие ограничения.

Количество уведомлений на публикацию — это сумма отслеживаемых элементов в уведомлении об изменении данных и событий в списке уведомлений о событиях

Публикация разрешена

Логическое значение

Логический параметр со следующими значениями.

Истина — публикация разрешена для подписки.

Ложь — публикация запрещена для подписки.

Значение этого параметра не влияет на значение атрибута «режим контроля элементов мониторинга»

Приоритет

Байт

Указывает относительный приоритет подписки. Когда более чем одна подписка должна отправить уведомления, сервер должен исключить из очереди запрос публикации на подписку с наивысшим номером приоритета. Для подписок с равным приоритетом сервер должен удалять запросы публикации из очереди циклическим перебором.

Клиент, не требующий специальных настроек приоритета, должен установить это значение равным нулю

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа (определение «заголовок ответа» см. в 7.29)

Идентификатор подписки

Идентификатор целого числа

Идентификатор, присвоенный сервером для подписки (определение «идентификатор целого числа» см. в 7.14). Этот идентификатор должен быть уникальным для всего сервера, а не только для сессии, чтобы можно было передать подписку другой сессии с помощью службы передачи подписки.

После запуска сервера генерация идентификаторов подписки должна начинаться со случайного идентификатора целого числа или продолжаться с точки до перезапуска

Обновленный интервал публикации

Продолжительность

Фактический интервал публикации, который будет использовать сервер, выраженный в миллисекундах. Сервер должен попытаться удовлетворить запрос клиента для этого параметра, но может согласовывать это значение выше или ниже, чтобы соответствовать своим собственным ограничениям

Значение счетчика «обновленный срок действия»

Счетчик

Срок сервиса подписки должен как минимум в три раза превышать интервал активности соединения, согласованный сервером

Обновленное максимальное количество сообщений об активности соединения

Счетчик

Фактическое максимальное значение счетчика активности соединения (определение «счетчик» см. в 7.5). Сервер должен попытаться удовлетворить запрос клиента для этого параметра, но может согласовывать это значение выше или ниже, чтобы соответствовать своим собственным ограничениям

94

ГОСТ Р 71809—2024

5.13.2.3 Результаты службы

В таблице 89 определены результаты службы, специфичные для этой службы. Общие коды состояния определены в таблице 177.

Таблица 89 — Результирующие коды службы создания подписки

Символический идентификатор

Описание

Некорректно_СлишкомМногоПодписок

Сервер достиг максимального количества подписок

5.13.3 Изменение подписки

5.13.3.1 Описание

Данная служба используется для изменения подписки.

Недопустимые значения запроса для параметров, которые можно изменить, не вызывают ошибок. Вместо этого сервер выберет значения по умолчанию и укажет их в соответствующем измененном параметре.

Изменения в настройках подписки немедленно применяются сервером. Они вступают в силу в кратчайшие сроки, но не позднее чем в два раза по сравнению с новым пересмотренным периодом публикации.

5.13.3.2 Параметры

Параметры службы определены в таблице 90.

Таблица 90 — Параметры службы изменения подписки

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса (определение «заголовок запроса» см. в 7.28)

Идентификатор подписки

Идентификатор целого числа

Идентификатор, присвоенный сервером для подписки (определение «идентификатор целого числа» см. в 7.14)

Запрошенный интервал публикации

Продолжительность

Этот интервал определяет циклическую скорость, с которой подписка запрашивается для возврата уведомлений клиенту. Этот интервал выражается в миллисекундах. Этот интервал представлен таймером публикации в таблице состояний подписки (см. 5.13.1.2). Согласованное значение для этого параметра, возвращаемое в ответе, используется как интервал выборки по умолчанию для элементов мониторинга, назначенных этой подписке.

Если запрошенное значение равно 0 или отрицательно, сервер должен пересмотреть это значение с максимально быстрым поддерживаемым интервалом публикации

Значение счетчика запрошенный срок действия

Счетчик

Запрошенное значение счетчика времени существования (определение «счетчик» см. в 7.5). Значение счетчика времени жизни должно быть в три раза больше, чем значение счетчика активности соединения.

Когда таймер публикации использует это количество раз, а запрос публикации не доступен для отправки уведомительного сообщения, сервер удаляет подписку

Запрошенное максимальное количество сообщений об активности соединения

Счетчик

Запрошенное максимальное значение счетчика активности соединения (определение «счетчик» см. в 7.5). Когда таймер публикации использует это количество раз без запроса о необходимости отправки уведомительного сообщения, подписка отправляет клиенту сообщение об активности соединения.

Согласованное значение для этого параметра возвращается в ответе.

Если запрошенное значение равно 0, сервер должен пересмотреть с наименьшим поддерживаемым значением счетчика активности соединения

95

ГОСТ Р 71809—2024

Окончание таблицы 90

Имя

Тип

Описание

Максимальное количество уведомлений за публикацию

Счетчик

Максимальное количество уведомлений, которые клиент желает получить в одном ответе на публикацию. Нулевое значение указывает на отсутствие ограничения

Приоритет

Байт

Указывает относительный приоритет подписки. Когда более одной подписки необходимо отправить уведомления, сервер должен исключить из очереди запрос публикации на подписку с наивысшим номером приоритета. Для подписки с равным приоритетом сервер должен удалить запросы публикации из очереди циклическим перебором.

Клиент, не требующий специальных настроек приоритета, должен установить это значение равным нулю

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа (определение «заголовок ответа» см. в 7.29)

Пересмотренный интервал публикации

Продолжительность

Фактический интервал публикации, который будет использовать сервер, выраженный в миллисекундах. Сервер должен попытаться удовлетворить запрос клиента для этого параметра, но может согласовать это значение выше или ниже, чтобы соответствовать своим собственным ограничениям

Значение счетчика обновленного срока действия

Счетчик

Время существования подписки должно как минимум в три раза превышать интервал активности соединения, согласованный сервером

Пересмотренное максимальное количество сообщений об активности соединения

Счетчик

Фактическое максимальное значение счетчика активности соединения (определение «счетчик» см. в 7.5). Сервер должен попытаться удовлетворить запрос клиента для этой параметра, но может согласовать это значение выше или ниже, чтобы соответствовать своим собственным ограничениям

5.13.3.3 Результаты службы

В таблице 91 определены результаты службы, специфичные для этой службы. Общие коды состояния определены в таблице 177.

Таблица 91 — Результирующие коды службы изменения подписки

Символический идентификатор

Описание

Некорректно_Идентификатор

ПодпискиНедействителен

Описание этого результирующего кода см. в таблице 177

5.13.4 Установка режима публикации

5.13.4.1 Описание

Данная служба используется для разрешения отправки уведомлений по одной или нескольким подпискам.

5.13.4.2 Параметры

Параметры службы определены в таблице 92.

96

Таблица 92 — Параметры службы установки режима публикации

ГОСТ Р 71809—2024

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса (определение «заголовок запроса» см. в 7.28)

Публикация разрешена

Логическое значение

Логический параметр со следующими значениями.

Истина — публикация уведомительных сообщений разрешена для подписки.

Ложь — публикация уведомительных сообщений запрещена для подписки.

Значение этого параметра не влияет на значение атрибута режима мониторинга элементов мониторинга. Установка этого значения на значение «ложь» не прекращает отправку сообщений об активности соединения

Идентификатор подписок

Идентификатор целого числа

Список присвоенных сервером идентификаторов для подписок, которые можно разрешить или запретить (определение «идентификатор целого числа» см. в 7.14)

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа (определение «заголовок ответа» см. в 7.29)

Результаты 0

Код состояния

Список кодов состояния для подписки для разрешения/запрета (определение «код состояния» см. в 7.34). Размер и порядок списка соответствуют размеру и порядку параметра запроса идентификаторов подписки

Диагностическая информация []

Диагностическая информация

Список диагностической информации для разрешения/запрета подписки (определение «диагностическая информация» см. в 7.8). Размер и порядок списка соответствуют размеру и порядку параметра запроса «идентификаторы подписки». Этот список пуст, если диагностическая информация не была запрошена в заголовке запроса или если диагностическая информация не была обнаружена при обработке запроса

5.13.4.3 Результаты службы

В таблице 93 определены результаты службы, специфичные для этого службы. Общие коды состояния определены в таблице 177.

Таблица 93 — Результирующие коды службы установки режима публикации

Символический идентификатор

Описание

Некорректно_НечегоДелать

Описание этого результирующего кода см. в таблице 177

Некорректно_СлишкомМногоОпераций

Описание этого результирующего кода см. в таблице 177

5.13.4.4 Коды состояния

В таблице 94 определены значения параметра результатов, относящиеся к этой службе. Общие коды состояния определены в таблице 178.

Таблица 94 — Результирующие коды рабочего уровня установки режима публикации

Символический идентификатор

Описание

Некорректно_ИдентификаторПодписки Недействителен

Описание этого результирующего кода см. в таблице 177

97

ГОСТ Р 71809—2024

5.13.5 Публикация

5.13.5.1 Описание

Данная служба используется для двух целей. Во-первых, он используется для подтверждения получения уведомительного сообщения для одной или нескольких подписок. Во-вторых, он используется, чтобы запросить сервер вернуть уведомительное сообщение или сообщение об активности соединения. Поскольку запросы на публикацию не направлены на конкретную подписку, они могут использоваться любой подпиской. Использование службы публикации описывается в 5.13.1.2.

Клиентские стратегии для отправки запросов на публикацию могут различаться в зависимости от сетевых задержек между клиентом и сервером. Во многих случаях клиент может пожелать отправить запрос на публикацию сразу после создания подписки, а затем сразу после получения ответа на публикацию.

В других случаях, особенно в сетях с высокой задержкой, клиент может пожелать обработать запросы публикации конвейерным способом, чтобы обеспечить циклическую отправку отчетов с сервера. Конвейерная обработка включает отправку более одного запроса публикации для каждой подписки до получения ответа. Например, если сеть вводит задержку между клиентом и сервером в 5 с, а интервал публикации для подписки составляет 1 с, тогда клиент должен выдавать запросы публикации каждую секунду вместо ожидания получения ответа перед отправкой следующего запроса.

Сервер должен ограничить количество активных запросов публикации, чтобы избежать бесконечного числа, поскольку ожидается, что запросы публикации будут поставлены в очередь на сервере. Но сервер должен принимать больше запросов на публикацию в очереди, чем созданных подписок. Ожидается, что сервер поддерживает несколько запросов на публикацию на одну подписку. Когда сервер получает новый запрос на публикацию, превышающий его предел, он должен исключить из очереди самый старый запрос на публикацию и вернуть ответ с результатом, установленным на «Некорректно_ СлишкомМногоЗапросовНаПубликацию». Если клиент получает этот результат службы для запроса на публикацию, он не должен выдавать другой запрос на публикацию до тех пор, пока один из его невыполненных запросов на публикацию не будет возвращен сервером.

Клиенты могут ограничить размер ответов публикации с помощью параметра «максимальное количество уведомлений за публикацию», передаваемого в службу создания подписки. Однако это все равно может привести к тому, что сообщение будет слишком большим для обработки клиентом или сервером. В этой ситуации если клиент обнаружит, что либо защищенный канал переходит в состояние сбоя и его необходимо восстановить, либо ответ публикации возвращает ошибку, а вызов службы повторной публикации также возвращает ошибку, если возникает любая из ситуаций, клиент должен скорректировать свои ограничения на обработку сообщений или параметры подписки и/или элементов мониторинга (см. ГОСТ Р 71807).

Параметр возврата диагностической информации в заголовке запроса создания элементов мониторинга или последней службы изменения элементов мониторинга применяется к предметам контроля и используется в качестве параметров диагностической информации при отправке уведомлений в ответе публикации.

5.13.5.2 Параметры

Параметры службы определены в таблице 95.

Таблица 95 — Параметры службы «публикация»

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса (определение «заголовок запроса» см. в 7.28)

Подтверждение подписки []

Подтверждение подписки

Список подтверждений для одной или нескольких подписок. Этот список может содержать несколько подтверждений для одной и той же подписки (несколько записей с одной и той же подпиской). Эта структура определяется в соответствии со следующими элементами с отступом

Идентификатор подписки

Идентификатор целого числа

Идентификатор, присвоенный сервером для подписки (определение «идентификатор целого числа» см. в 7.14)

98

Окончание таблицы 95

ГОСТ Р 71809—2024

Имя

Тип

Описание

Номер

последовательности

Счетчик

Подтверждаемый номер последовательности (определение «счетчик» см. в 7.5). Сервер может удалить сообщение с этим номером последовательности из очереди на повторную передачу

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа (определение «заголовок ответа» см. в 7.29)

Идентификатор подписки

Идентификатор целого числа

Идентификатор, присвоенный сервером для подписки, для которой возвращаются уведомления (см. 7.14 для определения «идентификатор целого числа»). Значение 0 используется, чтобы указать, что не было задано никаких подписок, для которых можно было бы отправить ответ

Доступные номера последовательности []

Счетчик

Список диапазонов номеров последовательности, которые идентифицируют неподтвержденные уведомительные сообщения, доступные для повторной передачи из очереди повторной передачи подписки. Этот список готовится после обработки подтверждений в запросе (для определения «счетчик» см. 7.5)

Больше уведомлений

Логическое значение

Логический параметр со значениями.

Истина — количество уведомлений, которые были готовы к отправке, не могут быть отправлены в одном ответе.

Ложь — все уведомления, которые были готовы, включены в ответ

Уведомительное сообщение

Уведомительное сообщение

Уведомительное сообщение, содержащее список уведомлений. Тип параметра «уведомительное сообщение» указан в 7.21

Результаты

Код успешного завершения

Список результатов для подтверждений (определение «код состояния» см. в 7.34). Размер и порядок списка соответствуют размеру и порядку параметра запроса «подтверждение подписки»

Диагностическая информация

Диагностическая информация

Список диагностической информации для подтверждений (определение «диагностическая информация» см. в 7.8). Размер и порядок списка соответствуют размеру и порядку параметра запроса «подтверждение подписки». Этот список пуст, если диагностическая информация не была запрошена в заголовке запроса или если диагностическая информация не была обнаружена при обработке запроса

5.13.5.3 Результирующие коды службы «публикация»

В таблице 96 определены результаты службы, специфичные для этой службы. Общие коды состояния определены в таблице 177.

Таблица 96 — Результирующие коды службы «публикация»

Символический идентификатор

Описание

Некорректно_СлишкомМного ЗапросовНаПубликацию

Сервер достиг максимального количества запросов на публикацию в очереди

Некорректно_НетПодписки

Для этой сессии нет подписки

5.13.5.4 Коды состояния

В таблице 97 определены значения параметра результатов, относящиеся к этой службе. Общие коды состояния определены в таблице 178.

99

ГОСТ Р 71809—2024

Таблица 97 — Результирующие коды рабочего уровня «публикация»

Символический идентификатор

Описание

Некорректно_Идентификатор

ПодпискиНедействителен

Описание этого результирующего кода см. в таблице 177

Некорректно_Номер

ПоследовательностиНеизвестен

Номер последовательности неизвестен серверу

5.13.6 Повторная публикация

5.13.6.1 Описание

Данная служба запрашивает подписку повторно публиковать уведомительное сообщение из очереди на повторную передачу. Если у сервера нет запрошенного сообщения в очереди на повторную передачу, он возвращает ответ с ошибкой.

Подробное описание поведения этой службы см. в 5.13.1.2.

Для описания проблем и стратегий, касающихся обработки повторного подключения и повторной публикации, см. 6.7.

5.13.6.2 Параметры

Параметры службы определены в таблице 98.

Таблица 98 — Параметры службы «повторная публикация»

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса (определение «заголовок запроса» см. в 7.28)

Идентификатор подписки

Идентификатор целого числа

Идентификатор, присвоенный сервером для повторной публикации подписки (определение «идентификатор целого числа» см. в 7.14)

Повторно передать номер последовательности

Счетчик

Номер последовательности конкретного уведомительного сообщения, подлежащего повторной публикации (определение «счетчик» см. в 7.5)

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа (определение «заголовок ответа» см. в 7.29)

Уведомительное сообщение

Уведомительное сообщение

Запрошенное уведомительное сообщение. Тип параметра «уведомительное сообщение» указан в 7.21

5.13.6.3 Результаты службы

В таблице 99 определены результаты службы, специфичные для этой службы. Общие коды состояния определены в таблице 177.

Таблица 99 — Результирующие коды службы «повторная публикация»

Символический идентификатор

Описание

Некорректно_Идентификатор

ПодпискиНедействителен

Описание этого результирующего кода см. в таблице 177

Некорректно_СообщениеНедоступно

Запрошенное сообщение больше не доступно

5.13.7 Передача подписки

5.13.7.1 Описание

Настоящая служба используется для передачи подписки и ее элементов мониторинга из одной сессии в другую. Например, клиенту может потребоваться повторно открыть службу «сессия», а затем

100

ГОСТ Р 71809—2024

передать подписки в службу «сессия». Она также может использоваться одним клиентом для получения подписки от другого клиента путем передачи подписки в службу «сессия».

Токен аутентификации, содержащийся в заголовке запроса, идентифицирует сессию, в которой должны быть переданы подписка и элементы мониторинга. Сервер должен подтвердить, что клиент этой сессии работает от имени того же пользователя и что потенциально новый клиент поддерживает профили, необходимые для подписки. Если сервер передает подписку, он возвращает номера последовательности уведомительных сообщений, доступных для повторной передачи. Клиент должен подтвердить все сообщения в этом списке, для которых он не будет запрашивать повторную передачу.

Если сервер передает подписку в новой сессии, сервер должен выдать уведомительное сообщение «уведомление об изменении статуса» с кодом состояния «БезОшибки_ПодпискаПереданаСтарой-Сессии». Тип уведомительное «сообщение уведомление об изменении статуса» определен в 7.20.4.

5.13.7.2 Параметры

Параметры службы определены в таблице 100.

Таблица 100 — Параметры службы передачи подписки

Имя

Тип

Описание

Запрос

Заголовок запроса

Заголовок запроса

Общие параметры запроса (определение «заголовок запроса» см. в 7.28)

Идентификатор подписок 0

Идентификатор целого числа

Список идентификаторов для подписок, которые будут переданы новому клиенту (определение «идентификатор целого числа» см. в 7.14). Эти идентификаторы передаются от основного клиента резервному клиенту через внешние механизмы

Отправить начальные значения

Логическое значение

Логический параметр со следующими значениями.

Истина — первый(ые) ответ(ы) публикации после вызова передачи подписки должен (должны) содержать текущие значения всех предметов контроля в подписке, где для режима контроля установлено значение «отчет». Если значение поставлено в очередь для данных элемента мониторинга, следующее значение в очереди отправляется в ответе публикации. Если для данных элементов мониторинга в очереди нет значения, последнее отправленное значение повторяется в ответе «публикация».

Ложь — первый ответ публикации после вызова передачи подписки должен содержать только изменения значений с момента отправки последнего ответа публикации.

Этот параметр применяется только к элементам мониторинга, используемым для отслеживания изменений атрибутов

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа (определение «заголовок ответа» см. в 7.29)

Результаты []

Передать результаты

Список результатов для передачи подписок. Размер и порядок списка соответствуют размеру и порядку параметра запроса «идентификаторы подписки». Эта структура определяется в соответствии со следующими элементами с отступом

Код успешного завершения

Код успешного завершения

Код состояния для каждой передаваемой подписки (определение «код состояния» см. в 7.34)

Доступные номера последовательности

Счетчик

Список диапазонов номеров последовательности, которые идентифицируют уведомительные сообщения, находящиеся в очереди повторной передачи подписки. Этот параметр имеет значение «пусто», если передача подписки не удалась. Тип «счетчик» определен в 7.5

101

ГОСТ Р 71809—2024

Окончание таблицы 100

Имя

Тип

Описание

Диагностическая информация

Диагностическая информация

Список диагностической информации для передачи подписки (определение «диагностическая информация» см. в 7.8). Размер и порядок списка соответствуют размеру и порядку параметра запроса «идентификаторы подписки». Этот список пуст, если диагностическая информация не была запрошена в заголовке запроса или если диагностическая информация не была обнаружена при обработке запроса

5.13.7.3 Результаты службы

В таблице 101 определены результаты службы, специфичные для этой службы. Общие коды состояния определены в таблице 177.

Таблица 101 — Результирующие коды службы передачи подписки

Символический идентификатор

Описание

Некорректно_НечегоДелать

Описание этого результирующего кода см. в таблице 177

Некорректно_СлишкомМногоОпераций

Описание этого результирующего кода см. в таблице 177

Некорректно_Недостаточный

ПрофильКлиента

Клиент текущей сессии не поддерживает один или несколько профилей, необходимых для подписки

5.13.7.4 Коды состояния

В таблице 102 определены значения параметра «код состояния уровня операции», специфичные для данной службы. Общие коды состояния определены в таблице 178.

Таблица 102 — Результирующие коды рабочего уровня передачи подписки

Символический идентификатор

Описание

Некорректно_Идентификатор

ПодпискиНедействителен

Описание этого результирующего кода см. в таблице 177

Некорректно_Доступ

ПользователяЗапрещен

Описание этого результирующего кода см. в таблице 177.

Клиент текущей сессии не действует от имени того же пользователя, что и сессия, которой принадлежит подписка

5.13.8 Удаление подписки

5.13.8.1 Описание

Данная служба вызывается для удаления одной или нескольких подписок, принадлежащих сессии клиента.

Успешное завершение этой службы приводит к удалению всех элементов мониторинга, использующих подписку. Если это последняя подписка для сессии, то все запросы публикации, все еще находящиеся в очереди для этой сессии, удаляются из очереди и должны быть возвращены с «Некоррек-тно_НетПодписки».

Подписки, которые были перенесены на другую сессию, удаляются клиентом, которому принадлежит сессия.

5.13.8.2 Параметры

Параметры службы определены в таблице 103.

Таблица 103 — Параметры службы удаления подписки

Имя

Тип

Описание

Запрос

Заголовок

Заголовок

Общие параметры запроса (определение «заголовок запроса» см.

запроса

запроса

в 7.28)

102

Окончание таблицы 103

ГОСТ Р 71809—2024

Имя

Тип

Описание

Идентификатор подписок

Идентификатор целого числа

Идентификатор, присвоенный сервером для подписки (определение «идентификатор целого числа» см. в 7.14)

Ответ

Заголовок ответа

Заголовок ответа

Общие параметры ответа (определение «заголовок ответа» см. в 7.29)

Результаты []

Код успешного завершения

Список «коды состояния для подписок, подлежащих удалению» (определение «код состояния» см. в 7.34). Размер и порядок списка соответствуют размеру и порядку параметра запроса «идентификаторы подписки»

Диагностическая информация []

Диагностическая информация

Список диагностической информации для подписок, подлежащих удалению (определение «диагностическая информация» см. в 7.8). Размер и порядок списка соответствуют размеру и порядку параметра «запроса идентификаторы подписки». Список пуст, если диагностическая информация не была запрошена в заголовке запроса или если диагностическая информация не была обнаружена при обработке запроса

5.13.8.3 Результаты службы

В таблице 104 определены результаты службы, специфичные для этой службы. Общие коды состояния определены в таблице 177.

Таблица 104 — Результирующие коды службы удаления подписки

Символический идентификатор

Описание

Некорректно_НечегоДелать

Описание этого результирующего кода см. в таблице 177

Некорректно_СлишкомМногоОпераций

Описание этого результирующего кода см. в таблице 177

5.13.8.4 Коды состояния

В таблице 105 определены значения параметра результатов, специфичные для этой службы. Общие коды состояния определены в таблице 178.

Таблица 105 — Результирующие коды рабочего уровня удаления подписки

Символический идентификатор

Описание

Некорректно_Идентификатор

ПодпискиНедействителен

Описание этого результирующего кода см. в таблице 177

6 Поведение при использовании служб

6.1 Безопасность

6.1.1 Обзор

Службы ОРС UA определяют ряд механизмов для удовлетворения требований безопасности, изложенных в ГОСТ Р 71807. В этом разделе описывается ряд важных процедур, связанных с безопасностью, которым должны следовать приложения ОРС UA.

6.1.2 Получение и установка сертификата экземпляра приложения

Для всех приложений ОРС UA требуется сертификат экземпляра приложения, который должен содержать следующую информацию:

- сетевое имя или адрес компьютера, на котором запущено приложение;

- название организации, которая управляет приложением или владеет им;

- название приложения;

- URI экземпляра приложения;

- название сертификационного органа, выдавшего сертификат;

- дата выдачи и срок действия сертификата;

103

ГОСТ Р 71809—2024

- открытый ключ, выданный приложению сертификационного органа (СО);

- цифровая подпись, созданная сертификационным органом (СО).

Кроме того, каждый сертификат экземпляра приложения имеет закрытый ключ, который должен храниться в месте, доступном только приложению. Если этот закрытый ключ скомпрометирован, администратор должен назначить новый сертификат экземпляра приложения и закрытый ключ для приложения.

Этот сертификат может быть сгенерирован автоматически при установке приложения. В этой ситуации закрытый ключ, присвоенный сертификату, будет использоваться для создания подписи сертификата. Сертификаты, созданные таким образом, называются самозаверяющими сертификатами.

Если администратор, ответственный за приложение, решает, что самозаверяющий сертификат не соответствует требованиям безопасности организации, он должен установить сертификат, выданный сертификационным органом. Шаги, необходимые для запроса сертификата приложения у сертификационного органа, показаны на рисунке 19.

На рисунке 19 показано взаимодействие между приложением, администратором и сертификационным органом. Приложение представляет собой приложение ОРС UA, установленное на одном компьютере. Администратор — это лицо, ответственное за управление компьютером и приложением ОРС UA. Сертификационный орган — это организация, которая может выдавать цифровые сертификаты, соответствующие требованиям организации, развертывающей приложение ОРС UA.

„ , Сертификационный

Приложение Администратор г орган

1 Установка приложения

Сетевое имя или адрес аппарата.

Название организации

2 Создание самозаверяющега сертификата

' Здесь процесс завершается, если самозаверяющий сертификат соответствует требованиям безопасности

5 Установка сертификата

Сертификат приложения с открытым ключом.

Закрытый ключ

(должен быть защищен)

3 Запрос сертификата

Сетевое имя или адрес аппарата.

Имя приложения.

Название организации. Подтверждение личности администратора

4 Выдача сертификата

Открытый ключ.

Цифровая подпись СО.

Закрытый ключ (нуждается в защите)

Рисунок 19 — Получение и установка сертификата экземпляра приложения

104

ГОСТ Р 71809—2024

Если администратор решает, что самозаверяющий сертификат соответствует требованиям безопасности для организации, он может пропустить шаги 3—5. Поставщики приложений должны убедиться, что сертификат доступен после процесса установки. Каждое приложение ОРС UA должно позволять администраторам заменять сертификаты экземпляра приложения на сертификаты, соответствующие их требованиям.

Когда администратор запрашивает новый сертификат у сертификационного органа, сертификационный орган может потребовать, чтобы администратор предоставил подтверждение авторизации для запроса сертификатов для организации, которая будет владеть сертификатом. Точный механизм, используемый для предоставления этого доказательства, зависит от сертификационного органа.

Продавцы могут автоматизировать процесс получения сертификатов от организации. В этом случае администратор все равно выполняет шаги, показанные на рисунке 19, однако программа установки приложения выполнит их автоматически и предложит только администратору предоставить информацию об устанавливаемом экземпляре приложения.

6.1.3 Определение доверия к сертификату

Приложения никогда не должны связываться с другим приложением, которому они не доверяют. Приложение определяет, является ли другое приложение доверенным, путем проверки того, является ли сертификат экземпляра приложения для другого приложения доверенным. Приложения должны полагаться на списки сертификатов, предоставленные администратором для определения доверия. Есть два отдельных списка: список доверенных приложений и список доверенных сертификационных органов (СО). Если приложение напрямую не является доверенным (т. е. его сертификат отсутствует в списке доверенных приложений), то приложение должно построить цепочку сертификатов обратно в доверенную СО.

При построении цепочки каждый сертификат в цепочке должен быть подтвержден. Если возникает какая-либо ошибка проверки, проверка доверия не выполняется. Некоторые ошибки проверки некритичны, что означает, что они могут быть блокированы пользователем приложения с соответствующими привилегиями. О блокированных ошибках проверки всегда сообщается посредством аудита (т. е. возникает соответствующее событие аудита).

Для построения цепочки доверия требуется доступ ко всем сертификатам в цепочке. Эти сертификаты могут храниться локально или они могут быть предоставлены вместе с сертификатом приложения. Обработка завершается сообщением «некорректно_проверкабезопасностинеудалась», если сертификат СО не может быть найден.

В таблице 106 указаны шаги, используемые для проверки сертификата, в том порядке, в котором они должны выполняться. Эти шаги повторяются для каждого сертификата в цепочке. Каждый шаг проверки имеет уникальный статус ошибки и тип события аудита, о котором должно быть сообщено, если проверка не удалась. Событие аудита добавляется к любому событию аудита, которое было создано для конкретной вызванной службы. Событие аудита службы в тексте сообщения должно включать в себя идентификатор события аудита типа события аудита сертификата (для получения дополнительной информации см. 6.5). При возникновении ошибки обработка останавливается, если только она не является некритической и не была блокирована.

Сертификаты экземпляра приложения не должны использоваться на «клиенте» или «сервере», пока они не будут оценены и помечены как доверенные. Это может происходить автоматически или в автономном режиме, когда сертификат помечается администратором как доверенный после его оценки.

105

ГОСТ Р 71809—2024

Таблица 106 — Этапы проверки сертификата

Этап

Ошибка/событие аудита

Описание

Структура сертификата

Некорректно_Сертификат Недействителен.

Некорректный_Проверка БезопасностиНеУдалась.

Тип события «аудит сертификата недействителен»

Структура сертификата проверена.

Эта ошибка не может быть устранена.

Если эта проверка не удалась на стороне сервера, об ошибке «некорректно_ проверкабезопасностинеудалась» будет сообщено клиенту

Построение цепочки сертификатов

Некорректно_Цепочка СертификатаНеполная. Некорректно_Проверка БезопасностиНеУдалась.

Тип события «аудит сертификата недействителен»

Создана цепочка доверия для сертификата

Ошибка при создании цепочки не может быть блокирована.

Если эта проверка не удалась на стороне сервера, об ошибке «Некорректно_ПроверкаБезопасностиНеУда-лась» будет сообщено клиенту

Подпись

Некорректно_Сертификат Недействителен.

Некорректно_Проверка БезопасностиНеУдалась.

Тип события «аудит сертификата недействителен»

Сертификат с недействительной подписью всегда отклоняется.

Подпись сертификата недействительна, если эмитент сертификата неизвестен. Самоподписанный сертификат является его собственным эмитентом.

Если эта проверка не удалась на стороне сервера, об ошибке «Некорректно_ПроверкаБезопасностиНеУда-лась» будет сообщено клиенту

Проверка политики безопасности

Некорректно_Проверка ПолитикиСерификата НеУдалась.

Некорректно_Проверка БезопасностиНеУдалась. Тип события «аудит сертификата недействителен»

Подпись сертификата должна соответствовать требованиям алгоритма подписи сертификата, минимальной длине асимметричного ключа и максимальной длине асимметричного ключа для используемой политики безопасности, определенной в МЭК 62541-7 [1]. Если эта проверка не удалась на стороне сервера, клиенту будет сообщено об ошибке «Некорректно_ПроверкаБезопасности НеУдалась»

Проверка списка доверия

Некорректно_Сертификат Ненадежный.

Некорректно_Проверка БезопасностиНеУдалась.

Тип события «аудит ненадежного сертификата»

Данная ошибка блокируется, если сертификат экземпляра приложения не является доверенным и ни один из сертификатов СО в цепочке не является доверенным, результатом проверки сертификата будет сообщение «Не-коррекно_СертификатНенадежный».

Если проверка не удалась на стороне сервера, сообщение «Некорректно_ПроверкаБезопасностиНеУдалась» должно быть сообщено клиенту

Срок действия

Некорректно_СрокДействия СертификатаНедействителен. Некорректно_Время Издателя СертификатаНедействительно. Тип события «срок действия сертификата аудита истек»

Текущее время должно быть после начала срока действия и до его окончания.

Эта ошибка может быть блокирована

Имя хоста

Некорректно_Сертификат ИмениХостаНедействителен. Тип события «несоответствие данных сертификата аудита»

Имя хоста в URL-адресе, используемом для подключения к серверу, должно совпадать с одним из имен хостов, указанных в сертификате.Эта проверка пропускается для сертификатов СО. Эта проверка пропускается для проверки на стороне сервера. Данная ошибка блокируется

106

Окончание таблицы 106

ГОСТ Р 71809—2024

Этап

Ошибка/событие аудита

Описание

URI

Heкoppeктнo_URICepтификaт Недействителен.

Тип события «несоответствие данных сертификата аудита»

Сертификаты приложений и программного обеспечения содержат URI приложения или продукта, который должен соответствовать URI, указанному в описании приложения, предоставленном вместе с сертификатом.

Эта проверка опускается для сертификатов СО.

Эта ошибка не может быть блокирована.

URI сервера шлюза используется для проверки сертификата приложения при подключении к серверу шлюза (см. 7.1) к серверу шлюза (см. 7.1)

Использование сертификата

Некорректно_Использование СертификатаНеРазрешено. Некорректно_Использование ИздателяСертификата НеРазрешено.

Тип события «несоответствие сертификата аудита»

Каждый сертификат имеет набор применений для сертификата (см. МЭК 62541-7 [1]), использование должно соответствовать применению, запрошенному для сертификата (например, приложение, программное обеспечение или СО).

Ошибка блокируется, если в сертификате не указано, что использование обязательно

Поиск списка отзыва

Некорректно_Отзыв СертификатаНеизвестен. Некорректно_ОтзывИздателя СертификатаНеизвестен.

Тип события «отзыв сертификата аудита»

Для каждого сертификата СО должен быть список аннулирования. Проверка не выполняется, если этот список недоступен (прерывание сети препятствует доступу приложения к списку). Об ошибках не сообщается, если администратор отключил проверку отзыва для сертификата СО. Такая ошибка блокируется

Проверка отзыва

Некорректно_Сертификат

Отозван.

Некорректно_Издатель СертификатаОтозван.

Тип события «отзыв сертификата аудита»

Если сертификат отозван и не может быть использован, ошибка не может быть блокирована.

Если эта проверка не удалась на стороне сервера, клиенту будет сообщено «Некорректно_ПроверкаБезопасности НеУдалась»

Сертификаты размещаются в центральном хранилище сертификатов. На рисунке 20 показано взаимодействие между приложением, администратором и хранилищем сертификатов. Хранилище сертификатов находится на локальном компьютере или на центральном сервере. Точные механизмы, применяемые для доступа к хранилищу сертификатов, зависят от приложения и среды ИОК, настроенной администратором.

107

ГОСТ Р 71809—2024

Администратор

Приложение

Магазин сертификатов

1 Настройка приложения

Политики проверки сертификатов. Расположение сертификатов СО. Расположение списка отозванных сертификатов.

Распространение списка доверенных сертификатов

Удаленное приложение

2 Предоставление сертификата

PI экземпляра

6 Принятие сертификата экземпляра

3 Поиск сертификата эмитента

Проверка сертификата эмитента. Проверка сертификата в цепи доверия. Проверка сертификата экземпляра.

4 Поиск списка (списков) отозванных сертификатов

Проверка сертификата экземпляра.

Проверка сертификата эмитента.

5 Поиск списков доверенных сертификатов

Поиск сертификата экземпляра

или

поиск сертификата эмитента,

или

поиск любого сертификата в цепи

доверия

Рисунок 20 — Определение, является ли сертификат экземпляра приложения доверенным

6.1.4 Создание защищенного канала

Все приложения ОРС UA должны устанавливать защищенный канал перед созданием сессии. Настоящий защищенный канал требует, чтобы оба приложения имели доступ к сертификатам, которые можно использовать для шифрования и подписи обмена сообщений. Для этого можно использовать сертификаты экземпляра приложений, установленные путем следующего процесса, описанного в 6.1.2.

Этапы, участвующие в создании защищенного канала, показаны на рисунке 21.

108

Клиент

Сервер

1 Запрос на получение конечных точек

Не требуется, если клиент предконфигурирован с учетом политик сервера

2 Ответ получения конечных точек

Сертификат сервера.

Режим безопасности сообщений.

Политика безопасности.

Политики токенов идентификации пользователей

ГОСТ Р 71809—2024

Сертификационный орган

3 Подтверждение сертификата сервера

4 Запрос на открытие защищенного канала

Подпись СО.

Дата выдачи и истечения срока действия.

Список отзывов СО

Сертификат клиента.

Одноразовый номер клиента.

Подпись закрытым ключом клиента.

Шифрование открытым ключом сервера

6 Ответ открытия защищенного канала

Одноразовый номер клиента.

Токен безопасности.

Срок действия токена.

Подпись закрытым ключом сервера.

Шифрование открытым ключом клиента

7 Обновление маркера безопасности

5 Подтверждение сертификата клиента

Подпись СО.

Дата выдачи и истечения срока действия.

Список отзывов СО

Рисунок 21 — Установление защищенного канала

На рисунке 21 предполагается, что клиент и сервер имеют онлайн-доступ к сертификационному органу (СО). Если онлайн-доступ недоступен и если администратор установил открытый ключ СО на локальном устройстве, то клиент и сервер все еще должны подтвердить сертификаты приложений, используя этот ключ. На рисунке показан только один СО, однако не требуется, чтобы сертификаты клиента и сервера были выданы одной и той же компанией. Самозаверяющий сертификат экземпляра приложения не должен быть подтвержден СО. Любой сертификат должен быть отклонен, если он не находится в списке доверия сертификатов, предоставляемых администратором.

Клиент и сервер должны иметь список сертификатов, которые были настроены на доверие — список доверия сертификатов (СДС). Эти доверенные сертификаты являются сертификатами для сертификационного органа, они являются сертификатами экземпляра приложений ОРС UA. Приложения ОРС UA должны быть настроены на отклонение соединений с приложениями, которые не имеют доверенного сертификата.

Сертификаты могут быть скомпрометированы, что означает, что они больше не являются доверенными. Администраторы имеют право отозвать сертификат, удалив его из списка доверия для всех приложений, СО имеет возможность добавить сертификат в список отзывов сертификатов (СОС) для сертификата эмитента. Администраторы имеют право сохранить локальную копию СОС для каждого сертификата эмитента, когда онлайн-доступ недоступен.

Клиент не должен вызывать службу получения конечных точек каждый раз, когда он подключается к серверу. Эта информация должна меняться редко, и клиент может кэшировать его локально. Если сервер отклоняет запрос открытия защищенного канала, клиент должен вызывать службу получения конечных точек и убедиться, что конфигурация сервера не изменилась.

Существуют два риска безопасности, которые клиент должен учитывать в применении службы получения конечных точек. Первый поступает с неавторизированного сервера обнаружения, который пытается направить клиента на неавторизированный сервер. В этом случае клиент должен проверить,

109

ГОСТ Р 71809—2024

что сертификат сервера в описании конечной точки является доверенным сертификатом, прежде чем он вызывает службу создания «сессия».

Второй риск безопасности приходит от третьей стороны, которая изменяет содержание описания конечных точек, поскольку они передаются по сети обратно к клиенту. Клиент защищает себя от этого, сравнивая список описания конечных точек, возвращенных от службы получения конечных точек со списком, возвращенным в ответе создания сессии.

Точные механизмы применения токена безопасности для подписи и шифрования сообщений, обмениваемых по защищенному каналу, а также процесс для обновления токенов описан в ГОСТ Р 71811.

Сертификаты, применяемые для установления защищенного канала, становятся сертификатами экземпляра приложения. Допускается, что стеки связи могут не поддерживать сертификаты, которые являются специфичными для одного приложения. Вместо этого они ожидают, что вся коммуникация будет защищена с помощью сертификата, характерного для пользователя или всего устройства. Поэтому приложения ОРС UA должны обмениваться сертификатами экземпляра приложения при создании сессии.

6.1.5 Создание сессии

Как только клиент ОРС UA установил защищенный канал с сервером, он может создать сессию ОРС UA. Шаги, необходимые для создания сессии, показаны на рисунке 22.

Клиент

Сервер

Сертификационный орган

Поставщик удостоверений

1 Запрос на создание сессии

Сертификат экземпляра клиента. Одноразовый номер клиента

3 Ответ создания сессии

Сертификат экземпляра сервера. Подпись сертификата сервера. Сертификаты ПО сервера.

Одноразовый номер сервера

5 Запрос на активацию сессии

Сертификаты ПО клиента.

Подпись сертификата клиента.

Токен идентификации пользователя.

Подпись токена идентификации пользователя

7 Ответ активации сессии

Одноразовый номер сервера

2 Подтверждение сертификата клиента

4 Подтверждение сертификата сервера

6 Подтверждение токена идентификации сервера

Рисунок 22 — Установка сессии

На рисунке 22 показано взаимодействие между клиентом, сервером, СО и поставщиком удостоверений. СО отвечает за выдачу сертификатов экземпляра приложения. Если у клиента или сервера нет онлайн-доступа к СО, они должны проверить сертификаты экземпляра приложения, используя открытый ключ СО, который администратор должен установить на локальном устройстве.

Допустимо, что поставщик удостоверений является центральной базой данных, которой дано право проверять токен пользователя, предоставленный клиентом. Поставщик удостоверений может сообщать серверу, какие права доступа имеет пользователь. Поставщик удостоверений зависит от токена идентификации пользователя. Он может быть сертификационным органом, службой предоставления талонов протокола «цербер» (kerberos), сервером ws-trust или какой-либо коммерческой базой данных (с закрытым исходным кодом).

110

ГОСТ Р 71809—2024

Клиент и сервер должны подтвердить владение своими сертификатами экземпляров приложения, подписав сертификаты с добавлением одноразового номера. Точный механизм, используемый для создания подписей, подтверждающих владение, описан в 5.6.2. Аналогичным образом клиент должен доказать владение, либо предоставив секрет, например пароль, в токене идентификации пользователя, либо создав подпись с секретом, связанным с токеном идентификации пользователя.

6.1.6 Выдача себя за пользователя

После того как клиент ОРС UA установил сессию с сервером, он может изменить идентификатор пользователя, связанный с сессией, вызвав службу активации сессии.

Этапы, необходимые для выдачи себя за пользователя, показаны на рисунке 23.

Клиент Сервер

1 Запрос на активацию сессии

Поставщик удостоверений

Подпись сертификата клиента.

Токен идентификации пользователя. Подпись токена идентификации пользователя

3 Ответ активации сессии

Одноразовый номер сервера

2 Токен подтверждения идентификации пользователя

Рисунок 23 — Выдача себя за пользователя

6.2 Службы авторизации

6.2.1 Обзор

Службы авторизации предоставляют клиентам токены доступа от имени пользователей, которые они передают серверу для предоставления доступа к ресурсам.

В базовой модели (как показано на рисунке 22) сервер отвечает за авторизацию (т. е. решает, что может делать пользователь), в то время как отдельный поставщик удостоверений (например, операционная система) отвечает за аутентификацию (определяет, кем является пользователь).

В более сложных моделях сервер полагается на внешние службы авторизации для обеспечения некоторых своих требований к авторизации. Эти службы авторизации действуют совместно с внешним поставщиком удостоверений, который проверяет учетные данные пользователя до того, как внешняя служба авторизации создает токен доступа, который сообщает серверу, что разрешено делать пользователю. Взаимодействие клиента с этими службами может быть косвенным, как показано в 6.2.2, или прямым, как показано в 6.2.3.

Даже когда сервер требует, чтобы клиент использовал внешнюю службу авторизации, сервер по-прежнему несет ответственность за управление и обеспечение выполнения разрешений, назначенных узлам в его адресном пространстве. В ГОСТ Р 71811 подробно обсуждается использование внешней службы авторизации.

6.2.2 «Косвенное рукопожатие» с поставщиком удостоверений

Службы проверки подлинности (СПП) предоставляют доступ к поставщикам удостоверений, которые могут проверять учетные данные, предоставленные клиентами. Затем они предоставляют токены, которые могут быть переданы на сервер вместо учетных данных. Данные токены передаются как выданный токен идентификации, определенный в 7.36.6.

Протокол запроса токена зависит от СПП. Общие протоколы включают kerberos и oauth2. Oauth2 поддерживает авторизацию на основе утверждений, как описано в ГОСТ Р 71807. Серверы публикуют СПП, которые они поддерживают, в списке политик токенов пользователя, который возвращается с получением конечных точек. Поле выданного типа токена указывает протокол, используемый для связи с

111

ГОСТ Р 71809—2024

СПП. Поле URL конечной точки эмитента содержит информацию, необходимую клиенту для подключения к СПП с использованием протокола, требуемого СПП.

Базовое «Косвенное рукопожатие» показано на рисунке 24.

Рисунок 24 — «Косвенное рукопожатие» с поставщиком удостоверений

6.2.3 «Прямое рукопожатие» с поставщиком удостоверений

Службы проверки пользователя требуют, чтобы серверы были зарегистрированы на них, потому что токены доступа могут использоваться только с одним сервером. Такое положение может усложнить работу администраторов. Один из способов уменьшить эту сложность — использовать информацию сервера, которая уже управляется глобальной службой обнаружения (ГСО), описанной в МЭК 62541-12 [2]. В этой модели идентификационные данные пользователей управляются центральной службой проверки пользователя. Взаимодействия показаны на рисунке 25.

Политика токенов пользователя, возвращаемая сервером, предоставляет URL-адрес службы проверки пользователя и поставщика удостоверений. Если служба проверки приложений связана с ГСО, она знает все серверы, которым были выданы сертификаты. URI приложения используется в качестве идентификатора сервера, передаваемого в СПП.

112

Клиент

Сервер

Служба авторизации (СА)

Поставщик удостоверений

|--------Получение конечных точек-----►( К- - Конечные точки с политиками токена пользователя

И

-------------------Запрос токена с идентификацией пользователя ----------------г - Токен идентификации------|— — Запрос токена с токеном идентификации----------------►! | -----------Токен доступа----------------------{ Создание сессии---------►{

|—Активация сессии с токеном доступа—^ I I

Рисунок 25 — «Прямое рукопожатие» с поставщиком удостоверений

ГОСТ Р 71809—2024

Поставщик удостоверений отвечает за управление пользователями, известными системе. Он проверяет учетные данные, предоставленные клиентом, и возвращает токен идентификации доступа, который идентифицирует пользователя. Токен идентификации доступа передается в службу авторизации приложений, которая проверяет приложения клиента и сервера и создает новый токен доступа, который можно использовать для доступа к серверу.

6.3 Вызов службы без сессии

6.3.1 Описание

Вызов службы без сессии представлен для таких служб, как чтение, запись или вызов, которые не требуют какой-либо конкретной информации о состоянии вызывающего абонента. Он доступен через службу вызова службы без сессии, который предоставляет контекстную информацию, необходимую для вызова службы без сессии.

Вызов без сессии ограничен службами набора служб просмотра (за исключением регистрации узлов и разрегистрации узлов), набором служб атрибутов, набором служб метода, набором служб управления узлами и набором служб запроса. Все службы, принадлежащие тем наборам служб, которые поддерживаются сервером через сессию, также должны поддерживаться через службу вызова службы без сессии.

Службы без сессии вызываются через защищенный канал, используя токен доступа, возвращаемый службой авторизации, в качестве токена аутентификации в заголовке запроса. В защищенном канале должно быть включено шифрование, чтобы не позволять злоумышленникам увидеть токен доступа. Токен доступа обеспечивает аутентификацию пользователя. Если аутентификации приложения через защищенный канал достаточно, серверы могут не требовать токен доступа и предполагать, что это анонимный пользователь. В этом случае токен аутентификации должен быть нулевым. Сообщения вызова службы без сессии являются оболочкой для вызова службы и не имеют заголовка запроса и заголовка ответа, как другие службы. Эти параметры являются элементом основной части, которая содержит сообщение для вызова службы.

Любая конечная точка, применяемая для нормальной коммуникации, может использоваться для вызова службы без сессии при условии, что конечная точка поддерживает шифрование. Сервер возвращает сообщение «некорректно_службанеподдерживается», если он не поддерживает вызов без сессии для запроса, указанного в теле. Если он поддерживает вызов, но не с комбинацией используемых параметров конечной точки и безопасности, он возвращает сообщение «Некорректно_РежимБезо-пасностиНедостаточный».

Серверы могут предоставлять конечные точки, которые предназначены только для использования без вызова сессии. Конечные точки должны поддерживать получение конечных точек и поиск серверов в дополнение к службе вызова службы без сессии. Сервер возвращает «Некорректно_СлужбаНеПод-держивается» для других служб.

Сессия гарантирует, что индекс имен пространства или индекс сервера не изменится в течение всего времени существования сессии. Этого URI нельзя гарантировать между вызовами служб без сессии. Есть два варианта обеспечения соответствия индексов пространства имен в вызове ожидаемых имен пространства на сервере. Один из вариантов для вызывающей стороны — предоставить список URI пространства имен, используемых для построения индексов пространства имен. Данный вариант работает для одиночных вызовов службы без сессии. Второй вариант — предоставить версии URI для обеспечения согласованности массивов пространства имен между клиентом и сервером. Версия URI сначала считывается с сервера вместе с массивом пространства имен и массивом сервера. Его применение снижает накладные расходы на вызов для последовательности вызовов служб без сессии.

6.3.2 Параметры

Параметры службы определены в таблице 107.

113

ГОСТ Р 71809—2024

Таблица 107 — Параметры службы вызова «службы без сессии»

Имя

Тип

Описание

Запрос

Версия URI

Время версии

Версия массива пространства имен и массива сервера, используемая для вызова службы. Версия должна соответствовать значению свойства версия URI, которое определяет версию для списков URI в массиве пространства имен и свойствах массива сервера, определенных в ГОСТ Р 71810. Если параметр версия URI не соответствует свойству версия URI сервера, сервер должен вернуть сообщение «Некорректно_Время Вер-сииНедействительное». В этом случае клиент должен прочитать версию URI, массив пространства имен и массив сервера в объекте сервера, чтобы повторить вызов службы с правильной версией. Тип данных времени версии определен в 7.38. Если значение равно 0, параметр игнорируется, a URI определяются параметрами пространства имени и URI сервера в запросе и ответе.

Если значение не равно 0, параметры URI пространства имени и URI сервера в запросе игнорируются сервером и устанавливаются на нулевые массивы в ответе

URI

пространства имени □

Строка

Список URI, на который ссылается идентификатор узлов или квалифицированное имя в запросе. Индекс пространства имен 0 не должен быть в этом списке. Первая запись в этом списке должна быть «индекс пространства имен 1». Параметр должен игнорироваться сервером, если версия URI не равна 0

URI сервера []

Строка

Список URI, на который ссылается расширенный идентификатор узлов в запросе. Индекс сервера 0 не должен быть в этом списке. Первая запись в этом списке должна быть «индекс сервера 1».

Параметр должен игнорироваться сервером, если версия URI не равна 0

Идентификаторы языка []

Идентификатор языка

Список идентификаторов языка в порядке приоритета для локализованных строк. Первый идентификатор языка в списке имеет наивысший приоритет. Если сервер возвращает клиенту локализованную строку, сервер должен вернуть перевод с наивысшим приоритетом. Если у него нет перевода ни для одного из языков, указанных в этом списке, то он должен вернуть имеющееся у него значение строки и включить идентификатор языка в строку.

См. ГОСТ Р 71808 для получения более подробной информации об идентификаторах языка. Если идентификаторы языка имеют значение «пусто», возвращается языковой вариант для конкретного сервера

Идентификатор сервиса

Целое число без знака 32

Числовой идентификатор, присвоенный запросу сервиса «тип данных с описанием тела»

Тело запроса

Тело

*

Тело — это встроенная структура, содержащая соответствующий запрос службы для идентификатора службы

Ответ

URI пространства имени []

Строка

Список URI, на который ссылается идентификатор узла или квалифицированное имя в ответе.

Индекс пространства имен 0 не должен быть в этом списке.

Первая запись в этом списке должна быть «индекс пространства имен 1».

Пустой массив должен быть возвращен, если версия URI не равна 0

114

Окончание таблицы 107

ГОСТ Р 71809—2024

Имя

Тип

Описание

URI сервера

Строка

Список URI, на который ссылается расширенный идентификатор узла в ответе.

Индекс сервера 0 не должен быть в этом списке.

Первая запись в этом списке должна быть «индекс сервера 1».

Пустой массив должен быть возвращен, если версия URI не равна 0

Идентификатор службы

Целое число без знака 32

Числовой идентификатор, присвоенный службе ответа «тип данных, описывающих тело»

Тело

Тело ответа.

Тело является встроенной структурой, содержащей соответствующий сервис «ответ для идентификатора службы»

6.3.3 Результаты службы

В таблице 108 определены службы, специфичные для этой службы. Общие коды состояния определены в таблице 177.

Таблица 108 — Результирующие коды службы вызова «службы без сессии»

Символический идентификатор

Описание

Некорректно_ВремяВерсииНедействительное

Указанное время версии больше не действует

6.4 Сертификаты программного обеспечения

Примечание — Подробная информация о сертификатах программного обеспечения будет определена при пересмотре настоящего стандарта.

6.5 Аудит

6.5.1 Обзор

Аудит является обязательным во многих системах. Он предоставляет средства отслеживания действий, которые происходят в рамках нормальной работы системы. Он также предоставляет средства отслеживания ненормального поведения и является требованием с точки зрения безопасности. Для получения дополнительной информации об аспектах безопасности аудита см. ГОСТ Р 71807. В 6.5 описано, что ожидается от сервера и клиента ОРС UA в отношении аудита, и подробно описаны требования аудита для каждого набора услуг. Аудит может выполняться одним или обоими из следующих методов:

а) ОРС UA, которое генерирует событие аудита, может регистрировать запись аудита в файле журнала или другом месте хранения;

б) сервер ОРС UA, который генерирует событие аудита, может опубликовать событие аудита, используя механизм событий ОРС UA. Это позволяет внешнему клиенту ОРС UA подписываться и регистрировать записи аудита в файле журнала или другом месте хранения.

6.5.2 Журналы общего аудита

Каждый запрос службы ОРС UA содержит параметр строки, который используется для передачи идентификатора записи аудита. Клиент или любой сервер, работающий как клиент, например агрегирующий сервер, может создать запись в локальном журнале аудита для отправляемого запроса. Данный параметр позволяет этому клиенту передавать идентификатор для этой записи с запросом. Если этот сервер также ведет журнал аудита, он должен включить данный идентификатор в запись журнала аудита, которую он записывает. Когда этот журнал изучен, и эта запись будет найдена, исследователь сможет связать ее непосредственно с записью журнала аудита, созданной клиентом. Эта возможность позволяет отслеживать журналы аудита в системе.

6.5.3 Общие события аудита

Сервер, который ведет журнал аудита, должен предоставлять записи журнала аудита через сообщения о событиях. Тип события аудита и его подтипы определены в ГОСТ Р 71808. Сообщение о событии аудита включает идентификатор записи аудита. Подробности типа события аудита и его

115

ГОСТ Р 71809—2024

подтипов определены в ГОСТ Р 71810. Сервер, который является агрегирующим сервером, поддерживающим аудит, должен также подписаться на события аудита для всех агрегированных серверов (при условии, что они предоставляют аудит). Объединенный поток должен быть доступен с агрегирующего сервера.

6.5.4 Аудит для набора служб обнаружения

Данный набор служб разделяется на две группы: службы, вызываемые клиентами ОРС UA, и службы, вызываемые серверами ОРС UA. Службы поиска серверов и получения конечных точек, которые вызываются клиентами ОРС UA, создают записи аудита для неудачных вызовов службы. Служба регистрации сервера, вызываемая серверами ОРС UA, должна генерировать записи аудита для всех новых регистраций и для неудачных вызовов службы. Записи аудита должны включать URI сервера, имена серверов, URI обнаружения и статус онлайн. Записи аудита не должны создаваться для вызова службы регистрации сервера, которая не вызывает изменений на зарегистрированных серверах.

6.5.5 Аудит для набора служб защищенного канала

Все службы в данном наборе служб для серверов, поддерживающих аудит, могут создавать записи аудита и должны создавать события аудита для неудачных вызовов служб и для успешного вызова службы открытия защищенного канала и закрытия защищенного канала. Созданные клиентом записи аудита должны быть настроены до фактического вызова, что позволит предоставить правильный идентификатор записи аудита. Служба открытия защищенного канала должна сгенерировать событие аудита типа «тип события аудита открытия защищенного канала» или его подтип для типа запроса «доба-вить_0». События аудита для типа запроса «обновить_1» создаются только в случае сбоя обновления. Служба закрытия защищенного канала должна сгенерировать событие аудита типа события «канал аудита» или его подтипа. Оба типа событий являются подтипами типа события «канал аудита». Подробное описание узла источника, имени источника и дополнительных параметров см. в ГОСТ Р 71810. В случае сбоя сообщение для события этого типа должно включать описание причины сбоя службы. Это описание должно быть более подробным по сравнению с тем, которое было возвращено клиенту. С точки зрения безопасности клиенту необходимо знать только то, что произошел сбой, а с точки зрения аудита должна быть известна точная информация о сбое.

В случае ошибок валидации сертификата описание должно включать в себя идентификатор события аудита конкретного типа события «сертификат аудита», который был сгенерирован для сообщения об ошибке сертификата. Тип события «аудит сертификата» также должен содержать подробную ошибку проверки сертификата. Дополнительные параметры должны включать детали запроса. Понятно, что эти события могут быть сгенерированы базовыми стеками связи во многих случаях, но они должны быть доступны для сервера, и сервер должен о них сообщать.

6.5.6 Аудит для набора служб сессии

Все службы в данном наборе служб для серверов, которые поддерживают аудит, могут создавать записи аудита и должны генерировать события аудита для как успешных, так и неудачных вызовов службы. Данные службы должны генерировать событие аудита типа «тип события сессии аудита» или его подтипа. Они должны сгенерировать базовый тип события или соответствующий подтип, в зависимости от вызванной службы. Служба создания сессии генерирует события «тип события создания сессии аудита» или их подтипы. Служба активации сессии генерирует события «тип события создания сессии аудита» или их подтипы. Когда служба активации сессии вызывается для изменения личности пользователя, сервер должен генерировать события тип события активации сессии аудита или их подтипы. Служба закрытия сессии генерирует события «тип события сессии аудита» или их подтипы. Он всегда генерируется, если сессия завершается, например из-за превышения времени ожидания сессии или завершения работы сервера. Имя источника для событий этого типа должно быть «сессия/превы-шение времени ожидания» для превышения времени ожидания сессии, «сессия/закрытие сессии» для вызова службы закрытия сессия и «сессия/прерывание» для всех других случаев. Подробное описание узла источника, имени источника и дополнительных параметров приведено в ГОСТ Р 71810. В случае сбоя сообщение о событиях этого типа должно включать описание причины сбоя службы. Дополнительные параметры должны включать детали запроса.

Настоящий набор служб также должен генерировать дополнительные события аудита в случаях, когда возникают ошибки проверки сертификата. Эти события аудита создаются в дополнение к событиям типа события «сессия аудита». Определение типа события «сертификат аудита» и его подтипы см. в ГОСТ Р 71808.

Для клиентов, которые поддерживают аудит, доступ к службам в наборе служб сессии должен генерировать записи аудита как для успешных, так и для неудачных вызовов службы. Эти записи аудита 116

ГОСТ Р 71809—2024

должны быть настроены до фактического вызова службы, чтобы вызов содержал правильный идентификатор записи аудита.

6.5.7 Аудит для набора служб управления узлами

Все службы в этом наборе служб для серверов, которые поддерживают аудит, могут создавать записи аудита и должны генерировать события аудита как для успешных, так и для неудачных вызовов службы. Эти службы должны генерировать событие аудита типа «тип события управления узлом аудита» или его подтипы. Подробное описание узла источника, имя источника и дополнительные параметры приведены в ГОСТ Р 71810. В случае сбоя сообщение о событиях этого типа должно включать описание причины сбоя службы. Дополнительные параметры должны включать детали запроса.

Для клиентов, которые поддерживают аудит, доступ к службам в наборе служб управления узлом должен генерировать записи аудита как для успешных, так и для неудачных вызовов службы. Все записи аудита должны быть настроены до фактического вызова службы, чтобы вызов содержал правильный идентификатор записи аудита.

6.5.8 Аудит набора служб атрибутов

Службы записи или обновления истории в этом наборе служб для серверов, поддерживающих аудит, могут создавать записи аудита и должны генерировать события аудита как для успешных, так и для неудачных вызовов службы. Эти службы должны генерировать событие аудита типа «тип события обновления аудита» или его подтипы. В частности, служба записи должна генерировать событие аудита типа «тип события обновления записи аудита» или его подтипа. Служба обновления истории должна генерировать событие аудита типа «тип события обновления истории аудита» или его подтипа. Три подтипа типа события обновления истории аудита определены как тип события обновления событий истории аудита, тип события обновления значения истории аудита и тип события удаления истории аудита. Подтип зависит от типа выполняемой операции, обновления событий истории, обновления значений данных истории или удаления истории. Для подробного описания узла источника, имени источника и дополнительных параметров см. ГОСТ Р 71810. В случае сбоя сообщение о событиях этого типа должно включать описание причины сбоя службы. Дополнительные параметры должны включать детали запроса.

Службы чтения и чтения истории могут создавать записи аудита и события аудита для неудачных вызовов службы. Эти службы должны генерировать событие аудита типа «тип события аудита» или его подтипа. Для получения подробных сведений о назначении узла источника, имени источника и дополнительных параметров см. ГОСТ Р 71810. Сообщение о событиях этого типа должно включать описание причины сбоя службы.

Для клиентов, которые поддерживают аудит, доступ к службам записи или обновления истории в наборе служб атрибутов должен генерировать записи аудита как для удачных, так и для неудачных вызовов службы. Вызов других служб в этом наборе служб может создавать записи аудита. Все записи аудита должны быть настроены до фактического вызова службы, чтобы вызов содержал правильный идентификатор записи аудита.

6.5.9 Аудит для набора служб метода

Все службы в данном наборе служб для серверов, которые поддерживают аудит, могут создавать записи аудита и должны генерировать события аудита, как для удачных, так и для неудачных вызовов службы, если вызов изменяет адресное пространство, записывает значение или изменяет состояние системы (подтверждение тревоги, пакетная последовательность или другие системные изменения). Эти вызовы методов должны генерировать событие аудита типа «тип события метода обновления аудита» или его подтипы. Методы, которые не изменяют адресное пространство, не записывают значения или не изменяют состояние системы, могут генерировать события. Для получения подробной информации о назначении узла источника, имени источника и дополнительных параметров см. ГОСТ Р 71810.

Для клиентов, которые поддерживают аудит, доступ к набору служб метода должен генерировать записи аудита как для удачных, так и для неудачных вызовов службы, если вызов изменяет адресное пространство, записывает значение или изменяет состояние системы (подтверждение тревоги, пакетная последовательность или другие системные изменения). Вызов других методов может генерировать записи аудита. Все записи аудита должны быть настроены до фактического вызова службы, чтобы вызов содержал правильный идентификатор записи аудита.

6.5.10 Аудит для набора служб представления, запроса, предмета контроля и подписки

Все службы в данных четырех наборах служб предоставляют клиенту информацию, за исключением услуги передачи подписки в наборе служб подписки. Данные службы не будут создавать записи аудита или сообщения аудита. Служба передачи подписки должна генерировать событие аудита

117

ГОСТ Р 71809—2024

типа «тип события сессии аудита» или его подтипы как для удачных, так и для неудачных вызовов службы. Подробное описание узла источника, имени источника и дополнительных параметров см. ГОСТ Р 71810. В случае сбоя сообщение о событиях этого типа должно включать описание причины сбоя службы.

Для клиентов, которые поддерживают аудит, доступ к службе передачи подписки в наборе служб подписки должен генерировать записи аудита как для удачных, так и для неудачных вызовов службы. Вызов других служб в этом наборе служб не требует записей аудита. Все записи аудита должны быть настроены до фактического вызова службы, чтобы вызов содержал правильный идентификатор записи аудита.

6.6 Резервирование

6.6.1 Обзор

ОРС UA обеспечивает резервирование серверов, клиентов и сетей. ОРС UA предоставляет структуры данных и службы, с помощью которых резервирование может быть достигнуто стандартизованным образом.

Резервирование сервера позволяет клиентам иметь несколько источников для получения одних и тех же данных. Резервирование сервера может быть достигнуто несколькими способами, некоторые из которых требуют взаимодействия с клиентом, другие не требуют взаимодействия со стороны клиента. Резервные серверы могут существовать в системах без резервных сетей или клиентов. Резервные серверы также могут сосуществовать в системах с резервированием сети и клиентов. Резервирование сервера определено в 6.6.2.

Резервирование клиентов позволяет идентично сконфигурированным клиентам вести себя так, как если бы они являлись отдельными клиентами, но не все клиенты получают данные в определенный момент времени. В идеале при переключении клиента на резервный ресурс не должно быть потери информации. Резервные клиенты могут существовать в системах без резервированных сетей или серверов. Резервные клиенты также могут сосуществовать в системах с резервированием сети и сервера. Резервирование клиента формально определено в 6.6.3.

Резервирование в сети позволяет клиенту и серверу иметь несколько каналов связи для получения одних и тех же данных. Резервные сети могут существовать в системах без резервных серверов или клиентов. Резервные сети также могут сосуществовать в системах с резервированием клиента и сервера. Резервирование в сети формально определено в 6.6.4.

6.6.2 Резервирование сервера

6.6.2.1 Общие положения

Существуют два основных режима резервирования сервера: прозрачный и непрозрачный.

При прозрачном резервировании обход отказа сервера с одного сервера на другой — прозрачный для клиента. Клиент не знает, что произошел обход отказа, и клиент не может контролировать поведение обхода отказа. Кроме того, клиенту не следует выполнять каких-либо действий, чтобы продолжать отправлять или получать данные.

При непрозрачном резервировании переключение с одного сервера на другой и действия по продолжению отправки или получения данных выполняются клиентом. Клиент должен знать о наборе резервных серверов и должен выполнить необходимые действия, чтобы извлечь пользу от резервирования сервера.

Объект резервирования сервера, определенный в ГОСТ Р 71810, указывает режим, поддерживаемый сервером. Тип объекта «тип резервирования сервера» и его подтипы «тип прозрачного резервирования» и тип «непрозрачного резервирования», определенные в ГОСТ Р 71810, определяют информацию для поддерживаемого режима резервирования.

6.6.2.2 Требования к набору резервных серверов

Серверы ОРС UA, которые являются частью набора резервных серверов, имеют определенные требования к адресному пространству. Данные требования позволяют клиенту постоянно получать доступ к информации с серверов в наборе резервных серверов и делать разумный выбор, связанный с работоспособностью и доступностью серверов в наборе резервных серверов.

Серверы в наборе резервных серверов должны иметь идентичное адресное пространство, включая:

- идентичный идентификатор узлов;

- идентичные пути просмотра и структуру адресного пространства;

- идентичную логику настройки уровня службы.

118

ГОСТ Р 71809—2024

Единственные узлы, которые могут различаться между серверами в наборе резервных серверов, — это узлы, которые находятся в локальном пространстве имен сервера как узлы диагностики сервера. От клиента, который переключается на резервный сервер, не требуется переводить пути просмотра или иным образом решать идентификаторы узлов. Серверам разрешено добавлять и удалять узлы до тех пор, пока все серверы в наборе резервных серверов будут обновлены с одинаковыми изменениями узлов.

Все серверы в наборе резервных серверов должны быть синхронизированы по времени. Это может означать установку службы ntp или службы ptp.

Есть и другие важные условия синхронизации для резервированной системы:

- идентификаторы событий: каждый сервер ОРС UA в наборе серверов с прозрачным и горячим и зеркальным резервированием должен синхронизировать идентификаторы событий, чтобы предотвратить ошибочную обработку клиентом одного и того же события несколько раз просто потому, что идентификаторы событий различаются. Это очень важно для аварийных сигналов и условий. Для наборов серверов с холодным, теплым и горячим резервированием клиенты должны иметь возможность обрабатывать идентификаторы событий, которые не синхронизированы. После любого обхода отказа клиент должен вызвать службу обновления состояния, определенную в МЭК 62541-9 [5];

- отметка времени (источник/сервер): если сервер предоставляет данные от нижестоящего устройства (plc, des и т. д.), то отметка времени источника и отметка времени сервера, сообщаемые всеми резервными серверами, должны максимально совпадать. Клиенты должны одобрять использование отметки времени источника;

- точки продолжения: поведение точек продолжения не меняется, клиенты должны быть готовы к потере точек продолжения. Серверы в наборах с прозрачным и горячим и зеркальным резервированиями должны синхронизировать точки продолжения, и они могут делать это в других режимах.

6.6.2.3 Прозрачное резервирование

а) Поведение клиента

Для клиента набор серверов с прозрачным резервированием выглядит так, как будто это всего лишь один сервер, и у клиента нет действий по обходу отказа, которые необходимо выполнить. Все серверы в наборе резервных серверов имеют идентичный URI сервера и идентичный URL конечной точки.

Прозрачная настройка резервирования показана на рисунке 26.

Рисунок 26 — Пример настройки прозрачного резервирования

Для прозрачного резервирования ОРС UA предоставляет структуры данных, позволяющие клиентам определять, какие серверы входят в набор резервных серверов, уровень обслуживания каждого сервера и какой сервер в настоящее время отвечает за клиентскую сессию. Эта информация указана в

119

ГОСТ Р 71809—2024

типе объекта «тип прозрачного резервирования», определенном в ГОСТ Р 71810. Поскольку URI сервера идентичен для всех серверов в наборе резервных серверов, серверы идентифицируются с помощью идентификатора сервера, содержащегося в информации, представленной в объекте «тип прозрачного резервирования».

При прозрачном резервировании клиент не может контролировать, к какому физическому серверу он фактически подключается. Обход отказа контролируется набором резервных серверов, и клиент также не может активно переключаться на другой сервер в наборе резервных серверов.

б) Требования к серверу

Все взаимодействия ОРС UA в рамках данной сессии должны поддерживаться одним сервером, и клиент может определить, какой это сервер, что позволяет вести полный контрольный журнал для данных. Серверы несут ответственность за синхронизацию информации между серверами. Функциональный сервер берет на себя сессию и подписки отказавшего сервера. При отказе может потребоваться повторное подключение защищенного канала, но URL конечной точки сервера и URI сервера не должны изменяться. Клиент сможет продолжить общение с сессиями и подписками, созданными на ранее используемом сервере.

На рисунке 26 представлен абстрактный вид прозрачного набора резервных серверов. Два или более сервера в наборе резервных серверов совместно используют виртуальный сетевой адрес, и поэтому все серверы имеют одинаковый URL конечной точки. Способ создания и управления этим виртуальным сетевым адресом зависит от поставщика. Может быть специальное оборудование, которое передает сетевой адрес, отображаемый для остальной части сети. Может быть специальное оборудование, в котором все компоненты являются резервными и автоматически выполняют обход отказа на аппаратном уровне. Могут быть даже программные системы, в которых вся прозрачность полностью обеспечивается программным обеспечением.

6.6.2.4 Непрозрачное резервирование

а) Обзор

Для непрозрачного резервирования ОРС UA предоставляет структуры данных, позволяющие клиенту определить, какие серверы доступны в наборе резервных серверов, а также информацию о серверах, которая сообщает клиенту, какие режимы обхода отказа поддерживает сервер. Эта информация позволяет клиенту определить, какие действия ему могут потребоваться для выполнения обхода отказа. Эта информация указана в типе объекта «тип непрозрачного резервирования», определенном в ГОСТ Р 71810.

На рисунке 27 показана настройка непрозрачного резервирования.

Рисунок 27 — Настройка непрозрачного резервирования

120

ГОСТ Р 71809—2024

Для непрозрачного резервирования серверы будут иметь уникальные IP-адреса. Сервер также имеет дополнительные режимы обхода отказа: холодный, теплый, горячий и горячий и зеркальный. Клиент должен знать о наборе резервных серверов и должен выполнить некоторые действия в зависимости от режима обхода отказа. Эти действия описаны в таблице 111, а дополнительные примеры и пояснения приведены в 6.6.2.4 д).

Клиент должен иметь возможность ожидать, что отметка времени источника, связанная со значением, будет примерно одинаковой для всех серверов в наборе резервных серверов для одного и того же значения.

б) Уровень службы

Уровень службы предоставляет клиенту информацию о состоянии сервера и его способности предоставлять данные. Формальное определение для уровня службы см. в ГОСТ Р 71810. Уровень службы — это байт с диапазоном от 0 до 255, где значения попадают в поддиапазоны, определенные в таблице 109.

Алгоритм, используемый сервером для определения своего уровня службы в каждом поддиапазоне, зависит от сервера. Однако все серверы в наборе резервных серверов должны использовать один и тот же алгоритм для определения уровня службы. Все серверы, независимо от членства в наборе резервных серверов, должны придерживаться поддиапазонов, определенных в таблице 109.

Таблица 109 — Диапазоны уровня службы

Поддиапазон

Имя

Описание

0—0

Обслуживание

Отказавший сервер находится в поддиапазоне обслуживания. Следовательно, новые клиенты не должны подключаться, а подключенные в настоящее время клиенты должны отключиться. Сервер должен выставить целевое время, в которое клиенты могут повторно подключиться. Дополнительную информацию см. в 9.4 ГОСТ Р 71810—2024.

Сервер, который был настроен на обслуживание, обычно проходит обслуживание или обновления. Основная цель обслуживания уровня службы — гарантировать, что клиенты не создают нагрузку на сервер, и дать серверу время для выполнения любых требуемых действий. Эта нагрузка включает даже простые попытки подключения или мониторинг уровня службы. Расчетное время возврата указывает, когда клиент должен проверить, доступен ли сервер. Если обновления или исправления занимают больше времени, чем ожидалось, клиент может обнаружить, что значение «расчетное время возврата» было увеличено в будущем. Если сервер не предоставляет расчетное время возврата или если время истекло, клиент должен использовать гораздо больший интервал между повторными подключениями к серверу в поддиапазоне обслуживания, чем его обычный интервал повторного подключения

1—1

Нет данных

Отказавший сервер не работает. Следовательно, клиент не может обмениваться с ним какой-либо информацией. Сервер, скорее всего, не имеет данных, кроме уровня службы, статуса сервера и диагностической информации.

Отказавший сервер в этом поддиапазоне не имеет данных. Клиенты могут подключаться к нему для получения уровня службы, статуса сервера и другой диагностической информации. Если базовая система вышла из строя, обычно статус сервера указывает «Ошибка_Комуникации_6». Клиент может отслеживать этот сервер на предмет изменений статуса сервера и уровня службы, которые будут указывать на то, что может быть возобновлена нормальная коммуникация

2—199

Неполноценный

Сервер частично работает, но испытывает такие проблемы, что части адресного пространства не обслуживаются или недоступны. Чтобы понять параметры клиента, см. информацию, представленную далее (пример использования этого поддиапазона уровня службы: если 3 из 10 устройств, подключенных к серверу, недоступны).

121

ГОСТ Р 71809—2024

Окончание таблицы 109

Поддиапазон

Имя

Описание

2—199

Неполноценный

Серверы, которые сообщают об уровне службы в поддиапазоне «неполноценный», частично могут обслуживать запросы клиентов. Ухудшение может быть вызвано потерей соединения с базовыми системами. Сервер может быть перегружен, и он не может своевременно доставлять данные клиентам.

Если у клиентов возникают трудности с получением необходимых данных, они должны переключиться на другой сервер, если какие-либо серверы в диапазоне работоспособности доступны. Если в диапазоне работоспособности нет доступных серверов, то клиенты могут переключиться на сервер с более высоким уровнем обслуживания или на тот, который предоставляет требуемые данные. Некоторые клиенты также могут быть настроены для данных с более высоким приоритетом и могут проверять все неполноценные серверы, чтобы увидеть, может ли какой-либо из серверов предоставлять данные с высоким приоритетом в высоком качестве, но эта функция будет зависеть от клиента. Клиент может подключаться к нескольким неполноценным серверам, чтобы максимально использовать доступную информацию

200—255

Работоспособный

Сервер полностью готов к работе. Таким образом, клиент может получить всю информацию с этого сервера. Поддиапазон позволяет серверу предоставлять информацию, которая может использоваться клиентами для балансировки нагрузки. Пример использования этого поддиапазона уровня службы может отражать загрузку «центральный процессор» (ЦП) сервера, когда данные доставляются, как ожидалось.

Серверы в поддиапазоне работоспособного уровня службы доставляют информацию своевременно. По внутренней причине сервера этот уровень службы может измениться или может использоваться для балансировки нагрузки, описанной в 6.6.2.4 в).

Клиенты должны подключаться к серверу с наивысшим уровнем службы. После подключения уровень службы может измениться, но клиент не должен переключаться на другой сервер, пока уровень службы сервера доступен и находится в поддиапазоне работоспособности

в) Распределение нагрузки

В системах, где доступно несколько «горячих» серверов [см. 6.6.2.4 д)], серверы в наборе резервных серверов могут распределять нагрузку, создаваемую клиентами, путем установки уровня службы в поддиапазоне работоспособности на основе текущей нагрузки. Ожидается, что клиенты будут подключаться к серверу с наивысшим уровнем службы. Клиенты не должны переключаться на другой сервер из резервных серверов, пока сервер находится в поддиапазоне работоспособности. Это нормальное поведение для всех клиентов при обмене данными с резервными серверами. Серверы могут регулировать свой уровень обслуживания в зависимости от количества подключенных клиентов, загрузки ЦП, использования памяти или любых других критериев, специфичных для сервера.

Например, в системе с тремя серверами все серверы изначально находятся на уровне службы 255, но, когда клиент подключается, сервер с клиентским подключением устанавливает свой уровень на 254. Следующий клиент будет подключаться к другому серверу, поскольку оба других сервера все еще будут на уровне 255.

Поставщик сервера должен определить логику распределения нагрузки и количество ожидаемых клиентов, нагрузку на ЦП или другие критерии на каждом сервере, прежде чем уровень службы будет уменьшен. Предполагается, что некоторые серверы смогут сделать это без какой-либо связи между серверами.

г) Режимы обхода отказа сервера

Режим обхода отказа сервера предоставляется в объекте резервирования сервера, определенном в ГОСТ Р 71810. Различные режимы обхода отказа для непрозрачного резервирования описаны в таблице 110.

122

Таблица 110 — Режимы обхода отказа сервера

ГОСТ Р 71809—2024

Имя

Описание

Холодное

В режиме холодного переключения одновременно может быть активен только один сервер. Это может означать, что резервные серверы недоступны (не включены) или доступны, но не работают (компьютер работает, но приложение не запускается)

Теплое

В режиме теплого переключения при отказе резервные серверы могут быть активными, но не могут подключаться к фактическим точкам данных (обычно это система, в которой базовые устройства ограничены одним подключением). Базовые устройства, такие как plc, могут иметь ограниченные ресурсы, которые разрешают подключение к одному серверу. Следовательно, только один сервер сможет потреблять данные. Переменная «уровень службы», определенная в ГОСТ Р 71810, указывает способность сервера предоставлять свои данные клиенту

Горячее

В режиме горячего переключения все серверы включены и работают. В сценариях, где серверы получают данные от нижестоящего устройства, такого как plc, один или несколько серверов активно подключаются к нижерасположенным устройствам параллельно. Эти серверы имеют минимальную информацию о других серверах в своей группе и работают независимо. Когда сервер выходит из строя или сталкивается с серьезной проблемой, его уровень службы падает. При восстановлении сервер возвращается к набору резервных серверов с уровнем службы, где определено, что он доступен

Горячее и зеркальное

Режим «горячее и зеркальное переключение» — это аварийный режим для серверов, которые дублируют свои внутренние состояния на все серверы в наборе резервных серверов, и более одного сервера могут быть активными и полностью работоспособными. Состояние дублирования как минимум включает в себя сессии, подписки, зарегистрированные узлы, точки продолжения, номера последовательности и отправленные уведомления. Переменная «уровень службы», определенная в ГОСТ Р 71810, должна использоваться клиентом для поиска серверов с наивысшим уровнем службы для достижения распределения нагрузки

д) Поведение клиента при отказе

Общие положения

Каждый сервер поддерживает список URI сервера для всех резервных серверов в наборе резервных серверов. Список предоставляется вместе с режимом обхода отказа в объекте резервирование сервера, определенном в ГОСТ Р 71810. Чтобы клиенты могли подключаться ко всем серверам в списке, каждый сервер в списке должен предоставлять описание приложения для всех серверов в наборе резервных серверов через службу поиска серверов. Эта информация необходима клиенту для преобразования URI сервера в информацию, необходимую для подключения к другим серверам в наборе резервных серверов. Следовательно, клиенту необходимо подключиться только к одному из резервных серверов, чтобы найти другие серверы на основе предоставленной информации. Клиент должен сохранять информацию о других серверах в наборе резервных серверов.

В таблице 111 определены список действий клиента для начальных подключений и отработки отказа.

Таблица 111 — Действия при отказе при резервировании

Режим аварийного переключения и параметры клиента

Холодное

Теплое

Горячее (а)

Горячее (б)

Горячее и зеркальное

При первоначальном подключении в дополнение к действиям на активном сервере:

Необязательно для проверки статуса

подключиться более чем к одному серверу ОРС UA

X

X

X

создать подписки и добавить отслеживаемые элементы

X

X

X

активировать выборку на подписках

X

X

активировать публикацию

X

123

ГОСТ Р 71809—2024

Окончание таблицы 111

Режим аварийного переключения и параметры клиента

Холодное

Теплое

Горячее (а)

Горячее (б)

Горячее и зеркальное

При аварийном переключении:

открыть защищенный канал для резервации ОРС UA сервера

X

X

создать сессию в резервировании ОРС UA сервера

X

активировать сессию в резервировании ОРС UA сервера

X

X

создать подписки и добавить элементы контроля

X

активировать выборку в подписках

X

X

активировать публикацию

X

X

X

Клиенты, взаимодействующие с непрозрачным набором резервных серверов, требуют некоторой дополнительной логики, чтобы иметь возможность обрабатывать отказы сервера и через обход отказа переключаться на другой сервер в наборе резервных серверов. На рисунке 28 представлен обзор этапов, которые обычно выполняет клиент при первом подключении к набору резервных серверов. Рисунок не охватывает все возможные сценарии ошибок.

Исходный сервер может быть получен через стандартное обнаружение или из постоянного списка серверов в наборе резервных серверов. Но в любом случае клиенту необходимо проверить, к какому

124

ГОСТ Р 71809—2024

серверу в установленном сервере он должен подключиться. Отдельные действия будут зависеть от режима переключения сервера при отказе, который предоставляет сервер, и режима обхода отказа, который будет использовать клиент.

Клиенты, однажды подключенные к резервному серверу, должны знать о режимах обхода отказа, поддерживаемых сервером, поскольку эта поддержка влияет на доступные параметры, связанные с поведением клиента. Клиент всегда может обращаться с сервером, используя меньший режим обхода отказа, т. е. для сервера, который обеспечивает автоматическое резервирование, клиент может подключиться и выбрать режим работы с ним, как если бы сервер работал в режиме теплого или холодного (ненагруженного) резервирования. Выбор остается за клиентом. В случае режима переключения «горячее и зеркальное» клиент не должен использовать режим переключения «теплое» или «горячее», так как это создаст ненужную нагрузку на серверы.

Холодный обход отказа

В режиме холодного обхода отказа клиент может одновременно подключаться только к одному серверу. Когда клиент теряет связь с активным сервером, он пытается подключиться к резервному(ым) серверу(ам), который может не быть доступным. В этой ситуации клиенту может потребоваться дождаться, пока станет доступным резервный сервер, а затем создать подписки и элементы контроля и активировать публикацию. Клиент должен кэшировать любую требуемую информацию, связанную со списком доступных серверов в наборе резервных серверов. На рисунке 29 показано действие, которое клиент предпримет, если он обращается к серверу в режиме холодного обхода отказа.

Исходный сервер

Альтернативный сервер

Рисунок 29 — Холодное переключение

Примечание — Может произойти потеря данных с момента прерывания соединения с активным сервером до момента, когда клиент получит ответы на публикацию от резервного сервера.

Теплый обход отказа

В режиме теплого обхода отказа клиент должен подключиться к одному или нескольким серверам в наборе резервных серверов, в первую очередь для отслеживания уровня службы. Клиент может подключаться и создавать подписки и элементы мониторинга на нескольких серверах, но выборка и публикация могут быть активны только на одном сервере. Однако активный сервер будет возвращать фактические данные, тогда как другие серверы в наборе резервных серверов будут возвращать соот-

125

ГОСТ Р 71809—2024

ветствующую ошибку для отслеживаемых элементов в ответе на публикацию, например «Некоррек-тно_ОтсутствуетВзаимодействиеПроцессов». Один активный сервер можно найти, прочитав переменную «уровень службы» со всех серверов. Сервер с наивысшим уровнем службы является активным сервером. Для обхода отказа клиент активирует выборку и публикацию на сервере с наивысшим уровнем службы. На рисунке 30 показаны действия, которые клиент должен выполнить при взаимодействии с сервером в режиме горячего переключения.

Примечание — Может иметь место временная потеря данных с момента прерывания соединения с активным сервером до момента получения клиентом ответов публикации от резервного сервера.

Горячий обход отказа

В режиме горячего обхода отказа клиент должен подключиться к двум или более серверам в наборе резервных серверов и подписаться на переменную «уровень службы», определенную в ГОСТ Р 71810, чтобы найти наивысший уровень службы для достижения распределения нагрузки. Это означает, что клиенты должны отправлять запросы служб, такие как просмотр, чтение и запись, на сервер с наивысшим уровнем службы. Действия, связанные с подпиской, необходимо будет активировать для каждого подключенного сервера. У клиентов существуют следующие варианты реализации поведения подписки в режиме горячего обхода отказа:

а) клиент подключается к нескольким серверам и устанавливает подписку(и) на каждом, где только одна является «отчетом»; остальные — только «выборкой». Клиент должен установить размер очереди для элементов мониторинга таким образом, чтобы он мог буферизовать все изменения во время обхода отказа. Время обхода отказа — это время между прерыванием соединения и моментом, когда клиент получает ответы на публикацию от резервного сервера. При обходе отказа клиент должен включить создание отчетов на сервере со следующей максимальной доступностью;

б) клиент подключается к нескольким серверам и устанавливает подписку(и) на каждом, где все подписки являются «отчетом». Клиент несет ответственность за одновременную обработку нескольких потоков подписки.

Рисунок 31 иллюстрирует функции, которые клиент будет выполнять при взаимодействии с сервером в режиме горячего обхода.

126

ГОСТ Р 71809—2024

Исходный Альтернативный

а) Горячее

Исходный

Альтернативный

б) Горячее

Рисунок 31 — Автоматическое переключение

Не ожидается, что клиенты будут автоматически переключаться на сервер, восстановившийся после отказа, но клиент должен установить с ним соединение.

Горячий и зеркальный обход отказа

Режим горячего и зеркального обхода отказа — это когда клиент подключается только к одному серверу в наборе резервных серверов, потому что сервер будет делиться этой информацией о сес-сии/состоянии с другими серверами. Чтобы проверить возможность подключения к другим резервным серверам, разрешено создавать сессии с другими серверами и поддерживать открытые подключения, периодически считывая уровень службы. Клиент не должен создавать подписки на резервных серверах

127

ГОСТ Р 71809—2024

для контроля состояния (для предотвращения чрезмерной нагрузки на серверы). Этот режим позволяет клиентам обходить отказ без создания нового контекста для связи. При обходе отказа клиент просто создает новый защищенный канал на альтернативном сервере, а затем вызывает активацию сессии; после этого все действия клиента (просмотр, подписки, чтение истории и т. д.) будут возобновлены. На рисунке 32 показано поведение, которое клиент будет выполнять при взаимодействии с сервером в режиме горячего и зеркального обхода отказа.

Исходный Альтернативный

сервер сервер

Рисунок 32 — Горячий и зеркальный обход отказа

Данный обход отказа аналогичен прозрачному резервированию. Преимущество состоит в том, что клиент имеет полный контроль над выбором сервера. Недостатком является то, что клиент должен иметь возможность обрабатывать обход отказа.

6.6.2.5 Скрытие обхода отказа с помощью прокси-сервера

Поставщик может использовать функции непрозрачного резервирования для создания прокси-сервера, работающего на клиентском компьютере, для обеспечения прозрачного резервирования для клиента. Это уменьшает количество функциональных возможностей, которые необходимо реализовать у клиента, и позволяет более простым клиентам использовать преимущества непрозрачного резервирования. Прокси-сервер просто дублирует подписки и модификации подписок, передавая вызовы на оба сервера, но разрешая публикацию и выборку только на одном сервере. Когда прокси-сервер обнаруживает отказ, он разрешает публикацию и/или выборку на резервном сервере, как бы это сделал клиент, если бы он был клиентом, поддерживающим резервирование.

На рисунке 33 показан прокси-сервер, используемый для обеспечения прозрачного резервирования.

128

ГОСТ Р 71809—2024

Рисунок 33 — Прокси-сервер для резервирования

6.6.3 Резервирование клиентов

Резервирование клиента поддерживается в ОРС UA службой передачи подписки и предоставлением информации о клиенте в диагностической информации сервера. Поскольку срок действия подписки не привязан к сессии, в которой она была создана, клиенты резервного копирования могут использовать стандартную диагностическую информацию, доступную для отслеживания активной сессии клиента с сервером. При обнаружении отказа активного клиента резервный клиент затем инструктирует сервер передать подписки в его собственную сессию. Если подписка составлена тщательно и с достаточными ресурсами для буферизации данных во время обхода отказа, потерю данных из-за переключения клиента при отказе можно предотвратить.

ОРС UA не предоставляет стандартизированный механизм для передачи идентификаторов сессии и идентификаторов подписки от активного клиента к резервным клиентам, но пока резервные клиенты знают имя активного клиента, эта информация легко доступна с помощью частей диагностики сессии и диагностики подписок данных диагностики сервера. Эта информация доступна для авторизованных пользователей и для пользователя, активного в сессии. Служба передачи подписки требует, чтобы на всех резервированных клиентах был один и тот же пользователь.

6.6.4 Резервирование сети

6.6.4.1 Обзор

Резервные сети могут использоваться с ОРС UA как в прозрачном, так и в непрозрачном режимах резервирования.

Резервирование сети может быть объединено с резервированием сервера и клиента.

6.6.4.2 Прозрачное резервирование

При использовании прозрачной сети конечная точка одного сервера может быть доступна по разным сетевым путям. Этот случай полностью обрабатывается сетевой инфраструктурой. Выбранный сетевой путь и обход отказа являются прозрачными для клиента и сервера. Прозрачное сетевое резервирование проиллюстрировано на рисунке 34.

129

ГОСТ Р 71809—2024

Примеры

1 Физическое устройство, такое как маршрутизатор или шлюз, которое автоматически изменяет сетевую маршрутизацию для поддержания связи.

2 Виртуальный адаптер, который автоматически меняет сетевой адаптер для поддержания связи.

130

ГОСТ Р 71809—2024

6.6.4.3 Непрозрачное резервирование

При использовании непрозрачной сети сервер предоставляет разные конечные точки для разных сетевых путей. Это требует, чтобы и сервер, и клиент поддерживали несколько сетевых подключений. В этом случае клиент несет ответственность за выбор конечной точки и обход отказа. Для обхода отказа можно использовать обычный сценарий повторного подключения, описанный в 6.7. Только защищенный канал создается с другой конечной точкой. Сессии и подписки можно использовать повторно. Непрозрачное резервирование сети показано на рисунке 35.

Сервер

Рисунок 35 — Непрозрачное резервирование сети

Информация о различных сетевых путях указана в типе объекта тип «непрозрачного резервиро-ваниия», определенном в ГОСТ Р 71810.

6.6.5 Принудительный обход отказа вручную

В системах с резервированием обычно требуется, чтобы конкретный сервер в наборе резервных серверов был исключен из набора резервных серверов на определенный период времени. К причинам, которые могут вызвать необходимость исключения, относятся:

- обновление сертификата;

- реконфигурация безопасности;

- перезагрузка или перезапуск машины для обновления программного обеспечения и патчи;

- установка нового программного обеспечения;

- реконфигурация адресного пространства.

Удаление из набора резервных серверов может быть выполнено путем полного выключения или путем установки уровня службы сервера на поддиапазон обслуживания. Это можно сделать с помощью специального инструмента настройки сервера или с помощью метода запроса изменения состояния сервера в типе резервирования сервера. Метод определен в ГОСТ Р 71810.

Данный метод требует, чтобы клиент предоставил учетные данные с правами администратора на сервере.

131

ГОСТ Р 71809—2024

6.7 Восстановление соединений

После того, как клиент устанавливает соединение с сервером и создает подписку, клиент контролирует статус соединения. На рисунке 36 показаны этапы подключения клиента к серверу и общая логика обработки повторного подключения (охвачены не все возможные сценарии ошибок).

Предпочтительный механизм для контроля клиентом статуса соединения — поддерживать активность подписки. Клиент должен подписаться на переменную состояния в статусе сервера, чтобы обнаруживать закрытие системы или другие состояния отказа. Если подписка не создается или сервер не поддерживает подписки, соединение можно отслеживать, периодически считывая переменную состояния.

Рисунок 36 — Последовательность повторного подключения

Когда клиент теряет соединение с сервером, цель состоит в том, чтобы восстановить соединение без потери информации. Для этого клиент должен повторно установить соединение, создав новый защищенный канал и активировав сессию с помощью службы активации сессии. Это назначает новый защищенный канал существующей сессии и позволяет клиенту повторно использовать сессию и подписки на сервере. Чтобы восстановить защищенный канал и активировать сессию, клиент должен ис-

132

ГОСТ Р 71809—2024

пользовать ту же политику безопасности, сертификат экземпляра приложения и те же учетные данные пользователя, которые использовались для создания исходного защищенного канала. Это приведет к тому, что клиент будет получать данные и уведомления о событиях без потери информации при условии, что очереди в элементах мониторинга не переполняются.

Клиент должен создать новую сессию только в случае сбоя активации сессии. Передача подписки используется для переноса подписки в новую сессию. В случае сбоя передачи подписки клиенту необходимо создать новую подписку.

Когда соединение потеряно, ответы на публикацию могут быть отправлены, но не получены клиентом.

После восстановления соединения клиент должен вызвать повторную публикацию в цикле начиная со следующего ожидаемого номера последовательности и увеличивая номер до тех пор, пока сервер не вернет статус «Некорректно_СообщениеНеДоступно». После получения этого статуса клиент должен начать отправлять запросы публикации с обычной обработкой публикации. Эта последовательность гарантирует, что потерянные уведомительные сообщения, поставленные в очередь на сервере, не будут перезаписаны новыми ответами публикации.

Если клиент обнаруживает отсутствующие номера последовательности в публикации и не может получить потерянные уведомительные сообщения через повторную публикацию, клиент должен использовать метод повторной отправки данных или должен прочитать значения всех элементов мониторинга данных, чтобы убедиться, что у клиента есть последние значения для всех элементов мониторинга.

Объект сервера предоставляет метод повторной отправки данных, который инициирует повторную отправку всех элементов мониторинга в подписке. Этот метод определен в настоящем стандарте. Если этот метод вызывается, последующие ответы на публикацию должны содержать текущие значения всех данных элементов мониторинга в подписке, где для параметра режим контроля установлено значение «отчет». Если значение поставлено в очередь для элемента мониторинга данных, следующее значение в очереди отправляется в ответе публикации. Если для элемента мониторинга данных в очереди нет значения, последнее отправленное значение повторяется в ответе публикации. Сервер должен проверить, что метод вызывается в контексте сессии, которому принадлежит подписка.

Независимо от подробной стратегии восстановления, клиент должен убедиться, что он не перезаписывает новые данные на клиенте более старыми значениями, предоставленными посредством повторной публикации.

Клиенту необходимо создать новую подписку, если повторная публикация возвращает «Некоррек-тно_ИдентификаторПодпискиНедействителен».

Повторное установление соединения путем создания нового защищенного канала может быть отклонено из-за нового сертификата экземпляра приложения сервера или других ошибок безопасности. В случае сбоев безопасности клиент должен использовать службу получения конечных точек для получения самой последней информации о безопасности с сервера.

В ГОСТ Р 71811 определен механизм обратного соединения, при котором сервер инициирует логическое соединение. Все последующие шаги, такие как создание защищенного канала, инициируются клиентом. В этом сценарии клиент может инициировать повторное соединение, только если сервер инициирует новое логическое соединение после прерывания соединения. Обработка повторного подключения на стороне клиента, описанная на рисунке 36, также применима к случаю обратного подключения. Сервер не может активно проверять статус подключения, поэтому сервер должен инициировать новое соединение через настраиваемый интервал, даже если соединение с клиентом установлено. Это гарантирует, что инициированное соединение доступно для обработки повторного соединения в дополнение к другим сценариям, когда клиенту требуется более одного соединения.

6.8 Долговечные подписки

Элементы мониторинга используются для отслеживания значений переменных для изменений данных и объектов уведомлений о событиях для новых событий. Подписки используются для объединения изменений данных и событий назначенных элементов мониторинга в оптимизированный поток сетевых сообщений. Надежная доставка гарантируется до тех пор, пока время существования подписки и очередей в элементах мониторинга достаточно велико для прерывания сети между клиентом ОРС UA и сервером. Все очереди, обеспечивающие надежную доставку, обычно хранятся в памяти, и перезапуск сервера удаляет их.

133

ГОСТ Р 71809—2024

Существуют случаи использования, когда клиенты ОРС UA не имеют постоянного сетевого подключения к серверу ОРС UA или когда необходима надежная доставка изменений данных и событий, даже если сервер ОРС UA перезапускается или сетевое соединение прерывается на более длительное время.

Чтобы гарантировать эту надежную доставку, сервер ОРС UA должен хранить собранные данные и события в энергонезависимой памяти до тех пор, пока клиент ОРС UA не подтвердит их прием. Возможно, что данные будут потеряны, если сервер не будет выключен должным образом или в случае сбоя питания. Но сервер ОРС UA должен сохранять очереди часто, даже если сервер не выключен.

Метод установки долговечных подписок, определенный в ГОСТ Р 71810, применяется для установки подписки в этот устойчивый режим и для обеспечения более длительного срока существования и размеров очереди, чем для обычных подписок. Метод должен быть вызван до создания элементов мониторинга в долговременной подписке. Сервер должен проверить, что метод вызывается в контексте сессии, которому принадлежит подписка.

Значение 0 для параметра время существования в часах запрашивает максимальное время существования, поддерживаемое сервером.

Сервер ОРС UA, предоставляющий длительные подписки, должен:

- поддерживать метод установки долговечных подписок, определенный в ГОСТ Р 71810;

- поддерживать подписки на службы передачи подписки;

- поддерживать длительный срок действия подписки, минимальные требования определены в МЭК 62541-7 [1];

- поддерживать большие очереди элементов мониторинга, минимальные требования определены в МЭК 62541-7 [1];

- хранить настройки подписок и отправленные уведомления с порядковыми номерами;

- хранить настройки и очереди элементов мониторинга.

Клиент ОРС UA, использующий постоянные подписки, должен:

- использовать метод установки долговечных подписок, определенный в ГОСТ Р 71810, для создания длительной подписки;

- закрыть сессии на случай запланированных перерывов в связи;

- использовать службу передачи подписки, чтобы назначить длительную подписку новой сессии для передачи данных;

- хранить идентификаторы подписки, обработанные элементы мониторинга клиента и сервера и последний подтвержденный номер последовательности.

7 Определения типов основных параметров

7.1 Описание приложения

Компоненты этого параметра определены в таблице 112.

Таблица 112 — Описание приложения

Имя

Тип

Описание

Описание приложения

Структура

Определяет доступное приложение

URI приложения

String

Глобальный уникальный идентификатор экземпляра приложения. Этот URI используется как URI сервера в службах, если приложение является сервером

URI продукта

String

Глобальный уникальный идентификатор продукта

Имя приложения

Локализованный текст

Локализованное описательное имя приложения

Тип приложения

Тип-перечисление. Тип приложения

Тип приложения. Данное значение представляет собой перечисление с одним из следующих значений: Сервер_0 — приложение является сервером.

Клиент_1 — приложение является клиентом. Клиентисер-вер_2 — приложение является клиентом и сервером.

Серверобнаружения_3 — приложение является сервером обнаружения

134

Окончание таблицы 112

ГОСТ Р 71809—2024

Имя

Тип

Описание

URI сервера шлюза

String

URI, который идентифицирует сервер шлюза, связанный с обнаружением URL. Это значение не указывается, если к серверу можно получить прямой доступ. Это поле не используется, если тип приложения — клиент_1

Обнаружение «профиль URI»

String

URI, который идентифицирует профиль обнаружения, поддерживаемый предоставленными URL-адресами.

Это поле не используется, если тип приложения — клиент_1.

Если это значение не указано, то конечные точки должны поддерживать сервисы обнаружения, определенные в 5.4.

Альтернативные профили обнаружения определены в МЭК 62541-7 [1]

Обнаружение URLs

String

Список URL-адресов для конечных точек обнаружения, предоставленных приложением. Если тип приложения — клиент_1, это поле должно содержать пустой список

7.2 Сертификат экземпляра приложения

Сертификат экземпляра приложения — это строка байтов, содержащая зашифрованный сертификат. Кодирование сертификата экземпляра приложения зависит от сопоставления технологий безопасности и определено в ГОСТ Р 71811. В таблице 113 указана информация, которая должна содержаться в сертификате экземпляра приложения.

Таблица 113 — Сертификат экземпляра приложения

Имя

Тип

Описание

Сертификат экземпляра приложения

Структуры

Сертификат экземпляра приложения с подписью, созданной сертификационной компанией

Версия

String

Идентификатор версии кодирования сертификата

Серийный номер

Bytestring

Уникальный идентификатор сертификата, присвоенный издателем

Алгоритм подписи

String

Алгоритм подписания сертификата.

Синтаксис этого поля зависит от кодирования сертификата

Подпись

Bytestring

Подпись, созданная издателем

Издатель

Структура

Имя, идентифицирующее издателя сертификата, использованное для создания подписи

Действует с

Время utc

Когда сертификат становится действительным

Действует до

Время utc

Когда сертификат становится недействительным

Предмет

Структура

Имя, идентифицирующее экземпляр приложения, описываемый сертификатом.

Это поле должно содержать имя продукта и имя организации, ответственной за экземпляр приложения

URI приложения

String

URI приложения, указанное в описании приложения. Описание приложения описано в 7.1

Имя хоста []

String

Имя компьютера, на котором работает экземпляр приложения. У компьютера может быть несколько имен, если он доступен по нескольким сетям. Имя хоста может являться числовым сетевым адресом или описательным именем.

В сертификатах сервера должно быть определено как минимум одно имя хоста

135

ГОСТ Р 71809—2024

Окончание таблицы 113

Имя

Тип

Описание

Открытый ключ

Bytestring

Открытый ключ, связанный с сертификатом

Использование ключа 0

String

Указывает, как можно использовать ключ сертификата

7.3 Результат просмотра

Компоненты этого параметра определены в таблице 114.

Таблица 114 — Результат просмотра

Имя

Тип

Описание

Результат просмотра

Структура

Результаты операции просмотр

Код состояния

Код состояния

Статус для описания просмотра.

Значение устанавливается на корректный, если имеются ссылки для возврата для описания просмотра

Точка продолжения

Точка продолжения

Определенное сервером непрозрачное значение, которое определяет точку продолжения. Тип «точка продолжения» определен в 7.6

Ссылки []

Эталонное описание

Набор ссылок, соответствующих критериям, указанным в описании просмотра.

Пусто, если ни одна ссылка не соответствует критериям.

Тип описания ссылки определен в 7.25

7.4 Фильтр контента

7.4.1 Структура фильтра контента

Структура фильтра контента определяет набор элементов, определяющих критерии фильтрации. Каждый элемент в наборе описывает оператор и массив операндов, которые будут использоваться оператором. Операторы, которые можно использовать в фильтре контента, описаны в таблице 119. Фильтр оценивается путем оценки первой записи в массиве элементов, начиная с первого операнда в массиве операндов. Операнды элемента могут содержать ссылки на подэлементы, в результате чего оценка продолжается до ссылочных элементов в массиве элементов. Оценка не должна создавать петель. Например, оценка, начинающаяся с элемента «а», никогда не сможет вернуться к элементу «а». Однако может быть более одного пути, ведущего к другому элементу «Ь». Если элемент не может быть прослежен до начального элемента, он игнорируется. Дополнительные операнды для любого оператора приведут к ошибке.

Таблица 115 определяет структуру фильтра контента.

Таблица 115 — Структура фильтра контента

Имя

Тип

Описание

Фильтр контента

Структура

Элементы []

Элемент фильтра контента

Список операторов и их операндов, составляющих критерии фильтра. Фильтр оценивается начиная с первой записи в этом массиве. Эта структура определяется в соответствии со следующими элементами с отступом

Оператор фильтра

Тип-перечисление «оператор фильтра»

Оператор фильтра, подлежащий оценке.

Перечисление «оператор фильтра» определено в таблице 119

Операнды фильтра

Расширяемый параметр «операнд фильтра»

Операнды, используемые выбранным оператором. Количество и использование зависят от операторов, определенных в таблице 119. Для данного массива требуется запись. Этот расширяемый тип параметра является типом параметра «операнд фильтра», определенным в 7.4.4. Он определяет список допустимых значений операнда фильтра

136

ГОСТ Р 71809—2024

7.4.2 Результат фильтра контента

Компоненты этого типа данных определены в таблице 116.

Таблица 116 — Структура результата фильтра контента

Имя

Тип

Описание

Результат фильтра контента

Структура

Структура, содержащая ошибки, связанные с фильтром

Результаты элемента []

Фильтр контента «результаты элемента»

Список результатов для отдельных элементов в фильтре. Размер и порядок списка соответствуют размеру и порядку элементов в параметре фильтра контента. Эта структура определяется в соответствии со следующими элементами с отступом

Код состояния

Код состояния

Код состояния для отдельного элемента

Коды состояния операнда []

Код состояния

Список кодов состояния для операндов в элементе. Размер и порядок списка соответствуют размеру и порядку операндов в элементе фильтра контента. Этот список пуст, если ошибок операндов не было

Диагностическая информация операнда []

Диагностика

Список диагностической информации для операндов в элементе. Размер и порядок списка соответствуют размеру и порядку операндов в элементе фильтра контента. Этот список пуст, если диагностическая информация не была запрошена в заголовке запроса или если диагностическая информация не обнаружена при обработке операндов

Диагностическая информация элемента []

Диагностика

Список диагностической информации для отдельных элементов в фильтре. Размер и порядок списка соответствуют размеру и порядку элементов в параметре запроса фильтра. Этот список пуст, если диагностическая информация не запрашивалась в заголовке запроса или если диагностическая информация не была обнаружена при обработке элементов

В таблице 117 определены значения параметра «код состояния», специфичные для этой структуры. Общие коды состояния определены в таблице 178.

Таблица 117 — Результирующие коды результатов фильтра контента

Символический идентификатор

Описание

Некорректно_Несоответствие

КоличестваОперандовФильтра

Количество операндов, предоставленных для оператора фильтра, было меньше, чем ожидалось для предоставленного операнда

Некорректно_ОператорФильтра

Недействительный

В фильтре указан неопознанный оператор

Некорректно_ОператорФильтра

НеПоддерживается

Предоставлен допустимый оператор, сервер не поддерживает этот оператор фильтра

В таблице 118 определены значения для параметра «коды состояния операнда», специфичные для этой структуры. Общие коды состояния определены в таблице 178.

Таблица 118 — Результирующие коды операнда результаты фильтра контента

Символический идентификатор

Описание

Некорректно_ОперандФильтра

Недействительный

Описание этого результирующего кода см. в таблице 178

Некорректно_ЭлементФильтра

Недействительный

Указанный элемент не является допустимым элементом в фильтре контента

137

ГОСТ Р 71809—2024

Окончание таблицы 118

Некорректно_ЛитералФильтра

Недействительный

Указанный литерал не является действительным базовым типом данных

Некорректно_Идентификатора АтрибутаНедействительный

Идентификатор атрибута не является допустимым идентификатором атрибута в системе

Некорректно_ДиапазонИндексов

Недействительный

Описание этого результирующего кода см. в таблице 178

Некорректно_ИдентификаторУзла Недействителен

Описание этого результирующего кода см. в таблице 178

Некорректно_ИдентификаторУзла Неизвестен

Описание этого результирующего кода см. в таблице 178

Некорректно_НеЯвляется

ОпределениемТипа

Предоставленный идентификатор узла не был определением типа идентификатора узла

7.4.3 Оператор фильтра

В таблице 119 определены основные операторы, которые можно использовать в фильтре контента. См. таблицу 120 с описанием расширенных операторов. См. «Определение операндов» в 7.4.4.

Таблица 119 — Определение основного оператора фильтра

Оператор

Количество операндов

Описание

Равняется_0

2

Истина, если операнд [0] равен операнду [1].

Если операнды имеют разные типы, система должна выполнить любое неявное преобразование в общий тип. Этот оператор принимает значение «ложь», если неявное преобразование недоступно и операнды имеют разные типы. Этот оператор возвращает ложь, если неявное преобразование завершилось ошибкой. См. «Обсуждение приоритета типов данных» в таблице 123 для получения дополнительной информации о том, как преобразовывать операнды разных типов

Пусто_1

1

Истина, если операнд [0] является значением пусто

Большечем_2

2

Истина, если операнд [0] больше операнда [1]. На операнды действуют следующие ограничения:

[0]: любой операнд, который разрешается в упорядоченное значение; [1]: любой операнд, который разрешается в упорядоченное значение. Применяются те же правила преобразования, что и для «равняется»

Меньшечем_3

2

Истина, если операнд [0] меньше операнда [1].

Применяются те же правила и ограничения преобразования, что и для «большечем»

Большечемили

Равняется_4

2

Истина, если операнд [0] больше или равен операнду [1].

Применяются те же правила и ограничения преобразования, что и для «большечем»

Меньшечемилиравня-ется_5

2

Истина, если операнд [0] меньше или равен операнду [1].

Применяются те же правила и ограничения преобразования, что и для «большечем»

Как_6

2

Истина, если операнд [0] соответствует шаблону, определенному операндом [1]. См. таблицу 121 для определения синтаксиса шаблона.

На операнды действуют следующие ограничения:

[0]: любой операнд, который разрешается в строку;

[1]: любой операнд, который разрешается в строку. Этот оператор принимает значение «ложь», если ни один операнд не может быть разрешен в строку

138

Продолжение таблицы 119

ГОСТ Р 71809—2024

Оператор

Количество операндов

Описание

Не_7

1

Истина, если операнд [0] — «ложь».

На операнды действуют следующие ограничения

[0]: любой операнд, который разрешается в логическое значение.

Если операнд не может быть преобразован в логическое значение, результатом будет «пусто» (см. ниже)

Между_8

3

Истина, если операнд [0] больше или равен операнду [1] и меньше или равен операнду [2].

На операнды действуют следующие ограничения:

[0]: любой операнд, который разрешается в упорядоченное значение;

[1]: любой операнд, который разрешается в упорядоченное значение; [2]: любой операнд, который разрешается в упорядоченное значение. Если операнды имеют разные типы, система должна выполнить любое неявное преобразование, чтобы сопоставить все операнды с общим типом. Если неявное преобразование недоступно и операнды имеют разные типы, конкретным результатом будет «ложь». См. обсуждение приоритета типов данных в таблице 123 для получения дополнительной информации о том, как преобразовывать операнды разных типов

Всписке_9

2..п

Истина, если операнд [0] равен одному или нескольким оставшимся операндам.

Оператор «равняется» оценивается для операнда [0] и каждого оставшегося операнда в списке. Если любая оценка «равняется» имеет значение «истина», оператор в списке возвращает значение «истина»

И_10

2

Истина, если операнд [0] и операнд [1] имеют значение «истина». На операнды действуют следующие ограничения:

[0]: любой операнд, который разрешается в логическое значение;

[1]: любой операнд, который разрешается в логическое значение.

Если какой-либо операнд не может быть преобразован в логическое значение, он считается «пусто», (см. ниже)

Или_11

2

Истина, если операнд [0] и операнд [1] имеют значение «истина». На операнды действуют следующие ограничения:

[0]: любой операнд, который разрешается в логическое значение;

[1]: любой операнд, который разрешается в логическое значение.

Если какой-либо операнд не может быть преобразован в логическое значение, он считается «пусто» (см. ниже)

Приведение_12

2

Преобразует операнд [0] в значение с типом данных с идентификатором узла, идентифицированным операндом [1].

К операндам применяются следующие ограничения:

[0]: любой операнд;

[1]: любой операнд, который разрешается в идентификатор узла или расширенный идентификатор узла, где узел имеет тип данных «класс узла».

Если есть какая-либо ошибка в преобразовании или в любом из параметров, тогда операция приведения оценивается как «пусто» (см. ниже)

Подразрядноеи _16

2

Результатом является целое число, которое соответствует размеру самого большого операнда и содержит поразрядное «и» для двух операндов, где оба были преобразованы в один и тот же размер (самый большой из двух операндов).

На операнды действуют следующие ограничения:

[0]: любой операнд, который разрешается в целое число;

[1]: любой операнд, который разрешается в целое число.

Если какой-либо операнд не может быть преобразован в целое число, он считается «пусто» (см. ниже)

139

ГОСТ Р 71809—2024

Окончание таблицы 119

Оператор

Количество операндов

Описание

Подразрядноеили _17

2

Результатом является целое число, которое соответствует размеру самого большого операнда и содержит «подразрядноеили» двух операндов, где оба были преобразованы в один и тот же размер (самый большой из двух операндов).

На операнды действуют следующие ограничения:

[0]: любой операнд, который разрешается в целое число;

[1]: любой операнд, который разрешается в целое число.

Если какой-либо операнд не может быть преобразован в целое число, он считается «пусто» (см. ниже)

Многие операнды имеют ограничения по типу. Требуется, чтобы операнд был оценен для определения типа. В некоторых случаях тип указывается в операнде (например, литеральный операнд). В других случаях тип требует, чтобы значение атрибута было прочитано. Операнд элемента вычисляет булево значение, если оператор не является оператором приведения или составным оператором связи с.

В таблице 120 определены сложные операторы, для оценки которых требуется целевой узел (т. е. ряд). Эти операторы должны быть повторно оценены для каждого возможного целевого узла в наборе результатов.

Таблица 120 — Определение комплексного оператора фильтра

Оператор

Количество операндов

Описание

Впредставле-нии_13

1

Истина, если целевой узел содержится в представлении, определенном операндом [0].

На операнды действуют следующие ограничения: [0]: любой операнд, который разрешается в идентификатор узла, который идентифицирует узел представления.

Если операнд [0] не разрешается в идентификатор узла, который идентифицирует узел представления, эта операция всегда должна иметь значение «ложь»

Типа_14

1

Истина, если целевой узел имеет тип операнда [0] или подтип операнда [0].

На операнды действуют следующие ограничения:

[0]: любой операнд, который разрешается в идентификатор узла, который идентифицирует узел «тип объекта» или «тип переменной».

Если операнд [0] разрешается в идентификатор узла, который идентифицирует узел «тип объекта» или «тип переменной», эта операция всегда должна иметь значение «ложь»

Связанс_15

6

Истина, если целевой узел имеет тип операнда [0] и относится к типу идентификатора узла, определенного в операнде [1], посредством ссылочного типа, определенного в операнде [2].

Операнд [0] или операнд [1] также может указывать на элемент «ссылка», где упомянутый элемент является другим оператором «связан с». Это позволяет связывать отношения (например, а связано с b связано с с), где отношение определяется типом ссылки, определенным в операнде [2]. В этом случае упомянутый элемент возвращает список идентификаторов узла вместо «истина» или «ложь». В этом случае, если возникают какие-либо ошибки или какой-либо из операндов не может быть разрешен в подходящее значение, результатом связанного отношения является пустой список узлов.

140

Окончание таблицы 120

ГОСТ Р 71809—2024

Оператор Количество

г операндов

Описание

Связанс_15 6

Операнд [3] определяет количество переходов, для которых должна соблюдаться связь. Если операнд [3] равен 1, то объекты должны быть напрямую связаны. Если интервал больше 1, то проверяется идентификатор узла типа, описанного в операнде [1], на глубине, указанной переходом. В этом случае тип промежуточного узла не определен, и определяется только ссылочный тип, используемый для достижения конечного узла. Если запрошенное количество переходов не может быть выполнено, результатом будет «ложь», т. е. пустой список узлов. Если операнд [3] равен 0, связь отслеживается до ее логического конца в прямом направлении, и каждый узел проверяется на соответствие типу, указанному в операнде [1]. Если какой-либо узел удовлетворяет этому критерию, то результатом будет «истина», т. е. идентификатор узла включен в подсписок.

Операнд [4] определяет, должны ли операнды [0] и [1] включать поддержку подтипов типов, определенных этими операндами. «Истина» указывает на поддержку подтипов.

Операнд [5] определяет, должен ли операнд [2] включать поддержку подтипов ссылочного типа. Истина указывает на поддержку подтипов.

На операнды действуют следующие ограничения:

[0]: любой операнд, который разрешается в идентификатор узла или расширенный идентификатор узла, идентифицирующий узел «тип объекта» или «тип переменной», или ссылку на другой элемент, который является оператором «связан с»;

[1]: любой операнд, который разрешается в идентификатор узла или расширенный идентификатор узла, идентифицирующий узел «тип объекта» или «тип переменной», или ссылку на другой элемент, который является оператором «связан с»;

[2]: любой операнд, который разрешается в идентификатор узла, идентифицирующий узел «ссылочный тип»;

[3]: любой операнд, который разрешается в значение, неявно преобразуемое в целое число без знака 32;

[4]: любой операнд, который разрешается в значение, неявно преобразуемое в логическое значение; если этот операнд не разрешается в логическое значение, используется значение «ложь»;

[5]: любой операнд, который разрешается в значение, неявно преобразуемое в логическое значение; если этот операнд не разрешается в логическое значение, используется значение «ложь»

Если ни один из операндов [0], [1], [2], [3] не разрешается в подходящее значение, то результатом этой операции всегда должно быть «ложь» (или пустой набор в случае вложенного операнда «связан с»).

Оператор «связи с» может использоваться, чтобы определить, является ли данный тип, установленный как операнд [1], подтипом другого типа, установленного как операнд [0], путем установки для операнда [2] значения типа ссылки наличия подтипа и операнда [3] значения 0.

Оператор «как» может использоваться для сравнения с подстановочными знаками. Во второй операнд оператора «как» можно включить несколько специальных символов. Допустимые символы определены в таблице 121. Подстановочные знаки могут быть объединены в одну строку (т. е. «th [ia] [ts]%» будет соответствовать «это нормально», «это как единое целое»), «это оно», «тогда в любое» и т. д.). Оператор «как» чувствителен к регистру.

141

ГОСТ Р 71809—2024

Таблица 121—Подстановочные знаки

Специальный знак

Описание

%

Соответствует любой строке из нуля или более символов (т. е. ‘Main%’ будет соответствовать любой строке, которая начинается с ‘main’, ‘% еп%’ будет соответствовать любой строке, содержащей буквы ‘ел’, такие как ‘entail’, ‘green’ и ‘content’) Если в строке используется знак ‘%’, можно использовать операнд списка (т. е. 5 [%] будет соответствовать ‘5%’)

-

Соответствует любому одиночному символу (т. е. ‘_Ould’ будет соответствовать ‘would’, ‘could’). Если в строке подразумевается '_’, то можно использовать операнд списка (т. е. 5 □ будет соответствовать ‘5_’)

\

Escape-символ допускает буквальную интерпретацию (т. е. \\ is \, \% is%, \_ is _)

П

Соответствует любому одиночному символу в списке

(т.е. ‘Abe [13-68] будет соответствовать’ abd ',’ аЬсЗ ',’ abc4 ',’ abc5 *,’ аЬсб ‘и’ abc8 ‘.’ xyz [cf] ‘будет соответствовать’ xyzc ‘,’ xyzd “,’ xyze “,’ xyzf)

[а]

Не соответствует ни одному символу в списке. Л должен быть первым символом внутри [] (т.е. ‘Abe [Л13-5]’ не будет соответствовать ‘abd’, ‘abc3’, ‘abc4’ и ‘abc5’. Xyz [Adgh] не будет соответствовать ‘xyzd’, ‘xyzg’, ‘xyzh’)

Таблица 122 определяет правила преобразования для значений операндов. Типы автоматически преобразуются, если существует неявное преобразование (i). Если существует явное преобразование (е), то тип можно преобразовать с помощью оператора приведения. Если преобразования не существует (х), тогда типы не могут быть преобразованы, однако некоторые серверы могут поддерживать явные преобразования для конкретных приложений. Типы, используемые в таблице, определены в ГОСТ Р 71808. Тип данных, которого нет в таблице, не имеет определенных преобразований.

Таблица 122 — Правила преобразования

Тип источника (из)

Целевой тип (на)

ф S

ф

га

ф о

о ф

о

н

05

L0

со о

>s га ю го

О

6

ОС

ф

со го

го

СТ

S

о о х

о н

’S о I

о со Ct о q о S

(1) о

X (D СП н о ф 3 ф 02

си

о н аз

-8-

н X ф

S

>s

X X ф

S

о аз

О_

hi О

С О CI

о аз

-8-S

X ф Ct

X

q аз hi

X

>s

X

q 03 ID

О

co

о ГО О

Ф о ro

J

CM co о ГО

Ф о ro

ZT

S о ro

s

Ф о ro

ZT

ro ro ro

о H ro

s

-e-

X Ф Ct

S

i-

>s ro

Ю CO

ex

X

о H о о о § sc

аз hi О

н о

н о hi Ф Н >s

X X аз со о со

q аз hi О го;

(X

ф о X X аз со о

S

S -8-

q аз со

^

со

го X го

го

ф ю о

о

ф о

ф.

см со го X ГО

го ф

ю о го

ф о го ф ZT

3 го X го

го

ф ю о го

ф о го ф

Е X 1-

ф

ф го о

Логическое значение

1

X

X

1

X

1

X

1

1

1

X

1

X

Е

X

X

1

1

1

X

Байт

Е

X

X

1

X

1

X

1

1

X

1

X

Е

X

X

1

1

1

X

Строкабайтов

X

X

X

X

X

X

E

X

X

X

X

X

X

X

X

X

X

X

X

X

Датавремя

X

X

X

X

X

X

X

X

X

X

X

X

X

Е

X

X

X

X

X

X

Вещественное число двойной точности

Е

Е

X

X

X

Е

X

E

E

E

X

E

X

Е

X

X

Е

Е

Е

X

Расширенный идентификатор узла

X

X

X

X

X

X

X

X

X

X

E

X

X

1

X

X

X

X

X

X

142

Окончание таблицы 122

ГОСТ Р 71809—2024

Тип источника (из)

Целевой тип (на)

О)

I О) т 05

(D О hi О ф

S

о с;

н

05 ш

со о

>s га ю го

О

н

О

к

ф

со го

го

ГОГ

S

о X

о н

>s о X

о со Ct

о с; о

S

ф о X X ф со

о ф 3 ф со

го

о си hi

-8-

н X ф Ct

>х .0 X X ф

о 05

Q.

hi о

с о

о

05

X

-8-X

X ф

X ’X

JO X

q

05 hi X

X

>x

q 05

Ю о

CD

о

ГО о s

Ф о го _Ф

cxi co о го

s

5 о го

Z

3 о го о s

ф о го

го

ст

о

го

•8-

1-

ф Ct S

н >s го ю со

о

о о

Ct

о

05 hi О

Н о

О hi

-fl

I 05 CD О

s q 05 hi О

CK

Ф о

05 CO о

=r

-8-

q 05 CO ^

CD

ro bi ro

CT

Ф

Ю О ro

s

Ф о

zr

CM co ro bi ro

CT

Ф Ю о ro

s

Ф о

zr

ro bi ro

CT CT Ф

Ю о ro

Ф о I

E X i-

ф

Ф ro О

Допуск

Е

Е

X

X

1

X

X

E

E

Е

X

Е

X

Е

X

X

E

E

E

X

Глобальный уникальный идентификатор

X

X

Е

X

X

X

X

X

X

X

X

X

X

Е

X

X

X

X

X

X

Целоечисло16

Е

Е

X

X

1

X

1

X

1

1

X

Е

X

Е

X

X

E

1

1

X

Целоечисло32

Е

Е

X

X

1

X

1

X

E

1

X

Е

Е

Е

X

X

E

E

1

X

Целоечисло64

Е

Е

X

X

1

X

1

X

E

E

X

Е

Е

Е

X

X

E

E

E

X

Идентификатор узла

X

X

X

X

X

1

X

X

X

X

X

X

X

1

X

X

X

X

X

X

Збайт

Е

Е

X

X

1

X

1

X

1

1

1

X

X

Е

X

X

1

1

1

X

Кодсостояния

X

X

X

X

X

X

X

X

X

1

1

X

X

X

X

X

E

1

1

X

Строка

1

1

X

Е

1

Е

1

1

1

1

1

Е

1

X

E

E

1

1

1

X

Локализован-ныйтекст

X

X

X

X

X

X

X

X

X

X

X

X

X

X

1

X

X

X

X

X

Квалифициро-ванноеимя

X

X

X

X

X

X

X

X

X

X

X

X

X

X

1

1

X

X

X

X

Целоечислобез знака16

Е

Е

X

X

1

X

1

X

1

1

1

X

Е

Е

X

X

1

1

X

Целоечислобез знака32

Е

Е

X

X

1

X

1

X

E

1

1

X

Е

Е

Е

X

X

E

1

X

Целоечислобез

Е

Е

X

X

/

X

/

X

E

E

/

X

Е

Е

Е

X

X

E

E

X

Элементхт!

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

Массивы исходного типа можно преобразовать в массивы целевого типа путем преобразования каждого элемента. Ошибка преобразования любого элемента приводит к сбою всего преобразования.

Массивы длины 1 можно неявно преобразовать в скалярное значение того же типа.

Глобальный уникальный идентификатор, идентификатор узла и расширенный идентификатор узла преобразуются в строку и из нее с использованием синтаксиса, определенного в ГОСТ Р 71811.

Значения с плавающей запятой округляются путем добавления 0,5 и усечения при преобразовании в целые числа.

Преобразование отрицательного значения в беззнаковый тип вызывает ошибку преобразования. Если преобразование не удалось, результатом будет пустое значение.

Преобразование значения, выходящего за пределы диапазона целевого типа, вызывает ошибку преобразования. Если преобразование не удалось, результатом будет пустое значение.

143

ГОСТ Р 71809—2024

Строка байтов преобразуется в строку путем форматирования байтов как последовательности шестнадцатеричных цифр.

Значения локализованного текста преобразуются в строки путем удаления языка. Строки преобразуются в значения локализованного текста путем установки языка на «».

Значения квалифицированного имени преобразуются в строки, отбрасывая индекс пространства имени. Строки преобразуются в значения квалифицированного имени путем установки для индекса пространства имени значения 0.

Код состояния может быть преобразован в целое число без знака 32 и целое число 32 и обратно путем копирования битов. Только верхние 16 битов кода состояния копируются при преобразовании в значение целое число без знака 16 или целое число 16 и обратно.

Булевы значения преобразуются в «1», когда истина, и в «0», если ложь. Ненулевые числовые значения преобразуются в истинные логические значения. Числовые значения 0 преобразуются в ложные логические значения. Строковые значения, содержащие «истина», «ложь», «1» или «0», могут быть преобразованы в булевы значения. Другие строковые значения вызывают ошибку преобразования. В этом случае строки не чувствительны к регистру.

Иногда можно использовать неявное приведение типов, когда в операции используются операнды с разными типами данных. В этой ситуации правила приоритета, определенные в таблице 123, используются для определения того, какое неявное преобразование использовать. Первый тип данных в списке (сверху вниз) имеет наибольший приоритет. Если тип данных отсутствует в этой таблице, он не может быть преобразован неявно при оценке операции.

Например, предположим, что а = 1,1 (допуск) и b = 1 (целоечисло32) и что эти значения используются с оператором равенства. Эта операция будет оцениваться путем преобразования значения целого числа 32 в допуск, поскольку тип данных «допуск» имеет больший приоритет.

Таблица 123 — Правила приоритета данных

Позиция

Тип данных

1

Вещественное число двойной точности

2

Допуск

3

Целое число 64

4

Целое число без знака 64

5

Целое число 32

6

Целое число без знака 32

7

Код состояния

8

Целое число 16

9

Целое число без знака 16

10

S байт

11

Байт

12

Логическое значение

13

Глобальный уникальный идентификатор

14

Строка

15

Расширенный идентификатор узла

16

Идентификатор узла

17

Локализованный текст

18

Квалифицированное имя

144

ГОСТ Р 71809—2024

Операнды могут содержать нулевые значения (т. е. несуществующие значения). Когда это происходит, значение элемента всегда равно пусто (если не указан оператор пусто_1).

В таблице 124 определено, как объединить элементы, которые оцениваются как «пусто», с другими элементами в операции логического «и».

Таблица 124 — Таблица истинности логического «и»

Истина

Ложь

Пусто

Истина

Истина

Ложь

Пусто

Ложь

Ложь

Ложь

Ложь

Пусто

Пусто

Ложь

Пусто

В таблице 125 определено, как объединить элементы, которые оцениваются как «пусто», с другими элементами в операции логического «или».

Таблица 125 — Таблица истинности логического «или»

Истина

Ложь

Пусто

Истина

Истина

Истина

Истина

Ложь

Истина

Ложь

Пусто

Пусто

Истина

Пусто

Пусто

Оператор не всегда принимает значение «пусто», если применяется к операнду «пусто».

Фильтр контента, который оценивается как «пусто» после оценки всех элементов, оценивается как «ложь».

7.4.4 Параметры операнда фильтра

7.4.4.1 Обзор

Структура фильтр контента, указанная в 7.4, определяет набор элементов, которые составляют критерии фильтрации и содержат различные типы операнда фильтра. Параметр операнд фильтра является расширяемым параметром. Этот параметр определен в таблице 126. Тип «расширяемый параметр» определен в 7.12.

Таблица 126 — Идентификаторы типа параметра «операнд фильтра»

Символический идентификатор

Описание

Элемент

Задает индекс в массиве элементов. Этот тип используется для построения логического дерева подэлементов путем связывания операнда одного элемента с подэлементом

Литерал

Задает буквальное значение

Атрибут

Задает любой атрибут объекта или узла переменной с использованием узла в системе типов и относительного пути, созданного из ссылочных типов и имен просмотра

Простой атрибут

Задает любой атрибут объекта или узла переменной с помощью определения типа и относительного пути, созданного на основе имени просмотра

7.4.4.2 Операнд элемента

Операнд элемента обеспечивает связь с вложенными элементами в фильтре контента. Ссылка имеет форму целого числа, которое используется для индексации массива элементов, содержащихся в фильтре контента. Индекс считается действительным, если его значение больше индекса элемента, частью которого он является, и он не ссылается на несуществующий элемент. Клиенты должны создавать фильтры таким образом, чтобы избежать циклических и недействительных ссылок. Серверы должны защищаться от недействительных индексов, проверяя индекс перед его использованием.

В таблице 127 определен тип «операнд элемента».

145

ГОСТ Р 71809—2024

Таблица 127 — Операнд элемента

Имя

Тип

Описание

Операнд элемента

Структура

Значение операнда элемента

Индекс

Целое число без знака32

Индекс в массив элементов

7.4.4.3 Литеральный операнд

В таблице 128 определен тип «литеральный операнд».

Таблица 128 — Литеральный операнд

Имя

Тип

Описание

Литеральный операнд

Структура

Значение литеральньго операнда

Значение

Базовый тип данных

Литеральное значение

7.4.4.4 Операнд атрибута

В таблице 129 определен тип «операнд атрибута».

Таблица 129 — Операнд атрибута

Имя

Тип

Описание

Операнд атрибута

Структура

Атрибут узла в адресном пространстве

Идентификатор узла

Идентификатор узла

Идентификатор узла из системы типов

Псевдоним

Строка

Необязательный параметр, используемый для идентификации псевдонима или ссылки на него. Псевдоним — это символическое имя, которое может использоваться для псевдонима этого операнда и использования его в других местах в структуре фильтра

Путь просмотра

Относительный путь

Путь просмотра относительно узла, указанного параметром идентификатор узла. Относительный путь определен в 7.26

Идентификатор атрибута

Идентификатор целого числа

Идентификатор атрибута. Это должен быть действующий идентификатор атрибута. Идентификатор целого числа определен в 7.14. Идентификаторы целого числа для атрибутов определены в ГОСТ Р 71811

Диапазон индексов

Область числовых значений

Настоящий параметр используется для идентификации одного элемента массива или одного диапазона индексов для массива. Первый элемент обозначается индексом 0 (ноль).

Тип «область числовых значений» определен в 7.22.

Настоящий параметр не используется, если указанный атрибут не является массивом. Однако, если указанный атрибут является массивом и этот параметр не используется, тогда все элементы должны быть включены в диапазон. Параметр имеет значение «пусто», если не используется

7.4.4.5 Операнд простого атрибута

Операнд простого атрибута — это упрощенная форма операнда атрибута, и все правила, которые применяются к операнду атрибута, также применимы к операнду простого атрибута. При этом операнд атрибута может быть заменен операндом простого атрибута, если все типы ссылок в относительном пути являются подтипами иерархических ссылок, а целевыми объектами являются узлы объекта или переменной и псевдоним не требуется.

В таблице 130 определен тип «операнда простого атрибута».

146

Таблица 130 — Операнд простого атрибута

ГОСТ Р 71809—2024

Имя

Тип

Описание

Операнд простого атрибута

Структура

Атрибут узла в адресном пространстве

Идентификатор типа

Идентификатор узла

Идентификатор узла для узла определения типа.

Этот параметр ограничивает операнд экземплярами «узел определение типа» или одним из его подтипов

Путь просмотра []

Квалифицированное Имя

Относительный путь к узлу.

Этот параметр указывает относительный путь с использованием списка имен просмотра вместо структуры относительного пути, используемой в операнде атрибута. Список имен просмотра эквивалентен относительному пути, который указывает прямые ссылки, которые являются подтипами иерархических ссылок ссылочного типа.

Все узлы, за которыми следует путь просмотра, должны относиться к объекту или переменной «класс узла».

Если этот список пуст, узел является экземпляром определения типа

Идентификатор атрибута

Идентификатор целого числа

Идентификатор атрибута. Идентификатор целого числа определен в 7.14.

Атрибут значения должен поддерживаться всеми серверами. Поддержка других атрибутов зависит от требований, установленных в профилях или других частях данной спецификации

Диапазон индексов

Область числовых значений

Этот параметр используется для идентификации одного элемента массива или одного диапазона индексов для массива. Первый элемент обозначается индексом 0 (ноль).

Этот параметр игнорируется, если выбранный узел не является переменной или значение переменной не является массивом.

Параметр имеет значение «пусто», если не указан.

Если этот параметр не указан, используются все значения в массиве. Тип «область числовых значений» определен в 7.22

7.5 Счетчик

Этот примитивный тип данных — целое число без знака 32, представляющий значение счетчика. Начальное значение счетчика определяется его использованием. Арифметика модуля используется для всех расчетов, где модуль равен максимальному значению +1. Следовательно, х + у = (х + у) mod (максимальное значение + 1).

Примеры

1 Максимальное значение + 1 = 0.

2 Максимальное значение + 2 = 1.

7.6 Точка продолжения

Точка продолжения используется для приостановки операции «просмотр, первый запрос или чтение истории» и возможности ее перезапуска позже путем вызова «дальнейший поиск, дальнейший запрос или чтение истории». Операции приостанавливаются, когда количество найденных результатов превышает пределы, установленные клиентом или сервером.

Клиент указывает максимальное количество результатов на операцию в сообщении запроса. Сервер не должен возвращать больше, чем это количество результатов, но он может вернуть меньше результатов. Сервер выделяет точку продолжения, если есть другие результаты, которые необходимо вернуть.

Серверы должны поддерживать по крайней мере одну точку продолжения на сессию. Серверы указывают максимальное количество точек продолжения на сессию в объекте возможности сервера, который определен в ГОСТ Р 71810. Точки продолжения остаются активными до тех пор, пока клиент не получит оставшиеся результаты, не освободит точки продолжения или пока сессия не будет закрыта. Сервер должен автоматически освобождать точки продолжения от предыдущих запросов из сессии,

147

ГОСТ Р 71809—2024

если они необходимы для обработки нового запроса из этой сессии. Сервер возвращает ошибку «Не-корректно_ТочкаПродолженияНедействительна», если клиент пытается использовать освобожденную точку продолжения. Клиент может избежать этой ситуации, завершив приостановленные операции перед началом новых операций.

В запросах часто указывается несколько операций, для которых может потребоваться точка продолжения. Сервер должен обрабатывать операции до тех пор, пока он не использует максимальное количество точек продолжения в этом ответе. Как только это произойдет, сервер должен вернуть ошибку «Некорректно_НетТочекПродолжения» для всех оставшихся операций». Клиент может избежать этой ситуации, посылая запросы с рядом операций, которые не превышают максимальное количество точек продолжения на сессию, определенное для службы в объекте возможности сервера, который определен в ГОСТ Р 71810.

Клиент перезапускает операцию, передавая точку продолжения обратно серверу. Сервер всегда должен иметь возможность повторно использовать предоставленную точку продолжения, чтобы серверы никогда не возвращали ошибку «Некорректно_НетТочекПродолжения» при продолжении ранее остановленной операции.

Точка продолжения — это подтип типа данных «строка байтов».

7.7 Значение данных

7.7.1 Общие положения

Компоненты этого параметра определены в таблице 131.

Таблица 131—Значение данных

Имя

Тип

Описание

Значение данных

Структура

Значение и сопутствующая информация

Значение

Базовый тип данных

Значение данных. Если код состояния указывает на ошибку, то значение следует игнорировать, и сервер должен установить его равным значению «пусто»

Код состояния

Код состояния

Код состояния, который определяет возможность сервера получить до-ступ/предоставить значение. Тип «код состояния» определен в 7.34

Временная

отметка источника

Время utc

Временная отметка источника для значения

Пикосекунды источника

Целое число Без знака

Задает количество интервалов в 10 пикосекунд (1,0 е—11 секунд), которые должны быть добавлены к временной отметке источника

Временная отметка сервера

Время utc

Временная отметка сервера для значения

Пикосекунды сервера

Целое число без знака

Задает количество интервалов в 10 пикосекунд (1,0 е—11 секунд), которые должны быть добавлены к временной отметке сервера

7.7.2 Пикосекунды

Некоторым приложениям требуются временные отметки с высоким разрешением. Поля пикосекунды позволяют приложениям указывать временные метки с разрешением 10 пикосекунд. Фактический размер поля пикосекунды зависит от разрешения типа данных «время utc». Например, если тип данных «время utc» имеет разрешение 100 наносекунд, тогда в поле пикосекунды потребуется хранить значения до 10 000, чтобы обеспечить разрешение 10 пикосекунд. Разрешение типа данных «время utc» зависит от отображений, определенных в ГОСТ Р 71811.

7.7.3 Временная отметка источника

Временная отметка источника используется для отражения временной отметки, примененной к значению переменной источником данных. После того, как значению была назначена временная отметка источника, временная отметка источника для этого экземпляра значения никогда не изменяется. В этом контексте «экземпляр значения» относится к полученному значению независимо от его фактического значения.

148

ГОСТ Р 71809—2024

Временная отметка источника должна быть временем utc и должна указывать время последнего изменения значения или кода состояния.

Временная отметка источника должна быть сгенерирована как можно ближе к источнику значения, но временная отметка должна всегда устанавливаться одними и теми же физическими часами. В случае резервных источников часы источников должны быть синхронизированы.

Если сервер ОРС UA получает значение переменной от другого сервера ОРС UA, то сервер ОРС UA всегда должен передавать временную отметку источника без изменений. Если источник, применяющий временную отметку, недоступен, временная отметка источника устанавливается равной значению «пусто». Например, если значение не может быть прочитано из-за некоторой ошибки во время обработки, такой как недопустимые аргументы, переданные в запросе, то временная отметка источника должна иметь значение «пусто».

В случае некорректного или неопределенного статуса временная отметка источника используется, чтобы отразить время, когда источник распознал некорректный статус, или время, когда сервер в последний раз пытался восстановиться из некорректного или неопределенного статуса.

Временная отметка источника возвращается только с атрибутом значения. Для всех остальных атрибутов возвращаемая временная отметка источника имеет значение «пусто».

7.7.4 Временная отметка сервера

Временная отметка сервера используется для отражения времени, когда сервер получил значение переменной или узнал, что оно является точным.

В случае некорректного или неопределенного статуса временная отметка сервера используется для отражения времени, когда сервер получил статус или когда сервер последний раз пытался восстановиться из некорректного или неопределенного статуса.

В случае, когда сервер ОРС UA подписывается на значение от другого сервера ОРС UA, каждый сервер применяет свою собственную временную отметку сервера. Она отличается от временной отметки источника, в которой только отправителю данных разрешено применять временную отметку источника.

Если сервер подписывается на значение с другого сервера каждые 10 с и значение изменяется, то временная отметка сервера обновляется каждый раз при получении нового значения. Если значение не изменится, то новые значения по подписке не будут приниматься. Однако при отсутствии ошибок принимающий сервер применяет новую временную отметку сервера каждые 10 с, поскольку отсутствие значения означает, что значение не изменилось. Таким образом, временная отметка сервера отражает время, когда сервер узнал, что значение является точным.

Эта концепция также применима к серверам ОРС UA, которые получают значения из источников данных на основе исключений. Например, предположим, что сервер получает значения от устройства, основанного на исключении, и что:

а) прибор проверяет значения каждые 0,5 с;

б) соединение с устройством корректное;

в) устройство отправило обновление 3 мин назад со значением 1,234.

В этом случае значение сервера будет равно 1,234, а временная отметка сервера будет обновляться каждые 0,5 с после получения значения.

7.7.5 Код состояния, присвоенный значению

Код состояния используется для обозначения условий, при которых значение переменной было сгенерировано, и, таким образом, может использоваться как индикатор используемости значения. Код состояния определен в 7.34.

Общее состояние (степень «тяжести» ошибки):

- код состояния со степенью «тяжести» ошибки «корректно» означает, что значение хорошего качества;

- код состояния со степенью «тяжести» ошибки «неопределенно» означает, что качество значения не определено по причинам, указанным в подкоде;

- код состояния со степенью «тяжести» ошибки «некорректно» означает, что значение не может использоваться по причинам, указанным в подкоде.

Правила

- код состояния указывает на применимость значения. Следовательно, требуется, чтобы клиенты минимально проверяли степень тяжести кода состояния всех результатов, даже если они не проверяют другие поля перед доступом к значению и его использованием;

149

ГОСТ Р 71809—2024

- сервер, который не поддерживает информацию о состоянии, должен вернуть код степени тяжести без ошибки. Также допустимо, чтобы сервер просто возвращал степень тяжести и неспецифический (0) подкод;

- если сервер не имеет известного значения, в частности когда степень тяжести некорректна, он должен вернуть значение «пусто».

7.8 Диагностическая информация

Компоненты этого параметра определены в таблице 132.

Таблица 132 — Диагностическая информация

Имя

Тип

Описание

Диагностическая информация

Структура

Диагностическая информация, определяемая поставщиком

URI имен пространства

Целое число32

Символический идентификатор определяется в контексте пространства имен. Это пространство имен представлено в виде строки и передается клиенту в параметре таблицы строк параметра «заголовок ответа», определенного в 7.29. Параметр «индекс пространства имен» содержит индекс в таблице строк для этой строки. -1 указывает, что строка не указана.

URI имен пространства не должен быть стандартным именем пространства ОРС UA. Для стандартных кодов состояния не предусмотрены символические идентификаторы

Символический идентификатор

Целоечисло32

Символический идентификатор должен использоваться для идентификации ошибки или состояния поставщика; обычно это результат какой-либо внутренней операции сервера. Максимальная длина этой строки — 32 символа. Серверы, желающие вернуть числовой код возврата, должны преобразовать код возврата в строку и использовать эту строку как символический идентификатор (например, «0хс0040007» или «-4»),

Эта строка символического идентификатора передается клиенту в параметре таблицы строк параметра «заголовок ответа», определенного в 7.29. Параметр символический идентификатор содержит индекс в таблице строк для этой строки. -1 указывает, что строка не указана, символический идентификатор не должен содержать коды состояния.

Если локализованный текст содержит перевод описания кода состояния, символический идентификатор равен -1

Язык

Целое число32

Языковая часть локализованного текста для конкретного поставщика, описывающая символический идентификатор.

Эта локализованная текстовая строка передается клиенту в параметре таблица строк параметра заголовок ответа, определенного в 7.29. Параметр locale содержит индекс в таблице строк для этой строки. -1 указывает, что строка не указана

Локализованный текст

Целое число32

Строка локализованного текста, определяемая поставщиком, описывает символический идентификатор. Максимальная длина этой текстовой строки — 256 символов.

Эта локализованная текстовая строка передается клиенту в параметре таблица строк параметра заголовок ответа, определенного в 7.29. Параметр локализованный текст содержит индекс в таблице строк для этой строки. -1 указывает, что строка не указана.

Локализованный текст относится к символическому идентификатору, если он присутствует, или к строке, описывающей стандартный код состояния, если сервер предоставляет переводы. Если индекс равен -1, сервер не имеет перевода для возврата, и клиент должен использовать инвариантное описание кода состояния из спецификации

Дополнительная информация

Строка

Диагностическая информация, определяемая поставщиком

150

Окончание таблицы 132

ГОСТ Р 71809—2024

Имя

Тип

Описание

Внутренний код состояния

Код состояния

Код состояния из внутренней операции.

Многие приложения будут обращаться к базовым системам во время обработки запроса ОРС UA. Сервер ОРС UA имеет возможность сообщать о состоянии базовой системы в диагностической информации

Внутренняя диагностическая информация

Диагностическая информация

Диагностическая информация, связанная с внутренним кодом состояния

7.9 Параметры конфигурации обнаружения

7.9.1 Обзор

Структура конфигурации обнаружения, используемая в службе регистрация сервера 2, позволяет серверам предоставлять дополнительные параметры конфигурации серверам обнаружения для регистрации.

В таблице 133 определен текущий набор параметров конфигурации обнаружения. Тип «расширяемый параметр определен» в 7.12.

Таблица 133 — Идентификатор типа параметра «конфигурация обнаружения»

Символический идентификатор

Описание

Конфигурации обнаружения mdns

Параметры конфигурации для обнаружения mdns.

7.9.2 Конфигурации обнаружения mdns

Таблица 134 определяет параметр конфигурации обнаружения mdns.

Таблица 134 — Конфигурации обнаружения mdns

Имя

Тип

Описание

Конфигурации обнаружения mdns

Структура

Конфигурация обнаружения mdns

Имя сервера mdns

Строка

Имя сервера, когда оно объявляется через mdns. Подробнее о mdns см. МЭК 62541-12 [2].

Эта строка должна быть меньше 64 байтов.

Если не указано иное, используется первый элемент массива имен сервера (при необходимости усекается до 63 байтов)

Возможности сервера []

Строка

Набор возможностей сервера, поддерживаемых сервером.

Возможности сервера — это короткий идентификатор функции.

Набор разрешенных возможностей сервера определен в МЭК 62541-12 [2]

7.10 Описание конечной точки

Компоненты этого параметра определены в таблице 135.

Таблица 135 — Описание конечной точки

Имя

Тип

Описание

Описание конечной точки

Структура

Описывает конечную точку для сервера

URL конечной точки

Строка

URL-адрес описываемой конечной точки

151

ГОСТ Р 71809—2024

Окончание таблицы 135

Имя

Тип

Описание

Сервер

Описание приложения

Описание сервера, которому принадлежит конечная точка. Тип приложения определен в 7.1

Сертификат сервера

Экземпляр приложения сертификат

Сертификат экземпляра приложения, выданный серверу. Тип экземпляр серверного приложения определен в 7.2

Режим безопасности

Тип-перечисление режим безопасности сообщений

Тип защиты, применяемой к сообщениям.

Тип режим безопасности сообщений определен в 7.15.

Может потребоваться создать защищенный канал, даже если для параметра «режим безопасности» установлено значение «отсутствует». Точное поведение зависит от используемого отображения и описано в ГОСТ Р 71811

URI политики безопасности

Строка

URI для политики безопасности, который будет использоваться при защите сообщений.

Набор известных URI и связанные с ними политики безопасности определены в МЭК 62541-7 [1]

Токены идентификатора пользователя []

Политика токенов пользователя

Токены идентификатора пользователя, которые принимает сервер.

Клиент должен передать один из токенов идентификатора пользователя, в запросе активировать сеанс. Тип политика токенов пользователя описан в 7.37

URI профиля переноса

Строка

URI транспортного профиля, поддерживаемого конечной точкой (см. МЭК 62541-7 [1] для транспортных профилей)

Уровень безопасности

Байт

Числовое значение, указывающее, насколько безопасно описание конечной точки по сравнению с другими описаниями конечной точки для того же сервера.

Значение 0 указывает, что описание конечной точки не рекомендуется и поддерживается только для обратной совместимости.

Более высокое значение указывает на лучшую безопасность

7.11 Расширенный идентификатор узла

Компоненты этого параметра определены в таблице 136. Расширенный идентификатор узла позволяет явно указывать пространство имен в виде строки или с индексом в таблице пространства имен сервера.

Таблица 136 — Расширенный идентификатор узла

Имя

Тип

Описание

Расширенный идентификатор узла

Структура

Идентификатор узла с расширенным пространством имен до строкового представления

Индекс сервера

Индекс

Индекс, идентифицирующий сервер, содержащий целевой узел. Этот сервер может быть локальным или удаленным.

Этот индекс является индексом этого сервера в таблице серверов локального сервера. Индекс локального сервера в таблице серверов всегда равен 0. Все удаленные серверы имеют индексы больше 0. Таблица серверов содержится в объекте сервера в адресном пространстве (см. ГОСТ Р 71808 и ГОСТ Р 71810).

Клиент может прочитать переменную таблицы сервера, чтобы получить доступ к описанию целевого сервера

152

Окончание таблицы 136

ГОСТ Р 71809—2024

Имя

Тип

Описание

URI пространства имен

Строка

URI пространства имен.

Если этот параметр указан, то индекс пространства имен игнорируется.

В 5.4 и МЭК 62541-12 [2] описаны механизмы обнаружения, которые можно использовать для преобразования URI в URL

Индекс пространства имен

Индекс

Индекс в таблиие пространства имен сервера.

Этот параметр должен быть равен 0 и игнорируется на сервере, если указан URI пространства имен

Тип идентификатора

Тип идентификатора

Тип элемента идентификатора идентификатора узла

Идентификатор

*

Идентификатор узла в адресном пространстве сервера ОРС UA (см. определение nodeid в ГОСТ Р 71808

7.12 Расширяемый параметр

Расширяемые типы параметров могут быть расширены только дополнительными частями системы стандартов ОРС UA.

Расширяемый параметр определяет структуру данных с двумя элементами. Идентификатор типа параметра указывает кодировку типа данных второго элемента. Поэтому второй элемент указан как базовый тип расширяемого параметра, определенный в таблице 137.

Конкретные расширяемые параметры, общие для ОРС UA, определены в разделе 7. Дополнительные части системы стандартов ОРС UA могут определять дополнительные типы расширяемых параметров.

Таблица 137 — Базовый тип расширяемого параметра

Имя

Тип

Описание

Расширяемый параметр

Структура

Задает подробные сведения о расширяемом типе параметра

Идентификатор типа параметра

Идентификатор узла

Определяет тип данных следующего параметра

Данные параметра

Подробная информация о типе расширяемого параметра

7.13 Индекс

Настоящий примитивный тип данных является целым числом без знака 32, которое идентифицирует элемент массива.

7.14 Идентификатор целого числа

Настоящий примитивный тип данных является целым числом без знака 32, которое используется в качестве идентификатора, как дескриптор. Все значения, кроме 0, являются действительными.

7.15 Режим безопасности сообщений

Режим безопасности сообщений — это перечисление, которое указывает, какая безопасность должна применяться к обмену сообщениями во время сессии. Возможные значения описаны в таблице 138.

153

ГОСТ Р 71809—2024

Таблица 138 — Значения режима безопасности сообщений

Значение

Описание

Недействительный^

Режим безопасности сообщений недействителен.

Это значение является значением по умолчанию, чтобы избежать случайного выбора без применения защиты. Этот выбор всегда будет отвергнут

Отсутствие_1

Безопасность не применяется

Подпись_2

Все сообщения подписаны, но не зашифрованы

Подписьишифрование_3

Все сообщения подписаны и зашифрованы

7.16 Параметры контроля

Компоненты этого параметра определены в таблице 139.

Таблица 139 — Параметры контроля

Имя

Тип

Описание

Параметры контроля

Структура

Параметры, определяющие характеристики мониторинга элемента мониторинга

Дескриптор клиента

Идентификатор целого числа

Предоставляемый клиентом идентификатор элемента мониторинга. Этот идентификатор используется в уведомлениях, созданных для списка узла. Тип идентификатора целого числа определен в 7.14

Интервал выборки

Продолжительность

Интервал, определяющий максимальную скорость доступа к элементам мониторинга и их оценки. Этот интервал определяется в миллисекундах. Значение 0 указывает, что сервер должен использовать самую быструю практическую скорость.

Значение -1 указывает, что запрашивается интервал выборки по умолчанию, определенный интервалом публикации подписки. Другой интервал выборки используется, если интервал публикации не является поддерживаемым интервалом выборки. Любое отрицательное число интерпретируется как-1. Интервал выборки не изменяется, если интервал публикации изменяется последующим вызовом сервиса «изменить подписку». Сервер использует этот параметр, чтобы назначить элементы мониторинга поддерживаемому интервалу выборки.

Назначенный интервал указывается в параметре «пересмотренный интервал выборки». Сервер всегда должен возвращать пересмотренный интервал выборки, который равен запрошенному интервалу выборки или превышает его. Если запрошенный интервал выборки превышает максимальный интервал выборки, поддерживаемый сервером, возвращается максимальный интервал выборки

Фильтр

Расширяемый параметр фильтр мониторинга

Фильтр, используемый сервером, чтобы определить, должен ли элемент мониторинга генерировать уведомление. Если не используется, этот параметр имеет значение «пусто». Тип параметра «фильтр мониторинга» — это расширяемый тип параметра, указанный в 7.17. Он определяет типы фильтров, которые можно использовать

Размер очереди

Счетчик

Запрошенный размер очереди элемента мониторинга. Следующие значения имеют особое значение для отслеживаемых данных: смысл значения.

0 или 1 — сервер возвращает размер очереди по умолчанию, который должен быть равен 1, как измененный размер очереди для элементов, отслеживаемых данными. Очередь имеет единственную запись, эффективно отключающую очередь.

Для значений больше единицы должна использоваться очередь «первым пришел — первым обслужен». Сервер может ограничить размер в измененном размере очереди. В случае переполнения очереди

154

Окончание таблицы 139

ГОСТ Р 71809—2024

Имя

Тип

Описание

Размер очереди

Счетчик

бит (флаг) переполнения в части порции информационных битов кода состояния значения данных устанавливаются в новое значение.

Следующие значения имеют особое значение для предметов контроля событий: смысл значения.

0 — сервер возвращает размер очереди по умолчанию для уведомлений о событиях как измененный размер очереди для предметов контроля событий.

1 — сервер возвращает минимальный размер очереди, который требуется серверу для уведомлений о событиях, таких как измененный размер очереди.

Максимальное целое число без знака 32 — сервер возвращает максимальный размер очереди,который сервер может поддерживать для уведомлений о событиях, таких как измененный размер очереди.

Если клиент выбирает значение между минимальной и максимальной настройками сервера, значение должно быть возвращено в измененный размер очереди. Если запрошенный размер очереди находится за пределами минимального или максимального значения, сервер должен вернуть соответствующее ограничивающее значение.

В случае переполнения очереди создается событие типа «события переполнения очереди событий»

Не учитывать самое старое

Логическое значение

Задает стратегию исключения, когда очередь заполнена и новое уведомление должно быть поставлено в очередь. Имеет следующие значения: Истина — самое старое (первое) уведомление в очереди отбрасывается. Новое уведомление добавляется в конец очереди.

Ложь — последнее добавленное в очередь уведомление заменяется новым уведомлением

7.17 Параметры фильтра мониторинга

7.17.1 Обзор

Служба создания предмета контроля позволяет указать фильтр для каждого предмета контроля. Фильтр мониторинга — это расширяемый параметр, структура которого зависит от типа предмета контроля. Параметры идентификаторов типа параметра определены в таблице 140. Другие типы могут быть определены дополнительными частями этой составной спецификации или другими спецификациями, основанными на ОРС UA. Тип расширяемый параметр определен в 7.12.

Каждый фильтр мониторинга может иметь связанную структуру «результат фильтра мониторинга», которая в ответе возвращает клиентам измененные параметры и/или информацию об ошибках. Структуры результатов, если они существуют, описаны в разделе, который определяет фильтр мониторинга.

Таблица 140 — Идентификатор типа параметра фильтра мониторинга

Символический идентификатор

Описание

Фильтр изменения данных

Изменение значения данных, которое должно вызвать создание уведомления

Фильтр событий

Если уведомление соответствует фильтру событий, оно отправляется клиенту

Фильтр агрегата

Агрегат и его интервалы, когда он будет рассчитан и будет создано уведомление

7.17.2 Фильтр изменения данных

Фильтр изменения данных определяет условия, при которых должно сообщаться уведомление «изменение данных», и, необязательно, диапазон для изменений значений, при которых уведомление «изменение данных» не создается. Этот диапазон называется зоной нечувствительности. Фильтр изменения данных определен в таблице 141.

155

ГОСТ Р 71809—2024

Таблица 141 — Фильтр изменения данных

Имя

Тип

Описание

Фильтр изменения данных

Структура

Триггер

Тип-перечисление «триггер изменения данных»

Задает условия, при которых должно быть отправлено уведомление об изменении данных. Имеет следующие значения: «Статус_0» сообщает об уведомлении только если код статуса, связанный со значением, изменяется. См. таблицу 178 для кодов состояния, определенных в этом стандарте. Дополнительные коды состояния, которые действительны, в частности, для данных устройства приведены в МЭК 62541-8 [4].

«Статуса_1» сообщает об уведомлении, если или код состояния или значение изменится. Фильтр зоны нечувствительности может использоваться дополнительно для фильтрации изменений значений.

Для значений с плавающей запятой сервер должен проверять не-число и сообщать только об одном уведомлении с нечислом, когда значение переходит в состояние нечисло.

Это является настройкой по умолчанию, если фильтр не установлен.

Временнаяотметка_значения_состояния_2— сообщите об уведомлении, если изменится код состояния, значение или временная отметка источника. Если указан фильтр зоны нечувствительности, этот триггер имеет то же поведение, что и значение_состояния_1. Если фильтр изменения данных не применяется к предмету контроля, значение_состояния_1 является поведением отчетов по умолчанию

Тип зоны

нечувствительности

Целое число без знака 32

Значение, определяющее тип и поведение зоны нечувствительности. Значение тип зоны нечувствительности:

отсутствие_0 — расчет зоны нечувствительности не применяется; абсолютное_1 — абсолютная зона нечувствительности (см. ниже); процент_2 — процент зоны нечувствительности (этот тип указан в МЭК 62541-8 [4])

Значение зоны нечувствительности

Вещественное число двойной точности

Зона нечувствительности применяется, только если триггер включает изменения значений и тип зоны нечувствительности установлен соответствующим образом.

Зона нечувствительности игнорируется при изменении статуса элемента данных. Тип зоны нечувствительности = абсолютная зона нечувствительности.

Для этого типа значение зоны нечувствительности содержит абсолютное изменение значения данных, которое должно вызвать создание уведомления.

Этот параметр применяется только к переменным с любым числовым типом данных.

Исключение, вызывающее уведомление об изменении данных на основе «абсолютная зона нечувствительности», определяется следующим образом.

Создается уведомление, если (абсолютное значение [последнее кэшированное значение — текущее 3Ha4eHne)>AbsoluteDeadband]. Последнее кэшированное значение определяется как последнее значение, помещенное в очередь.

Если элемент является массивом значений, весь массив возвращается, если какой-либо элемент массива превышает AbsoluteDeadband, величина или размер массива изменяются.

Тип зоны нечувствительности = процент зоны нечувствительности: Этот тип указан в МЭК 62541-8 [4]

Фильтр изменения данных не имеет ассоциированной структуры результатов.

156

ГОСТ Р 71809—2024

7.17.3 Фильтр событий

Фильтр событий обеспечивает фильтрацию и выбор содержимого подписок на события.

Если уведомление о событии соответствует фильтру, определенному параметром «где» фильтра событий, то уведомление отправляется клиенту.

Каждое уведомление о событии должно включать поля, определенные параметром «выбрать оператора объекта» фильтра событий. Определенные типы событий указаны в ГОСТ Р 71810.

Параметры выбора оператора и оператор «где» указываются в структуре операнд простого атрибута (см. 7.4.4.5). Данная структура требует идентификатор узла типа «тип события», поддерживаемого сервером, и пути к объявлению экземпляра. Объявление экземпляра — это узел, который можно найти, следуя прямым иерархическим ссылкам из полностью унаследованного типа события, где узел также является источником ссылки наличия правила моделирования. Тип событий, объявление экземпляра и правила моделирования описаны в ГОСТ Р 71808. В некоторых случаях один и тот же поисковый путь будет применяться к нескольким типам событий.

В некоторых случаях один и тот же поисковый путь будет применяться к нескольким типам событий.

Если клиент указывает базовый тип события в операнде простого атрибута, тогда сервер должен оценить поисковый путь без учета типа.

Каждое объявление экземпляра в пути должно являться узлом объекта или переменной. Последним узлом на пути может быть узел объекта; однако узлы объектов доступны только для событий, которые видны в адресном пространстве сервера.

Структура операнд простого атрибута позволяет клиенту указать любой атрибут; однако от сервера требуется только поддержка атрибута значения для узлов переменных и атрибута «идентификатор узла» для узлов объектов. При этом профили, определенные в МЭК 62541-7 [1], могут быть поддержкой дополнительных атрибутов обязательной.

Структура операнд простого атрибута используется в выборе оператора для выбора возвращаемого значения, если событие соответствует критериям, указанным в операторе «где». Значение «пусто» возвращается в соответствующем поле события в ответе на публикацию, если выбранное поле не является частью события или если в элементе «выбор результатов оператора объекта» результатом фильтра событий является сообщение об ошибке.

Если выбранное поле поддерживается, но недоступно во время уведомления о событии, поле события должно содержать код состояния, который указывает причину недоступности. Например, сервер должен установить для поля события значение «Некорректно_ДоступПользователяЗапрещен», если значение недоступно для пользователя, связанного с сессией.

Если атрибут значения имеет связанный с ним неопределенный или неверный код состояния, то сервер должен предоставить код состояния вместо атрибута значения. Сервер должен установить для поля события значение «Некорректно_ПревышеныПределыКодирования», если значение превышает максимальный размер сообщения ответа. Идентификатор события, тип события и получение времени не могут содержать код состояния или значение «пусто».

Сервер должен проверять выбор оператора, когда клиент создает или обновляет фильтр событий. Любые ошибки, которые являются истинными для всех возможных событий, возвращаются в параметре «выбор результата оператора», описанном в таблице 143. Некоторые серверы, например серверы агрегирования, могут не знать все возможные типы событий на момент установки фильтра событий. Эти серверы не возвращают ошибки для неизвестных типов событий или путей просмотра. Сервер не должен сообщать об ошибках, которые могут возникнуть в зависимости от состояния сервера или типа события.

Например, выбор оператора, который запрашивает единственный элемент в массиве, всегда будет вызывать ошибку, если тип данных атрибута является скаляром. Однако, даже если тип данных является массивом, может произойти ошибка, если запрошенный индекс не существует для определенного события. Сервер не будет сообщать об ошибке в параметре выбор результатов оператора, если последняя ситуация существует.

Операнд простого атрибута используется в операторе «где» для выбора значения, которое образует часть логического выражения. Эти логические выражения затем используются, чтобы определить, следует ли сообщать о конкретном событии клиенту. Сервер должен использовать значение «пусто», если возникает какая-либо ошибка при оценке оператора «где» для конкретного события. Если атрибут значения имеет связанный с ним неопределенный или неверный код состояния, то сервер должен использовать значение «пусто» вместо значения.

157

ГОСТ Р 71809—2024

Любой базовый оператор фильтра из таблицы 119 может использоваться в операторе «где», однако разрешен только оператор фильтра типа_14 по таблице 120.

Сервер должен проверять оператор «где», когда клиент создает или обновляет фильтр события. Любые структурные ошибки в построении фильтра и любые ошибки, которые истинны для всех возможных событий, возвращаются в параметре результаты оператора «где», описанном в таблице 143. Ошибки, которые могут произойти в зависимости от состояния сервера или события, не сообщаются. Некоторые серверы, например серверы агрегирования, могут не знать все возможные типы событий на момент установки фильтра событий. Эти серверы не возвращают ошибки для неизвестных типов событий или путей просмотра.

«События», «тип события», «переполнение очереди событий» — это представления событий, которые используются в сообщениях управляющих данных клиенту. Они публикуются только в предметах контроля в подписке, которая произвела «событие», «тип события», «переполнение очереди событий». Эти события обходят оператор «где».

В таблице 142 определена структура фильтра событий.

Таблица 142 — Структура фильтра событий

Имя

Тип

Описание

Фильтр событий

Структура

Выбрать оператора []

Операнд простого атрибута

Список значений, возвращаемых с каждым событием в уведомлении. Должен быть указан как минимум один действительный оператор. См. определение «операнд простого атрибута» в 7.4.4.5

Оператор where

Фильтр контента

Ограничивает уведомления теми событиями, которые соответствуют критериям, определенным этим фильтром контента. Структура фильтра контента описана в 7.4.

Структура операнда атрибута не может использоваться в фильтре событий

В таблице 143 определена структура результата фильтра события. Это результат фильтра контроля, связанный с фильтром контроля фильтра событий.

Таблица 143 — Структура результата фильтра события

Имя

Тип

Описание

Результат фильтра события

Структура

Выбрать результаты оператора []

Код состояния

Список кодов состояния для элементов в запросе «выбрать оператора». Размер и порядок списка соответствуют размеру и порядку элементов в параметре запроса «выбрать оператора». Сервер возвращает значение «пусто» для недоступных или отклоненных полей событий

Диагностическая информация выбрать оператора []

Диагностическая информация

Список диагностической информации для отдельных элементов в запросе «выбрать оператора». Размер и порядок списка соответствуют размеру и порядку элементов в параметре запроса «выбрать оператора». Этот список имеет значение «пусто», если диагностическая информация не была запрошена в заголовке запроса или если диагностическая информация не обнаружена при обработке запроса «выбрать оператора»

Результаты оператора

Результат фильтра контента

Любые результаты, связанные с параметром запроса «оператор». Тип результата фильтр контента определен в 7.4.2

В таблице 144 определены значения параметра «выбор результатов оператора». Общие коды состояния определены в таблице 178.

158

Таблица 144 — Результирующие коды результат фильтра события

ГОСТ Р 71809—2024

Символический идентификатор

Описание

Некорректно_Определение

ТипаНедействительно

Описание этого результирующего кода см. в таблице 178.

Идентификатор типа не является идентификатором узла для базового типа события или его подтипа

Некорректно_Идентификатор

УзлаНеизвестен

Описание этого результирующего кода см. в таблице 178. Путь просмотра указан, но он никогда не будет существовать ни в одном событии

Некорректно_ИмяПросмотра

Недействительно

Описание этого результирующего кода см. в таблице 178. Путь просмотра указан и содержит элемент «пусто»

Некорректно_Идентификатор

АтрибутаНедействительный

Описание этого результирующего кода см. в таблице 178. Узел, указанный в пути «просмотр», не позволит вернуть данный идентификатор атрибута

Некорректно_Диапазон

ИндексовНедействительный

Описание этого результирующего кода см. в таблице 178

Некорректно_Несоответствие Типа

Описание этого результирующего кода см. в таблице 178.

Диапазон индексов допустим, но значение атрибута никогда не является массивом

7.17.4 Фильтр агрегата

Фильтр агрегата определяет функцию агрегирования, которую следует использовать для вычисления возвращаемых значений. См. МЭК 62541-13 [6] для получения подробной информации о возможных функциях агрегирования. Она определяет время запуска первого вычисляемого агрегата. Интервал выборки параметров мониторинга (см. 7.16) определяет, как сервер должен выполнять внутреннюю выборку базового источника данных. Интервал обработки указывает размер периода времени, в котором вычисляется агрегат. Размер очереди из атрибутов мониторинга указывает количество обрабатываемых значений, которые следует сохранить.

Цель фильтра агрегата не в том, чтобы читать исторические данные, для этого следует использовать службу «чтение истории». Однако допускается, чтобы время запуска было установлено на время, которое было в прошлом при получении от сервера. Число агрегатов, которое должно было быть вычислено в прошлом, не должно превышать размер очереди, определенный в атрибутах контроля, поскольку значения, превышающие размер очереди, выгружаются клиенту напрямую и никогда не возвращаются клиенту.

Время запуска и интервал обработки могут быть изменены сервером, но время запуска должно оставаться на той же границе (время запуска + пересмотренный интервал обработки *п = пересмотренное время запуска). Такое поведение упрощает доступ к историческим значениям агрегатов с использованием тех же границ путем вызова службы чтения истории. Расширяемый параметр «результаты фильтра агрегата» используется для возврата исправленных значений для фильтра агрегата.

Некоторые базовые системы могут опрашивать данные и создавать несколько выборок с одним и тем же значением. Другие системы могут только сообщать об изменениях значений. Определение для каждого типа агрегата объясняет, как обрабатывать два разных сценария.

Элемент мониторинга сообщает значения только для интервалов, которые завершились по истечении таймера публикации. Неиспользованные данные переносятся и используются для вычисления значения, возвращаемого при следующей публикации.

Временная отметка сервера для каждого интервала должна быть временем окончания интервала обработки.

Фильтр агрегата определен в таблице 145.

Таблица 145 — Структура фильтра агрегата

Имя

Тип

Описание

Фильтр агрегата

Структура

Время запуска

Время utc

Начало периода для первого вычисления агрегата. Размер каждого периода, используемого для вычисления агрегата, определяется интервалом выборки параметра «параметры мониторинга» (см. 7.16)

159

ГОСТ Р 71809—2024

Окончание таблицы 145

Имя

Тип

Описание

Тип агрегата

Идентификатор узла

Идентификатор узла объекта тип функции агрегата, который указывает агрегат, который будет использоваться при извлечении обработанных данных (см. МЭК 62541-13 [6])

Интервал обработки

Продолжительность

Период, который будет использоваться для вычисления агрегата

Конфигурация агрегата

Конфигурация агрегата

Этот параметр позволяет клиентам переопределять параметры конфигурации агрегата, предоставленные объектом, конфигурацию агрегата, для каждого предмета контроля. Для получения дополнительной информации о конфигурациях агрегата см. МЭК 62541-13 [6]). Если сервер не поддерживает возможность переопределения параметров конфигурации агрегата, он должен вернуть код состояния «Некорректно_НесоответствиеСпискаАгрегатов». Эта структура определяется в соответствии со следующими элементами с отступом

Использование настройки возможностей сервера по умолчанию

Логическое значение

Если значение = истина, используют агрегированные параметры конфигурации, как указано в объекте конфигурации агрегата. Если значение = ложь, используют параметры конфигурации, как указано в следующих параметрах конфигурации агрегата

Принятие не определено как некорректное

Логическое значение

Как описано в МЭК 62541-13 [6]

Процент данных с ошибкой

Байт

Как описано в МЭК 62541-13 [6]

Процент данных без ошибки

Байт

Как описано в МЭК 62541-13 [6]

Использование наклонной экстраполяции

Логическое значение

Как описано в МЭК 62541-13 [6]

Результат фильтра агрегата определяет пересмотренный фильтр агрегата, который сервер может вернуть, когда фильтр агрегата определен для элемента мониторинга в службы создания «элементы мониторинга» или «изменения элементов мониторинга». Результат фильтра агрегата определен в таблице 146. Это результат фильтра мониторинга, связанный с фильтром мониторинга фильтра агрегата.

Таблица 146 — Структура результата фильтр агрегата

Имя

Тип

Описание

Результата фильтр агрегата

Структура

Пересмотренное время запуска

Время utc

Фактический интервал времени запуска, который должен использовать сервер.

Это значение зависит от ряда факторов, включая возможности сервера к доступу к историческим данным. Пересмотренное время запуска должно оставаться в той же границе, что и время запуска (время запуска + интервал выборки * п = пересмотренное время запуска)

Пересмотренный интервал обработки

Продолжительность

Фактический интервал обработки, который должен использовать сервер.

Пересмотренный интервал обработки должен быть как минимум в два раза больше пересмотренного интервала выборки для элемента мониторинга

160

ГОСТ Р 71809—2024

7.18 Режим мониторинга

Режим мониторинга — это перечисление, которое указывает, включены или отключены выборка и создание отчетов для элемента мониторинга. Значение параметра включения публикации для подписки не влияет на значение режима мониторинга для элемента мониторинга подписки. Значения этого параметра определены в таблице 147.

Таблица 147 — Значения режима мониторинга

Значение

Описание

Отключенный_0

Элемент мониторинга не выбирается и не оценивается, а уведомления не генерируются и не ставятся в очередь. Отчеты об уведомлениях отключены

Выборка_1

Элемент мониторинга выбирается и оценивается, а уведомления генерируются и ставятся в очередь. Отчеты об уведомлениях отключены

Отчет_2

Элемент мониторинга выбирается и оценивается, а уведомления генерируются и ставятся в очередь. Отчеты об уведомлениях включены

7.19 Параметры атрибута узла

7.19.1 Обзор

Служба добавления «узлы» позволяет указывать атрибуты для добавляемых узлов. Атрибуты узла — это расширяемый параметр, структура которого зависит от типа добавляемого класса узла. Он идентифицирует класс узла, который определяет структуру следующих атрибутов. Идентификаторы типа параметра определены в таблице 148. Тип «расширяемый параметр» определен в 7.12.

Таблица 148 — Идентификаторы типа параметра атрибутов узла

Символический идентификатор

Описание

Атрибуты объекта

Определяет атрибуты для класса узла объекта

Атрибуты переменной

Определяет атрибуты для класса узла переменной

Атрибуты метода

Определяет атрибуты для класса узла метода

Атрибуты типа объекта

Определяет атрибуты для класса узла типа объекта

Атрибуты типа переменной

Определяет атрибуты для класса узла типа переменной

Атрибуты ссылочного типа

Определяет атрибуты для класса узла ссылочного типа

Атрибуты типа данных

Определяет атрибуты для класса узла типа данных

Атрибуты представления

Определяет атрибуты для класса узла представления

Общие атрибуты

Определяет список идентификаторов и значений для передачи любого количества значений атрибутов. Его следует использовать вместо структур, специфичных для класса узла, поскольку он позволяет обрабатывать дополнительные атрибуты, определенные в будущих версиях спецификации

В таблице 149 определена битовая маска, используемая в параметрах атрибутов узла, чтобы указать, какие атрибуты устанавливаются клиентом.

Таблица 149 — Битовая маска для указанных атрибутов

Поле

Бит

Описание

Уровень доступа

0

Указывает, установлен ли атрибут поля «уровень доступа»

Размерность массива

1

Указывает, установлен ли атрибут поля «размерность массива»

Зарезервированный

2

Зарезервирован для согласования с полем «маска записи», определенный в ГОСТ Р 71808

161

ГОСТ Р 71809—2024

Окончание таблицы 149

Поле

Бит

Описание

Не содержит циклов

3

Указывает, установлен ли атрибут поля «не содержит циклов»

Тип данных

4

Указывает, установлен ли атрибут поля «тип данных»

Описание

5

Указывает, установлен ли атрибут поля «описание»

Отображаемое имя

6

Указывает, установлен ли атрибут поля «отображаемое имя»

Уведомление о событиях

7

Указывает, установлен ли атрибут поля «уведомления о событиях»

Исполняемый

8

Указывает, установлен ли атрибут поля «исполняемый»

Историзация

9

Указывает, установлен ли атрибут поля «историзация»

Обратное имя

10

Указывает, установлен ли атрибут поля «обратное имя»

Абстрактный

11

Указывает, установлен ли атрибут поля «абстрактный»

Минимальный интервал выборки

12

Указывает, установлен ли атрибут поля «минимальный интервал выборки»

Зарезервированный

13

Зарезервирован для согласования с полем «маска записи», определенным в ГОСТ Р 71808

Зарезервированный

14

Зарезервирован для согласования с полем «маска записи», определенный в ГОСТ Р 71808

Симметричный

15

Указывает, установлен ли атрибут поля «симметричный»

Уровень доступа пользователя

16

Указывает, установлен ли атрибут поля «уровень доступа пользователя»

Исполняемый пользователем

17

Указывает, установлен ли атрибут поля «исполняемый пользователем»

Маска записи пользователя

18

Указывает, установлен ли атрибут поля «маска записи пользователя»

Позиция значения

19

Указывает, установлен ли атрибут поля «позиция значения»

Маска записи

20

Указывает, установлен ли атрибут поля «маска записи»

Значение

21

Указывает, установлен ли атрибут поля «значение»

Зарезервированный

22:32

Зарезервированный для использования в будущем. Всегда должен иметь нулевое значение

7.19.2 Параметр атрибутов объекта

В таблице 150 определен параметр атрибутов объекта.

Таблица 150 — Атрибуты объекта

Имя

Тип

Описание

Атрибуты объекта

Структура

Определяет атрибуты для класса узла объекта

Указанные атрибуты

Целое число без знака 32

Битовая маска, указывающая, какие поля содержат допустимые значения. Поле должно игнорироваться, если соответствующий бит установлен в 0. Значения бит определены в таблице 149

Отображаемое имя

Локализованный текст

Описание этого атрибута см. в ГОСТ Р 71807

Описание

Локализованный текст

Описание этого атрибута см. в ГОСТ Р 71807

Уведомление о событиях

Байт

Описание этого атрибута см. в ГОСТ Р 71807

162

Окончание таблицы 150

ГОСТ Р 71809—2024

Имя

Тип

Описание

Маска записи

Целое число без знака 32

Описание этого атрибута см. в ГОСТ Р 71807

Маска записи пользователя

Целое число без знака 32

Описание этого атрибута см. в ГОСТ Р 71807

7.19.3 Параметр атрибуты переменной

В таблице 151 определен параметр атрибутов переменной.

Таблица 151—Атрибуты переменной

Имя

Тип

Описание

Атрибуты переменной

Структура

Определяет атрибуты для класса узла переменной

Указанные атрибуты

Целое число без знака 32

Битовая маска, указывающая, какие поля содержат допустимые значения. Поле должно игнорироваться, если соответствующий бит установлен в 0. Значения бит определены в таблице 149

Отображаемое имя

Локализованный текст

Описание этого атрибута см. в ГОСТ Р 71808

Описание

Локализованный текст

Описание этого атрибута см. в ГОСТ Р 71808

Значение

Определяется атрибутом типа данных

Описание этого атрибута см. в ГОСТ Р 71808

Тип данных

Идентификатор узла

Описание этого атрибута см. в ГОСТ Р 71808

Позиция значения

Целое число 32

Описание этого атрибута см. в ГОСТ Р 71808

Размерность массива

Целое число без знака 32 []

Описание этого атрибута см. в ГОСТ Р 71808

Уровень доступа

Байт

Описание этого атрибута см. в ГОСТ Р 71808

Уровень доступа пользователя

Байт

Описание этого атрибута см. в ГОСТ Р 71808

Минимальный интервал выборки

Продолжительность

Описание этого атрибута см. в ГОСТ Р 71808

Историзация

Логическое значение

Описание этого атрибута см. в ГОСТ Р 71808

Маска записи

Целое число без знака 32

Описание этого атрибута см. в ГОСТ Р 71808

Маска записи пользователя

Целое число без знака 32

Описание этого атрибута см. в ГОСТ Р 71808

7.19.4 Параметры атрибутов метода

В таблице 152 определен параметр атрибутов метода.

163

ГОСТ Р 71809—2024

Таблица 152 — Атрибуты метода

Имя

Тип

Описание

Базовые атрибуты

Структура

Определяет атрибуты для класса узла метода

Указанные атрибуты

Целое число без знака 32

Битовая маска, указывающая, какие поля содержат допустимые значения. Поле должно игнорироваться, если соответствующий бит установлен в 0. Значения бит определены в таблице 149.

Отображаемое имя

Локализованный текст

Описание этого атрибута см. в ГОСТ Р 71808

Описание

Локализованный текст

Описание этого атрибута см. в ГОСТ Р 71808

Исполняемый

Логическое значение

Описание этого атрибута см. в ГОСТ Р 71808

Исполняемый пользователем

Логическое значение

Описание этого атрибута см. в ГОСТ Р 71808

Маска записи

Целое число без знака 32

Описание этого атрибута см. в ГОСТ Р 71808

Маска записи пользователя

Целое число без знака 32

Описание этого атрибута см. в ГОСТ Р 71808

7.19.5 Параметр атрибутов типа объекта

В таблице 153 определен параметр атрибутов типа объекта.

Таблица 153 — Атрибуты типа объекта

Имя

Тип

Описание

Атрибуты типа объекта

Структура

Определяет атрибуты для класса узла типа объекта

Указанные атрибуты

Целое число без знака 32

Битовая маска, указывающая, какие поля содержат допустимые значения. Поле должно игнорироваться, если соответствующий бит установлен в 0. Значения бит определены в таблице 149

Отображаемое имя

Локализованный текст

Описание этого атрибута см. в ГОСТ Р 71808

Описание

Локализованный текст

Описание этого атрибута см. в ГОСТ Р 71808

Абстрактный

Логическое значение

Описание этого атрибута см. в ГОСТ Р 71808

Маска записи

Целое число без знака 32

Описание этого атрибута см. в ГОСТ Р 71808

Маска записи пользователя

Целое число без знака 32

Описание этого атрибута см. в ГОСТ Р 71808

7.19.6 Параметр атрибутов типа переменной

В таблице 154 определен параметр атрибутов типа переменной.

164

Таблица 154 — Атрибуты типа переменной

ГОСТ Р 71809—2024

Имя

Тип

Описание

Атрибуты типа переменной

Структура

Определяет атрибуты для класса узла типа переменной

Указанные атрибуты

Целое число без знака 32

Битовая маска, указывающая, какие поля содержат допустимые значения. Поле должно игнорироваться, если соответствующий бит установлен в 0. Значения бит определены в таблице 149

Отображаемое имя

Локализованный текст

Описание этого атрибута см. в ГОСТ Р 71808

Описание

Локализованный текст

Описание этого атрибута см. в ГОСТ Р 71808

Значение

Определяется атрибутом тип данных

Описание этого атрибута см. в ГОСТ Р 71808

Тип данных

Идентификатор узла

Описание этого атрибута см. в ГОСТ Р 71808

Позиция значения

Целое число 32

Описание этого атрибута см. в ГОСТ Р 71808

Размерность массива

Целое число без знака 32 []

Описание этого атрибута см. в ГОСТ Р 71808

Абстрактный

Логическое значение

Описание этого атрибута см. в ГОСТ Р 71808

Маска записи

Целое число без знака 32

Описание этого атрибута см. в ГОСТ Р 71808

Маска записи пользователя

Целое число без знака 32

Описание этого атрибута см. в ГОСТ Р 71808

7.19.7 Параметр атрибутов ссылочного типа

В таблице 155 определен параметр атрибутов ссылочного типа.

Таблица 155 — Атрибуты ссылочного типа

Имя

Тип

Описание

Атрибуты ссылочного типа

Структура

Определяет атрибуты для класса узла ссылочного типа

Указанные атрибуты

Целое число без знака 32

Битовая маска, указывающая, какие поля содержат допустимые значения. Поле должно игнорироваться, если соответствующий бит установлен в 0. Значения бит определены в таблице 149

Отображаемое имя

Локализованный текст

Описание этого атрибута см. в ГОСТ Р 71808

Описание

Локализованный текст

Описание этого атрибута см. в ГОСТ Р 71808

Абстрактный

Логическое значение

Описание этого атрибута см. в ГОСТ Р 71808

Симметричный

Логическое значение

Описание этого атрибута см. ГОСТ Р 71808

Обратное имя

Локализованный текст

Описание этого атрибута см. в ГОСТ Р 71808

Маска записи

Целое число без знака 32

Описание этого атрибута см. в ГОСТ Р 71808

Маска записи пользователя

Целое число без знака 32

Описание этого атрибута см. в ГОСТ Р 71808

165

ГОСТ Р 71809—2024

7.19.8 Параметр атрибутов типа данных

В таблице 156 определен параметр атрибутов типа данных.

Таблица 156 — Атрибуты типа данных

Имя

Тип

Описание

Атрибуты типа данных

Структура

Определяет атрибуты для класса узла типа данных

Указанные атрибуты

Целое число без знака 32

Битовая маска, указывающая, какие поля содержат допустимые значения. Поле должно игнорироваться, если соответствующий бит установлен в 0. Значения бит определены в таблице 149

Отображаемое имя

Локализованный текст

Описание этого атрибута см. в ГОСТ Р 71808

Описание

Локализованный текст

Описание этого атрибута см. в ГОСТ Р 71808

Абстрактный

Логическое значение

Описание этого атрибута см. в ГОСТ Р 71808

Маска записи

Целое число без знака 32

Описание этого атрибута см. в ГОСТ Р 71808

Маска записи пользователя

Целое число без знака 32

Описание этого атрибута см. в ГОСТ Р 71808

7.19.9 Параметр атрибутов представления

В таблице 157 определен параметр атрибутов представления.

Таблица 157—Атрибуты представления

Имя

Тип

Описание

Атрибуты представления

Структура

Определяет атрибуты для класса узла представления

Указанные атрибуты

Целое число без знака 32

Битовая маска, указывающая, какие поля содержат допустимые значения. Поле должно игнорироваться, если соответствующий бит установлен в 0. Значения бит определены в таблице 149

Отображаемое имя

Локализованный текст

Описание этого атрибута см. в ГОСТ Р 71808

Описание

Локализованный

текст

Описание этого атрибута см. в ГОСТ Р 71808

Не содержит петель

Логическое значение

Описание этого атрибута см. в ГОСТ Р 71808

Уведомление о событиях

Байт

Описание этого атрибута см. в ГОСТ Р 71808

Маска записи

Целое число без знака 32

Описание этого атрибута см. в ГОСТ Р 71808

Маска записи пользователя

Целое число без знака 32

Описание этого атрибута см. в ГОСТ Р 71808

7.19.10 Параметр общих атрибутов

Эту структуру следует использовать вместо специфических структур класса узла, определенных в других подразделах 7.19, поскольку она позволяет обрабатывать дополнительные атрибуты, определенные в будущих версиях спецификации.

Таблица 158 определяет параметр общих атрибутов.

166

Таблица 158 — Общие атрибуты

ГОСТ Р 71809—2024

Имя

Тип

Описание

Общие атрибуты

Структура

Определяет общую структуру для передачи любого количества атрибутов

Значения атрибутов

Значение общего атрибута []

Определяет одну комбинацию атрибута и значения

Идентификатор атрибута

Идентификатор целого числа

Идентификатор указанного атрибута

Значение

Базовый тип данных

Значение указанного атрибута

7.20 Параметры данных уведомления

7.20.1 Обзор

Структура уведомительного сообщения, используемая в наборе служб подписки, позволяет указывать различные типы данных уведомления. Параметр данных уведомления — это расширяемый параметр, структура которого зависит от типа отправляемого уведомления. Этот параметр определен в таблице 159. Другие типы могут быть определены другими частями данной серии или другими спецификациями, основанными на ОРС UA. Тип расширяемого параметра определен в 7.12.

Для одного элемента мониторинга в одной структуре данных уведомления может быть несколько уведомлений. Когда это происходит, сервер должен гарантировать, что уведомления появляются в том же порядке, в котором они были поставлены в очередь в элементах мониторинга. Эти уведомления не обязательно должны отображаться как непрерывный блок.

Таблица 159 — Идентификаторы типа параметра данных уведомления

Символический идентификатор

Описание

Изменение данных

Параметр данных уведомления, используемый для уведомлений об изменении данных

Событие

Параметр данных уведомления, используемый для уведомлений о событиях

Изменение статуса

Параметр данных уведомления, используемый для уведомления об изменении статуса подписки

7.20.2 Параметр уведомления об изменении данных

В таблице 160 определен параметр данных уведомления, используемый для уведомлений об изменении данных. Эта структура содержит элементы мониторинга данных, о которых необходимо сообщить. Элементы мониторинга данных сообщаются при двух условиях:

а) если режим мониторинга установлен на отчет и обнаружено изменение значения или его статуса (представленного его кода состояния);

б) если для параметра «режим мониторинга» установлено значение «выборка», режим мониторинга связывается с триггерным элементом, и триггерный элемент запускается.

Для описания набора услуг режима мониторинга и, в частности, модели режима мониторинга и триггерной модели см. 5.12.

После создания режима мониторинга текущее значение или состояние контролируемого атрибута должно быть поставлено в очередь без применения фильтра. Если текущее значение недоступно после первого интервала выборки, первое уведомление должно быть поставлено в очередь после получения начального значения или статуса из источника данных.

167

ГОСТ Р 71809—2024

Таблица 160 — Уведомление об изменении данных

Имя

Тип

Описание

Уведомление об изменении данных

Структура

Данные уведомления об изменении данных

Элементы мониторинга []

Уведомление об элементе мониторинга

Список элементов мониторинга, для которых было обнаружено изменение. Эта структура определяется в соответствии со следующими элементами с отступом

Дескриптор клиента

Идентификатор целого числа

Предоставляемый клиентом дескриптор для элемента мониторинга. Тип «идентификатор целого числа» определен в 7.14

Значение

Значение данных

Код состояния, значение и временная(ые) отметка(и) контролируемого атрибута в зависимости от конфигурации выборки и постановки в очередь.

Если код состояния указывает на ошибку, значение следует игнорировать.

Если не все обнаруженные изменения были возвращены после того, как буфер очереди сервера для элемента мониторинга достиг своего предела и был вынужден удалить данные, а размер очереди больше единицы, устанавливается бит переполнения в информационных битах значения данных кода состояния.

Значение данных — это общий тип, определенный в 7.7

Диагностическая информация []

Диагностическая информация

Список диагностической информации. Размер и порядок этого списка соответствуют размеру и порядку параметра «элементы мониторинга». В этом списке есть одна запись для каждого узла, содержащегося в параметре «элементы мониторинга».

Этот список пуст, если диагностическая информация не запрашивалась или недоступна для любого из элементов мониторинга. Диагностическая информация — это общий тип, определенный в 7.8

7.20.3 Параметр списка уведомлений о событиях

В таблице 161 определен параметр «данные уведомления», используемый для уведомлений о событиях.

Список уведомлений о событиях определяет структуру таблицы, которая используется для возврата полей событий в клиентскую подписку. Структура имеет вид таблицы, состоящей из одного или нескольких событий, каждое из которых содержит массив из одного или нескольких полей. Выбор и порядок полей, возвращаемых для каждого события, идентичны выбранному параметру «фильтр событий».

Таблица 161 — Список уведомлений о событиях

Имя

Тип

Описание

Список уведомлений о событиях

Структура

Данные уведомления о событии

События []

Список полей событий

Список доставляемых событий. Эта структура определяется в соответствии со следующими элементами с отступом

Дескриптор клиента

Идентификатор целого числа

Предоставляемый клиентом дескриптор для элемента мониторинга. Тип «идентификатор целого числа» определен в 7.14

Поля событий []

Базовый тип данных

Список выбранных полей событий. Это должно являться совпадением один-к-одному с полями, выбранными в фильтре событий.

7.17.3 определяет, как сервер должен поступать с ошибочными состояниями

7.20.4 Параметр «уведомление об изменении статуса»

В таблице 162 определен параметр «данные уведомления», используемые для уведомления об изменении статуса.

168

ГОСТ Р 71809—2024

Уведомление об изменении статуса информирует клиента об изменении статуса подписки.

Таблица 162 — Уведомление об изменении статуса

Имя

Тип

Описание

Уведомление об изменении статуса

Структура

Данные уведомления о событии

Статус

Код успешного завершения

Код состояния, указывающий на изменение статуса

Диагностическая информация

Диагностическая информация

Диагностическая информация для изменения статуса

7.21 Уведомительное сообщение

Компоненты этого параметра определены в таблице 163.

Таблица 163 — Уведомительное сообщение

Имя

Тип

Описание

Уведомительное сообщение

Структура

Сообщение, содержащее одно или несколько уведомлений

Номер

последовательности

Счетчик

Порядковый номер уведомительного сообщения

Время публикации

Время Utc

Время, когда это сообщение было отправлено клиенту. Если это сообщение повторно передается клиенту, этот параметр содержит время, когда оно было передано клиенту впервые

Данные уведомления []

Расширяемый параметр данных уведомления

Список структур данных уведомления.

Тип параметра «данные уведомления» — это расширяемый тип параметра, указанный в 7.20. Он определяет типы уведомлений, которые могут быть отправлены. Тип «расширяемый параметр» указан в 7.12.

Уведомления одного типа должны быть сгруппированы в один элемент данных уведомления. Если подписка содержит элементы мониторинга для событий и данных, в этом массиве должно быть не более 2 элементов. Если подписка содержит элементы мониторинга только для данных или только для событий, размер массива всегда должен быть равен единице для этой подписки

7.22 Область числовых значений

Этот параметр определен в таблице 164.

Синтаксис строки содержит одну из следующих двух конструкций. Первая конструкция — это строковое представление отдельного целого числа. Например, «6» допустимо, а «6,0» и «3,2» — нет. Минимальные и максимальные значения, которые могут быть выражены, определяются использованием этого параметра, а не определением этого типа параметра. Вторая конструкция — это диапазон, представленный двумя целыми числами, разделенными двоеточием («:»). Первое целое число всегда должно иметь меньшее значение, чем второе. Например, «5:7» допустимо, а «7:5» и «5:5» — нет. Минимальные и максимальные значения, которые могут быть выражены этими целыми числами, определяются использованием этого параметра, а не определением этого типа параметра. Никакие другие символы, включая символы пробела, не допускаются.

Многомерные массивы могут быть проиндексированы путем указания диапазона для каждого измерения, разделенного символом. Например, блок 2x2 в матрице 4x4 может быть выбран с диапазоном «1:2,0:1». Отдельный элемент в многомерном массиве можно выбрать, указав одно число вместо диапазона. Например, «1,1» выбирает элемент [1,1] в двумерном массиве.

Размеры указываются в том порядке, в котором они появляются в атрибуте «размерность массива». Все размеры должны быть указаны для того, чтобы область числовых значений была действительной.

169

ГОСТ Р 71809—2024

Все индексы начинаются с 0. Максимальное значение для любого индекса на единицу меньше длины измерения.

При чтении значения, когда любая из нижних границ индексов выходит за пределы допустимого диапазона, сервер должен вернуть сообщение «Некорректно_НетДанныхДиапазонаиИндекса». Если какая-либо из верхних границ индексов выходит за пределы допустимого диапазона, сервер возвращает частичные результаты.

«Некорректно_ДиапазонИндексовНедействительный» используется только для недопустимого синтаксиса области числовых значений. Все другие недопустимые запросы с допустимым синтаксисом должны привести к «Некорректно_НетДанныхДиапазонаИндекса».

При записи значения размер массива должен соответствовать размеру, указанному в области числовых значений. Сервер возвращает ошибку, если он не может записать все элементы, указанные клиентом.

Область числовых значений также можно использовать для указания подстрок для значений строки байтов и строки. Массивы значений строки байтов и строки обрабатываются как двумерные массивы, где конечный индекс указывает диапазон подстроки в значении «строки байтов» или «строки». Если не указан последний индекс, выбирается все значение строки байтов или строки.

Таблица 164 — Область числовых значений

Имя

Тип

Описание

Область числовых значений

Строка

Число или числовой диапазон.

Пустая строка означает, что этот параметр не используется

7.23 Набор данных запроса

Компоненты этого параметра определены в таблице 165.

Таблица 165 — Набор данных запроса

Имя

Тип

Описание

Набор данных запроса

Структура

Данные, относящиеся к узлу, возвращенные в ответе на запрос

Идентификатор узла

Расширенный идентификатор узла

Идентификатор узла для этого описания узла

Определение типа узла

Расширенный идентификатор узла

Идентификатор узла для определения типа для этого описания узла

Значения []

Базовый тип данных

Значения для выбранных атрибутов. Порядок возвращенных элементов соответствует порядку запрошенных элементов. Существует запись для каждого запрошенного элемента для данного определения типа узла, который соответствует выбранному экземпляру, включая любые связанные узлы, которые были указаны с использованием относительного пути из определения типа узла выбранного экземпляра. Если для данного запрошенного элемента не найдено значений — для этого элемента возвращается пустое значение. Если значение имеет статус «некорректный» — вместо значения возвращается код состояния. Если для запрошенного элемента существует несколько значений — возвращается массив значений. Если запрошенный элемент является ссылкой, то для этого элемента возвращается эталонное описание или массив «эталонное описание».

Если набор данных запроса возвращается в запрос «далее для продолжения списка эталонного описания» — массив значений будет иметь тот же размер, но другие, уже возвращенные, значения будут пустыми

170

ГОСТ Р 71809—2024

7.24 Идентификатор «чтение значения»

Компоненты этого параметра определены в таблице 166.

Таблица 166 — Идентификатор «чтение значения»

Имя

Тип

Описание

Идентификатор «чтение значения»

Структура

Идентификатор элемента для чтения или контроля

Идентификатор узла

Идентификатор узла

Идентификатор узла

Идентификатор атрибута

Идентификатор целого числа

Идентификатор атрибута. Это должен быть действительный идентификатор атрибута. Идентификатор целого числа определен в 7.14. Идентификаторы целого числа для атрибутов определены в ГОСТ Р 71811

Диапазон индексов

Область числовых значений

Данный параметр используется для идентификации одного элемента массива или одного диапазона индексов для массивов. Если указан диапазон элементов — значения возвращаются как составные. Первый элемент обозначается индексом 0 (ноль). Тип «область числовых значений» определен в 7.22.

Этот параметр имеет значение «пусто», если указанный атрибут не является массивом.

Однако, если указанный атрибут является массивом и этот параметр имеет значение «пусто», то все элементы должны быть включены в диапазон

Кодирование данных

Квалифицированное имя

Этот параметр указывает имя просмотра кодирования типа данных, которое сервер должен использовать при возврате атрибута значения переменной. Указание этого параметра для других атрибутов является ошибкой.

Этот параметр применяется только в том случае, если тип данных переменной является подтипом структуры. Указание этого параметра является ошибкой, если тип данных переменной не является подтипом структуры.

Клиент может узнать, какие кодирования типа данных доступны, следуя ссылке «имеет кодирование в узле «тип данных для переменной». ОРС UA определяет имена просмотра, которые серверы должны распознавать, даже если узлы типа данных не видны в адресном пространстве сервера. Эти имена просмотра следующие:

- двоичная кодировка по умолчанию — собственная двоичная (или не XML) кодировка по умолчанию;

- XML по умолчанию — кодировка XML по умолчанию;

- JSON по умолчанию — кодировка JSON по умолчанию.

Каждый тип данных должен поддерживать по крайней мере одну из этих кодировок.

Типы данных, которые не имеют истинной двоичной кодировки (например, они имеют только текстовую кодировку, отличную от xml), должны использовать двоичное имя по умолчанию для идентификации кодировки, которая считается кодировкой по умолчанию, отличной от xml. Типы данных, которые поддерживают по крайней мере одно кодирование на основе xml, должны идентифицировать одну из кодировок как кодировку xml по умолчанию. Другие органы по стандартизации могут определять другие хорошо известные кодировки данных, которые могут поддерживаться.

Если этот параметр не указан, то сервер должен выбрать значение по умолчанию в соответствии с тем, какая кодировка сообщения (см. ГОСТ Р 71811) используется для сеанса. Если сервер не поддерживает кодировку, которая соответствует кодировке сообщения, тогда сервер должен выбрать кодировку по умолчанию, которую он поддерживает

171

ГОСТ Р 71809—2024

7.25 Ссылочное описание

Компоненты этого параметра определены в таблице 167.

Таблица 167 — Ссылочное описание

Имя

Тип

Описание

Ссылочное описание

Структура

Ссылочные параметры, возвращенные для службы просмотра «просмотр»

Идентификатор типа указателя

Идентификатор узла

Идентификатор узла ссылочного типа, определяющего ссылку

Перенаправить

Логическое значение

Если значение — «истина», то сервер следовал прямой ссылке. Если значение — «ложь», то сервер выполнил обратную ссылку

Идентификатор узла

Расширенный идентификатор узла

Идентификатор узла целевого узла, назначенного сервером, идентифицированный индексом сервера. Тип «расширенный идентификатор узла» определен в 7.11.

Если индекс сервера указывает, что целевой узел является удаленным узлом, то идентификатор узла должен содержать абсолютный URI имени пространства. Если целевой узел является локальным узлом, то идентификатор узла должен содержать индекс пространства имен

Имя просмотра1^

Квалифицированное имя

Имя просмотра целевого узла

Отображаемое имя

Локализованный текст

Отображаемое имя целевого узла

Класс узла1)

Класс узла

Класс узла целевого узла

Определение типа1)

Расширенный идентификатор узла

Определение типа идентификатора узла целевого узла. Определения типов доступны только для объекта и переменной «классы узла». Для всех других классов узла должен быть возвращен пустой идентификатор узла

1) Если индекс сервера указывает, что целевой узел является удаленным узлом, тогда имя просмотра, класс узла и определение типа могут иметь нулевое значение или быть пустыми. В противном случае они могут быть устаревшими, поскольку локальный сервер может не отслеживать изменения удаленного сервера постоянно. Отображаемое имя должно быть предоставлено для удаленных узлов.

7.26 Относительный путь

Компоненты этого параметра определены в таблице 168.

Таблица 168 — Относительный путь

Имя

Тип

Описание

Относительный путь

Структура

Определяет последовательность ссылок и имен просмотра, которым необходимо следовать

Элементы []

Элемент относительного пути

Последовательность ссылок и имен просмотра, которым необходимо следовать. Эта структура определяется в соответствии со следующими элементами с отступом.

Каждый элемент в последовательности обрабатывается путем нахождения целей и последующего использования этих целей в качестве начальных узлов для следующего элемента. Цели последнего элемента являются целью относительного пути

172

Окончание таблицы 168

ГОСТ Р 71809—2024

Имя

Тип

Описание

Идентификатор типа указателя

Идентификатор узла

Тип ссылки, которая будет следовать из текущего узла.

Текущий путь не может быть продолжен, если идентификатор типа указателя недоступен в экземпляре узла.

Если он не указан, то включаются все ссылки, а параметр «включить подтипы» игнорируется

Назад

Логическое значение

Если это значение— «истина», должны выполняться только обратные ссылки. Если это значение «ложь», должны выполняться только прямые ссылки

Включить подтипы

Логическое значение

Указывает, необходимо ли следовать подтипам «ссылочный тип». Подтипы включаются, если это значение «истина»

Имя цели

Квалифицированное имя

Имя просмотра целевого узла.

Последний элемент может иметь пустое имя цели, тогда цели ссылок, идентифицированные с помощью идентификатора типа указателя, являются целями относительного пути.

Имя цели должно быть указано для всех других элементов. Текущий путь не может быть продолжен, если не существует целей с указанным именем просмотра

Относительный путь можно применить к любому начальному узлу. Цели относительного пути — это набор узлов, которые можно найти путем последовательного следования за элементами в относительном пути.

Текстовый формат используется в примерах, объясняющих службы, использующие структуру относительного пути.

7.27 Зарегистрированный сервер

Компоненты этого параметра определены в таблице 169.

Таблица 169 — Зарегистрированный сервер

Имя

Тип

Описание

Зарегистрированный сервер

Структура

Сервер для регистрации

URI сервера

Строка

Глобальный уникальный идентификатор экземпляра сервера. URI сервера соответствует URI приложения из описания приложения, определенного в 7.1

URI продукта

Строка

Глобальный уникальный идентификатор для продукта сервера

Имена сервера []

Локализованный

текст

Список локализованных описательных имен для сервера. В списке должна быть как минимум одна действительная запись

Тип сервера

Тип-перечисление «Тип приложения»

Тип приложения.

Значения перечисления определены в таблице 112.

Значение «клиент_1» (приложение является клиентом) недопустимо. В этом случае результатом обслуживания будет «Некор-ректно_НедопутимыйАргумент»

URI сервера шлюза

Строка

URI сервера шлюза, связанный с URLs обнаружения.

Это значение указывается только серверами шлюза, которые хотят зарегистрировать серверы, к которым они предоставляют доступ.

Для серверов, которые не действуют как сервер шлюза, этот параметр должен быть пустым

173

ГОСТ Р 71809—2024

Окончание таблицы 169

Имя

Тип

Описание

URLs обнаружения []

Строка

Список конечных точек обнаружения для сервера. В списке должна быть как минимум одна действительная запись

Путь к файлу семафора

Строка

Путь к файлу семафора, который используется для идентификации автоматически запускаемого экземпляра сервера; серверы, запускаемые вручную, не будут использовать этот параметр. Если предоставляется файл семафора, флажок онлайн игнорируется.

Если файл семафоров предоставлен и существует, локальный сервер обнаружения должен сохранять регистрационную информацию в постоянном хранилище данных, которое он читает при каждом запуске локального сервера обнаружения.

Если файл семафоров указан, но не существует, сервер обнаружения должен удалить регистрацию из любого постоянного хранилища данных.

Если сервер зарегистрирован с помощью «путь к файлу семафора», сервер обнаружения должен проверить, существует ли этот файл, прежде чем возвращать описание приложения клиенту.

Если сервер не зарегистрировался с помощью «путь к файлу семафора» (он пуст), то сервер обнаружения не пытается проверить существование файла перед возвратом описания приложения клиенту

Онлайн

Логическое значение

Истина — если сервер в настоящее время может принимать соединения от клиентов. Сервер обнаружения должен вернуть клиенту описания приложения.

Ожидается, что сервер будет периодически перерегистрироваться на сервере обнаружения.

Ложь — если сервер в настоящее время не может принимать соединения от клиентов. Сервер обнаружения не должен возвращать клиенту описания приложения

Этот параметр игнорируется, если указан путь к файлу семафора

7.28 Заголовок запроса

Компоненты этого параметра определены в таблице 170.

Таблица 170 — Заголовок запроса

Имя

Тип

Описание

Заголовок запроса

Структура

Общие параметры для всех запросов, отправленных в сеансе

Токен аутентификации

Сеанс токен аутентификации

Секретный идентификатор сеанса, используемый для проверки того, что запрос связан с сеансом. Тип «токен аутентификации» сессии определен в 7.31

Временная отметка

Время UTC

Время, когда клиент отправил запрос. Параметр используется только для диагностики и ведения журнала на сервере

Дескриптор запроса

Идентификатор целого числа

Дескриптор запроса, связанный с запросом. Этот определяемый клиентом дескриптор можно использовать для отмены запроса. Он также возвращается в ответе

174

Продолжение таблицы 170

ГОСТ Р 71809—2024

Имя

Тип

Описание

Возврат диагностики

Целое число без знака 32

Битовая маска, которая идентифицирует типы диагностики, зависящей от поставщика, которые должны быть возвращены в параметрах ответа диагностической информации.

Значение этого параметра может состоять из нуля, одного или нескольких следующих значений. Отсутствие значения указывает на то, что диагностические данные не возвращаются

Битовое значение

Диагностика для возврата

0x0000 0001

Уровень сервиса/символический идентификатор

0x0000 0002

Уровень сервиса/локализованный текст

0x0000 0004

Уровень сервиса/дополнительная информация

0x0000 0008

Уровень сервиса/внутренний код состояния

0x0000 0010

Уровень сервиса/внутренняя диагностика

0x0000 0020

Уровень операции/символический идентификатор

0x0000 0040

Уровень операции/локализованный текст

0x0000 0080

Уровень операции/дополнительная информация

0x0000 0100

Уровень операции/внутренний код состояния

0x0000 0200

Уровень операции/внутренняя диагностика

Каждое из этих значений состоит из двух компонентов, уровня и типа, как описано ниже. Если ничего не запрашивается, что указывается значением 0, или если при обработке запроса не было обнаружено никакой диагностической информации, то диагностическая информация не возвращается

Уровень

Уровень сервиса

Возвращает диагностику в диагностической информации сервиса

Уровень операции

Возвращать диагностику в диагностической информации, определенной для отдельных операций, запрошенных в сервисе

Тип

Символический идентификатор

Возвращает символический идентификатор ошибки или условия с указанием пространства имен. Максимальная длина этого идентификатора — 32 символа

Локализованный текст

Возвращает до 256 байт локализованного текста, описывающего символический идентификатор

Дополнительная информация

Возвращает байтовую строку, содержащую дополнительную диагностическую информацию, такую как образ памяти. Формат этой байтовой строки зависит от производителя и может зависеть от типа обнаруженной ошибки или условия

Внутренний код состояния

Возвращает внутренний код состояния, связанный с операцией или сервисом

175

ГОСТ Р 71809—2024

Окончание таблицы 170

Имя

Тип

Описание

Возврат диагностики

Целое число без знака 32

Внутренняя диагностика

Возвращает внутреннюю диагностическую информацию, связанную с операцией или сервисом. Содержимое внутренней структуры диагностической информации определяется другими битами маски. Допустимо, что установка этого бита может привести к возврату нескольких уровней вложенных структур диагностической информации

Идентификатор записи аудита

String

Идентификатор, который определяет запись журнала аудита безопасности клиента, связанную с этим запросом. Пустое строковое значение означает, что этот параметр не используется, идентификатор записи аудита обычно содержит информацию о том, кто инициировал действие и откуда оно было инициировано. Идентификатор записи аудита включен в событие аудита, чтобы позволить читателям соотнести событие с инициирующим действием.

Более подробная информация о механизмах аудита определена в 6.5 и в ГОСТ Р 71808

Подсказка превышения времени ожидания

Целое число без знака 32

Это превышение времени ожидания в миллисекундах используется в стеке связи на стороне клиента для установки превышения времени ожидания для каждого вызова.

Для сервера это превышение времени ожидания является лишь подсказкой и может использоваться для отмены длительных операций по освобождению ресурсов. Если сервер обнаруживает превышение времени ожидания, он может отменить операцию, отправив результат сервиса «Не-корректно_ПревышениеВремениОжидания», сервер должен подождать, как минимум, превышения времени ожидания после получения запроса, прежде чем отменить операцию. Сервер должен проверить параметр «подсказка превышения времени ожидания» запроса публикации перед обработкой ответа публикации. Если время ожидания запроса истекло, отправляется результат сервиса «Некорректно_Превышение ВремениОжи-дания» и используется другой запрос публикации.

Значение 0 указывает на отсутствие превышения времени ожидания

Дополнительный заголовок

Расширяемый параметр Дополнительный заголовок

Зарезервировано для использования в будущем.

Приложения, которые не понимают заголовок, должны его игнорировать

7.29 Заголовок ответа

Компоненты этого параметра определены в таблице 171.

Таблица 171 — Заголовок ответа

Имя

Тип

Описание

Заголовок ответа

Структура

Общие параметры для всех ответов

Временная отметка

Время utc

Время, когда сервер отправил ответ

Дескриптор запроса

Идентификатор целого числа

Дескриптор запроса, предоставленный клиентом запросу

Результат сервиса

Код успешного завершения

Определяемый ОРС UA результат вызова сервиса. Тип «код состояния» определен в 7.34

Диагностика сервиса

Диагностическая информация

Диагностическая информация для вызова сервиса. Этот параметр пуст, если диагностическая информация не запрашивалась в заголовке запроса. Тип «диагностическая информация» определен в 7.8

176

Окончание таблицы 171

ГОСТ Р 71809—2024

Имя

Тип

Описание

Таблица строк []

String

В этом списке есть одна строка для каждого уникального пространства имен, символьного идентификатора и локализованной текстовой строки, содержащихся во всех параметрах диагностической информации, содержащихся в ответе (см. 7.8). Каждый из них идентифицируется в этой таблице своим индексом, отсчитываемым от нуля

Дополнительный заголовок

Расширяемый параметр «дополнительный заголовок»

Зарезервировано для использования в будущем.

Приложения, которые не понимают заголовок, должны его игнорировать

7.30 Отказ службы

Компоненты данного параметра определены в таблице 172.

Параметр отказ службы возвращается вместо сообщения ответа службы при возникновении ошибки уровня службы. Для дескриптора запроса в заголовке ответа должно быть установлено значение, указанное в заголовке запроса, даже если эти значения недействительны. Уровень диагностики, возвращаемый в заголовок ответа, определяется параметром «возврат диагностики» в заголовке ответа.

Точное использование этого параметра зависит от отображений, определенных в ГОСТ Р 71811.

Таблица 172 — Отказ службы

Имя

Тип

Описание

Отказ сервиса

Структура

Ответ об ошибке отправляется при возникновении ошибки уровня службы

Заголовок ответа

Заголовок ответа

Общие параметры ответа (определение «заголовок ответа» см. в 7.29)

7.31 Токен аутентификации сессии

Тип «токен аутентификации сессии» — непрозрачный идентификатор, который используется для идентификации запросов, связанных с определенной сессией. Данный идентификатор применяется вместе с идентификатором защищенного канала или сертификатом клиента для аутентификации входящих сообщений. Это секретная форма идентификатора сессии для внутреннего использования в клиентских и серверных приложениях.

Сервер возвращает токен аутентификации сессии в ответе создания «сессия». Затем клиент отправляет это значение с каждым запросом, что позволяет серверу проверять, что отправитель запроса совпадает с отправителем исходного запроса создания «сессия».

Для целей этого обсуждения сервер состоит из приложения (кода) и стека связи, как показано на рисунке 37. Безопасность, обеспечиваемая токеном аутентификации сессии, зависит от доверительных отношений между серверным приложением и стеком связи. Коммуникационный стек должен иметь возможность проверять отправителя сообщения и использует идентификатор защищенного канала или сертификат клиента для идентификации отправителя на сервер. В этих случаях токен аутентификации сессии представляет собой идентификатор «целое число без знака32», который позволяет серверу различать разные сессии, созданные одним и тем же отправителем.

Приложение

Сервер -<

Связь

Рисунок 37 — Логические уровни сервера

177

ГОСТ Р 71809—2024

В некоторых случаях приложение и стек связи не могут обмениваться информацией во время выполнения, что означает, что приложение не будет иметь доступа к идентификатору защищенного канала или сертификату, используемому для создания защищенного канала. В этих случаях приложение должно создать случайное значение строки байтов длиной не менее 32 байтов. Это значение должно храниться в секрете и всегда должно передаваться через защищенный канал с включенным шифрованием. Администратор отвечает за включение шифрования. Профили, приведенные в МЭК 62541-7 [1], могут определять дополнительные требования для «токен аутентификации» сессии строки байтов.

Клиентские и серверные приложения должны быть написаны так, чтобы они не зависели от реализации «защищенный канал». Следовательно, они всегда должны рассматривать токен аутентификации сессии как секретную информацию, даже если это не требуется при использовании некоторых реализаций защищенного канала.

На рисунке 38 показан обмен информацией между клиентом, сервером и серверным стеком связи, когда клиент получает токен аутентификации сессии. На рисунке 38 шаг получения информации о защищенном канале представляет api, который зависит от реализации стека связи.

Клиент

Серверный стек

Сервер

Открытие защищенного канала

Сертификат клиента

Ответ открытия защищенного канала

Идентификационный номер защищенного канала.

Создание сессии

Сертификат клиента

Запрос информации о защищенном канапе

Ответ создания сессии

URL конечной точки.

Политика безопасности.

Режим безопасности.

Идентификатор защищенного канала.

Сертификат клиента

Идентификационный номер сеанса. Токен аутентификации

Активация сессии

Токен аутентификации

Информация о получении защищенного канала

Идентификатор защищенного канала. Сертификат клиента

Ответ активации сеанса

Рисунок 38 — Получение токена аутентификации сессии

Токен аутентификации сессии — это подтип типа данных идентификатора узла; однако он никогда не используется для идентификации узла в адресном пространстве. Серверы могут присвоить значение «индекс пространства имен»; однако его значение зависит от сервера.

7.32 Дата подписи

Компоненты данного параметра определены в таблице 173.

178

Таблица 173 — Данные подписи

ГОСТ Р 71809—2024

Имя

Тип

Описание

Данные подписи

String

Содержит цифровую подпись, созданную с помощью сертификата

Алгоритм

String

Строка, содержащая URI алгоритма.

Строковые значения URI определены как часть профилей безопасности, указанных в МЭК 62541-7 [1]

Подпись

Bytestring

Подпись, созданная с помощью закрытого ключа, связанного с сертификатом

7.33 Подписанный сертификат программного обеспечения

Примечание — Информация о сертификатах программного обеспечения будет определена в будущей редакции системы стандартов ОРС UA.

В таблице 174 указана структура подписанного сертификата программного обеспечения.

Таблица 174 — Подписанный сертификат программного обеспечения

Имя тип

Описание

Структура подписанного сертификата программного обеспечения

Строка байтов данных сертификата

Данные сертификата сериализованы как строка байтов

Подпись строки байтов

Подпись для данных сертификата

7.34 Код состояния

7.34.1 Общие положения

Код состояния в ОРС UA — это числовое значение, которое используется для сообщения результата операции, выполненной сервером ОРС UA. Этот код может иметь связанную диагностическую информацию, которая описывает состояние более подробно; сам по себе код предназначен для предоставления клиентским приложениям достаточной информации для принятия решений о том, как обрабатывать результаты службы ОРС UA.

Код состояния — это 32-разрядное целое число без знака. Старшие 16 бит представляют числовое значение кода, который должен использоваться для обнаружения конкретных ошибок или условий. Нижние 16 бит — это битовые флаги, которые содержат дополнительную информацию, но не влияют на значение кода состояния.

Все клиенты ОРС UA должны всегда проверять код состояния, связанный с результатом, перед его использованием. Результаты, с которыми связан статус «неопределенно/предупреждение», следует использовать с осторожностью, поскольку эти результаты могут быть действительными не во всех ситуациях. Результаты статуса «некорректно/сбой» никогда не должны использоваться.

Серверы ОРС UA должны возвращать коды состояния «без ошибки/успешно», если операция завершилась нормально и результат всегда действителен. Различные значения кода состояния могут предоставить клиенту дополнительную информацию.

Серверы ОРС UA должны использовать коды состояния «неопределенно/предупреждение», если они не могут завершить операцию способом, запрошенным клиентом, однако операция не завершилась неуспешно полностью.

Список кодов состояния управляется ОРС UA. Полный список кодов состояния определен в ГОСТ Р 71811. Серверы не должны определять свои собственные коды состояния. Сопутствующие рабочие группы ОРС UA могут запросить дополнительные коды состояния от орс foundation для добавления в список в ГОСТ Р 71811.

Точные назначения битов показаны в таблице 175.

179

ГОСТ Р 71809—2024

Таблица 175 — Назначения битов кодов состояния

Поле

Битовый диапазон

Описание

Серьезность ошибки

30:31

Указывает, представляет ли код состояния без ошибки, некорректное или неопределенное. Эти биты имеют следующие значения.

«Без ошибки 00» указывает, что операция прошла успешно и можно использовать связанные результаты «успешно».

«Неопределенное 01» указывает, что операция была частично успешной и что результаты, связанные с предупреждением, могут не подходить для некоторых целей.

«Некорректный 10» указывает, что операция завершилась неудачно, и любые связанные результаты отказ использовать нельзя.

«Зарезервировано 11» зарезервировано для использования в будущем. Все клиенты должны рассматривать код состояния с такой серьезностью как «некорректный»

Зарезервированный

29:29

Зарезервировано для использования в api, специфичных для приложений ОРС UA. Этот бит всегда должен быть нулевым на проводе, но может использоваться api-интерфейсами приложения ОРС UA для кодов состояния конкретных api

Зарезервированный

28:28

Зарезервировано для использования в будущем. Всегда должен быть нулевым

Подкод

16:27

Код — это числовое значение, присвоенное для обозначения различных условий. У каждого кода есть символическое имя и числовое значение. Все описания в спецификации ОРС UA относятся к символическому имени. Символьные имена на числовые значения приведены в ГОСТ Р 71811

Структура изменена

15:15

Указывает, что структура связанного значения данных изменилась с момента последнего уведомления. Клиенты не должны обрабатывать значение данных, пока они не перечитают метаданные.

Серверы должны установить этот бит, если изменяется кодирование типа данных, используемое для переменной. В 7.24 представлена информация о кодировании типа данных для переменной.

Серверы также должны установить этот бит, если свойство строки перечисления типа «тип данных переменной» изменяются.

Этот бит предоставляется, чтобы предупредить клиентов, которые анализируют сложные значения данных, о том, что их процедуры анализа могут выйти из строя из-за изменения сериализованной формы значения данных.

Этот бит имеет значение только для кодов состояния, возвращаемых как часть уведомления об изменении данных или чтения истории. Коды состояния, используемые в других контекстах, всегда должны устанавливать этот бит на ноль

Семантика изменена

14:14

Указывает, что семантика связанного значения данных изменилась. Клиенты не должны обрабатывать значение данных до тех пор, пока они повторно не прочитают метаданные, связанные с переменной.

Серверы должны установить этот бит, если метаданные изменились таким образом, что может вызвать ошибки приложения, если клиент не перечитает метаданные. Например, изменение технических единиц может создать проблемы, если клиент использует значение для выполнения расчетов.

Условия, при которых сервер должен установить этот бит для переменной DA. Приведено в МЭК 62541-8 [4]. Другие спецификации могут определять дополнительные условия. Сервер может определять условия установки этого бита. Данный бит имеет значение только для кодов состояния, возвращаемых как часть уведомления об изменении данных или чтения истории. Коды состояния, используемые в других контекстах, всегда должны устанавливать этот бит на ноль

180

Окончание таблицы 175

ГОСТ Р 71809—2024

Поле

Битовый диапазон

Описание

Зарезервированный

12:13

Зарезервировано для использования в будущем. Всегда должен быть нулевым

Инфо-тип

10:11

Тип информации, содержащейся в информационных битах. Эти биты имеют следующие значения.

Не применяются «00» информационные биты и должны быть установлены в ноль.

Значение данных «01» код состояния и его информационные биты связаны со значением данных, возвращаемым сервером. Информационные биты определены в таблице 176.

Зарезервировано «1х» зарезервировано для использования в будущем. Информационные биты игнорируются

Информационные биты

0:9

Биты дополнительной информации, которые квалифицируют код состояния. Структура этих битов зависит от поля типа информации

В таблице 176 описана структура информационных битов, когда для типа информации установлено значение данных (01).

Таблица 176 — Информационные биты значения данных

Тип информации

Битовый диапазон

Описание

Предельные биты

8:9

Предельные биты, связанные со значением данных. Биты пределов имеют следующие значения

Лимит

Биты

Описание

Отсутствие

00

Значение можно изменить

Низкий

01

Значение находится на нижнем пределе для источника данных

Высокий

10

Значение находится на верхнем пределе для источника данных

Постоянный

11

Значение постоянное и не может изменяться

Переполнение

7

Этот бит должен быть установлен только в том случае, если размер очереди элемента мониторинга больше 1.

Если этот бит установлен, не каждое обнаруженное изменение было возвращено, так как буфер очереди сервера для элемента мониторинга достиг своего предела и ему пришлось удалить данные

Зарезервированный

5:6

Зарезервировано для использования в будущем. Всегда должен быть нулевым.

Биты сервера архивных данных

0:4

Эти биты устанавливаются только при чтении архивных данных. Они указывают, откуда взялось значение данных, и предоставляют информацию, которая влияет на то, как клиент использует значение данных. Биты сервера архивных данных имеют следующее значение

Необработанные

ХххОО

Значение необработанных данных

Рассчитанное

Ххх01

Значение данных, которое было рассчитано

Интерполированное

ХххЮ

Значение данных, которое было интерполировано

181

ГОСТ Р 71809—2024

Окончание таблицы 176

Тип информации

Битовый диапазон

Описание

Биты сервера архивных данных

0:4

Зарезервированное

Ххх11

Не определено

Частичное

Хх1хх

Значение данных, рассчитанное с неполным интервалом

Дополнительные данные

Х1ххх

Значение необработанных данных, которое скрывает другие данные с той же меткой времени

Многозначное

1хххх

Несколько значений соответствуют критериям агрегирования (т. е. несколько минимальных значений с разными отметками времени в пределах одного интервала)

Как эти биты используются, более подробно описано в МЭК 62541-11 [3]

7.34.2 Общие коды состояния

В таблице 177 определены общие коды состояния для всех результатов службы, используемых более чем в одной службе. Этот список является неполным. Эти коды состояния также могут использоваться как код результата операционного уровня. Преобразование символических имен в числовые значения и предоставление полного списка «коды состояния», включая коды, определенные в других частях ОРС UA, приведено в ГОСТ Р 71811.

Таблица 177 — Основные результирующие коды службы

Символический идентификатор

Описание

Корректно

Операция прошла успешно

Корректно_3авершается

Асинхронно

Обработка завершится асинхронно

Корректно_ПодпискаПередана

Подписка была передана другому сеансу

Некорректно_Сертификат

ИмениХостаНедействителен

Имя хоста, используемое для подключения к серверу, не соответствует имени хоста в сертификате

Некорректно_Цепочка

СертификатНеполная

Цепочка сертификата неполная

Некорректно_ОтзывИздателя

СертификатаНеизвестен

Не удалось определить, отозван ли сертификат издателя

Некорректно_Использование

ИздателяСертификатаНеразрешено

Сертификат издателя не может быть использован для запрошенной операции

Некорректно_ВремяИздателя СертификатаНедействителен

Сертификат издателя истек или еще не действителен

Некорректно_Издатель

СертификатаОтозван

Сертификат издателя отозван

Некорректно_Сертификат

Недействителен

Сертификат, указанный в качестве параметра, недействителен

Некорректно_ОтзывСертификата Неизвестен

Не удалось определить, отозван ли сертификат

Некорректно_СертификатОтозван

Сертификат отозван

Некорректно_СрокДействия

СертификатаНедействителен

Сертификат истек или еще не является действительным

182

Продолжение таблицы 177

ГОСТ Р 71809—2024

Символический идентификатор

Описание

Некорректно_11Р1Сертификата

Недействителен

URI, указанный в описании приложения, не соответствует URI в сертификате

Некорректно_Сертификат

Недействителен

Сертификат не вызывает доверия

Некорректно_Использование

СертификатаНеразрешено

Сертификат не может быть использован для запрошенной операции

Некорректно_ОшибкаОбмена

Данными

Произошла ошибка обмена данными на низком уровне

Некорректно_Идентификатор

ТипаДанныхНеизвестен

Объект действительности не может быть (де)сериализован, потому что идентификатор типа данных не распознается

Некорректно_Ошибка

Декодирования

Декодирование остановлено из-за недопустимых данных в потоке

Некорректно_Ошибка

Кодирования

Кодирование остановлено из-за недопустимых данных в сериализуемых объектах

Некорректно_Превышены

ПределыКодирования

Пределы кодирования/декодирования сообщений, наложенные стеком связи, были превышены

Некорректно_Недействительный Аргумент

Один или несколько аргументов являются недействительными.

Каждый сервис определяет специфические для параметра коды состояния, и эти коды состояния должны использоваться вместо этого общего кода ошибки.

Этот код ошибки должен использоваться только стеком связи и в сервисах, где он определен в списке допустимых кодов состояния для сервисов

Некорректно_Недопустимое Состояние

Операция не может быть завершена, потому что объект закрыт, не-инициализирован или находится в другом недопустимом состоянии

Некорректно_Недопустимая

ВременнаяОтметка

Временная отметка находится за пределами диапазона, разрешенного сервером

Некорректно_СрокДействия

ЛицензииИстек

UA сервер требует лицензию для работы в целом или для выполнения сервиса или операции, но срок действия существующей лицензии истек

Некорректно_Превышен

ЛимитЛицензии

UA сервер имеет ограничения на количество разрешенных операций/ объектов в зависимости от установленных лицензий, и эти ограничения были превышены

Некорректно_Лицензия Недоступна

ОРС UA сервер не имеет лицензии, которая требуется для работы в целом или для выполнения сервиса или операции

Некорректно_НечегоДелать

Делать нечего, потому что клиент передал список операций без элементов

Некорректно_Недостаточно

Памяти

Недостаточно памяти для завершения операции

Некорректно_ЗапросОтменен Клиентом

Запрос был отменен клиентом

Некорректно_ЗапросСлишком Велик

Размер сообщения запроса превышает ограничения, установленные сервером

Некорректно_ОтветСлишком Велик

Размер ответного сообщения превышает ограничения, установленные клиентом

183

ГОСТ Р 71809—2024

Окончание таблицы 177

Символический идентификатор

Описание

Некорректно_3аголовок3апрос

Недействительный

Заголовок запроса отсутствует или недействителен

Некорректно_РесурсНедоступен

Ресурс операционной системы недоступен.

Некорректно_Идентификатор

ЗащищенногоКаналаНедействителен

Указанный безопасный канал больше не действителен

Некорректно_Проверка

Безопасности НеУдалась

Произошла ошибка при проверке безопасности

Некорректно_СерверОстановлен

Сервер остановлен и не может обрабатывать запросы

Некорректно_СерверНеПодключен

Операция не может быть завершена, потому что клиент не подключен к серверу

Некорректно_иК1Сервера

Недействительный

URI сервера недействителен

Некорректно_Сервис

НеПоддерживается

Сервер не поддерживает запрошенную услугу

Некорректно_Идентификатор

СеансаНедействителен

Идентификатор сеанса недействителен

Некорректно_СеансЗакрыт

Сеанс был закрыт клиентом

Некорректно_СеансНе

Активирован

Сеанс нельзя использовать, потому что сервис активации сеанса не был вызван

Некорректно_ЗавершениеРаботы

Операция отменена, так как приложение закрывается

Некорректно_Идентификатор

ПодпискиНедействителен

Идентификатор подписки недействителен

Некорректно_Превышение

ВремениОжидания

Время операции вышло

Некорректно_ВременныеОтметки

ДляВозвратаНедействительны

Временные метки для возврата параметра недействительны

Некорректно_СлишкомМного

Операций

Запрос не может быть обработан, поскольку в нем указано слишком много операций

Некорректно_Непредвиденная Ошибка

Произошла непредвиденная ошибка

Некорректно_НеизвестныйОтвет

От сервера получен неопознанный ответ

Некорректно_Доступ

ПользователяЗапрещен

У пользователя нет разрешения на выполнение запрошенной операции

Некорректно_Идентификатор ПредставленияНеизвестен

Идентификатор представления не относится к допустимому узлу представления

Некорректно_ОтметкаВремени

ПредставленияНедействительна

Отметка времени просмотра недоступна или не поддерживается

Некорректно_Несоответствие

ПараметровПредставления

Недействительно

Параметры представления не согласуются друг с другом

Некорректно_ВерсияПредставления Недействительна

Версия представления недоступна или не поддерживается

184

ГОСТ Р 71809—2024

В таблице 178 определены общие коды состояния для всех результатов операционного уровня, используемых более чем в одном службе. Преобразование символических имен в числовое значение и предоставление полного списка кодов состояния, включая коды, определенные в других частях ОРС UA, приведено в ГОСТ Р 71811. Общие результирующие коды служб также могут содержаться на операционном уровне.

Таблица 178 — Результирующие коды рабочего уровня, общая группа

Символический идентификатор

Описание

БезОшибки_Зафиксировано

Записанное значение было принято, но зафиксировано

БезОшибки_Превышение

Выборка замедлилась из-за ограничений ресурсов

Неопределенно

Значение является неопределенным, но конкретная причина неизвестна

Неверно

Значение является неверным, но конкретная причина неизвестна

Некорректно_Идентификатор

АтрибутаНедействительный

Атрибут не поддерживается для указанного узла

Некорректно_Направление

ПросмотраНедействительно

Направление просмотра недействительно

Некорректно_ИмяПросмотра

Недействительно

Имя просмотра недействительно

Некорректно_ФильтрКонтента

Недействительный

Фильтр контента недействителен

Некорректно_ТочкаПродолжения Недействительна

Предоставленная точка продолжения больше не действует.

Этот статус возвращается, если точка продолжения была удалена или адресное пространство было изменено между вызовами просмотра

Некорректно_Кодирование

ДанныхНедействительно

Кодирование данных недействительно.

Этот результат используется, если невозможно применить кодирование данных, потому что был запрошен атрибут, отличный от значения, или тип данных атрибута значения не является подтипом типа данных структуры

Некорректно_Кодирование

ДанныхНеПоддерживается

Сервер не поддерживает запрошенное кодирование данных для узла. Этот результат используется, если кодирование данных может быть применено, но переданное кодирование данных не известно серверу

Некорректно_ФильтрСобытий

Недействителен

Фильтр событий недействителен

Некорректно_ФильтрНеРазрешен

Фильтр контроля нельзя использовать в сочетании с указанным атрибутом

Некорректно_ФильтрОперанд Неразрешен

Операнд, используемый в фильтре содержимого, недействителен

Некорректно_Операция

ИсторииНедействительна

Параметр сведений об истории недействителен

Некорректно_Операция

ИсторииНеПоддерживается

Сервер не поддерживает запрошенную операцию

Некорректно_ДиапазонИндексов

Недействительный

Неверный синтаксис параметра диапазона индекса

Некорректно_НетДанных

ДиапазонаИндекса

В указанном диапазоне индексов нет данных

Некорректно_Предмет

КонтроляНедействительный

Параметр фильтра предметов контроля недействителен

185

ГОСТ Р 71809—2024

Продолжение таблицы 178

Символический идентификатор

Описание

Некорректно_ФильтрПредмета КонтроляНеПоддерживается

Сервер не поддерживает запрошенный фильтр предметов контроля

Некорректно_Идентификатор

ПредметаКонтроляНедействителен

Идентификатор предмета контроля не относится к действительному предмету контроля

Некорректно_РежимКонтроля

Недействительный

Недопустимый режим мониторинга

Некорректно_Отсутствует

ВзаимодействиеПроцессов

Связь с источником данных определена, но не установлена, и последнее известное значение недоступно.

Этот статус/подстатус используется для кэшированных значений до получения первого значения или для записи и вызова, если связь не установлена

Некорректно_НетТочек

Продолжения

Операция не может быть обработана, так как все точки продолжения были распределены

Некорректно_КлассУзла

Недействителен

Класс узла не является действительным

Некорректно_Идентификатор

УзлаНедействителен

Синтаксис идентификатора узла не является действительным

Некорректно_Идентификатор

УзлаНеИзвестен

Идентификатор узла относится к узлу, которого нет в адресном пространстве сервера

Некорректно_НетПрав

НаУдаление

Сервер не позволит удалить узел

Некорректно_УзелНе

ВПредставлении

Узлы для просмотра не являются частью представления

Некорректно_НеНайдено

Запрошенный элемент не был найден или операция поиска завершилась безуспешно

Некорректно_НеВыполняется

Запрошенная операция не выполняется

Некорректно_НеЧитается

Уровень доступа не разрешает чтение или подписку на узел

Некорректно_НеПоддерживается

Запрошенная операция не поддерживается

Некорректно_НеЗаписываемый

Уровень доступа не позволяет писать на узел

Некорректно_ОбъектУдален

Объект нельзя использовать, т. к. он был удален

Некорректно_ВыходЗаПределы

Диапазона

Значение было вне допустимого диапазона

Некорректно_Иденификатор

ТипаУказателяНедействителен

Идентификатор ссылочного типа не относится к допустимому узлу ссылочного типа

Некорректно_Идентификатор

УзлаИсточникаНедействителен

Идентификатор исходного узла не относится к допустимому узлу

Некорректно_Структура

Отсутствует

Обязательный структурированный параметр отсутствует или имеет значение «пусто»

Некорректно_Идентификатор

ЦелевогоУзлаНедействителен

Идентификатор целевого узла не относится к допустимому узлу

Некорректно_ОпределениеТипа Недействительно

Идентификатор типа определения узла не ссылается на соответствующий тип узла

Некорректно_НесоответствиеТипа

Значение, указанное для атрибута, не является значением того же типа, что и значение атрибута

186

Окончание таблицы 178

ГОСТ Р 71809—2024

Символический идентификатор

Описание

Некорректно_ОжиданиеИсходных Данных

Ожидание получения сервером значений из базового источника данных.

После создания элемента мониторинга или установки режима мониторинга с режима «отключенный» на отчет или отбор серверу может потребоваться некоторое время для фактического получения значений для этих элементов. В таких случаях сервер может отправить уведомление с этим статусом до уведомления с первым значением или статусом из источника данных

7.35 Временные отметки для возврата

Временные отметки для возврата — это перечисление, которое определяет атрибуты отметок времени, которые должны передаваться для элементов мониторинга или узлов в чтение и чтение истории. Значения этого параметра определены в таблице 179.

Таблица 179 — Значения «временные отметки для возврата»

Значение

Описание

Источник_0

Возвращает временную отметку источника

Сервер_1

Возвращает временную отметку сервера

Оба_2

Возвращает обе временные отметки — источника и сервера

Ниодно_3

Не возвращает ни одной временной отметки.

Это значение по умолчанию для элементов мониторинга, если доступ к значению переменной не осуществляется. Для чтения истории эта настройка недопустима

7.36 Параметры токена идентификации пользователя

7.36.1 Обзор

Структура «токен идентификации пользователя», используемая в наборе служб сервера, позволяет клиентам указывать личность пользователя, от имени которого они действуют. Точный механизм, используемый для идентификации пользователей, зависит от конфигурации системы. Различные типы идентификационных токенов основаны на наиболее распространенных механизмах, которые используются в современных системах. В таблице 180 определен текущий набор токенов идентификации пользователя. Тип «расширяемый параметр» определен в 7.12.

Таблица 180 — Идентификаторы типа параметра токена идентификации пользователя

Символический идентификатор

Описание

Анонимный идентификационный токен

Информация о пользователе недоступна

Идентификационный токен имени пользователя

Пользователь, идентифицированный по имени пользователя и паролю

Идентификационныйтокенх509

Пользователь, идентифицированный сертификатом х.509 v3

Выданный идентификационный токен

Пользователь, идентифицированный токеном, выданным внешним сервисом авторизации

7.36.2 Шифрование токена и доказательство владения

7.36.2.1 Обзор

Клиент всегда должен доказывать владение токеном идентификации пользователя при передаче его на сервер. Некоторые токены содержат секрет, например пароль, который сервер принимает в качестве доказательства. Чтобы защитить эти секреты, перед передачей на сервер токен может быть зашифрован. Другие типы токенов позволяют клиенту создавать подпись с секретом, связанным с токеном. В этих случаях клиент доказывает владение токеном идентификации пользователя, создавая подпись с секретом и передавая ее на сервер.

187

ГОСТ Р 71809—2024

Каждый токен идентификации пользователя, разрешенный конечной точкой, должен иметь политику токенов пользователя, указанную в описании конечной точки. Политика токенов пользователя указывает, какую политику безопасности использовать при шифровании или подписи. Если эта политика безопасности опущена, тогда клиент использует политику безопасности в описании конечной точки. Если для соответствующей политики безопасности задано значение «отсутствие», шифрование или подпись не требуется. Возможные политики безопасности определены в МЭК 62541-7 [1].

Рекомендуется, чтобы приложения никогда не устанавливали политику безопасности на отсутствие для токенов идентификации пользователя, которые включают секрет, потому что эти секреты могут быть использованы злоумышленником для получения доступа к системе.

Клиенты должны проверить сертификат сервера и убедиться, что он является доверенным, перед отправкой токена идентификации пользователя, зашифрованного с помощью сертификата.

Зашифрованный секрет и подпись встроены в «строка байтов», которая является частью токена идентификации пользователя. Формат этой строки байтов зависит от типа токена идентификации пользователя и политики безопасности.

Устаревший формат секрета токена, определенный в 7.36.2.2, не является расширяемым и обеспечивает только шифрование, но зашифрованные данные не подписываются. Он используется вместе с «имяпользователя_1» токена идентификации пользователя. Секрет пароля, передаваемый в этом формате, не должен превышать 64 байта.

Формат зашифрованного секрета, определенный в 7.36.2.3, обеспечивает расширяемый формат секрета вместе с определением того, как секрет подписывается и зашифровывается. Это позволяет обновлять макет по мере определения новых типов токенов или добавления новых политик безопасности.

Типы токенов идентификации пользователя и форматы токенов, поддерживаемые конечной точкой, идентифицируются политикой токенов пользователя, определенной в 7.37.

Чтобы предотвратить утечку информации, полезной для злоумышленников, серверы должны гарантировать, что процесс проверки токенов идентификации пользователя завершается через фиксированный интервал, независимо от того, произошла ошибка или нет. Процесс проверки включает в себя расшифровку, проверку заполнения и проверку действительного одноразового номера. Если возникают какие-либо ошибки, возвращается код «Некорректный_ИдентификационныйТокенНедействителен».

Серверы должны регистрировать подробную информацию о любых неудачах при проверке токена идентификации пользователя и блокировать клиентские приложения после пяти сбоев.

7.36.2.2 Устаревший формат секрета зашифрованного токена

При шифровании токена идентификации пользователя клиент добавляет последний случайный код сервера к секрету. Затем данные шифруются открытым ключом из сертификата сервера.

Клиент не должен добавлять какие-либо отступы после секрета. Если клиент добавляет заполнение, все байты должны быть нулевыми. Сервер должен проверять заполнение, добавленное клиентами, и гарантировать, что все байты заполнения являются нулями. Серверы должны отклонять токены идентификатора пользователя с недопустимым заполнением. Администраторы должны иметь возможность настраивать серверы для приема токенов идентификатора пользователя с недопустимым заполнением.

Если шифрование не применяется, структура не используется, и серверу передается только секрет без какого-либо случайного кода.

В таблице 181 описано, как сериализовать токены идентификатора пользователя перед применением шифрования.

Таблица 181 — Устаревший формат секретного зашифрованного токена идентификации пользователя

Имя

Тип

Описание

Длина

Байт [4]

Длина данных, которые должны быть зашифрованы, включая случайный код сервера, но исключая поле длины. Это поле представляет собой 4-байтовое целое число без знака, закодированное с наименее значимыми байтами, которые появляются первыми

Данные токена

Байт [*]

Данные токена

Случайный код сервера

Байт [*]

Последний случайный код сервера, возвращенный сервером в ответе создать сеанс или активировать сеанс

188

ГОСТ Р 71809—2024

7.36.2.3 Формат зашифрованного секрета

Зашифрованный секрет использует расширяемый формат, который имеет идентификатор типа узла «тип данных» в качестве префикса, как определено для кодировки объекта действительности в ГОСТ Р 71811. Общий вид зашифрованного секрета показан на рисунке 39.

Данные для подписи

Идентификационный номер типа

Маска кодировки

Длина

URI политики безопасности

Сертификат шифрования

Ключ подписки

Длина заголовка политики

Ключ подписки

Ключ шифрования

Вектор инициализации

Одноразовый номер

Секрет

Заполнение

Размер заполнения

Подпись

Общий заголовок

Заголовок политики

Полезное заполнение

Рисунок 39 — Разбивка зашифрованного секрета

Идентификатор типа указывает, как защищается и сериализуется зашифрованный секрет. Например, зашифрованные секреты rsa требуют, чтобы заголовок политики был зашифрован открытым ключом, связанным с сертификатом шифрования, перед его сериализацией. Другие идентификаторы типа могут требовать, а могут и не требовать шифрования заголовка политики.

URI политики безопасности используется для определения того, какие алгоритмы использовались для шифрования и подписи данных.

Полезные данные всегда шифруются с использованием алгоритма симметричного шифрования, указанного в URI политики безопасности. Ключ шифрования и вектор инициализации используются для инициализации этого алгоритма. Механизмы, используемые для инициализации алгоритма симметричного шифрования, зависят от идентификатора типа. Длина полей указывается URI политики безопасности.

Подпись используется для алгоритма симметричной подписи, указанной в URI политики безопасности. Симметричный ключ и вектор инициализации используются для инициализации этого алгоритма. Механизмы, используемые для инициализации алгоритма симметричной подписи, зависят от идентификатора типа. Длина симметричного ключа указывается в URI политики безопасности.

Зашифрованный секрет защищен и сериализован следующим образом:

- сериализуют общий заголовок;

- сериализуют заголовок политики;

- зашифруют заголовок политики и добавить результат к общему заголовку;

- обновят длину заголовка политики длиной зашифрованного заголовка;

- добавят случайный код и секрет к зашифрованному заголовку политики;

- рассчитают заполнение, необходимое для полезных данных, и добавить его после секрета;

- зашифруют полезные данные;

189

ГОСТ Р 71809—2024

- вычислят подписи на {общий заголовок | зашифрованный заголовок политики | зашифрованная полезная нагрузка};

- добавят подписи.

Отдельные поля сериализуются с использованием двоичного кодирования иа (см. ГОСТ Р 71811) для типа данных, указанного в таблице 182. Заполнение используется для обеспечения достаточного количества данных для заполнения целого кратного блоков шифрования. Размер блока шифрования зависит от алгоритма шифрования. Необходимы две отдельные операции заполнения, потому что могут использоваться два разных алгоритма шифрования. Общая длина заполнения, не включая размер заполнения, кодируется как целое число без знака 16. Отдельные байты заполнения устанавливаются на наименее значащий байт размера заполнения.

Зашифрованный секрет десериализуется и проверяется следующим образом:

- десериализуют общий заголовок;

- расшифруют заголовок политики с помощью закрытого ключа, связанного с сертификатом шифрования;

- проверят заполнение в заголовке политики;

- проверят подпись с помощью ключа подписи;

- расшифруют полезную информацию;

- проверят заполнение полезной информации;

- извлекут секрет.

Если идентификатор типа не требует шифрования заголовка политики, заполнение заголовка политики опускается, а длина заголовка политики указывает длину незашифрованных данных.

Поля зашифрованного секрета описаны в таблице 182. Первые три поля: идентификатор типа, кодирующая маска и длина принадлежат кодировке объекта действительности, определенной в ГОСТ Р 71811.

Таблица 182 — Макет зашифрованного секрета

Имя

Тип

Описание

Идентификатор типа

Идентификатор узла

Идентификатор узла типа данных узла

Кодирующая маска

Байт

Это значение всегда равно 1

URI политики безопасности

Строка

URI для политики безопасности, используемый для безопасности

Длина

Целое число 32

Длина следующих данных, включая подпись

Сертификат шифрования

Строка байтов

Отпечаток sha1 формы der сертификата шифрования

Время подписи

Дата время

Когда подпись была создана

Длина заголовка политики

Целое число без знака 16

Длина последующего заголовка политики.

Если заголовок политики зашифрован — это длина зашифрованных данных. В противном случае это длина незашифрованных данных

Ключ подписи

Строка байтов

Ключевые данные, используемые для создания подписи. Идентификатор типа указывает, как используются эти данные

Ключ шифрования

Строка байтов

Ключевые данные, используемые для шифрования полезной информации. Идентификатор типа указывает, как используются эти данные

Вектор инициализации

Строка байтов

Данные, используемые для инициализации алгоритма, используемого для шифрования полезной информации. Идентификатор типа указывает, как используются эти данные

190

Окончание таблицы 182

ГОСТ Р 71809—2024

Имя

Тип

Описание

Случайный код

Строка байтов

Это последний случайный код сервера, возвращаемый в ответе «создать сессию» или «активировать сессию», когда токен идентификации пользователя передается с запросом «активировать сессию».

Если используется вне вызова активировать сессию, источник случайного кода определяется контекстом, в котором используется этот зашифрованный секрет.

Длина случайного кода должна равняться длине случайного числа защищенного канала, заданного политикой безопасности

Секрет

Строка байтов

Данные токена, зависящие от выданного идентификационного токена. Если данные токена являются строкой, сначала они кодируются с использованием utf-8

Заполнение полезной информации

Байт [*]

Дополнительное заполнение добавленное, чтобы гарантировать, что размер зашифрованной полезной информации является целым числом, кратным размеру вводимого блока для алгоритма симметричного шифрования, указанного в URI политики безопасности. Значение каждого байта является младшим байтом размера заполнения полезной информации

Размер заполнения полезной информации

Целое число без знака 16

Размер заполнения, добавляемого к полезной информации

Подпись

Байт [*]

Подпись, рассчитанная с использованием алгоритма симметричной подписи, указанного в URI политики безопасности. Длина подписи определяется URI политики безопасности

Доступные в настоящее время типы данных зашифрованного секрета определены в таблице 183.

Таблица 183 — Типы данных зашифрованного секрета

Имя типа

Когда использовать

Rsa зашифрованного секрета

Используется, когда политика безопасности требует использования асимметричного шифрования на основе rsa. Описано в 7.36.2.4

7.36.2.4 Тип данных rsa зашифрованного секрета

Rsa зашифрованного секрета использует асимметричное шифрование на основе rsa для шифрования заголовка политики.

Дополнительная семантика для полей в макете зашифрованного секрета для структуры rsa зашифрованного секрета описана в таблице 184.

Таблица 184 — Структура rsa зашифрованного секрета

Имя

Тип

Описание

Идентификатор типа

Идентификатор узла

Идентификатор узла типа данных узла rsa зашифрованного секрета

Кодирующая маска

Байт

См. таблицу 182

Длина

Целое число без знака 32

См. таблицу 182

URI политики безопасности

String

См. таблицу 182

Сертификат шифрования

Bytestring

См. таблицу 182

Время подписи

Дата время

См. таблицу 182

191

ГОСТ Р 71809—2024

Окончание таблицы 184

Имя

Тип

Описание

Длина заголовка политики

Целое число без знака 16

См. таблицу 182

Ключ подписи

Bytestring

Ключ, используемый для вычисления подписи. См. дополнительную информацию в таблице 182

Ключ шифрования

Bytestring

Ключ, используемый для шифрования полезной информации. См. дополнительную информацию в таблице 182

Вектор инициализации

Bytestring

Вектор инициализации, используемый с ключом шифрования. См. дополнительную информацию в таблице 182

Случайный код

Bytestring

См. таблицу 182

Секрет

Bytestring

См. таблицу 182

Заполнение полезной информации

Byte

См. таблицу 182

Размер заполнения полезной информации

Целое число без знака 16

См. таблицу 182

Подпись

Byte Ц

См. таблицу 182

7.36.3 Анонимный идентификационный токен

Анонимный идентификационный токен используется, чтобы указать, что у клиента нет учетных данных пользователя. В таблице 185 определен параметр «анонимный идентификационный токен».

Таблица 185 — Анонимный идентификационный токен

Имя

Тип

Описание

Анонимный

идентификационный токен

Структура

Анонимный идентификатор пользователя

Идентификатор политики

String

Идентификатор политики токенов пользователя, которому соответствует токен. Структура политики токенов пользователя определена в 7.37

7.36.4 Идентификационный токен имени пользователя

Идентификационный токен имени пользователя используется для передачи серверу простых учетных данных имени пользователя/пароля.

Данный токен должен быть зашифрован клиентом, если этого требует политика безопасности политики токенов пользователя. Сервер должен указать «политика безопасности» для политики токенов пользователя, если защищенный канал имеет политику безопасности со значением «отсутствие и шифрование транспортного уровня недоступно». Если для политики токенов пользователя указано «отсутствует», а политика безопасности имеет значение «отсутствует», то пароль содержит только пароль в кодировке utf-8. Политика безопасности защищенного канала используется, если политика безопасности не указана в политике токенов пользователя.

Если токен должен быть зашифрован, пароль должен быть преобразован в строку байта utf-8, зашифрован и затем сериализован, как показано в таблице 181.

Сервер должен расшифровать пароль и проверить случайный код сервера.

Если для политики безопасности установлено значение «отсутствует», то пароль содержит только пароль в кодировке utf-8. Эта конфигурация не должна использоваться, если сеть не зашифрована каким-либо другим способом, например VPN. Использование этой конфигурации без сетевого шифрования приведет к серьезному нарушению безопасности, так как это вызовет видимость защищенного доступа пользователя, но сделает пароль видимым в виде открытого текста.

В таблице 186 определен параметр «идентификационный токен имени пользователя».

192

Таблица 186 — Идентификационный токен имени пользователя

ГОСТ Р 71809—2024

Имя

Тип

Описание

Идентификационный токен имени пользователя

Структура

Значение имени пользователя

Идентификатор политики

String

Идентификатор политики токенов пользователя, которому соответствует токен. Структура политики токенов пользователя определена в 7.37

Имя пользователя

String

Строка, идентифицирующая пользователя

Пароль

Bytestring

Пароль для пользователя. Пароль может быть пустой строкой.

Этот параметр должен быть зашифрован открытым ключом сервера с использованием алгоритма, указанного в политике безопасности. Формат, используемый для зашифрованных данных, описан в 7.36.2.2

Алгоритм шифрования

String

Строка, содержащая URI асимметричного алгоритма шифрования. Строковые значения URI представляют собой определенные имена, которые могут использоваться как часть профилей безопасности, определенных в МЭК 62541-7 [1]. Если пароль не зашифрован, данный параметр имеет значение «пусто»

В таблице 187 описаны зависимости для выбора алгоритма «асимметричный алгоритм шифрования» для идентификационного токена имени пользователя. Защищенный канал политики безопасности URI указывается в описании конечной точки и используется в последующих запросах «открыть защищенный канал». Политика URI токенов пользователя политики безопасности указана в описании конечной точки. Алгоритм шифрования указывается в идентификационном токене имени пользователя или выданном идентификационном токене, предоставленном клиентом в вызове службы активации сессии. Политика безопасности «другое» в таблице 187 относится к любой политике безопасности, кроме «отсутствует». Выбор алгоритма «алгоритм шифрования» основан на политике токенов пользователя. Защищенный канал политики безопасности используется, если политика токенов пользователя имеет значение «пусто».

Таблица 187 — Выбор алгоритма шифрования

Политика Безопасности защищенного канала

Политика безопасности политики токенов Пользователя

Алгоритм шифрования токен идентификации пользователя

Политики безопасности

Отсутствует

Пусто

Пусто

Без шифрования

Политики безопасности

Отсутствует

Политики безопасности

Отсутствует

Без шифрования

Политики безопасности

Отсутствует

Политики безопасности

Другое

Асимметричный алгоритм для «другое»

Политики безопасности

Другое

Пусто

Пусто

Асимметричный алгоритм для «другое»

Политики безопасности

Другое

Политики безопасности

Еще один

Асимметричный алгоритм для «еще один»

Политики безопасности

Другое

Политики безопасности

Другое

Асимметричный алгоритм для «другое»

Политики безопасности

Другое

Политики безопасности

Отсутствует

Без шифрования

193

ГОСТ Р 71809—2024

7.36.5 Идентификационный токен х509

Идентификационный токен х509 используется для передачи сертификата х.509 v3, который выдается пользователем.

Этот токен всегда должен сопровождаться подписью в параметре «подпись токена пользователя активации сессии», если этого требует политика безопасности. Сервер должен указать политику безопасности для «политика токенов пользователя», если защищенный канал имеет политику безопасности, равную значению «отсутствует».

В таблице 188 определяется параметр идентификационный токен х509.

Таблица 188 — Идентификационный токен х509

Имя

Тип

Описание

Идентификационный токен х509

Структура

Значение х.509 v3

Идентификатор политики

String

Идентификатор политики токенов пользователя, которому соответствует токен. Структура политики токенов пользователя определена в 7.37

Данные сертификата

Bytestring

Сертификат х.509 v3 в формате der

7.36.6 Выданный идентификационный токен

Выданный идентификационный токен используется для передачи токенов безопасности, выданных внешней службой авторизации, на сервер. Эти токены могут быть текстовыми или двоичными.

Oauth2 определяет стандарт для служб авторизации, которые производят веб-токены json (jwt). Эти jwt передаются как выданный токен серверу ОРС UA, который использует подпись, содержащуюся в jwt, для проверки токена. Протоколы oauth2 и jwt более подробно описаны в ГОСТ Р 71811. Если токен зашифрован, он должен использовать формат «зашифрованный секрет», определенный в 7.36.2.3.

Этот токен должен быть зашифрован клиентом, если этого требует политика безопасности политики токенов пользователя. Сервер должен указать политику безопасности для политики токенов пользователя, если защищенный канал имеет политику безопасности со значением «отсутствие и шифрование транспортного уровня недоступно». Политика безопасности защищенного канала используется, если политика безопасности не указана в «политика токена пользователя».

Если политика безопасности не равняется значению «отсутствие», данные токена должны быть закодированы в utf-8 (если они еще не являются двоичными), подписаны и зашифрованы в соответствии с правилами, указанными для типа токена, связанного с политикой токена пользователя (см. 7.37).

Если политика безопасности имеет значение «отсутствие», то данные токена содержат только данные токена в кодировке utf-8. Эта конфигурация не должна использоваться, если сеть не зашифрована каким-либо другим способом, например VPN. Использование этой конфигурации без сетевого шифрования приведет к серьезному нарушению безопасности, поскольку это вызовет видимость защищенного доступа пользователя, но сделает токен видимым в виде открытого текста.

В таблице 189 определен параметр «выданный идентификационный токен».

Таблица 189 — Выданный идентификационный токен

Имя

Тип

Описание

Выданный идентификационный токен

Структура

Токен, предоставленный сервисом авторизации

Идентификатор политики

String

Идентификатор «политика токенов пользователя», которому соответствует токен. Структура «политика токенов пользователя» определена в 7.37

Данные токена

Bytestring

Текстовое или двоичное представление токена.

Формат данных зависит от связанных с политикой токенов пользователя

194

Окончание таблицы 189

ГОСТ Р 71809—2024

Имя

Тип

Описание

Алгоритм шифрования

String

URI алгоритма «асимметричный алгоритм шифрования».

Список имен, определенных ОРС UA, которые могут использоваться, указан в МЭК 62541-7 [1]. См. таблицу 187 для получения подробной информации о выборе правильного URI. Этот параметр имеет значение «пусто», если данные токена не зашифрованы или используется формат «зашифрованный секрет»

7.37 Политика токенов пользователя

Компоненты этого параметра определены в таблице 190.

Таблица 190 — Политика токенов пользователя

Имя

Тип

Описание

Политика токенов пользователя

Структура

Указывает токен идентификации пользователя, который будет принимать сервер

Идентификатор политики

String

Идентификатор политики токенов пользователя, присвоенный сервером.

Клиент указывает это значение, когда создает токен идентификации пользователя, соответствующий политике.

Это значение уникально только в контексте одного сервера

Тип токена

Тип-перечисление тип токена идентификации пользователя

Требуемый тип токена идентификации пользователя.

Это значение является перечислением с одним из следующих значений.

Анонимный_0 — токен не требуется.

Имяпользователя_1 — токен имени пользователя и пароля.

Сертификат_2 — токен сертификата х.509 v3.

Изданныйтокен_3 — любой токен, выпущенный сервисом авторизации.

Тип токена со значением «анонимный» указывает, что сервер не требует какой-либо идентификации пользователя. В этом случае сертификат экземпляра клиентского приложения используется в качестве идентификатора пользователя

Тип выданного токена

String

URI для типа токена.

URI для распространенных типов выдаваемых токенов определены в ГОСТ Р 71811.

Это поле допускается указывать, если тип токена — изданныйтокен _3

URL конечной точки издателя

String

Необязательная строка, зависящая от сервиса авторизации.

Значение этого значения зависит от типа выданного токена. Дополнительные сведения о различных типах токенов определены в ГОСТ Р 71811. Для kerberos эта строка является именем участника сервиса (spn). Для jwt это объект json с полями, определенными в ГОСТ Р 71811

URI политики безопасности

String

Политика безопасности, используемая при шифровании или подписи токена идентификации пользователя, когда он передается на сервер в запросе «активировать сеанс». В разделе 7.36 описывается, как используется этот параметр.

Политика безопасности для защищенного канала используется, если это значение «пусто»

195

ГОСТ Р 71809—2024

7.38 Время версии

Этот примитивный тип данных представляет собой целое число без знака 32, которое представляет время в секундах с 2000 года. Дата эпохи — полночь по всемирному координированному времени (00:00) 1 января 2000 года.

Он используется как номер версии на основе времени последнего изменения. Если версия обновлена, новое значение должно быть больше предыдущего.

Если переменная инициализируется значением «время версии», значение должно быть либо загружено из постоянной конфигурации, либо должна быть доступна временная синхронизация, чтобы гарантировать применение уникальной версии.

Значение 0 используется, чтобы указать, что информация о версии недоступна.

7.39 Описание представления

Компоненты этого параметра определены в таблице 191.

Таблица 191—Описание представления

Имя

Тип

Описание

Описание представления

Структура

Указывает представление

Идентификатор представления

Идентификатор узла

Идентификатор узла представления для запроса. Нулевое значение указывает все адресное пространство

Временная отметка

Время utc

Желаемые дата и время. Соответствующая версия — это версия с ближайшей отметкой времени предыдущего создания. Клиент может установить либо временную отметку, либо параметр «версия представления», но не оба одновременно. Если установлена версия представления, этот параметр должен иметь значение «пусто»

Версия представления

Целое число без знака 32

Номер версии для желаемого представления. Когда узлы добавляются в представление или удаляются из него, значение свойства версии представления обновляется. Клиент может установить либо временную отметку, либо параметр «версия представления», но не оба одновременно. Свойство версии представления определено в ГОСТ Р 71808. Если временная отметка установлена, этот параметр должен равняться 0. Текущее представление используется, если временная отметка имеет значение «пусто» и версия представления равна 0

196

[1] МЭК 62541-7:2020

[2] МЭК 62541-12:2020

[3] МЭК 62541-11:2020

ГОСТ Р 71809—2024

Библиография

Унифицированная архитектура ОРС. Часть 7. Профили

Унифицированная архитектура ОРС. Часть 12. Обнаружение и глобальные сервисы

Унифицированная архитектура ОРС. Часть 11. Доступ к данным за прошлые периоды

[4] МЭК 62541-8:2020 Унифицированная архитектура ОРС. Часть 8. Доступ к данным

[5] МЭК 62541-9:2020 Унифицированная архитектура ОРС. Часть 9. Аварийные сигналы и условия

[6]

МЭК 62541-13:2020

Унифицированная архитектура ОРС. Часть 13. Совокупности

197

ГОСТ Р 71809—2024

УДК 004.85:006.354 ОКС 35.240.99

03.100.30

Ключевые слова: цифровая промышленность, унифицированная архитектура ОРС, сервисы, взаимодействия клиентов и серверов, концепция вызова служб, структура сервисов, сервис добавления узлов, данные элементов мониторинга в подписке, поддержка долговременных подписок, поддержки обнаружения, фильтры возможностей, сервис авторизации для запроса, пользовательские токены доступа, веб-токены, требование по защите от атак на токен, идентификация пользователя

198

Редактор Н.В. Таланова Технический редактор И.Е. Черепкова Корректор О. В. Лазарева Компьютерная верстка Е.А. Кондрашовой

Сдано в набор 27.12.2024. Подписано в печать 03.02.2025. Формат 60x84%. Гарнитура Ариал.

Усл. печ. л. 23,72. Уч.-изд. л. 19,69.

Подготовлено на основе электронной версии, предоставленной разработчиком стандарта

Создано в единичном исполнении в ФГБУ «Институт стандартизации» , 117418 Москва, Нахимовский пр-т, д. 31, к. 2.