автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Разработка программного обеспечения управления представлением данных в неоднородных распределенных системах обработки данныъ

кандидата физико-математических наук
Жуков, Сергей Иванович
город
Москва
год
1992
специальность ВАК РФ
05.13.11
Автореферат по информатике, вычислительной технике и управлению на тему «Разработка программного обеспечения управления представлением данных в неоднородных распределенных системах обработки данныъ»

Автореферат диссертации по теме "Разработка программного обеспечения управления представлением данных в неоднородных распределенных системах обработки данныъ"

^ГГГ™,Московский ордена Ленина, ордена Октябрьской революции и ордена '¡¡5Г.. | Трудового Красного знамени государственный университет

з.8. ' им. М.В.Ломоносова

„ с ' _

Факультет вычислительной математики и кибернетики

на правах рукописи

ЖУКОВ Сергей Иванович

РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ УПРАВЛЕНИЯ ПРЕДСТАВЛЕНИЕМ ДАННЫХ В НЕОДНОРОДНЫХ РАСПРЕДЕЛЕННЫХ СИСТЕМАХ ОБРАБОТКИ ДАННЫХ

Специальность 05.13.11 - математическое и программное обеспечение вычислительных машин, комплексов, систем и сетей.

Автореферат диссертации на соискание ученой степени кандидата физико-математических наук

Москва 1992

Работа выполнена на кафедре алгоритмических языков факультета вычислительной математики и кибернетики Московского государственного университета им. М.В.Ломоносова Научный руководитель: доктор физ.-мат.наук,профессор С.А.Абрамов

Официальные оппоненты: -

доктор физико-математических наук профессор В.П.Шириков

кандидат физико-математических наук В.И.Дрожжинов Ведущая организация: Институт проблем кибернетики АН СССР

Защита состоится ^^^^, . 1,992 г. в ^ часов на

заседании Специализированного совета Д.053.05.38 Н 4 по математике при МГУ им. М.В.Ломоносова по адресу: 119899, Москва, ГСП-3, Ленинские горы, МГУ, факультет вычислительной математики и кибернетики, ауд.

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

Автореферат разослан "_" 1992 г

Ученый секретарь совета -профессор ¿Ц-п^

Н.П.ТРИФОНОВ

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

Для решения проблемы неоднородности примерно с середины 70-х годов различными организациями, в том числе и международными, проводились работы по стандартизации взаимодействия систем в рамках РСОД. К числу таких организаций следует отнести Международную Организацию .по Стандартизации (ISO), Международный Консультативный Комитет по Телефонии и Телеграфии (CCITT), Европейскую Ассоциацию Производителей компьютеров (ЕСМА), Национальный Институт Стандартов США (ANSI), а также •ряд профессиональных объединений, национальных организаций по стандартизации и фирм-изготовителей аппаратного и программного обеспечения.

Результатом указанных работ стали серии стандартов и рекомендаций, касающихся различных аспектов взаимодействия систем в составе РСОД. Их концептуальной основой стала Базовая Модель Взаимодействия Открытых Систем (0SI), разработанная ISO.

С точки зрения преодоления неоднородности особое значение имеет шестой уровень Базовой Модели - уровень представления. В его задачи входит преобразование представления данных, передаваемых между открытыми системами, таким образом, чтобы разнородные открытые системы могли взаимодействовать между собой. С этой целью уровень представления поддерживает один или несколько стандартных форматов представления данных в процессе передачи (синтаксисов передачи), а абстрактный синтаксис (т.е. логическая структура) данных прикладного уровня описывается с использованием специального языка - нотации ASN.1, также стандартизованной ISO. С каждым сервисным элементом прикладного уровня связывается абстрактный синтаксис протокольной управляющей информации. Описание этого абстрактного синтаксиса в виде модуля ASN.1 составляет неотъемлемую часть соответствующего международного стандарта.

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

