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

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

Автореферат диссертации по теме "Принципы построения и реализация базового уровня кластерной операционной системы КЛОС"

российская академия наук

институт проблем кй&ёрцетики

На правах рукоппсп УДК 681.3.06

КОПЫТОВ Герман Васильевич " * 1 (

ПРИНЦИПЫ ПОСТРОЕНИЯ И РЕАЛИЗАЦИЯ БАЗОВОГО УРОВНЯ КЛАСТЕРНОЙ ОПЕРАЦИОННОЙ СИСТЕМЫ КЛОС.

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

Автореферат лассертацап

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

Москва 1992

Робота выполнена в Институте Проблей Кибернетики РАН.

Научный руководитель Официальные оппоненты

Ведущая организация

кандидат физико-математических наук

A.С.Косачев

доктор физико-математических наук

B.А.Крюков

кандидат физико-математических наук И.В.Машечкнн

Институт точной механики и вычислительной техники им. С.А.Лебедева РАН.

Защита состоится "С?" О^-Ч" ^ 1992 г. в часов на

заседании специализированного совета К.003.78.01 Института Проблем Кибернетики РАН.

Адрсс:117312, Москва, ул. Вавилова дои 37

Автореферат разослан "ОЗД&92 г.

Учеиый секретарь специализированного совета К.003.78.01

с.ф.-и.и.

А.З.Ишмухаметов

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

Актуальность топы.

Признанной н многообещающей оспоаоп поаых технологий программирования, прнзванпых пстыспть производительность труда программ ni-стоа при разработке программных комплексу'г Ъсохого урозпя сло;::по-стп, является объектно-ориентироаапнсг Ърогр' Чмпропаипе. Огрсмгл-й поток работ, позшшшпхся а этой области за последнее премз, касагтся, п основном, языков программировали?, юти фундаментальные пдпп объектного-подхода могут быть применены ц С* ^пугшс сферах, п той пггслз п при построении операционных систем.

Кластерная операцпоппал система KJIOC является призером развития объсктио-орнентирозалпого подхода и его применения для создания операщюнных систем. Но п отличие от большинства разрабатыгз™' г? п: объектно-ориеитирозаппых операционных систем, которые срга:;;:~угот-ся над традиционными операционными системами, KJIOC орпептирсга-па па прямое использование аппаратуры.

Целп работы.

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

2. Разработка базового уровня мобильной кластерной операционной системы KJIOC и создание вспомогательного инструментария кросс-отладкн КЛОС в среде операционной системы UNIX.

3. Реализация программ базового уровня KJIOC и апробация переноса с одной ЭВМ на другую.

Научная ноипзна.

Повал архитектура ОС.

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

Такое архитектура оиерапчонной системы имеет ряд достоинств.

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

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

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

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

При проектировании и |н.алнзицни прог{шошых комплексов важную роль играет понятие составного объекта (подсистемы). КЛОС поддерживает понятие пилг нстемы сверх) донизу — от уровня конечного пользователя до ядра ОС, кото)кх: непосредственно поддерживает понятие Подсистемы I! использует его при управлении процессором, управлении памятью, а также при порождении/ликвидации компонентов системы.

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

Кластеры КЛОС имеют сегментщюванную виртуальную память.

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

В работе получены следующие поаыз результаты:

1. Разработала позая архитектура ОС. Выделеи нгшпнальпнй уровень ядра ОС, обеспечивающий реализацию всех остальных фугатлЗ пп уровне базовых объектов — кластеров. Tatiaa архитектура сбеспечггагзт: асипхронпость работы и защиту; данных псех компонентов ОС; ?:с5пль-пость ОС; масштабируемость ОС.

2. Спроектировала п реализована поддоргхка системой KJ10C структурированных составных объектов-подсистем на всех урозпйх^ ¿пзцпо-пирования ОС: загрузка, управление процессором и памятью.

3. Архитектурой KJ10C обеспечена защищенность доступа it операциям в кластере.

4. Раэработапы механизмы динамической ергяитащщ папятп при параллельной п распределений;! работе подсистем — сегмепты KJIOC.

