Следствием п. 2.7 приложения 2 является то, что любая организация может получить код от соответствующей организации, присваивающей коды, и после этого присваивать значения вида «идентификатор объекта» (OBJECT IDENTIFIER) для своих собственных целей, причем гарантируется, что эти значения не будут повторять значения, назначенные другими организациями. Таким образом, некоторая фирма может присвоить значение типа «идентификатор объекта (OBJECT IDENTIFIER)» своим собственным информационным форматам.ПРИЛОЖЕНИЕ 3
Обязательное
ЗНАЧЕНИЯ КОМПОНЕНТОВ OBJECT IDENTIFIER,
ОПРЕДЕЛЯЕМОЕ МККТТ
Из корневой вершины дерева идентификаторов объектов выходят три ребра. Присвоенные им значения и идентификаторы, а также службы, ответственные за присвоение значений следующих компонентов, таковы:
Значение Идентификатор Служба, отвечающая за,
присвоение следующих
компонентов
О ccitt МККТТ
iso ИСО
joint-iso-ccitt См. приложение 4
Примечание. В остальной части этого приложения рассматривается- присвоение значений, осуществляемое МККТТ.
Каждый из идентификаторов «ccitt», «iso» и «joint-iso-ccitt», определенных выше, может использоваться в качестве выражения «ИменнаяФорма».
Из вершины, проидентифицированной «ccitt», выходят четыре ребра. Присвоенные им значения и идентификаторы таковы:
Значение |
Идентификатор |
Служба, отвечающая за присвоение следующих, компонентов |
0 |
recommendation |
см. п. 3.4 |
1 |
question |
см. п. 3.5 |
2 |
administration |
см. п. 3.6 |
3 |
network-operator |
см. п. 3.7 |
Эти идентификаторы могут использоваться в качестве выражения «ИменнаяФорма».
Ребра, следующие за ребром «рекомендация» («recommendation»), имеют значения от 1 до 26, которым присвоены идентификаторы от а до z. Последующие ребра имеют значения номеров рекомендаций МККТТ той серии, которая обозначается предыдущей буквой. Ребра, следующие за этими ребрами, определяются соответствующими рекомендациями МККТТ. Идентификаторы от а до z могут использоваться в качестве «ИменнойФормы».
Ребра, следующие за ребром «вопрос» («question»), имеют значения, определяемые номером исследовательской группы МККТТ и периодом времени. Эти значения вычисляются по следующей формуле:
номер исследовательской группы + (период * 32), где «период» имеет значение 0 для 1984—1988 гг., 1 — для 1988—1992 гг., и т. д., а множитель 32' задан в десятичной системе счисления.
Ребра, следующие за каждым ребром «исследовательская группа», имеют значения, соответствующие вопросам, входящим в сферу деятельности соответствующей исследовательской группы. Последующие ребра определяются по мере необходимости соответствующей группой (например, рабочим совещанием ллн специальной группой экспертов), сформированной для изучения вопроса.
Ребра, следующие за ребром «администрация» («administration»), имеют значения цифровых кодов стран (DCC), определенных рекомендацией МККТТ Х.121. Последующие ребра определяются в соответствии с потребностями управления телекоммуникациями страны, определенной кодом ОСС.
Ребра, следующие за ребром «оператор сети» («network-operator»), имеют значения цифровых кодов сетей (DN1C), определенных в рекомендации МККТТ Х.121. Последующие ребра определяются в соответствии с потребностями управления телекоммуникациями или зарегистрированного частного агенства (RPOA), Идентифицируемого кодом DNIC
.ПРИЛОЖЕНИЕ 4
Обязательное
ЗНАЧЕНИЯ КОМПОНЕНТОВ OBJECT IDENTIFIER,
ОПРЕДЕЛЯЕМЫЕ СОВМЕСТНО
Из корневой вершины дерева идентификаторов объектов выходят три ребра. Присвоенные им значения и идентификаторы, а также службы, ответственные за присвоение значений следующих компонентов, таковы:
Значение Идентификатор Служба, отвечающая за
присвоение следующих
компонентов
О ccitt МККТТ
iso ИСО
joint-iso-ccitt См. пп. 4.2, 4.3
Примечание. В остальной части этого приложения рассматривается присвоение значений, осуществляемое совместно ИСО и МККТТ.
Каждый из идентификаторов ccitt», «iso» и «joint-iso-ccitt», определенных выше, может использоваться в качестве выражения СимвольнаяФорма».
Ребрам, следующим за ребром «совместное определение ИСО и МККТТ» («joint-iso-ccitt») присвоены значения, периодически назначаемые по согласованию между ИСО и МККТТ для идентификации их совместных областей деятельности по стандартизации в соответствии с «Процедурами присвоения значений компонентам идентификаторов объектов для совместного использования ИСО и МККТТ».
Примечание. Регистрационной службой, ответственной за присвоение значений компонентам идентификаторов объектов для совместного использования ИСО и МККТТ, является Американский национальный институт стандартов (ANSI).
Ребра, которые следуют за упомянутыми в п. 4.3, приложения 4 выделяются в соответствии с процедурами, действующими в момент выделения.
Примечание. Предполагается, что в данном случае для присвоения значений будет осуществляться передача полномочий смешанной группе экспертов ИСО и МККТТ, ответственных за область совместной работы.
Поскольку в первых стандартах ИСО и рекомендациях МККТТ, относящихся к совместным областям стандартизации, потребовалось выделение идентификаторов объектов (OBJECT IDENTIFIER) до установления процедур, упомянутых в п. 4.3, приложения 4, то они выделяются так, как описано в приложениях 2 или 3. Идентификаторы информационных объектов, определенные таким способом в стандарте ИСО или рекомендации МККТТ, не будут меняться после установления процедур, упомянутых в п. 4.3 приложения 4.
ПРИЛОЖЕНИЕ 5 Справочное
ПРИМЕРЫ И РЕКОМЕНДАЦИИ
В этом приложении приводятся примеры использования нотации АСН.1 для списания некоторых взятых произвольно структур данных. В нем также содержатся пояснения и рекомендации по использованию различных возможностей АСН.1.
Пример записи учета кадров
В этом подразделе использование АСН.1 иллюстрируется на примере произвольно взятой простой записи учета кадров.
Неформальное описание записи учета кадров
Ниже приводится структура записи учета кадров и ее значение для кон-
кретного служащего. Имя: |
John Р Smith |
Должность: Учетный номер: |
Директор 51 |
Дата найма: |
17 сентября 1971 |
Имя супруги: |
Mary Т Smith |
Число детей: |
2 |
Информация о ребенке
Имя: Ralph Т Smith
Дата рождения: 11 ноября 1957
Информация о ребенке
Имя: Susan В Tones
Дата рождения: 17 июня 1959
Описание структуры записи с помощью АСН.1
Структура каждой записи учета кадров формально описана ниже с помощью
стандартных обозначений для типов данных. |
|
Personnel Record : |
: = [APPLICATION 0] IMPLICIT SET |
.{ |
Name , |
title |
[01 VisibleString , |
number |
EmployeeNumber |
dateOfHire |
[11 Date |
nameOf Spouse |
[2] Name , |
children |
[31 IMPLICIT |
SEQUENCE OF
Childinformation
DEFAULT { ) I
Childinformation : : = SET
dateOfBirth |
Name [01 Date) |
Name : : = [APPLICATION 1] IMPLICIT SEQUENCE
{givenName initial familyName |
VisibleString, VisibleString, VisibleString) |
EmployeeNumber : : = [APPLICATION 21 IMPLICIT INTEGER
Date : : = [APPLICATION 31 IMPLICIT VisibleString- -YYYYMMDD
В этом примере иллюстрируется один из аспектов синтаксического разбора выражений АСН.1. Синтаксическая конструкция «по умолчанию» («DEFAULT») может применяться только к элементам выражения «последовательность» («SEQUENCE») или «множество» («SET»), но не может быть применена к эле-ментам «последовательность из» («SEQUENCE OF»). Поэтому выражение «DEFAULT { }» в «записи учета кадров» («PersonnelRecord») относится к
выражению «дети» («children»), а не к выражению «информация о ребенке» («Childinformation»).
Описание значения записи с помощью АСН.1
Значение записи учета кадров для описанного в начале подраздела служащего в стандартных обозначениях для значений данных будет иметь вид:
{ {givenName «John», initial «Р»,
, familyiName «Smith»
title «Director»
number dateOfHire |
51 «49710917» |
nameOfSpouse {givenName «Магу», initial «Т», familyName «Smith»},
children
{{{givenName «Ralph», initial «Т», familyName «Smith»},
dateOfBirth «110671*1 Id»},
{{givenName «Susan», initial «В», familyName «Jones»},
dateOfBirth «19590717»
P e к о M e и д а ц и и по использованию нотации
Типы данных и формальная нотация, определенные в настоящем стандарте,, обладают большой гибкостью, предоставляя возможность их использования в широком спектре протоколов. Эта гибкость, однако, может привести к недоразумениям, в особенности при недостаточном опыте ее использования. В этом приложении делается попытка свести к минимуму возможность недоразумений с помощью рекомендаций по использованию нотации и примеров ее использования. Для каждого из встроенных типов данных предлагается одна или несколько рекомендаций по использованию. Типы «строка знаков» (например «отображаемая строка» («VisibleString») и типы, определенные в разд. 3; здесь не рассматриваются.
Булев тип
Булев тип следует использовать для представления значений логических переменных (имеющих два разных состояния), например ответа на вопрос «да» или «нет».
Пример.
Employed : : = BOOLEAN
При назначении ссылочного имени булеву типу следует использовать слово, подходящее для обозначения состояния истина».
Пример.
Married : : = BOOLEAN
а не
MaritalStatus : : =BOOLEAN
См. также п. 5.2.2.4.
Целочисленный тип
Целочисленный тип следует использовать для представления значений количественных числительных и целочисленных переменных для всех практических целей без ограничения величины.
Пример.
CheckingAccountBalance : : = INTEGER
- значение выражено в центах; отрицательное
- значение означает перерасход
Следует определять допустимые максимальное и минимальное значения целочисленного типа в качестве выделенных значений.
Пример.
DayOfTheMonth : : = INTEGER (first (1), last (31)1Целочисленный тип с выделенными значениями следует использовать для представления значений переменной с тремя или более состояниями. Если единственным требованием к значениям переменной является их отличие друг от друга, то значения следует присваивать, начиная с нуля.
Пример.
DayOfTheWeek : : = INTEGER {sunday (0), monday (1), tuesday(2),wednesday(3), thursday(4), friday(5),Saturday(6)}
Целочисленный тип с выделенными значениями следует использовать для представления значений переменной, которая имеет только два состояния, но у которой могут появиться дополнительные состояния в следующей версии протокола.
Пример.
Следует использовать описание
MaritalStatus : : = INTEGER {single(0), married (1)}, если предполагается его последующая замена на следующее:
MaritalStatus : : = INTEGER {single(0), married(1), widowed (2)}
Тип «строка битов»
Тип «строка битов» следует использовать для представления двоичных данных, формат и длина которых не заданы или заданы в другом месте, при этом длина данных в битах не обязательно кратна восьми.
Пример.
G3FacsimilePage : : = BIT STRING
- последовательность битов, удовлетворяющая
- рекомендации МККТТ Т.4.
Следует определять первый и последний имеющие смысл биты строки фиксированной длины в качестве выделенных битов.
Пример.
Nibble : : = BIT STRING {first(0), last(3)}
Тип «строка битов» следует использовать также для представления значений битового отображения, то есть упорядоченной совокупности логических переменных, показывающих, выполняется или нет некоторое определенное условие для каждого ' объекта из некоторой упорядоченной совокупности.
Пример.
SunnyDaysOfTheMonth : : = BIT STRING {first(l), last(31)}
- і-й день был солнечный в том и только
- в том случае, если І-Й бит равен единице
Тип «строка битов» с поименованными значениями следует использовать для представления значений .совокупности взаимосвязанных логических переменных.
Пример.
PersonalStatus : : = BIT STRING
{married(O), employed(l), veteran(2), collegeGraduate (3)}
Тип «строка октетов»
Тип «строка октетов» следует использовать для представления значений двоичных данных, формат и длина которйх не заданы или заданы в другом месте, причем длина данных в битах кратна восьми.
Пример.
G4FacsimileImage : : = OCTET STRING
- последовательность октетов,
- удовлетворяющая рекомендациям
- МККТТ Т.5 и Т.6.
В тех случаях, когда доступен для использования требуемый тип «строка знаков», его использование следует предпочесть использованию типа «строка октетов».