продолжается и, по-видимому, будет продолжаться по мере распространения методов распределенной обработки данных на новые предметные области. Однако уже с начала 80-х гг. стали появляться программные и аппаратные реализации отдельных уровней и служб OSI. С 1980 г. в рамках проектов MAP/TOP проводится разработка и реализация специализированных профилей OSI, ориентированных на автоматизацию производства и инженерной и учрежденческой деятельности. В настоящее время существуют программные и аппаратные продукты, которые реализуют профили OSI, включающие все семь уровней (в том числе профили MAP и ТОР). Среди производителей таких продуктов можно назвать фирмы CONCORD, AEG COMPUTROL, SISCO, RETIX, SIMPACT и др. В совокупности, изделия указанных фирм охватывают практически все широко известные компьютерные архитектуры и операционные среды.

Однако, существующим 0SI-продуктам присущи определенные недостатки: высокая стоимость, отсутствие мобильности. Большинство продуктов, будучи ориентировано на конечного пользователя, не обладают открытостью - не поддерживают включение в систему новых прикладных сервисных элементов. Реализация уровня представления в этом случае поддерживает строго ограниченное число заранее известных абстрактных синтаксисов.

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

Опнпвнпй_пяпып дирррртяттнпннпй pafinru является разработка

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

представления, определить состав и структуру инструментальных средств разработчика прикладных сервисных элементов (ИС.РПСЭ), исследовать язык АБНЛ с точки зрения теории трансляции и разработать принципы построения компилятора АБИЛ, разработать синтаксис и семантику языка манипулирования представлением данных (ЯШ1Д) - языка высокого уровня, основанного на АБНМ и предназначенного для описания процесса динамического формирования и разбора значений АБН.1 в синтаксисе передачи, и разработать принципы построения компилятора ЯМПД.

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

1. Разработана и предложена концепция построения и структура программкой компоненты управления представлением данных для неоднородных РСОД, построенных на основе Базовой Модели 0Б1. Разработаны и предложены принципы построения каждой из составных частей указанной компоненты: протокольного автомата уровня представления, базовых средств преобразования представления данных (кодирования-декодирования) и инструментальных средств разработчика прикладных сервисных элементов (ИС РПСЭ). Предложена технология разработки прикладных программ с использованием ИС РПСЭ.

2. Сформулированы и доказаны следующие утверждения о свойствах языка АШЛ: о неоднозначности описания языка АБИЛ; о двухуровневом представлении множества значений некоторого типа АБ]*Л; о критериях корректности рекурсивного определения типов и корректности назначения тегов компонентам составных типов.

3. Разработана и предложена концепция построения компилятора языка АБ1Ы. На основании указанных в предыдущем пункте критериев разработаны алгоритмы определения корректности рекурсивного определения типов и назначения тегов компонентам составных типов.

5. Разработан язык ЯМПД - язык высокого уровня, предназначенный для описания процесса динамического формирования и разбора значений АБЛ.1 в синтаксисе передачи. Разработано формальное описание синтаксиса ЯМПД, формализованное описание

его семантики, а также принципы построения компилятора ЯМПД, выходным языком которого является язык Си.

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

АпрпДяция- Результаты работы докладывались: на заседании Рабочей группы АН СССР по локальным сетям промышленного применения, г.Выборг, 1989 г.; на научном семинаре в МГУ, г.Москва, 1990 г.; на Всесоюзном семинаре по супер-ЭВМ, г.Одесса, 1990 г.; на XV Всесоюзной школе-семинаре по ИВС, г.Ленинград, 1990 г.; на научном семинаре ИПК АН СССР, г.Москва, 1991 г.

Публикации. Основные результаты, полученные автором, опубликованы в работах [1,2], ссылки на которые приводятся в конце автореферата.

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

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

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

В пярвпй_славе исследуется логическая структура

протокольного объекта уровня представления. Рассматриваются возможные подходы к отображению логической структуры объекта на программную структуру реализации, анализируются их достоинства и недостатки. На основе анализа упомянутых подходов формулируются принципы построения программной структуры реализации и распределения функций по компонентам этой структуры. Формулируются принципы построения ИС РПСЭ, в состав которых входят компилятор ASN.1 и компилятор ЯМПД. Предлагается технология разработки прикладных сервисных элементов, основанная на использовании ИС РПСЭ. Также в первой главе предлагаются принципы построения одной из составных частей программной структуры - протокольного 'автомата уровня представления. Рассматриваются проблемы интеграции протокольного автомата в состав интегрированной сетевой службы OSI, механизмы управления событиями, дескрипторами, взаимодействием с соседними уровнями.

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