Практическая ценность.

1. Реализовало ядро KJIQC п шпхшш уровень операдпоггсой спсте:ял па ЭВМ "Элсктронпка.-35п п рабочей станции "Беста-Е8".

2. Разработана и апробирована технология переноса базового уро^ття операционной системы с одной ЭВМ на другую.

3. Созданное программное обеспечение кздгетез оспопой далыгслппгс работ по развитию кластерной технологии создания программных лО" плексов.

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

Апробация работы.

Результаты диссертации доложены па конференции Советской ассоциации пользователей ОС UNIX — SUUG в 1990 году.

Публикации,

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

Объем к структура работы.

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

Содержание работы.

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

Возникнув первоначально в области языков программирования, объектный подход оказался применим также и для создания операционных систем. В первой главе перечисляются наиболее важные из известных автору объектных операционных систем, как старые н уже завершившие свое существование (ОС HYDRA, Eden), так и современные активно развивающиеся системы (Mach, Chorus).

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

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

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

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

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

Мандаты обеспечивают корректный доступ к объекту, причем корректность понимается как выполнение следующих условий:

1) объект имеет доступ только к тем объектам й операциям, которые ему разрешены.

2) над объектом могут выполняться только допустимые операции.

3) должен соблюдаться порядок и хронология доступа к операция!! объекта. /

Способы взаимодействия объектов.

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

Часто синхронный вызов операции илгезт форму вызова удаленной процедуры — наиболее привычную (синтаксически и семантически) форму для программиста.

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

Способы реализации операций а объекте.

Операция в объекте может быть реализована двумя способами — либо процедурой, либо оператором приема. Пассивные объекты могут использовать только процедурную декларацию. Активные объекты могут использовать оба способа.

Параллельность а объектных системах.

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

Нужна ли при этом внутренняя параллельность в объекте? Этот вопрос является дискуссионных«. Объектные системы демонстрируют большое разнообразие в этом вопросе.

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

б

Во crcpzZ тяги описываютсс освоаиыс цоавтпл KJ10C — попатин илсхтсра, входа, группы входов, падключссня п сешецта.

Кластер КЛОС свлястся актнпшлм объектом, который содерш:т пс-иоторие данные и предоставляет набор операций для работы с этими данными. Операции в кластере реализуются сходами в кластер. Входы объединяются в группы, которые в КЛОС считаются единицей доступа. Группы входов могут Пить статическими и динамическими. Операции в статических группах являются открытыми для общего использования, а доступ к операцией динамических групп возможен только под контролем цластсра-рсллнзатора. Доступ к группе входов обеспечивают подключение. Имея подключение к группе входов, кластер может послать сообщение любому входу в этой группе. Подключения могут передаваться как параметры между клиперами. Для образования подключения и собственной группе входов иу&но выполнить примитив ПОДКЛЮЧИТЬ.

Обращение ко входу кластера (пршштин КЛОС ПОСЛАТЬ) приводит к тому, 41 о сообщение ставится в очередь ко входу, которая поддерживается ядром в Х|к>нологическом порядке.

Чтобы получить сообщение, кластср-реалнэатор должен выполнить примитив ПРИПЯТЬ.

Па основе примитивов ПОСЛАТЬ и ПРИНЯТЬ в КЛОС реализуются синхронный н асинхронный вызовы операций. В главе 2 приводятся примеры вызова удаленной процедуры в КЛОС, асинхронного вызова операции в кластер«* и параллельном |>аботы вызывающего кластера до получения обратных параметров к другие примеры.

Для эффективной Передачи между кластерами больших масс ивов данных' в КЛОС введено понятие сегмен та. Сегмент является массивом данных, который мо^ст быть открыт в виртуальной пвмятн кластера (примитив КЛОС ОТКРЫТЬ) и закрыт в виртуальной памяти (примитив ЗАКРЫТЬ). Ка&дын пимент в КЛОС имеет уникальный идентификатор, который мол,ет быть передан и сообщении. При этом сегмент тимгичся из виртуальной памяти передающею кластера н может быть открыт в памяти принимающею кластера. При :лом никакой переписи cet мента не происходит, н передама «»« ушествляетсл простой сменой приписки. Реализация m меню» в КЛОС cjiuecгвенно опирается на страничную opiamnauuto памяти ЭВМ.

