УДК 681.324
С. А. Зинкин
СЕТИ АБСТРАКТНЫХ МАШИН ВЫСШИХ ПОРЯДКОВ В ПРОЕКТИРОВАНИИ СИСТЕМ И СЕТЕЙ ХРАНЕНИЯ И ОБРАБОТКИ ДАННЫХ (БАЗОВЫЙ ФОРМАЛИЗМ И ЕГО РАСШИРЕНИЯ)
Рассматриваются проблемы интеграции формальных представлений распределенных процессов и объектов, взаимодействующих через общее структурированное пространство памяти. Предложен новый формализм для описания согласованных взаимодействий процессов и объектов в системах и сетях хранения и обработки данных, базирующийся на декларативном и процедурном подходах к представлению знаний о функционировании распределенных систем.
Введение
К настоящему времени разработан ряд технологий проектирования распределенных вычислительных систем, в том числе распределенных систем управления базами данных, систем управления промышленными объектами. Принципы построения программного обеспечения нередко скрыты от пользователя. Однако в последнее время наметилась тенденция создания такого сетевого программного обеспечения, в котором стираются грани между сетевой операционной системой, распределенной системой управления базой данных и распределенным приложением, а проект должен быть видим разработчику на всех этапах. Основным направлением решения поставленной задачи, расширяющим функциональность и улучшающим эксплуатационные характеристики проектируемой системы, является использование современных объектно- и агентно-ориентированных технологий и связанных с ними технологий согласования и координации объектов и процессов. На основе использования формальных методов в проектировании систем согласования и координации объектов и процессов в настоящей работе делается попытка создания методологии, которая позволила бы упростить переход к реализациям механизмов непосредственно исполняемых спецификаций систем хранения и обработки данных. Поставленная задача может быть решена путем создания сетевой операционной среды, адекватной решаемой задаче, т.е. сетевому приложению. Подобная среда должна обеспечить как обработку неструктурированной информации, так и выполнение операций над базами данных.
Определение базового формализма
При обсуждении принципов построения распределенных систем хранения и обработки данных рассматривается ряд парадигм, определяющих оригинальные методологии их логического проектирования. Среди известных принципов наиболее распространены нисходящее проектирование, функциональная декомпозиция, объектно-ориентированное программирование. Для концептуального представления принципов организации распределенных систем с целью выработки единых в концептуальном плане подходов в настоящей работе предлагается использовать формализм
сетей абстрактных машин, берущих свое начало от машин Колмогорова-Успенского-Шёнхаге [1-3] и Гуревича [4, 5]. При определении декларативной составляющей формализма используется понятие алгебраических систем (в смысле работ [6-9]) и логик высших порядков [10], а для представления процедурной составляющей используются некоторые элементы алгебры алгоритмов Глушкова [11, 12], в частности операции а-дизъюнкции и а-итерации для всюду определенных условий.
Сеть абстрактных машин (СеАМ), или эволюционирующая многоосновная алгебраическая система (ЭМАС), определяется следующим набором:
N = ( Al,..., An, X, F& Fob, РС, ^ОЫ 1 (t ), 1 (t0 ),X , F , Р , J ,^a,U F,U P, M,
^Top, ^Cop, L, ^Lop, ^, B, , ^update, M1 test, Mblock, , M'MB, Ml, C, Q,Q^), (1)
где \,..., An - непустые непересекающиеся множества (основы), на которых определены множества функций и предикатов, имена которых составляют «текущую» (с изменяющейся, или эволюционирующей, в процессе функционирования сети интерпретацией I(t) функциональных и предикатных символов) и «статическую» (с неизменной интерпретацией) сигнатуры;
A = [A^ ..., An} - множество основ;
£ = Fc U Fob U Pc U Pob = F U P - каузально-объектная сигнатура (F = Fc U Fob, P = Pc U Pob);
FC - множество «каузальных» функций;
Fob - множество «объектных» функций;
Pc - множество «каузальных» предикатов;
Pob - множество «объектных» предикатов;
I(t), t > t0 - текущая интерпретация функциональных и предикатных символов, составляющих сигнатуру Z ;
I(t0), t0 > 0 - начальная интерпретация функциональных и предикатных символов, составляющих сигнатуру Z ;
Y! = F' U Р' - статическая сигнатура (с не изменяемой в процессе функционирования СеАМ-интерпретацией функциональных символов из множества F' и предикатных символов из множества Р');
J - интерпретация функциональных символов из множества F' и предикатных символов из множества Р';
Ца: (ZUZ')^{1,2,..., na} - отображение арности, где na = const; в
процессе функционирования СеАМ арности функций и предикатов остаются неизменными;
U р - множество элементарных обновлений функций, сопоставленных функциональным символам из Z ;
UP - множество элементарных обновлений предикатов, сопоставленных предикатным символам из Z ;
U = Uр U ир - система образующих алгебры модулей;
M - множество модулей СеАМ, реализующих локальные преобразования (обновления) текущей интерпретации I(t) сигнатуры Z; под модулем
подразумевается СеАМ-выражение, не содержащее свободных вхождений предметных переменных;
йТор - система темпоральных операций вида юТор! M X M ^ M, принимающих значения в множестве модулей M;
йСор - система дополнительных операций вида юСор! L X M X M ^ M
и юСор: LXM ^ M («управляющих конструкций» СеАМ), принимающих
значения в множестве модулей М;
L - множество логических условий;
^Ьор - система логических операций вида юрср L X L ^ L и
юЬор: L ^ L, принимающих значения в множестве логических условий L;
Ф - множество атомарных формул (атомов) - система образующих алгебры логических условий;
B - множество блоков СеАМ;
Пв - множество операций, выполняемых в блоках модулей СеАМ; Ц^а1е : M ^ Р(Е) \0 - отображение, сопоставляющее каждому модулю подмножество функций и предикатов, которые им модифицируются, Р -символ булеана;
ц 1ек1: M ^ Р(Е) \0 - отображение, сопоставляющее каждому модулю подмножество функций и предикатов, которые им проверяются;
цЬ1оск : M ^ Р(Е) \0 - отображение, сопоставляющее каждому модулю подмножество функций и предикатов, с которыми оперирует данный модуль, причем
(в общем случае для корректной работы сети функции и предикаты, с которыми оперирует конкретный модуль, должны быть временно заблокированы в целях недопущения нежелательных взаимоблокировок конкурирующих модулей);
му блоку подмножество совместимых элементарных обновлений сигнатуры Е;
Цмв : M ^ Р(B) \0 - отображение, сопоставляющее каждому модулю СеАМ подмножество реализуемых им блоков;
ц L : M ^ Р(L) \0 - отображение, сопоставляющее каждому модулю подмножество проверяемых им логических условий;
С - отношение каузации, представленное областью истинности одноименного предиката. Этот предикат определяется следующим образом:
('^m ^ M )(МЫоск ) M'update (m )и M'test (гп ))
цв : B ^ Р([/р У Uр) \0 - отображение, ставящее в соответствие каждо-
С (г-, mj ) Рі^ег ( ^'^update ( ( ), ( mj ) ) ,
где
если
если
Для сети N может быть дополнительно задана следующая пара множеств:
15
Q - множество предикатов вида q: M ^ [true, false}, характеризующих рабочее или нерабочее состояние модулей из множества M; данные предикаты не могут модифицироваться никакими модулями и используются только в формулах логических условий из множества L для проверки фактов исполнения некоторых модулей в текущий момент времени;
W- множество предикатов вида w: M ^ [true, false}, используемых для «внешнего» или «внутреннего» управления текущей конфигурацией сети N: в процессе функционирования сети из нее могут исключаться некоторые модули либо они снова могут подключаться к сети; такие манипуляции с сетью могут осуществляться модулями с помощью включаемых в блоки правил обновления предикатов из множества W.
Примечание. Для удобства при описании операционной семантики сетей в дальнейшем мы будем использовать понятие 5-пространства, объединяющего в одно множество S = F и Р множества функций F и предикатов Р. Для используемых в логико-алгебраических моделях функций вида
f : A-1х Ai2 X...X Ain ^ Aj
и предикатов вида
p: A-1х А'2х...х An ^ {true, false}
введем дополнительно следующие (статические) функции:
fa (q) - функция арности предикатного или функционального символа q ;
оf (f), оp (p) - функции типов функционального f или предикатного p символов соответственно (в многосортных или многоосновных системах тип n-арного предикатного символа - это кортеж (, -2,..., in, j), а тип n -арного предикатного символа - это кортеж ((, -2,..., in), где -1, -2,..., in, j -названия (сорта) для основ или носителей);
ni (p) - функция проекции по i -й предметной переменной в области истинности n -арного предиката p ;
afp (f) - функция, ставящая в соответствие n -арной функции f (n +1) -арный предикат p .
Рассматриваемые нами абстрактные машины отличаются от других тем, что их память состоит не из элементарных ячеек, а из некоторых структур.
Известно, что при изучении алгебраических систем становится возможным сочетать как алгебраические, так и логические понятия и методы. При этом рассматривается язык L (F, Р), алфавит которого содержит счетное число переменных xi, Х2,...,xn,... функциональные символы из F , предикатные символы из Р, символ равенства, логические связки, кванторы всеобщности и существования. Формулы и термы составляются по известным в многосортном исчислении предикатов первого и высших порядков [6-10] правилам. Отличительной особенностью предлагаемого формализма является использование термов вида
(!xе X)(х), (!!xе X)(x), (\/xе Xjp(x), !!xе Xjp(x) (2)
в блоках и в а -выражениях модулей СеАМ (т.е. в записи формул для логических условий в операциях а -дизъюнкции и а -итерации). Назовем данные операторы квантифицированными операторами выбора кортежей из областей истинности п -арных (п > 1) предикатов. Например, в случае применения введенных операторов к бинарным предикатам соответствующие термы будем записывать в следующем виде:
(3!хє X, у є У )(х, у), (3!!хє X, у є У )(х, у),
(х є X, у є У ) (х, у), (!! х є X, у є У ) (х, у).
Рассмотрим группу термов (2). Результатом выполнения оператора 3! является единственное значение предметной переменной х, выбранное произвольным образом из области истинности унарного предиката р . Оператор
3!! выбирает значение х при условии, что оно является единственным в области истинности унарного предиката р . Оператор V позволяет выбрать все значения переменной х из области истинности предиката р. Оператор V!! выбирает все значения переменной х из области истинности предиката р при условии, что эта область совпадает с областью определения данного предиката. Выбранные значения для обоих операторов составляют результирующие унарные отношения.
Одноименные операторы в термах, заданных выражениями (3), выполняют аналогичные действия над бинарными предикатами. В результате вычисления термов (3! х є X, у є У ) (х, у) и (3!! х є X, у є У ) (х, у) находятся по одному кортежу, а результатами вычисления термов (\/хє X, у є У) д(х, у) и (!!хє X, у є У )(х, у) являются отношения.
Результаты вычисления термов обеих групп используются в блоках согласованных обновлений интерпретации сигнатуры Е. Аналогично определяются и п -арные квантифицированные операторы выбора.
В термах вида (2), если это специально оговорено, переменная х может пробегать по кортежам некоторого п-арного отношения, представленного областью истинности соответствующего предиката. Для выбора і -го элемента кортежа х в этом случае необходимо использовать операцию проекции ргі (х), і = 1,2,..., п .
Ю. Гуревичем [4, 5] предложено использовать в машинах абстрактных состояний специальные операции - элементарные обновления функций и предикатов. Элементарное правило обновления функции или предиката запишем в виде правила вывода
І1, %2,..., , ік+і (4)
^ (, ?2,..., Ь ) — гк+1
где ^, ?2,..., ^ - термы различных сортов, в том числе термы, определенные выражениями (2); 5 - функциональный или предикатный символ.
В случае если 5 - функциональный символ, гк+1 - суть терм любого сорта, а если 5 - предикатный символ, то гк+1 - булево выражение.
Расширение базового формализма
В отличие от модели Ю. Гуревича, мы допускаем использование в блоках согласованных обновлений операций реляционной алгебры, рассматривая каждое алгебраическое выражение как функцию, которая отображает множество отношений в одно отношение (отношения определены областями истинности одноименных предикатов с именами из Z). Символы операторов реляционной алгебры в нашем случае являются сокращающими символами для обозначения множества согласованных обновлений интерпретации сигнатуры Z. Другим отличием является возможность использования элементов исчисления предикатов высших порядков.
В отличие от обычных термов, используемых в многоосновном исчислении предикатов, значения термов с квантифицированными операторами выбора 3!, 3!!, V , V!! не всегда могут быть вычислены, т.е. не удается осуществить выбор ни одного кортежа из области истинности некоторого предиката. В этом случае будем считать, что данный оператор выполняет
«тождественное» обновление R , т.е. он не вносит ни одного изменения в интерпретацию сигнатуры Z. Дадим попутно еще одно определение модуля как замкнутого выражения в алгебре модулей, все вхождения переменных в котором связаны обычными кванторами или квантифицированными операторами выбора.
Дополним сигнатуру Z выражениями следующего вида:
Ф,: D хDh х...х Dit ^ Diktl,
^j : Dji хDj х...хDj ^{true, false},
где символами Dq с соответствующими индексами обозначены множества Aq е A или булеаны P(Aq), q = 1,2,..., n . Подобное дополнение позволяет
более компактным образом представлять групповые связи между объектами в логико-алгебраических моделях дискретных систем.
Для обеспечения возможности изменения групповых связей множества правил U р и Up обновления интерпретации текущей сигнатуры Z необходимо дополнить правилами вида (4), где значениями некоторых термов могут быть элементы булеанов множеств Aq е A, q = 1, 2,..., n .
Данное расширение СеАМ особенно удобно использовать для спецификации групповых операций, выполняемых в сетях хранения и обработки данных. Для таких сетей характерны операции, затрагивающие множество узлов, сообщений, каналов передачи данных, баз данных.
Основные виды сетей абстрактных машин
Выражения для модулей абстрактных машин предлагается использовать в качестве основы для создания системы исполняемых спецификаций, реализуемых аппаратно или программно в сетевой среде. В зависимости от характеристик среды реализации сетевого приложения может быть выбрана различная сложность заданных с помощью формализма СеАМ спецификаций. В этой связи определим следующие разновидности СеАМ.
1. СеАМ I рода. В выражениях для модулей не используются квантифицированные операторы выбора; в блоках допускается лишь одна темпоральная операция «|» (возможно одновременное выполнение согласованных элементарных правил обновления интерпретации сигнатуры ЭМАС); йТор = ^, т.е. в явной форме темпоральные операции не вводятся (вместо
них определены каузальные (причинно-следственные) связи модулей через общую часть интерпретации сигнатуры Е); множество операций ^Сор содержит единственную тернарную операцию из алгебры алгоритмов Глушко-ва - « а -дизъюнкцию» вида Ор±: Ь х М х М ^ М .
2. СеАМ II рода. В отличие от сетей СеАМ I рода, здесь в выражениях для модулей могут использоваться квантифицированные операторы выбора.
3. СеАМ III рода отличаются от СеАМ II рода тем, что в блоках модулей разрешены 3 операции: упомянутая ранее операция «|», операция « Т » -непосредственное следование правил обновления интерпретации сигнатуры, и операция « Ь » неодновременного выполнения правил. Для удобства чаще будем использовать упрощенные обозначения для указанных в предыдущем предложении темпоральных операций: «,», «;» и «:» соответственно.
Во всех трех предыдущих разновидностях СеАМ темпоральные операции используются лишь в блоках, причем в блоках разрешено применение только элементарных правил обновления интерпретации сигнатуры Е и реляционных операторов. Использование выражений общего вида для модулей в блоках не допускается.
4. СеАМ IV рода допускают использование квантифицированных операторов выбора, множество ^тор содержит набор темпоральных операций. Данный набор при необходимости может быть расширен. Далее,
=^Т0р и^Сор, т.е. в блоках допустимы темпоральные и дополнительные операции над модулями в полном объеме. Множество ^Сор содержит, помимо а -дизъюнкции, бинарную операцию « а -итерация» из алгебры алгоритмов Глушкова: Ор2 : Ь х М ^ М. СеАМ IV рода назовем «расширенными» или «развитыми» (РСеАМ).
Использование основных идей из алгебры алгоритмов Глушкова, например суперпозиций темпоральных и дополнительных операторов, позволяет естественным образом проектировать сложные иерархические расширенные сети абстрактных машин (ИРСеАМ). В этой связи имеет смысл выделить два класса сетей абстрактных машин. В относительно простых сетях первого класса подсети, или модули РСеАМ, начиная с тривиальных подсетей - элементарных обновлений интерпретации текущей сигнатуры, составляющих систему образующих, участвуют в операциях однократно. В сложных сетях второго класса допускается многократное участие указанных подсетей - модулей РСеАМ в произвольных суперпозициях подсетей. В обоих случаях формируются иерархические сети.
В дальнейшем будет часто использоваться общая аббревиатура СеАМ для обозначения технологии или реализации сетей, если это не противоречит контексту; там же, где следует различать конкретные виды выражений, описывающих сети абстрактных машин, будем использовать аббревиатуры СеАМ, РСеАМ и ИРСеАМ.
На основании изложенного дадим следующие определения для сетей СеАМ и РСеАМ.
Определение 1. Модуль сети называется п -арным, если выражение, которым он описан, содержит по крайней мере один п -арный предикатный или функциональный символ, входящий в локальную сигнатуру этого модуля и других предикатных и функциональных символов более высокой арности нет.
Определение 2. Сеть называется п -арной, если она содержит по крайней мере один п -арный модуль и других модулей более высокой арности нет.
Определение 3. Сеть называется семафорной (унарной), если она содержит только унарные модули.
Определение 4. Сеть имеет п -й порядок, если при описании по крайней мере одного модуля используется логика п -го порядка и логика более высоких порядков не используется.
Определение 5. Сеть является п -сортной, или п-основной, если |А| = п,
где А - множество основ (основных множеств).
Определение 6. Модуль - это абстрактная СеАМ(РСеАМ)-машина, интерпретирующая замкнутое СеАМ(РСеАМ)-выражение (выражение, не содержащее свободных предметных переменных) и модифицирующая локальные функции и предикаты, составляющие текущую интерпретацию некоторого подмножества символов из сигнатуры Е .
Определение 7. Сеть называется сетью первого класса, если при ее формировании допускается лишь однократное участие ее компонент в операциях из ПТор и ^С0р и (темпоральных операциях из множества ПТор ,
дополнительных операциях из множества ^Сор и блочных операциях из
множества Пв).
Определение 8. Сеть называется сетью второго класса, если при ее формировании допускается многократное участие подсетей в заданных операциями ПТор , Пс0р и Пв в произвольных суперпозициях подсетей.
Примечание. Определения 1-6 относятся к сетям СеАМ, а определения 1-8 - к сетям РСеАМ.
Сети абстрактных машин и логика высших порядков
Выше рассмотрены сети абстрактных машин, выражения для модулей которых основаны на исчислении первого порядка. Кванторы в таком исчислении и введенные нами квантифицированные операторы выбора могут связывать только предметные переменные, но не могут связывать функторы или предикаты. В логике предикатов второго порядка дополнительно вводятся переменные, пробегающие по признакам индивидов - их свойствам и отношениям между ними. Данные переменные можно связывать кванторами, получая выражения вида (Ур е Р)А - «для всякого свойства р верно, что А», (Зг е Р)А - «существует отношение г такое, что А». В логике предикатов третьего порядка используется квантификация по признакам признаков индивидов и т.д. [10].
Расширим выразительные возможности формализма СеАМ путем допущения квантификации по признакам и признакам признаков индивидов, что позволяет осуществить более гибкое управление взаимодействием моду-
лей через общую сигнатуру Z . Например, при реализации модуля СеАМ ВП (высшего порядка)
тВП = [(3!хе X) р(х)]([(3!у е Y) q(у)] ([(3!5 е 2) s(x, у)]
({... s(х, у) ^ false...} v Re ) v )E) v )E)
сначала выбирается некоторое значение х, предметной переменной х из области истинности унарного предиката р , затем аналогичным образом выбирается значение уj предметной переменной у. На последнем этапе интерпретации выражения (5) в сигнатуре Z отыскивается такое отношение s , что имеет место s (x-, у j), а затем в блоке модуля (запись в фигурных скобках) эта связь между объектами x- и у j аннулируется. В выражении (5) три
оператора «подчеркивания» подразумеваются по умолчанию, т.к. логические а -выражения (а -условия) содержат только подчеркнутые термы. Поскольку в выражении (5) первые два квантифицированные оператора выбора не зависят друг от друга, выражение (5) может быть записано в следующем эквивалентном виде:
твп = [(3!xе X) р(х)&(3!у е Y)q(у)~|([(3!s е 2)s(x, у)]
|{... s(x, у) ^ false...} v Re jv Re ).
В последнем выражении (6) операторы «_» позволяют «сформировать» пару атомарных формул, объединенных в первое а -условие символом конъюнкции. На выполнение операций поиска значений предметных переменных x и у операторы «_» не влияют.
Выводы
1. На основе интеграции формальных представлений распределенных процессов и объектов, взаимодействующих через общее структурированное пространство памяти, предложен новый формализм для описания согласованных взаимодействий процессов и объектов, базирующийся на декларативном и процедурном подходах к представлению знаний о функционировании распределенных систем.
2. Данный формализм может быть положен в основу технологии проектирования распределенных систем хранения и обработки данных, а сами формальные представления могут непосредственно интерпретироваться в узлах вычислительной сети.
3. Предложен алгебраический подход к определению операционной семантики распределенных систем хранения и обработки данных, основанный на описании данных систем сетями абстрактных машин, при определении которых используется логика предикатов высших порядков. Данный подход дает возможность построения сложных иерархических сетей абстрактных машин и при необходимости позволяет использовать мощные аппараты алгебры алгоритмов и эволюционирующих алгебраических систем.
Список литературы
1. Gurevich, Y. On Kolmogorov machines and related issues. The logic in computers science column / Y. Gurevich // Bulletin of Europian Assoc. for Theor. Comp. Science. -1998. - № 35. - Р. 71-82.
2. Dexter, S. Gurevich abstract state machines and Shonhage storage modification machines / S. Dexter, P. Doyle, Y. Gurevich // Journal of Universal Comp. Science. -1997. - V. 3. - № 4. - Р. 279-303.
3. Григорьев, Д. Ю. Алгоритмы Колмогорова сильнее машин Тьюринга / Д. Ю. Григорьев // Зап. науч. семинаров Ленинград. отд. матем. ин-та АН. - 1979. -№ 88. - С. 15-18.
4. Gurevich, Y. Evolving Algebras 1993: Lipari Guide, Specification and Validation Methods, ed. E. Borger / Y. Gurevich // Oxford University Press. - 1995. - P. 9-36.
5. Gurevich, Y. Draft of the ASM Guide / Y. Gurevich // University of Michigan EECS Department Technical Report CSE-TR-336-97. - 1997. - May. - P. 1-27.
6. Плоткин, Б. И. Универсальная алгебра, алгебраическая логика и базы данных / Б. И. Плоткин. - М. : Наука, 1991. - 448 с.
7. Плесневич, Г. С. Логические модели / Г. С. Плесневич // Искусственный интеллект : в 3-х кн. Кн. 2. Модели и методы : справочник / под ред. Д. А. Поспелова. -М. : Радио и связь, 1990. - С. 14-28.
8. Ершов, Ю. Л. Математическая логика / Ю. Л. Ершов, Е. А. Палютин. - М. : Наука, 1979. - 320 с.
9. Артамонов, В. А. Общая алгебра / В. А. Артамонов, В. Н. Салий, Л. А. Скорняков [и др.]. - М. : Наука, 1991. - 480 с.
10. Маркин, В. И. Логика предикатов / В. И. Маркин // Новая философская энциклопедия : в 4-х т. - М. : Мысль, 2000. - 2 т.
11. Глушков, В. М. Алгебра. Языки. Программирование / В. М. Глушков, Г. Е. Цейтлин, Е. Л. Ющенко. - Киев : Наукова думка, 1978. - 320 с.
12. Глушков, В. М. Методы символьной мультиобработки / В. М. Глушков, Г. Е. Цейтлин, Е. Л. Ющенко. - Киев : Наукова думка, 1980. - 252 с.