- протокольная компонента уровня представления. Эта компонента включает функции интерпретации протокола: установления и освобождения представительного соединения; аварийного разъединения; ресинхронизации соединения; управления множеством определенных контекстов (DCS) - добавления и удаления контекстов представления; непосредственной передачи прочих интерфейсных примитивов между прикладным и сеансовым уровнями.

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

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

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

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

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

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

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

объекта этого типа в синтаксисе передачи, и одна функция декодирования, осуществляющая обратное действие.

Для структур данных (SEQUENCE, SET, SEQUENCE OF, SET OF) определяются функции кодирования-декодирования начала и окончания соответствующего составного элемента данных. Таким образом, для кодирования составного элемента данных сначала кодируется признак начала составного элемента данных, затем последовательно кодируются компоненты, а в конце вызывается Функция, кодирующая признак окончания составного элемента данных.

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

Необходимость для прикладного процесса самому управлять кодированием-декодированием данных является серьезным недостатком принятого метода реализации. В качестве средства преодоления этого недостатка предлагаются инструментальные средства разработчика прикладных сервисных элементов (ИС РПСЭ). Эти средства включают, з дополнение к функциям базового кодирования-декодирования, компилятор языка ASN.1 и компилятор языка манипулирования представлением данных (ЯМПД).

В функции компилятора ASN.1 входит: синтаксический и семантический анализ модуля описания абстрактного синтаксиса; его трансляция в специальное внутреннее представление и запись результата в библиотеку абстрактных синтаксисов.

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

В качестве входных данных для трансляции используется также оттранслированный ASN.l-модуль описания абстрактного синтаксиса

передаваемых данных. Имена используемых модулей перечисляются в ЯМПД-предложении USE. Поскольку имя модуля может иметь произвольную длину, оттранслированные модули описаний хранятся в специальной библиотеке, для которой поддерживается справочник имен модулей. Компилятор ЯМПД динамически разрешает ссылки на объекты, определенные в других модулях, если имена этих модулей также указаны в предложении USE.

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

1. Разрабатывается (или копируется из стандарта) модуль описания абстрактного синтаксиса на языке ASN.1;

2. Этот модуль описаний обрабатывается компилятором ASN.1 и помещается в библиотеку абстрактных синтаксисов;

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

4. Текст программы обрабатывается ЯМПД-компилятором, в результате чего получается текст программы на базовом языке;

5. Полученный на этапе 4 текст транслируется компилятором базового языка и компонуется вместе с другими модулями и библиотекой базового кодирования-декодирования, результатом чего является исполняемая программа.

Во rmpntt гляяй исследуются проблемы, связанные с построением компилятора ASN.1 и предлагаются принципы построения такого компилятора. Исследуются синтаксические 'и семантические свойства языка; доказывается свойство неоднозначности описания ASN.1, приведенного в стандарте, предлагаются способы устранения этой неоднозначности. Исследуются рекурсивные типы языка; формулируется критерий корректности рекурсивного описания типа и на его основе предлагается алгоритм определения корректности. Рассматривается проблема различимости типов при декодировании и в связи с этим - проблема корректного назначения тегов компонентам составных типов; формулируется понятие характеристического множества тегов и на основе этого понятия предлагается алгоритм определения различимости типов.

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

Нрпднпзиацнпптт. грамматики ДЯН.1. МОЖНО ЛвГКО ПОКазаТЬ, ЧТО существуют хотя бы два канонических дерева вывода следующей терминальной цепочки языка ASN.1' из нетерминала AssignraentList: а А ::- Ь с С ::- NULL (1)

Более того, можно показать, что можно найти произвольно длинную терминальную цепочку, обладающую таким свойством. Семейство таких цепочек можно породить из цепочки (1) путем добавления между терминалами 'Ь' и 'с' произвольного количества цепочек вида "di Di ::- ei", где все di, Di и et различны между собой.