Кластеры в КЛ()С имеют входной и выходной интерфейс, которые описываются с использованием классов операций. Класс операций содср-

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

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

Также как и кластер, подсистема имеет набор входных и выходных разъемов, которые определяют ее интерфейс. Связи в подсистеме образуются в результате соединения входных и выходных разъемов компонентов. Каждый выходной разъем мо;хст быть замкнут на один и только один входной разъем компонента подсистемы, либо на один пз выходных разъемов подсистемы. На каждый входной разъем может быть замкнуто несколько выходных разъемов- компонентов. Процесс замыкания связей называется компоновкой подсистемы.

Подсистема является основным структурирующим элементом КЛОС. Все прикладные программы, а также сама операционная система КЛОС являются подсистемами.

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

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

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

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

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

Ядро КЛОС выполняет семь общих примитивов — ПОСЛАТЬ, ПРИПЯТЬ, ПОДКЛЮЧИТЬ, ОТКЛЮЧИТЬ, ДУБЛИРОВАТЬ, ОТКРЫТЬ, ЗАКРЫТЬ, а также несколько привилегированных — MAC-. КИРОВАТЬ, ПРИСОЕДИНИТЬ, ОТСОЕДИНИТЬ. В третьей главе описаны параметры примитивов и возвращаемые значения.

Управление щиннсгорои в ядре КЛОС основывается на локальных приоритетах подсистем и кластеров. На процессор выбирается кластер с максимальным вектор-приоритетом, то есть каждый локальный приоритет роденсгемы, встречающейся при движении от вершины дерева к кластгру является максимальным ср''ди множества готовых к выполнению подсистем и КЛа<:Т1'|и>и.

Яд]м> КЛОС реализован» на ЭВМ "Электроиика-8Г>п и перенесено на рабочую станцию "Ьгста-68". Кроме того, в рамках отладочной кросс-систсмы ядро работает под .управлением ОС UNIX System V на ЭВМ "Беста-88". Удалось так реализовать яд|ю КЛОС в ОС UNIX, что кластеры, работающие на базе -«ого ядра могут без пе|М!Компиляшш работать с яд|юм КЛОС на "голой" ЭВМ. Это относится ко всем прикладным кластерам и к класгерам операционной системы за исключением драйвера устройств. Таким образом почт вся отладка системы КЛОС может происходить в ОС UNIX.

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

Кластер распределения памяти (КРП) является привилегированным кластером, который занимается созданием п уничтожением сегментов а системе. В данной версии КЛОС КРП также занимается распределением физической памяти ЭВМ. КРП выполняет операции создания, уничтожения, расширения и копирования сегментов.

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

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

Необходимость в разделении загрузчика па упиверсалышй п файловый вызвана тем, что файловая подсистема КЛОС в ответ па открытие файла динамически создает кластер-файл. При этом пелъзя пользоваться файловым загрузчиком, ток как он сам пользуется файловой системой. Вместо этого файловая система КЛОС использует универсальный загрузчик.

Ядро КЛОС не обрабатывает самостоятельно прерывания от внешних устройств. При появлении прерывания ядро выполняет примитив ПОСЛАТЬ соответствующему драйверу устройства. Соответствие векторов прерываний и драйверов задастся при конфигурации системы. В настоящее время имеются драйверы дисков, терминала н таймер.

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

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

В пятой глам описан один ю возможных путей эмуляции ядра ОС UNIX в виде обычной подсистемы KJIOC. Эта подсистема выполняет базовый набор системных вызовов ОС UNIX, включая fork и exec. На базе этой подсистемы работал интерпретатор командного языка shell. Таким образом осуществляется совместимость с ОС UNIX на уровне исходных текстов.

