ГОСУДАРСТВЕННЫЙ СТАНДАРТ
СОЮЗА ССР

ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ

ВЗАИМОСВЯЗЬ ОТКРЫТЫХ СИСТЕМ.
СПЕЦИФИКАЦИЯ

АБСТРАКТНО-СИНТАКСИЧЕСКОЙ
НОТАЦИИ ВЕРСИИ 1 (АСН.1)

Г

48 р. 55 к. БЗ 7—91/794

ОСТ 34.973-91
(ИСО 8824-87)

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

КОМИТЕТ СТАНДАРТИЗАЦИИ И МЕТРОЛОГИИ СССР
Москв

а


УДК 681.224 : 621.391 : 006.354 Группа П85

ГОСУДАРСТВЕННЫЙ СТАНДАРТ СОЮЗА ССР

Информационная технология

В

ГОСТ
34.973—91
(ИСО 8824—87)

ЗАИМОСВЯЗЬ ОТКРЫТЫХ СИСТЕМ.
СПЕЦИФИКАЦИЯ АБСТРАКТНО-
СИНТАКСИЧЕСКОЙ НОТАЦИИ ВЕРСИИ 1 (АСН.1)

Information technology.
Open systems interconnection.
Specification of abstract syntax notation one (ASN.l)

ОК.СТУ 0034

Дата введения 01.07.92

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

Требования настоящего стандарта являются обязательными.

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

  1. упорядоченного использования аббревиатура

  2. в разд. 7.1 в примечание 2 введена новая табл. 3, содержа­щая знаки «кириллицы» с введением новой формулировки текста примечания 2;

  3. введено дополнительно приложение 8, содержащее примеры использования идентификаторов объектов в виде графов компо­нентов идентификаторов объектов.

0. ВВЕДЕНИЕ

На нижних уровнях базовой эталонной модели (ГОСТ 28906) каждый параметр данных пользователя, задаваемый в сервисном примитиве, определяется как двоичное значение некоторой после­довательности октетов.

На уровне представления характер параметров данных поль­зователя становится иным. Стандарты по прикладному уровню

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

© Издательство стандартов, 1991 Настоящий стандарт не может быть полностью или частично воспроизведен, тиражирован и распространен без разрешения Госстандарта СССР требуют, чтобы данные пользователя услуг представления могли принимать значения весьма сложных типов, возможно, включаю­щих строки знаков из различных знаковых наборов. Эти стандар­ты требуют наличия определенной нотации, которая определяла бы передаваемое значение, не задавая конкретный способ представ­ления этого значения. Способ представления определяется зада­нием одного или нескольких алгоритмов, называемых правилами кодирования. Правила кодирования определяют конкретный вид октетов на сеансовом уровне, с помощью которых передаются зна­чения данных прикладного уровня (синтаксис передачи). Прото­кол уровня представления позволяет взаимодействующим объек­там договариваться о том, какие синтаксисы передачи будут ими использоваться.

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

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

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

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

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

  3. имея один существующий тип, можно сформировать новое значение как (упорядоченную) последовательность или (неупоря­доченное) множество, состоящее из пустого множества значений, ■одного или более значений исходного типа; (неограниченная) со­вокупность всех возможных значений, полученных таким образом, образует новый тип;

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

  5. имея некоторый тип, можно сформировать новый тип как •подмножество исходного типа, используя некоторую структурную или порядковую взаимосвязь между элементами исходного мно­жества.

Типы, определенные с помощью описанных выше методов, на­зываются структурированными типами.

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

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

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

Настоящей нотацией определяется четыре класса тегов.

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

  1. присвоен какому-то одному типу, либо

  2. присвоен некоторому способу построения типов.

Второй класс тегов называется прикладным классом. Теги при­кладного класса присваиваются типам данных в других стандар­тах. В рамках одного стандарта тег прикладного класса присвоен только какому-то одному типу.

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

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

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

Примечания:

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

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

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

Назначение настоящего стандарта состоит в описании нотации для определения абстрактного синтаксиса, называемой абстрактно­синтаксической нотацией версии 1 (АСН.1). Абстрактно-синтакси­ческая нотация версии 1 является полуформальным средством, ис­пользуемым при определении протоколов. Использование настоя­щей нотации само по себе не исключает неоднозначность соответ­ствующих спецификаций. Обеспечение однозначности специфика­ций должно осуществляться пользователем нотации.

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

С технической точки зрения настоящий стандарт согласуется с соответствующими частями рекомендации МККТТ X. 409 (1984).

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

В разд. 2 настоящего стандарта определяются дополнительные типы (типы «строка знаков»), которые применением правил коди­рования могут быть приравнены к типу «строка октетов».

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

Приложение 1 определяет нотацию, расширяющую базовую нотацию АСН.1. Эти расширения называются макросредствами.

Приложение 2 содержит определение логического дерева иден­тификаторов объекта для источников идентификации.

Приложение 3 содержит определение логического дерева иден­тификаторов объектов для источников идентификации.

Приложение 4 содержит определение логического дерева иден­тификаторов объектов для совместного использования ИСО и мкктт.

Приложение 5 содержит примеры н рекомендации по исполь­зованию нотации АСН.1.

Приложение 6 содержит сводку синтаксиса нотации АСН.1, ис­пользующую правила описания синтаксиса, описанные в разд. 5.

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

Приложение 8 содержит графы компонентов идентификаторов объектов (введено дополнительно для иллюстрации примеров ис­пользования идентификаторов объектов).

Приложение 9 содержит ссылочные нормативно-технические документы.

Текст настоящего стандарта (в особенности это относится к приложениям 2—4) является результатом договоренности между ИСО и МККТТ.

  1. НАЗНАЧЕНИЕ И ОБЛАСТЬ ПРИМЕНЕНИЯ

Настоящий стандарт описывает нотацию для определения аб­страктного синтаксиса, называемую абстрактно-синтаксической но­тацией версии 1 (АСН.1).

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

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

Настоящий стандарт определяет знаковые наборы, используе­мые в АСН.1 (с помощью ссылок на другие стандарты).

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

Ссылки на нотацию АСН.1 содержатся в других стандартах по уровню представления, в которых определяются правила кодиро­вания для простых типов, структурированных типов, различных типов «строка знаков» и общеупотребительных типов, определен­ных в нотации АСН.1.

  1. ссылки

ИСО 8601 (ГОСТ 24520) «Цифровое обозначение дат») «Эле­менты данных и форматы обмена. Обмен информацией. Представ­ление дат и времени».

ИСО 3166 «Коды для представления названий стран».

(ГОСТ 28906) «Системы обработки информации. Взаимосвязь открытых систем. Базовая эталонная модель» (см. также Реко­мендацию МККТТ Х.200).

ИСО 8825 (ГОСТ 34.974) «Системы обработки информации. Взаимосвязь открытых систем. Описание базовых правил кодиро­вания для абстрактно-синтаксической нотации версии 1 (АСН.1)».

МККТТ Х.409 «Системы обработки сообщений. Синтаксис и нотация представления информации при передаче».

  1. ОПРЕДЕЛЕНИЯ

Термины, используемые в настоящем стандарте, и их опреде­ления — по ГОСТ 28906 со следующими дополнениями.

  1. Значение —отличный от других элемент множества зна­чений.

  2. Тип — множество значений, которому присвоено имя.

  3. Простой тип — тип, определяемый прямым заданием мно­жества составляющих его значений.