ГОСУДАРСТВЕННЫЙ СТАНДАРТ
СОЮЗА ССР
ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ
ВЗАИМОСВЯЗЬ ОТКРЫТЫХ СИСТЕМ.
СПЕЦИФИКАЦИЯ
АБСТРАКТНО-СИНТАКСИЧЕСКОЙ
НОТАЦИИ ВЕРСИИ 1 (АСН.1)
Г
48 р. 55 к. БЗ 7—91/794
ОСТ 34.973-91Издание официальное
КОМИТЕТ СТАНДАРТИЗАЦИИ И МЕТРОЛОГИИ СССР
Москв
а
УДК 681.224 : 621.391 : 006.354 Группа П85
ГОСУДАРСТВЕННЫЙ СТАНДАРТ СОЮЗА ССР
Информационная технология
В
ГОСТ
34.973—91
(ИСО 8824—87)
Information technology.
Open systems interconnection.
Specification of abstract syntax notation one (ASN.l)
ОК.СТУ 0034
Дата введения 01.07.92
Настоящий государственный стандарт распространяется на синтаксис передачи данных в прикладном уровне базовой эталонной модели взаимосвязи открытых систем и устанавливает спецификацию абстрактно-синтаксической нотации версии 1 (АСН.1), описывающую значения типов данных пользователя без указания конкретного способа представления этих значений при их передаче.
Требования настоящего стандарта являются обязательными.
Настоящий государственный стандарт эквивалентен стандарту Международной организации по стандартизации, за исключением:
упорядоченного использования аббревиатура
в разд. 7.1 в примечание 2 введена новая табл. 3, содержащая знаки «кириллицы» с введением новой формулировки текста примечания 2;
введено дополнительно приложение 8, содержащее примеры использования идентификаторов объектов в виде графов компонентов идентификаторов объектов.
0. ВВЕДЕНИЕ
На нижних уровнях базовой эталонной модели (ГОСТ 28906) каждый параметр данных пользователя, задаваемый в сервисном примитиве, определяется как двоичное значение некоторой последовательности октетов.
На уровне представления характер параметров данных пользователя становится иным. Стандарты по прикладному уровню
Издание официальное
© Издательство стандартов, 1991 Настоящий стандарт не может быть полностью или частично воспроизведен, тиражирован и распространен без разрешения Госстандарта СССР требуют, чтобы данные пользователя услуг представления могли принимать значения весьма сложных типов, возможно, включающих строки знаков из различных знаковых наборов. Эти стандарты требуют наличия определенной нотации, которая определяла бы передаваемое значение, не задавая конкретный способ представления этого значения. Способ представления определяется заданием одного или нескольких алгоритмов, называемых правилами кодирования. Правила кодирования определяют конкретный вид октетов на сеансовом уровне, с помощью которых передаются значения данных прикладного уровня (синтаксис передачи). Протокол уровня представления позволяет взаимодействующим объектам договариваться о том, какие синтаксисы передачи будут ими использоваться.
Цель задания значения состоит в том, чтобы отличить его от всех возможных других значений. Объединение некоторого значения с другими значениями, отличными от данного, называется типом, каждый конкретный элемент этой совокупности является значением этого типа. С более общих позиций значение или тип часто могут рассматриваться как образования, состоящие из более простых значений или типов, между которыми установлены взаимосвязи. В качестве синонима термина «тип» часто используется термин «тип данных».
Для правильной интерпретации конкретного представления значения (например с помощью пометок на бумаге или битов, передаваемых по линии связи) необходимо знать тип передаваемых данных (обычно определяемый из контекста). Таким образом, указание типов является одним из важных вопросов, рассматриваемых в настоящем стандарте.
Одним из общих методов определения сложных типов является определение небольшого количества «простых типов» путем задания всех возможных значений этих типов и последующего образования различных комбинаций из этих простых типов. Некоторые из способов определения новых типов перечислены ниже:
имея (упорядоченный) список существующих типов, можно сформировать новое значение как последовательность, в которую входит по одному значению из каждого типа, входящего в список; совокупность всех возможных значений, получаемых таким образом, образует новый тип (если все уже определенные типы, входящие в список, являются различными, то можно расширить этот способ, допуская пропуск некоторых значений из списка);
имея список существующих типов можно сформировать новое значение как (неупорядоченное) множество значений, в которое входит по одному значению из каждого типа, входящего в список; совокупность всех значений, получаемых таким образом образует новый тип (этот способ можно также расширить, допуская пропуск некоторых значений);
имея один существующий тип, можно сформировать новое значение как (упорядоченную) последовательность или (неупорядоченное) множество, состоящее из пустого множества значений, ■одного или более значений исходного типа; (неограниченная) совокупность всех возможных значений, полученных таким образом, образует новый тип;
имея список различных существующих типов, можно выбрать какое-либо значение из одного из этих типов; множество всех возможных значений, получаемых таким образом, образует новый тип;
имея некоторый тип, можно сформировать новый тип как •подмножество исходного типа, используя некоторую структурную или порядковую взаимосвязь между элементами исходного множества.
Типы, определенные с помощью описанных выше методов, называются структурированными типами.
Кажд'ому типу, определенному посредством нотации, описываемой настоящим стандартом, назначается тег. Тег либо определен в самом стандарте, либо определяется пользователем описываемой здесь нотации.
Часто один и тот же тег назначается нескольким разным типам, при этом конкретный тип идентифицируется контекстом, в котором используется тег.
Пользователь настоящей нотации может присвоить новый тег какому-либо существующему типу, создавая тем самым новый тип, отличный от первоначального. Это может потребоваться в тех случаях, когда необходимо определить, какой выбор был сделан в ситуации типа, описанной выше.
Настоящей нотацией определяется четыре класса тегов.
Первый класс называется универсальным классом. Использование тегов универсального класса определяется спецификациями настоящего стандарта, причем каждый тег либо:
присвоен какому-то одному типу, либо
присвоен некоторому способу построения типов.
Второй класс тегов называется прикладным классом. Теги прикладного класса присваиваются типам данных в других стандартах. В рамках одного стандарта тег прикладного класса присвоен только какому-то одному типу.
Третий класс тегов называется пользовательским классом. Теги пользовательского класса не присваиваются в международных стандартах. Порядок их использования может быть различным в различных организациях.
Четвертый класс тегов называется контекстно-зависимым классом. Теги этого класса могут свободно назначаться при любом использовании настоящей нотации и интерпретируются в соответствии с контекстом, в котором они используются.
Теги ориентированы главным образом на обработку данных в машине и не несут существенной информации при использовании нотации человеком. Однако в тех случаях, когда необходимо потребовать, чтобы все типы были различными, это выражается требованием различия тегов, присвоенных вышеупомянутым типам. Таким образом, присвоение тегов является важным аспектом использования настоящей нотации.
Примечания:
Все типы, которые могут быть определены с использованием нотации, описываемой настоящим стандартом, имеют теги. Пользователь настоящей нотации может определить новый тип, присваивая новый тег ранее определенному типу.
Правила кодирования гарантируют явное или неявное задание типа тега вместе со значением данного типа при любом представлении этого значения. Ограничения, накладываемые на использование настоящей нотации, обеспечивают достаточность тега для идентификации типа при условии доступности определений соответствующих типов.
Настоящий стандарт определяет нотацию, которая является как средством определения сложных типов данных, так и средством задания конкретных значений этих типов. Это осуществляется без указания конкретного способа представления (в виде последовательности октетов) значений данного типа при их передаче. Нотация, обладающая этим свойством, называется нотацией для определения абстрактного синтаксиса.
Назначение настоящего стандарта состоит в описании нотации для определения абстрактного синтаксиса, называемой абстрактносинтаксической нотацией версии 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.
ссылки
ИСО 8601 (ГОСТ 24520) «Цифровое обозначение дат») «Элементы данных и форматы обмена. Обмен информацией. Представление дат и времени».
ИСО 3166 «Коды для представления названий стран».
(ГОСТ 28906) «Системы обработки информации. Взаимосвязь открытых систем. Базовая эталонная модель» (см. также Рекомендацию МККТТ Х.200).
ИСО 8825 (ГОСТ 34.974) «Системы обработки информации. Взаимосвязь открытых систем. Описание базовых правил кодирования для абстрактно-синтаксической нотации версии 1 (АСН.1)».
МККТТ Х.409 «Системы обработки сообщений. Синтаксис и нотация представления информации при передаче».
ОПРЕДЕЛЕНИЯ
Термины, используемые в настоящем стандарте, и их определения — по ГОСТ 28906 со следующими дополнениями.
Значение —отличный от других элемент множества значений.
Тип — множество значений, которому присвоено имя.
Простой тип — тип, определяемый прямым заданием множества составляющих его значений.