Шестая глава содержит ^которые замечания о мобильности системы KJIOC, исходя из оаф& переноса KJIOC с 16-тв разрядной ЭВМ "Электроннка-85" на 32 разрядную рабочую станцию "Беста-88". Ядро КЛОС оказалось весьма мобильным за исключением примитивов управления виртуальной памятью. Нижний уровень системы также был перенесен очень легко. Заново была написаны только драйверы устройств.

*

ЗАКЛЮЧЕНИЕ

Основными результатами работы, пыносямымп па защиту, являются:

1. Исследованы принципы построения ОС на основе дальнейшего развития объектно-орнептпрованного подхода — кластерной технологии. Базовым объектом п этой технологии является асипхроппо выполняющийся объект — кластер, со своим неразделяемый адресный пространством, и взаимодействующий с другими кластерами посредством вызова операпнй, Вызов операции осуществляется путем передала сообщений.

2. Разработана новая архитектура ОС. Выделен минимальный уровень ядра ОС, обеспечивающий реализацию всех остальных функций ОС па уровне базовых объектов — кластеров. Такая архитектура обеспечивает: асннхронпость работы, инкапсуляцию данных г* -аноту доступа:: операциям всех кластеров, п том числе и всех компонентов ОС; мобильность ОС; масштабируемость ОС.

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

4. Разработаны и реализованы ядро л компоненты базового уро*т ОС КЛОС, работающие как непосредственно на аппаратуре ЭВМ "Электроника 85" и рабочей станции БЕСТА, так и п инструментальной кросс-снстеме в среде ОС UNIX на рабочей станции БЕСТЛ. Разработана и апробирована технология переноса базового уровня КЛОС с одной ЭВМ па другую.

Основные результаты, диссертации изложены н следующих публикациях:

1. Бурдонов И.Б., Копытов Г.В., Косачев A.C., Кузнецов СЛ., Смирнов Ю.П., Юдин В.II. КЛОС: операционная ¿истома и технология программирования. В сб. "Вопросы кибернетики. Программное обеспечение высокопроизводительных систем". М: изд-no ИСК АН СССР, 1980, с.34-57

2. Бурдонов И.Б., Копытоп Г.В., Кузнецов С.Д. Структуризация асинхронных программ в кластерной операционной системе. В eG. "Машинно-независимые операционные системы". М: нзд-во МЦНТИ, 1987, с.85-87

3. Бурдонов И.Б., Иванншшэ В.П., Косачев A.C., Копытов Г.В., Куэ-шщоз С.Д. Принципы организации KJIOC — кластерной операционной системы. Програшшровавие., 1990, N 6, с.66-80

4. Копытов Г.В. Реализация среды ОС UNIX в кластерной операцв-т одной системе KJIOC. Тезисы докладов 1-й Ежегодной конференции Советской ассоциации пользователей операционной системы UNIX, 29 окт — 2 нояб. 1990, Москва, с.28-29

5. Копытов Г.В., Лешко В.И., Смирнов Ю.П. Реализация кластерной операционной системы ва ЭВМ Электрониха-85. В сб. "Вопросы кибернетики. Программное обеспечение высокопроизводительных систем". М: изд-во ИСК АН СССР, 1991, с.45-58

6. Берсэнн Е.Г., Бурдонов И.Б., Гайсарян С.С., Копытов Г.В., Косачев A.C., Кузнецов С.Д. Основные концепции системы программирования К Л ОС. В сб. "Вопросы кибернетики. Программное обеспечение высокопроизводительных систем". М: изд-во НСК АН СССР, 1991, с.З-24

7. Бсрсзнн Е.Г., Бурдонов И.Б., Гайсарян С.С., Копытов Г.В., Косачев A.C., Кузиецов С.Д. Система программирования КЛОС: язык СИ-К ДОС. Веб. " Вопросы кибернетики. Программное обеспечение высокопроизводительных систем". М: изд-во НСК АН СССР, 1991, с.25-44

8. Burdonov I., Ivannikov V., Kopytov G., Kosachev A., Kuznetsov S. The CLOS Projcct : Towards an Object-Oriented Environment for Application Development. Lccture Notes in Computer Scicnce, V.504 : "Next Generation Information System Technology"., Springer-Verlag, 1991, pp.422427