Следствием этой неоднозначности является невозможность в определенных контекстах однозначно разобрать текст на ASN.1. При проектировании компилятора был использован следующий метод ее преодоления: символ ';' рассматривается как необязательный разделитель конструкций Assignment в . составе конструкции AssignmentList.

Рякургинн»р тип»_1 - В отличие от традиционных языков

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

Будем рассматривать некоторый тип Т как язык L* над алфавитом Sr, состоящим из элементарных типов ASN.1 и символов ' {' и '}', сопоставив по определенным правилам каждой структурообразующей конструкции ASN.1 некоторую операцию над множеством цепочек. Будем называть цепочку над алфавитом Sr сигнатурой, a Lt - множеством сигнатур типа Т. Можно показать, что язык Lt - контекстно-свободный.

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

МОЖНО доказать утврртттрнир_п дяууурпиияяпм npg /ТПТЯРЛРНИИ

мнпжягтяя знячяиий некоторого типа ASN-1, а именно:

a) Для всех S из Lr каждая цепочка множества Vs является корректным представлением некоторого значения типа Т в нотации ASN.1 (и может быть отождествлена с этим значением);

b) множество значений Vr типа Т представляется объединением по всем сигнатурам S из Lr и по всем значениям v из Vs.

Из данного утверждения следует, что множество значений типа Т непусто тогда и только тогда, когда непуст язык Lr. Известен алгоритм распознавания непустоты контекстно-свободного языка. Алгоритм распознавания корректности рекурсивного определения типа строится аналогично, но основывается на рекурсивном анализе структуры типа.

Ряяличимпгть типпя ASM- 1 при пякппирпвянии- Чтобы однозначно определять тип значения при его декодировании, в стандарте ASN.1 используется тегирование. В ряде случаев при определении составных типов данных (типов SET, CHOICE) необходимо, чтобы типы компонент были различимы при декодировании. Для этого необходимо, чтобы были различны соответствующие этим типам теги. Однако в ряде случаев типу (например, типам CHOICE, ANY) не соответствует никакой определенный тег. Следовательно, критерий различимости типов требует уточнения.

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

Можно доказать, что характеристическое множество типа Т определяется (рекурсивно по структуре типа) следующим образом:

- если тип Т получен путем (явного _ или неявного) тегирования типа Ti тегом N, то его характеристическое множество состоит из одного элемента и есть {N};

- иначе, если тип Т есть ANY, то его характеристическое множество включает все возможные теги;

- иначе, если тип Т есть CHOICE, то его характеристическое множество есть объединение характеристических множеств типов альтернатив;

- иначе тип Т - элементарный тип либо один из следующих типов: SEQUENCE, SET, SEQUENCE OF, SET OF; характеристическое множество состоит из одного элемента и содержит универсальный тег, приписанный типу Т.

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

Во второй главе рассматриваются также проблемы организации таблицы символов, хранящей во время трансляции контекстно-зависимую информацию, связанную с идентификаторами и именами ASN.1-модуля. В качестве метода организации таблицы выбрано хеширование с именем в качестве ключа. Элементы таблицы с одинаковым значением хэш-функции лексикографически упорядочиваются по именам и связываются в список. Показано, что при модуле хэш-функции, равном 64, такая организация таблицы обладает преимуществом перед бинарным деревом по времени доступа к элементу при количестве элементов, не превосходящем 800 (в то время как в типичном модуле определяется порядка 100-200 имен и идентификаторов).

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

Язык ЯМПД обеспечивает следующие возможности:

- описание структуры формируемых и разбираемых составных элементов данных;

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

- указание логических переменных, значение которых определяет наличие необязательных компонент (OPTIONAL) при формировании и разборе;

- обработку ошибок кодирования при разборе;

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

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

В третьей главе рассматриваются следующие типы предложений языка ЯМПД:

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

- предложение WITH: создает область видимости для целочисленных идентификаторов, которые определены внутри описаний типов ASN.1, а также для вложенных значений;

- предложение VARIABLE: предназначено для описания ЯМПД-переменных - .специальных переменных, хранящих информацию о данных в синтаксисе передачи и о текущем состоянии кодирования-декодирования. ЯМПД-переменные содержат именованные компоненты, называемые атрибутами кодирования. Определены следующие атрибуты:

start - адрес начала данных в синтаксисе передачи; size - текущая длина данных в синтаксисе передачи; ptr - адрес текущей позиции при кодировании и

декодировании;

tag - последний записанный или прочитанный тег; error - номер последней обнаруженной ошибки

кодирования-декодирования.

- предложение PARAMETER: предназначено для описания формальных параметров, которым в качестве фактических аргументов соответствуют ЯМПД-переменные;

- предложение доступа к значению: предназначено для использования в выражениях базового языка именованных и вложенных ASN.1-значений целого типа; целых констант, обозначаемых идентификаторами внутри описаний типов, а также ЯМПД-переменных и ЯМПД-параметров как единого целого;

- предложение доступа к атрибутам: предназначено для доступа к атрибутам кодирования средствами базового языка;

- предложение ENCODE: описывает "процесс кодирования элемента данных - формирования данных в синтаксисе передачи;

- предложение DECODE: списывает процесс декодирования элемента данных - разбора данных в синтаксисе передачи.

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

Управление процессом формирования и разбора данных в синтаксисе передачи осуществляется с помощью следующих конструктов языка ЯМПД:

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

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

- Префиксы условия. Представляют собой базовые выражения, значение которых ("истина" или "ложь") определяет, следует ли кодировать компоненты составных элементов данных, объявленные как OPTIONAL или DEFAULT. Используются также в качестве предусловий цикла при кодировании значений типа SEQUENCE OF, SET OF.

- Префиксы наличия. Представляют собой адреса переменных базового языка, которым при декодировании присваивается значение "истина" или "ложь" в зависимости от того, присутствовали ли в составном элементе данных соответствующие компоненты, объявленные как OPTIONAL. Используются также при декодировании значений типов .CHOICE, SEQUENCE OF, SET OF для указания, производилось ли декодирование согласно соответствующему описателю значения.

Пгнпиные результаты, выносимые на защиту диссертации, состоят в следующем:

1. Разработана и предложена концепция построения программной- компоненты преобразования представления данных в рамках Базовой Модели 0SI, включающей в себя: протокольный автомат уровня представления; базовые средства преобразования представления данных (кодирования-декодирования); инструментальные средства разработчика прикладных сервисных элементов.

2. В результате исследования свойств языка ASN.1:

- сформулировано и доказано утверждение о неоднозначности описания языка ASN.1; предложены способы преодоления этой неоднозначности;

- сформулировано и доказано утверждение о двухуровневом представлении множества значений некоторого типа ASN.1;

- сформулирован критерий корректности рекурсивного определения типов; разработан алгоритм определения корректности;

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

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

4. Разработан язык ЯМПД - язык высокого уровня, предназначенный для описания процесса динамического формирования и разбора значений ASN.1 в синтаксисе передачи. Разработано формальное описание синтаксиса ЯМПД и формализованное описание его семантики.

5. Разработаны и реализованы компилятор языка ASN.1 и компилятор языка ЯМПД, выходным языком последнего является язык Си.

ЛИТЕРАТУРА.

1. Жуков С. И. Проблемы реализации службы уровня представления в составе интегрированной сетевой службы ВОС//В сб. "Прикладное математическое и программное обеспечение, моделирование и современные технические средства автоматизации машиностроения", Москва, 1990.

2. Сутормина Т.М., Хуков С.И., Лехтуз Д.Е. Принципы построения мобильного программного обеспечения верхних уровней архитектуры открытых систем//В сб. "Труды I-III Всесоюзных школ по супер-ЭВМ", Одесса, ОПИ, 1991.

Подписано в печать 04.01.92. Заказ 20. Тираж 100.

ИЗЮ5,1Лоскг.а,Варшавское ш. ,8.ВШИг~оинформсистем