Известия высших учебных заведений. Поволжский регион
УДК 681.324
В. И. Волчихин, А. В. Дубравин, С. А. Зинкин
АБСТРАКТНЫЙ И СТРУКТУРНЫЙ СИНТЕЗ РАСПРЕДЕЛЕННЫХ СИСТЕМ ОБРАБОТКИ ДАННЫХ НА ОСНОВЕ МУЛЬТИПАРАДИГМАЛЬНОГО ПОДХОДА1
Аннотация.
Актуальность и цели. Объектом исследования являются распределенные системы обработки данных, работа которых основана на новых принципах, названных в статье парадигмами. Предметом исследования являются вопросы абстрактного и структурного проектирования распределенных сетевых приложений на основе логико-алгебраического подхода и некоторых методов искусственного интеллекта. Цель работы - совершенствование методов проектирования распределенных приложений на основе концептуальных, логических и логико-алгебраических моделей, положенных в основу новой гибридной технологии распределенного программирования.
Результаты. Главным результатом работы является то, что предлагаемые методы позволяют разрабатывать распределенные приложения для обработки данных, соответствующие некоторой формальной спецификации. Для реализации распределенных приложений обработки данных выбраны методы, не требующие специальных синтаксических примитивов при организации параллелизма в распределенных системах. Описание и поддержка параллелизма в распределенных системах осуществляется средствами, реализуемыми на основе перехода от первоначальных концептуальных представлений процессов, базирующихся на правилах вывода и концептуальных графов, к непосредственному программированию путем прямого использования логикоалгебраических выражений в качестве формализованных спецификаций.
Выводы. Сопоставление описательных возможностей двух моделей распределенных вычислений позволило сделать вывод о том, что новая гибридная модель распределенной обработки данных в большей степени соответствует сетевой среде и отличается от известных тем, что в ней передача управления осуществляется путем передачи сообщений через сетевое инфокоммуникаци-онное пространство, а функциональные связи реализуются через структурированное виртуальное пространство памяти, что во многих случаях ускоряет обработку данных. Предложенные новые концептуальные, логические и логикоалгебраические модели распределенных вычислений в системах с гибридной архитектурой, которые отличаются от известных тем, что они относятся к классу непосредственно исполнимых (реализуемых), применение которых позволяет снизить трудозатраты при создании распределенных сетевых приложений.
Ключевые слова: распределенная обработка данных, концептуальные, логические и логико-алгебраические модели, мультипарадигмальный подход, виртуальное пространство, управляющие и функциональные межмодульные связи.
1 Работа выполнена в рамках федеральной целевой программы «Исследования и разработки по приоритетным направлениям развития научно-технического комплекса России на 2014-2020 годы» (Соглашение № 14.574.21.0045 от 19.06.14, UIN: RFMEFI57414X0045).
60
University proceedings. Volga region
№ 1 (33), 2015 Технические науки. Информатика, вычислительная техника
V. I. Volchikhin, A. V. Dubravin, S. A. Zinkin
ABSTRACT AND STRUCTURAL SYNTHESIS OF DISTRIBUTED SYSTEMS OF DATA PROCESSING ON THE BASIS OF THE MULTIPARADIGM APPROACH
Abstract.
Background. The research object is the distributed systems of data processing, the functioning of which is based on new principles called paradigms in the article. The research subject is the problems of abstract and structural design of distributed network applications on the basis of the logic-algebraic approach and some methods of artificial intelligence. The aim of the works is to improve the design methods of distributed applications on the basis of conceptual, logical and logic-algebraic models, forming the base of a new hybrid technology of distributed programming.
Results. The main result of the study is that the suggested methods allow to develop distributed application for data processing, corresponding to a certain formal specification. For realization of distributed application of data processing the authors chose the methods that require no special syntactical primitive elements at organizing parallelism in distributed systems. Description and support of parallelism in distributed systems is provided by the means, realized on the basis of the transition from primary conceptual representations of the processes, based on the rules of output and conceptual graphs, to the direct programming through the direct use of logic-algebraic expressions in the form of formalized specifications.
Conclusions. Comparison of descriptive potentials of two models of distributed calculations allowed to conclude that the new hybrid model of distributed date processing to a large extent corresponds to a network environment and differs from the existing ones by the fact that the transfer of control is executed by transmission of messages through the network infocommunicative environment, and functional links are realized through the structured virtual memeory space, which in many cases accelerates data processing. The authors suggested new conceptual, logical and logic-algebraic models of distributed calculations in systems with hybrid architecture that differ from the existing ones by its’ relation to the class of the directly executed (realized) ones, the application of which allows to lower labor expenditures in the process of distributed network application creation.
Key words: distributed data processing, conceptual, logical and logic-algebraic models, multiparadigm approach, virtual space, control and functional intermodule links.
Введение
Для того чтобы распределенное приложение соответствовало выбранной разработчиком парадигме, на начальных стадиях проекта целесообразно использовать концептуальные модели и логические модели искусственного интеллекта. Под парадигмой здесь подразумевается та или иная концепция, выбранная для программного решения, например: принцип организации связей между процессами, способ именования и синхронизации процессов, подход к распределению объектов и согласованию их функционирования. В распределенном программировании известны, например, агентно-ориентированная парадигма, парадигма классной доски, парадигма пространства кортежей и отношений и др.
Например, в работах [1, 2] использован неформализованный архитектурный подход к параллельному и распределенному программированию
Engineering sciences. Computer science, computer engineering and control
61
Известия высших учебных заведений. Поволжский регион
с акцентом на определении естественного параллелизма в самих задачах, что отражается в программных моделях решений. В настоящей работе архитектурный подход основан на представлении структурных связей между компонентами, предикатами и функциями, а вычислительные процессы представляются каузально связанными модулями, работа которых задается выражениями в логике предикатов первого порядка.
Обычно используемые логико-алгебраические модели описывают некоторые свойства программного обеспечения и редко дают точное представление о том, за счет чего они изменяются; различие между логическими и алгебраическими моделями условно: в логических моделях изучаются суждения о свойствах предметной области, а в алгебраических моделях большее внимание уделяется термам и операциям [3-5].
Такие модели, как, например, автоматы и сети Петри, относятся к исполнимым операционным моделям [6-8]. К подобным моделям отнесем также системы алгоритмических алгебр (САА) В. М. Глушкова [9, 10] и машины абстрактных состояний (МАС) Ю. Гуревича [11, 12]. В САА под состоянием понимается состояние информационного множества, а в МАС - состояние абстрактного пространства предикатов и функций, т.е. текущая интерпретация предикатных и функциональных символов. Промежуточное положение между логико-алгебраическими и исполнимыми моделями занимают логики Ч. Хоара [13] и программные логики [14].
Из теории САА для дальнейшего использования в данной работе выбраны нотации операций а-дизъюнкции и а-итерации для всюду определенных логических условий, а также операция композиции операторов, а из теории МАС - абстракция пространства памяти и операции изменения его состояний путем модификации интерпретации предикатных и функциональных символов. Такой выбор был впервые осуществлен в работах [15, 16]. Подобную модель мы отнесем к «непосредственно исполнимым», подразумевая под этим тот факт, что составление логико-алгебраических выражений является последним этапом перед интерпретацией кодированием программных модулей на каком-либо языке программирования.
Новизна результатов, полученных в данной главе, связана с тем, что будут получены формализованные логико-алгебраические спецификации для распределенных систем с генеративной связью (так называемые Linda-подобные системы Д. Джелернтера [17-19]), систем с ориентацией на передачу сообщений и, главное, гибридных систем, использующих положительные особенности первых двух систем. Полученные формализованные логикоалгебраические спецификации позволят унифицировать представление распределенных операторных сетей и в существенной степени упростить их реализацию в виде приложений, исполняемых в сетевой распределенной среде.
1. Операторные сети для определения и формализации гибридной парадигмы распределенных вычислений
В области теоретического программирования изучаются следующие традиционные направления [20, 21]: математические основы программирования; теория схем программ (схематология); семантическая теория программ; теория вычислительных процессов и структур (теория параллельных вычислений); решение прикладных задач теоретического программирования. Цен-
62
University proceedings. Volga region
№ 1 (33), 2015 Технические науки. Информатика, вычислительная техника
тральным понятием современной теории программирования является схема программы. Из операторных схем, используемых для описания программ, выберем схемы, определенные С. С. Лавровым.
Определение 1 [22]. Последовательная операторная схема (ПОС) определена как пятерка (U, X, A, R, T), где U = {«SO, Sb S2, ..., Sm} - множество операторов; X = {х0, x1, x2, ..., xn} - множество переменных; A с XX U- отношение «быть аргументом»; R с U X X - отношение «иметь результатом»; T с U X U - отношение между оператором-предшественником и оператором-преемником, т.е. множество возможных переходов, реализующих связи по управлению.
Заметим, что в определение ПОС в явном виде не входит множество логических условий. Данное определение для сосредоточенных операторных схем программ без параллелизма, основанное на теоретико-множественном подходе, удобно использовать для последующего перехода к определению и описанию принципов построения распределенной и, возможно, параллельной операторной сети (РОС).
В основу нового определения главным образом будут положены особенности сетевой инфокоммуникационной среды, в которой программные модули для операторов, размещенные на удаленных друг от друга узлах сети, при передаче управления используют модель передачи сообщений, а при обработке данных (возможно, структурированных) - виртуальное общее структурированное пространство памяти.
Рисунок 1,а иллюстрирует выбранную абстракцию среды реализации распределенных операторных сетей. В коммуникационной среде реализуются связи операторов по управлению путем передачи сообщений, причем каждый оператор при выполнении предписанных ему операций использует общее виртуальное пространство памяти VS (рис. 1,б) по принципу, впервые реализованному в системе параллельного программирования Linda [17] и развитому в [23, 24] и др. Построение такой среды на абстрактном уровне может быть представлено выделением из «генеративных» связей несвязных по времени и по ссылкам процессов связей между процессами-предшественниками и процессами-последователями и последующей реализацией этих связей явно, путем передач управляющих сообщений. Такой подход позволит сократить затраты времени на организацию управления в распределенной среде и использовать развитое программное обеспечение промежуточного уровня (message oriented middleware), ориентированное на обмен сообщениями в распределенном окружении.
При обработке же данных реализуемые операторами процессы будут вести себя аналогично процессам в Linda-подобной системе, коллективно используя структурированное пространство кортежей. Отличие предлагаемой модели вычислений будет заключаться в том, что связи по управлению будут осуществляться не через виртуальное пространство памяти, а через коммуникационную среду, что значительно ускорит работу сетевых приложений. Функциональные связи, или связи по данным, будут реализовываться через VS-пространство. Тем не менее формализованное описание инфокоммуника-ционных процессов и процессов обработки данных мы будем выполнять на общей логико-алгебраической основе.
Engineering sciences. Computer science, computer engineering and control
63
Известия высших учебных заведений. Поволжский регион
СоРУ Take
б)
Рис. 1. Абстракция среды реализации распределенных операторных сетей (а) и иллюстрация выполнения операций в виртуальном пространстве памяти (б)
Отношения, представленные в определении 1, мы будем далее задавать областями истинности одноименных предикатов. Будут также изменены некоторые имена математических объектов.
Определение 2. Распределенная операторная сеть (РОС, или DON -
distributed operator net) задается кортежем
DON = (S, X, Y, Op, Depl, Comm, Arg, Oper, Res, Trans, Work,
VS, L, Q, Form, CG, Rules, M), (1)
где
S = {s0, s1, ..., sm} - множество операторов;
X = {x0, x1, ..., xn} - множество элементов данных (переменных, массивов, списков, кортежей, отношений);
Y = {y0, y1, ..., yk} - множество вершин (узлов) графа связей инфоком-муникационной среды передачи данных;
64
University proceedings. Volga region
№ 1 (33), 2015 Технические науки. Информатика, вычислительная техника
Op = {Op0, Op\, Opq} - множество конкретных операций или блоков
операций;
Depl: S ^ Y - функция развертывания операторов в инфокоммуникаци-онной среде;
Comm: Y X Y ^ {true, false} - бинарный предикат связности узлов ин-фокоммуникационной среды;
Arg: S XX^ {true, false} - бинарный предикат «являться аргументом»;
Oper: S X Op ^ {true, false} - бинарный предикат «конкретизация оператора»;
Res: S XX ^ {true, false} - бинарный предикат «являться результатом»;
Trans: S X S ^ {true, false} - бинарный предикат, описывающий связи по управлению между операторами;
Work: S ^ {true, false} - унарный предикат, задающий состояния выполнения операторов;
VS - виртуальное структурированное пространство памяти;
L = {Put, Take, Copy} - множество операций, связанных с абстрактным пространством виртуальной структурированной памяти VS;
Q: S ^ {true, false} - унарный предикат, сохраняющий значения a-условий после выполнения операторов из множества S;
Form: S ^ {true, false} - унарный предикат, определяющий сформиро-ванность условий Q(si) после выполнения соответствующих операторов si е S, i = 0, 1, ..., m;
CG - множество концептуальных графов для описания семантики операторов;
Rules - множество правил выполнения операторов;
M - множество абстрактных модулей, описанных логико-алгебраическими выражениями, специфицирующими работу операторов РОС.
Далее для предикатов Trans и Form для краткости будут также использоваться сокращенные имена T и F соответственно.
Данное определение обладает некоторой избыточностью и включает понятия, необходимые или рекомендуемые для проектирования приложения по распределенной операторной сети. Определение дано для РОС, выполняющихся в абстрактной среде, представленной на рис. 1. Это определение не включает операторы распараллеливания ветвей вычислений, а также разветвления вычислительных процессов на число ветвей, больших двух. Однако понятий, связанных с определением 2, будет достаточно и для формализованных спецификаций указанных дополнительных операторов.
При составлении логико-алгебраических выражений для модулей из множества M мы будем использовать элементы систем алгебраических алгебр В. М. Глушкова [9, 10], например, операции a-дизъюнкции и a-итерации для всюду определенных логических условий, а также специальные виды операторов - тождественный оператор E и нигде не определенный, или невозможный, оператор N. Так, при реализации выражения [a](A v B) и при истинном значении условия a реализуется оператор A, а при ложном - B. В САА определена некоммутативная и ассоциативная операция умножения (последовательная композиция) операторов A*B, которая в данной работе обозначается как «*». Известно, что множество операторов является полугруппой,
Engineering sciences. Computer science, computer engineering and control
65
Известия высших учебных заведений. Поволжский регион
а E и N играют роль единицы и нуля этой полугруппы соответственно: A * E = E * A = A ; A * N = N * A = N.
В рамках предлагаемой в работе гибридной технологии распределенного программирования оператор E мы будем интерпретировать как пустой оператор, а оператор N - как недопустимый оператор. Введем дополнительный оператор R (Return) «возврата». При реализации модулем m выражения m = [a](A v R) при ложном значении условия а управление передается оператору R, который возвращает модуль m к повторной проверке условия а. Это действие повторяется до тех пор, пока условие а ложно. Как только условие а станет истинным, будет выполнен оператор A. При выполнении «возврата» оператор R инициирует обновление условия а путем установления связи с каким-либо другим вычислительным процессом - локальным или сетевым, запрашивая и ожидая от него ответного значения а.
Далее используются абстрактные модули, реализующие выражения r = M(A v E) и 5 = M(A v N). Модулем вида r при истинном а выполняется оператор A, а при ложном - пустой оператор E. На практике это означает, что при ложном значении а модуль r не выполняет никаких действий. Модулем вида s при истинном а выполняется оператор A, а при ложном - нигде не определенный, или невозможный, оператор N, что возможно интерпретировать как возникновение ошибочной ситуации, приводящей к остановке процесса.
2. Сетевая интерпретация логико-алгебраических выражений
Реализация выполнения операторов в распределенной инфокоммуни-кационной среде тесно связана также с реализацией «синхронизатора» и близких к нему механизмов «спусковой функции» и «операции ожидания», известных в параллельном и распределенном программировании: «синхронизатор, установленный в некотором месте параллельной регулярной схемы, осуществляет задержку вычислений в данном месте схемы вплоть до момента, когда его условие синхронизации (сопряженное с прохождением соответствующих контрольных точек) станет истинным» [10]. Соответствующее абстрактному модулю вида m = M(A v R) применение «синхронизатора» дано ниже. Продолжая определять гибридную технологию, рассмотрим работу модуляр, реализующего следующее логико-алгебраическое выражение:
р = [Trans(Sh Sj)]([Trans(Sh S)^false; Sp Trans(Sj, Sk)^true] v R),
где Sj - оператор, который должен быть выполнен на узле yq вычислительной сети, т.е. Depl(Sj) = yq; Sj - оператор, передающий управление оператору Sj по сети; Trans - бинарный предикат, описывающий причинно-следственные связи между операторами РОС, т.е. истинность высказывания Trans(St, Sj) означает, что передано управление оператору Sj от оператора S. При ложном значении высказывания Trans(St, Sj) в модуле р управление передается оператору возврата R, который переводит модуль в режим ожидания истинности высказывания Trans(Sj, Sj) путем опроса входных портов данного сетевого узла либо, проявляя активность, запрашивает значение этого высказывания, отправляя соответствующее служебное сообщение. При получении истинного значения высказывания Trans(S, Sj), т.е. после успешной передачи управления
66
University proceedings. Volga region
№ 1 (33), 2015 Технические науки. Информатика, вычислительная техника
оператору Sj от оператора S,, в модуле p выполняются действия, описанные в фигурных скобках. Сначала выполняется модификация предиката Trans: Trans(S, Sj)^false для предотвращения повторного запуска модуля. Далее выполняется оператор Sj, а затем путем модификации бинарного предиката Trans: Trans(Sj, Sk)^true управление передается оператору Sk. Точками с запятыми в фигурных скобках обозначены операции конкатенации, или умножения, операторов.
Сетевую интерпретацию абстрактного модуля p, принимающего управление от оператора Sj, затем выполняющего оператор Sj и, наконец, передающего управление оператору Sk, можно задать явно в следующем виде, используя функцию Depl:
p'= [Trans(Depl(Sj), Depl(Sj))]({Trans(Depl(Sj), Depl(S/))^false; Sj;
Trans(Depl(Sj), Depl(Sk))^true] v R),
что соответствует методу реализации передачи управления через коммуникационную среду для случая, когда всем программным модулям известны адреса размещения операторов, которым передается управление.
3. Операции, связанные с виртуальным TS-пространством, и особенности передачи управления в гибридной модели
Связи по управлению. В распределенной Linda-подобной системе управление может быть передано через виртуальное VS-пространство следующим образом. Пусть, например, модуль r, реализующий оператор Sr, собирается передать управление модулю q, реализующему оператор Sq. Модуль r выполняет модификацию предиката Trans(Sr, Sq) ^ true, что соответствует помещению кортежа <“Trans”, “Sr”, “Sq”> в виртуальное пространство VS. Модуль q, готовый к приему управления, отыскивает в VS-пространстве одноименный кортеж “Trans”, второй элемент которого равен “S”, а третий -“Sq”. В логико-алгебраической модели этот ассоциативный поиск соответствует проверке истинности высказывания Trans(Sr, Sq) соответствующим модулем q. Такая передача управления требует значительных затрат времени и не всегда оправдана. Поэтому при помощи определения 2 нами сформулировано предложение по использованию гибридного варианта распределенной технологии, когда связи по управлению реализуются через коммуникационное пространство, а функциональные связи - через VS-пространство.
В дальнейшем, когда в логико-алгебраических выражениях не будет явно использоваться функция Depl, будут специально оговариваться методы передачи управления - с использованием явной адресации модулей (или операторов) с последующей передачей управляющих сообщений либо с использованием ассоциативного поиска нужного кортежа в VS-пространстве.
Функциональные связи. Рассмотрим множество операций L = {Put, Take, Copy}, связанных с абстрактным VS-пространством виртуальной структурированной памяти. Описанные выше действия по организации связей по управлению могут быть реализованы при помощи этих операторов. Перейдем теперь к рассмотрению реализации функциональных связей и свяжем формальное описание работы программных модулей с операциями из множества L. В логико-алгебраической модели операциям Put, Take и Copy поставлены в соответствие одноименные бинарные предикаты Put, Take и Copy, значения
Engineering sciences. Computer science, computer engineering and control
67
Известия высших учебных заведений. Поволжский регион
которых могут модифицироваться (для различения имен будем использовать курсив). Рассмотрим выполнение операции Put. В формальной модели операция размещения элемента данных d в VS-пространстве при выполнении программного модуля для оператора St отмечается модификацией предиката Put(Sj, d)^true, а модификация Put(Sb d)^false соответствует завершению операции размещения. В реальной системе этой модификации соответствует размещение в VS-пространстве кортежа <“d", Val(d)>, где в кавычки заключено имя d элемента данных (переменной, кортежа или отношения), а в качестве второго элемента указывается значение Val(d) этого элемента (значение переменной, конкретный кортеж или конкретное отношение). Поскольку VS-пространство является виртуальным, кортеж можно «хранить» в нем постоянно, если в него добавить третий элемент - логическую константу true или false и хранить этот кортеж в следующем виде: <“d", Val(d), true>. Значению true в качестве третьего элемента кортежа будет соответствовать его виртуальное «наличие» в VS-пространстве, а false - его «отсутствие». Теперь модификации бинарного предиката Take(S, d) ^ true будет соответствовать последующее состояние кортежа <“d”, Val(d), false>, означающее его виртуальное «изъятие» из VS-пространства. После выполнения модификации бинарного предиката Copy(S, d) ^ true имя “d" и значение Val(d) будут скопированы, если третьим элементом кортежа было true, при этом состояние самого кортежа <“d”, Val(d), true> осталось прежним.
Если вторым элементом кортежа является Ref(d), т.е. кортеж имеет вид <“d”, Ref(d), true>, то это означает, что указано не значение d, а ссылка на место (адрес) хранения этого значения в сети. Мнемонику операций Put, Take и Copy дополняет рис. 1,б.
В силу неинтерпретированности модели определенных кортежем распределенных операторных сетей при реализации распределенного сетевого приложения программист может выбирать удобную сетевую технологию программирования, ориентированную на распространенные модели взаимодействия: удаленный вызов процедур, удаленное обращение к методам, ориентированный на сообщения промежуточный уровень и потоки данных, описанные, например, в работе [2]. Для связи посредством сообщений возможно, например, использовать следующие примитивы для интерфейса сокетов: Socket, Bind, Listen, Accept, Connect, Send, Receive, Close; для другой распространенной модели - интерфейса передачи сообщений MPI, для высокоскоростных взаимодействующих сетей используются примитивы: MPI_bsend, MPI_send, MPI_ssend, MPI_sendrecv, MPI_isend, MPI_issend, MPI_recv, MPI_irecv [2]. Естественно, при передаче информации по сети задействованы стеки сетевых протоколов, например, стек TCP/IP.
Назначение и обоснование использования других введенных в определении 2 понятий будут даны на последующем примере.
4. Логико-алгебраическое описание
распределенных операторных сетей
В качестве показательного полнофункционального примера, иллюстрирующего все основные особенности построения и формализации РОС, рассмотрим задачу перехода от сосредоточенной операторной схемы (рис. 2) из работы [22, рис. 3 на стр. 211] к ее распределенному варианту в виде РОС.
68
University proceedings. Volga region
№ 1 (33), 2015 Технические науки. Информатика, вычислительная техника
Операторная схема, представленная на рис. 2, построена в соответствии с определением 1 для следующего фрагмента сосредоточенной программы из [22], записанной на псевдокоде:
Read(m, n, a, b);
i := j := k := 1 №}
C: if i > m then go to B; №}
if j > n then go to A; {S3}
if a[i] > b[j] then {S4}
B: begin c[k] := bj]; j :=j + 1 end {S5}
else
A: begin c[k] := a[i]; i := i + 1 end {S6}
k := k + 1; {S7}
if k <= m + n then go to C; №}
Write(c) {S9}
Данная программа позволит продемонстрировать многие особенности предлагаемой «гибридной» технологии распределенного программирования, основанной на предложенном определении распределенной операторной сети и концепции абстрактной среды для ее реализации.
Рассмотрим распределенную операторную сеть РОС-1 (SEQUENTIAL), построенную по операторной схеме, представленной на рис. 2). Логикоалгебраические выражения, описывающие связи по управлению, т.е. логику управления ходом выполнения операторов для РОС-1, имеют следующий вид:
Engineering sciences. Computer science, computer engineering and control
69
Известия высших учебных заведений. Поволжский регион
mS0 = [Start\([Start^false; S0; T(S0, S1)^true} v R);
msi = [T(So, S1)\({T(So, S^false; Si; T(SU S2)^true} v R);
mS2 = [T(Si, S2) v T(S8, S2)\({T(Si, S2)^false; T(S8, S2)^false; S2,
[6(S2)\(T(S2, S5)^true v T(S2, S3)^true)} v R);
mS3 = [T(S2, S2)\({T(S2, S3)^false; S3; [g(S2)\(T(S3, S4)^true v
T(S3, S6)^true)} v R);
mS4 = [T(S3, S4)\({T(S3, S4)^false; S4; [g(S4)\(T(S4, S5)^true v T(S4, S6)^true)} v R);
mS5 = [T(S2, S5) v T(S4, S5)\({T(S2, S5)^false; T(S4, S5)^false; S5;
T(S5, S7)^true} v R);
mS6 = [T(S3, S6) v T(S4, S6)\({T(S3, S6)^false; Щ4, S6)^false; S6;
T(S6, Si)^true} v R);
mS7 = [T(S5, S7) v T(S6, S7)\({T(S5, S7)^false; T(S6, S7)^false; S7;
T(S7, S8)^true} v R);
mS8 = [T(S7, S8)\({T(S7, Ss)^false; S8; S2)<^true v
T(S$, S9)^true)} v R);
mS9 = [T(S8, S9)\({T(S8, S9)^false; S9; Finish^true } v R).
Данные выражения описывают выполнение действий программно реализуемыми абстрактными модулями из множества M согласно определению 2 и в соответствии с операторной схемой РОС-1, реализуемой в распределенной среде с архитектурой, представленной на рис. 1.
5. Формализованные спецификации на основе концептуальных и логико-алгебраических представлений гибридных моделей распределенных систем
Для иллюстрации методики построения распределенного приложения рассмотрена операторная схема, представленная на рис. 2. Построение новых логико-алгебраических моделей в соответствии с определением 2 для новой распределенной операторной сети РОС-1* (DISTRIBUTED-DON) похоже на построение модели РОС-1 (SEQUENTIAL), но отличается от нее тем, что при составлении логических правил учтены соответствующие операторам концептуальные графы, а логико-алгебраические выражения (формализованные спецификации) строятся непосредственно по правилам. Главной же отличительной особенностью новых алгебраических выражений для модулей распределенного приложения здесь является учет особенностей работы со структурированным виртуальным US-пространством и со связанными с ним операциями Put, Take и Copy.
Для упрощения процесса создания распределенных приложений зададим правила использования виртуального пространства данных в виде формул в исчислении предикатов первого порядка. Операциям Put, Take и Copy поставим в соответствие одноименные бинарные предикаты Put(s, x), Take(s, x) и Copy(s, x), определенные на предметных переменных seS и xeX, где S и X - определенные ранее множества операторов и переменных соответственно. Эти же предметные переменные, как следует из определения 2 для сетей класса DON, определены также и для бинарных предикатов: ^rg(s, x) - x является аргументом для оператора s, Res(s, x) - x является результатом выполнения оператора s. Добавим к перечисленным предикатам унарные предика-
70
University proceedings. Volga region
№ 1 (33), 2015 Технические науки. Информатика, вычислительная техника
ты Work(s), Q(s) и Trans(s', s"), s' Ф s'', s'e S, s"e S. Истинность высказывания Work(si) свидетельствует о выполнении оператора sj. Значение высказывания Q(si) формируется по завершении выполнения оператора s; тот факт, что это значение сформировано, обозначим при помощи унарного предиката Form(s), seS. Так, истинность высказывания Form(s) будет означать, что истинное или ложное значение высказывания Q(s) сформировано по завершении выполнения оператора sj. Назначение бинарного предиката Trans(s', s") было дано в определении 2.
Правила для описания логики работы программного модуля, реализующего оператор S0 в распределенной среде, представим в виде следующих формул:
Start з Work(S0);
Work(S0) & —Arg(S0, m) & Res(S0, m) & —Arg(S0, n) & Res(S0, n) &
& —Arg(S0, a) & Res(S0, a) & —Arg(S0, b) & Res(S0, b) з
з Oper(S0, Read(m, n, a, b));
Oper(S0, Read(m, n, a, b)) з Put(S0, m) & Put(S0, n) & Put(S0, a) &
&Put(S0, b);
Put(S0, m) & Put(S0, n) & Put(S0, a) & Put(S0, b) з Trans(S0, S^) &
& —Work(S0).
Приведенные формулы, каждая из которых содержит антецедент (посылку) и консеквент (заключение), связаны символом импликации. Истинность формул соответствует успешным завершениям конкретных действий в операторной сети. Логические выражения содержат атомарные константные формулы исчисления предикатов первого порядка и пропозициональную переменную Start. Антецеденты описывают условия, при которых возможно совершение дальнейших действий, а консеквенты описывают сами эти действия.
Дадим содержательное описание, предварявшее составление данных формул, представляющих логическую модель представления знаний о процессе выполнения оператора S0 при учете «накладных расходов» на его выполнение в распределенной среде.
Первая формула: после получения инструкции Start о начале работы операторной сети начинается работа по выполнению оператора S0, отмечаемая истинностью высказывания Work(S0).
Вторая формула: если работа по выполнению оператора S0 началась и операнды - переменные m, n и одномерные массивы a и b - должны быть результатами, но не являются аргументами при выполнении оператора, то на узле сети Depl(S0) = Y0 (здесь и далее значение унарной функции Depl согласно определению 2 должно соответствовать распределению операторов по узлам, заданному на рис. \,а; в распределенной программе это значение интерпретируется как адрес узла Y0) должна быть выполнена операция чтения Read(m, n, a, b), чему соответствует истинность высказывания Oper(S0, Read(m, n, a, b)).
Третья формула: после выполнения операции Read(m, n, a, b) значения или ссылки на переменные m, n и одномерные массивы a и b должны быть помещены в FS-пространство, т.е. после выполнения операции в данном пространстве должны находиться следующие кортежи:
Engineering sciences. Computer science, computer engineering and control
71
Известия высших учебных заведений. Поволжский регион
<“m”, Val(m), true>;
Val(n), true>;
<“a”, Val(a), true>;
<“b", Val(b), true>,
или, в случае хранения ссылок, кортежи:
<“m”, Ref(m), true>;
<“n”, Ref(n), true>;
<“a”, Ref(a), true>;
<“b", Ref(b), true>.
Факты присутствия данных кортежей в VS-пространстве подтверждаются в логической модели истинностью высказываний Put(S0, m), Put(S0, n), Put(S0, a) и Put(S0, b).
Четвертая формула: если результаты помещены в VS-пространство, то необходимо передать управление следующему оператору, т.е., как следствие, должно быть истинным высказывание Trans(S0, Si) и ложным высказывание Work(S0).
Рассмотренная логическая модель представления знаний о выполнении оператора S0 в распределенной среде имеет в основном декларативный характер, а процедурная составляющая здесь задана неявно. Хотя подобная модель полезна на ранних этапах проектирования программного продукта, обладая ясной формальной семантикой и операционной поддержкой в виде механизмов вывода, для непосредственного программирования такой модели недостаточно, так как она имеет высокий уровень абстракции и не относится к классу исполнимых (операционных) моделей. Для усиления процедурной составляющей модели представления знаний далее будет использоваться язык сетей абстрактных машин в интерпретации работ [15, 16].
Далее для новых выражений для модулей РОС-1* будут использоваться имена MSi вместо прежних имен в РОС-1 mSi, i = 0, 1, ..., 9. Логико-алгебраическое выражение (формализованная спецификация) для рабочей программы, реализующей модуль MS0 и построенное с учетом приведенных выше правил, имеет следующий вид:
MS0 = {[Start]([Start^false; Work(S0)^true] v R);
[Work(S0) & —Arg(S0, m) & Res(S0, m) & —Arg(S0, n) & Res(S0, n) &
& —Arg(S0, a) & Res(S0, a) & —Arg(S0, b) & Res(S0, b)]
(Oper(S0, Read(m, n, a, b))^true v N);
[Oper(S0, Read(m, n, a, b))](Put(S0, m)^true; Put(S0, n)^true;
Put(S0, a)^true; Put(S0, b)^true; Oper(S0, Read(m, n, a, b))^false v N); [Put(S0, m) & Put(S0, n) & Put(S0, a) & Put(S0, b)]({Put(S0, m)^false; Put(S0, n)^false; Put(S0, a)^false; Put(S0, b)^false;
Trans(Depl(S0), Depl(Sf)^true; Work(S0)^false] v N)}.
Данное выражение построено на основе операции a-дизъюнкции и композиции операторов. Операционная семантика задается операциями модификации предикатов. Присваивание значения true при этом соответствует началу определенной операции, а присваивание значения false - ее окончанию. Семантика операций соответствует предикатным именам. Данное выражение легко программируется, результатом чего является структурированный программный модуль.
72
University proceedings. Volga region
№ 1 (33), 2015 Технические науки. Информатика, вычислительная техника
Остальные концептуальные графы, правила и логико-алгебраические выражения для модулей распределенного приложения формируются таким же образом.
Правила для оператора :
Trans(S0, Si) з Work(S1);
Work(Si) & —Arg(S1, i) & —Arg(S1, j) & —Arg(S1, k) & Res(S1, i) &
& Res(S1, j) & Res(S1, k) з Oper(S1, {i:=j:=k :=1});
Oper(S1, {i:=j:=k:=1}) з Put(S1, i) & Put(S1, j) & Put(S1, k);
Put(S1, i) & Put(S1, j) & Put(S1, k) з Trans(S1, S2) & —Work(S1). Логико-алгебраическое выражение для модуля MS1:
MS1 = {\Trans(Depl(S0), Depl(S1))]({Trans(Depl(S0), Depl(S1))^false; Work(S1)^true} v R);
[Work(S1) & —Arg(S1, i) & —Arg(S1, j) & —Arg(S1, k) & Res(S1, i) &
& Res(S1, j) & Res(S1, k)](Oper(S1, {i:=j:=k :=1})^true v N);
\Oper(S1, {i:=j:=k:=1})]({Put(S1, i)^true; Put(S1, j)^true;
Put(S1, k)^true; Oper(S1, {i:=j:=k :=1})^false} v N);
\Put(S1, i) & Put(S1, j) & Put(S1, k)]({Put(S1, i)^false; Put(S1, j)^false; Put(S1, k)^false; Trans(Depl(S1), Depl(S2))^true; Work(S1) ^false} v N)}. Правила для оператора S2:
Trans(S1, S2) v Trans(S8, S2) з Work(S2);
WorkS) & Arg(S2, i) & —Res(S2, i) з Copy(S2, i);
Work(S2) & Arg(S2, m) & —Res(S2, m) з Copy(S2, m);
Copy(S2, i) & Copy(S2, m) з Oper(S2, QS) := i > m);
Oper(S2, QS) := i > m) з FormS);
Form(S2) & Q(S2) з Trans(S2, S5) & —Work(S2);
Form(S2) & —Q(S2) з Trans(S2, S3) & —Work(S2).
Логико-алгебраическое выражение для модуля MS2:
MS2 = {\Trans(Depl(S1), Depl(S2)) v Trans(Depl(S8), Depl(S2))] ({Trans(Depl(S1), Depl(S2))^false; Trans(Depl(S8), Depl(S2))^false; Work(S2)^true} v R);
\Work(S2) & Arg(S2, i) & —Res(S2, i)](Copy(S2, i)^true v N);
\Work(S2) & Arg(S2, m) & —Res(S2, m)](Copy(S2, m)^true v N);
[Copy(S2, i) & Copy(S2, m)](Oper(S2, QS) := i > m)^true v N);
[Oper(S2, Q(S2) := i > m)](Form(S2)^true v N);
\Form(S2)]({Copy(S2, i)^false; Copy(S2, m)^false;
Oper(S2, Q(S2) := i > m)^false; Form(S2)^false;
\Q(Si)]({Trans(Depl(S2), Depl(S))^true;
Work(S2)^false} v {Trans(Depl(S2), Depl(S3))^true;
Work(S2)^false})} v N)}.
Правила для оператора S3:
Trans(S2, S3) з Work(S3);
WorkS) & Arg(S3, j) & —Res(S3, j) з Copy(S3, j);
Work(S3) & Arg(S3, n) & —Res(S3, n) з Copy(S3, n);
Copy(S3, j) & Copy(S3, n) з Oper(S3, QS) :=j > n);
Oper(S3, Q(S3) :=j > n) з FormS);
Form(S3) & Q(S3) з Trans(S3, S4) & —Work(S3);
Form(S3) & —Q(S3) з Trans(S3, S6) & —Work(S3).
Engineering sciences. Computer science, computer engineering and control
73
Известия высших учебных заведений. Поволжский регион
Логико-алгебраическое выражение для модуля MS3:
Mss = {[Trans(Depl(S2), Depl(S3))]
({Trans(Depl(S2), Depl(S3))^false; Work(S3)^true} v R);
[Work(S3) & Arg(Ss, j) & -Res(Ss, j)](Copy(Ss, j)^true v N);
[Work(S3) & Arg(S3, n) & —Res(S3, n)](Copy(S3, n)^true v N);
[Copy(Ss, j) & Copy(Ss, n)](Oper(Ss, Q(Ss) :=j > n)^true v N);
[Oper(S3, Q(S3) :=j > n)](Form(S3)^true v N);
[Form(S3)]({Copy(S3, j)^false; Copy(Ss, n)^false;
Oper(S3, Q(S3) :=j > n)^false; Form(S3)^false;
[Q(S3)]({Trans(Depl(S3), Depl(S4))^true;
Work(S3)^false] v{Trans(Depl(S3), Depl(S6))^true;
Work(S3)^false})} v N)}.
Правила для оператора S4:
Trans(S3, S4) з Work(S4);
Work(S4) & Arg(S4, i) & —Res(S4, i) з Copy(S4, i);
Work(S4) & Arg(S4, a) & —Res(S4, a) з Copy(S4, a);
Work(S4) & Arg(S4, j) & —Res(S4, j) з Copy(S4, j);
Work(S4) & Arg(S4, b) & —Res(S4, b) з Copy(S4, b);
Copy(S4, i) & Copy(S4, a) & Copy(S4, j) & Copy(S4, b) з з Oper(S4, QS) := a[i] > b[j]);
Oper(S4, Q(S4) := a[i] > b[j]) з Form(S4);
Form(S4) & Q(S4) з Trans(S4, S5) & —Work(S4);
Form(S4) & —Q(S4) з Trans(S4, S6) & — Work(S4).
Логико-алгебраическое выражение для модуля MS4:
MS4 = {[Trans(Depl(S3), Depl(S4))]
(Trans(Depl(S3), Depl(S4))^false; Work(S4)^true} v R);
[Work(S4) & Arg(S4, i) & —Res(S4, i)](Copy(S4, i)^true v N);
[Work(S4) & Arg(S4, a) & —Res(S4, a)](Copy(S4, a)^true v N);
[Work(S4) & Arg(S4, j) & —Res(S4, j)](Copy(S4, j)^true v N);
[Work(S4) & Arg(S4, b) & —Res(S4, b)](Copy(S4, b)^true v N);
[Copy(S4, i) & Copy(S4, a) & Copy(S4, j) & Copy(S4, b)]
(Oper(S4, Q(S4) := a[i] > b[j])^true v N);
[Oper(S4, Q(S4) := a[i] > b[j])](Form(S4)^true v N);
[Form(S4)]({Copy(S4, i)^false; Copy(S4, a)^false; Copy(S4, j)^false; Copy(S4, b) ^false; Oper(S4, Q(S4) := a[i] > b[j])^false; Form(S4)^false; [Q(S4)]({Trans(Depl(S4), Depl(S5))^true;
Work(S4)^false} v{Trans(Depl(S4), Depl(S6))^true;
Work(S4)^false})} v N)}.
Правила для оператора S5:
Trans(S2, S5) v Trans(S4, S5) з Work(S5);
WorkS) & Arg(S5, k) & —Res(S5, k) з Copy(S5, k);
Work(s5) & Arg(S5, j) & Res(S5, j) з Take(S5, j);
WorkS) & Arg(S5, b) & —Res(S5, b) з Copy(S5, b);
Copy(S5, k) & Take(S5, j) & Copy(S5, b) з з Oper(S5, {c[k] := b[j]; j :=j + l});
Oper(S5, {c[k] := b[j]; j :=j + 1}) з Put(S5, c) &Put(S5, j);
Put(S5, c) & Put(S5, j) з Trans(S5, S7) & —Work(S5).
74
University proceedings. Volga region
№ 1 (33), 2015 Технические науки. Информатика, вычислительная техника
Логико-алгебраическое выражение для модуля MS5:
MS5 = {[Trans(Depl(S2), Depl(S5)) v Trans(Depl(S4), Depl(S5))] (Trans(Depl(S2), Depl(S5))^false; Trans(Depl(S4), Depl(S5))^false; Work(S5)^true} v R);
[Work(S5) & Arg(S5, k) & —Res(S5, k)](Copy(S5, k)^true v N);
[Work(S5) & Arg(S5, j) & Res(S5, j)](Take(S5, j) ^true v N);
[Work(S5) & Arg(S5, b) & —Res(S5, b)](Copy(S5, b)^true v N);
[Copy(S5, k) & Take(S5, j) & Copy(S5, b)]
({Oper(S5, {c[k] := bj; j :=j + 1})^true; Copy(S5, k)^false;
Take(S5, j)^false; Copy(S5, b)^false} v N);
[Oper(S5, {c[k] := b[j]; j :=j + 1})]({Put(S5, c)^true; Put(S5, j)^true}v N); [Put(S5, c) & Put(S5, j)]({Put(S5, c)^false; Put(S5, j)^false;
Oper(S5, {c[k] := bj; j :=j + 1})^false; Trans(Depl(S5), Depl(S7))^true; Work(S5)^false} v N)}.
Правила для оператора S6:
Trans(S3, S6) v Trans(S4, S6) з Work(S6);
Work(S6) & Arg(S6, k) & —Res(S6, k) з Copy(S6, k);
Work(S6) & Arg(S6, i) & Res(S6, i) з Take(S6, i);
Work(S6) & Arg(S6, a) & —Res(S6, a) з Copy(S6, a);
Copy(S6, k) & Take(S6, i) & Copy(S6, a) з з Oper(S6, {c[k] := a[i); i := i + 1});
Oper(S6, {c[k] := a[i]; i := i + 1}) з Put(S6, c) & Put(S6, i);
Put(S6, c) & Put(S6, i) з Trans(S6, S7) & —Work(S6). Логико-алгебраическое выражение для модуля MS6:
MS6 = {[Trans(Depl(S3), Depl(S6)) v Trans(Depl(S4), Depl(S6))] ({Trans(Depl(S3), Depl(S6))^false;
Trans(Depl(S4), Depl(S6)) ^false; Work(S6)^true} v R);
[Work(S6) & Arg(S6, k) & —Res(S6, k)](Copy(S6, k)^true v N);
[Work(S6) & Arg(S6, i) & Res(S6, i)](Take(S6, i)^true v N);
[Work(S6) & Arg(S6, a) & —Res(S6, a)](Copy(S6, a)^true v N);
[Copy(S6, k) & Take(S6, i) & Copy(S6, a))
(Oper(S6, {c[k] := a[i]; i := i + 1})^true v N);
[Oper(S6, {c[k] := a[i]; i := i + 1})]({Copy(S6, k)^false; Take(S6, i)^false; Copy(S6, a)^false; Put(S6, c)^true; Put(S6, i)^true;
Oper(S6, {c[k] := a[i]; i := i + 1})^false} v N);
[Put(S6, c) & Put(S6, i)]({Put(S6, c)^false; Put(S6, i)^false;
Trans(Depl(S6), Depl(S7))^true; Work(S6)^false} v N)}.
Правила для оператора S7:
Trans(S5, S7) v Trans(S6, S7) з Work(S7);
Work(S7) & Arg(S7, k) & Res(S7, k) з Take(S7, k);
Take(S7, k) з Oper(S7, k := k + 1);
Oper(S7, k := k + 1) з Put(S7, k);
Put(S7, k) з Trans(S7, S8) & —Work(S7).
Логико-алгебраическое выражение для модуля MS7:
MS7 = {[Trans(Depl(S5), Depl(S7)) v Trans(Depl(S6), Depl(S7))] ({Trans(Depl(S5), Depl(S7))^false;
Engineering sciences. Computer science, computer engineering and control
75
Известия высших учебных заведений. Поволжский регион
Trans(Depl(S6), Depl(S7))^false; Work(S7)^true}v R);
[Work(S7) & Arg(S7, k) & Res(S7, k)](Take(S7, k)^true v N);
[Take(S7, k)](Oper(S7, k := k + \)^true v N);
[Oper(S7, k := k + l)](Put(S7, k)^true v N);
[Put(S7, k)]({Take(S7, k)^false; Oper(S7, k := k + V)^false;
Put(S7, k)^false; Trans(Depl(S7), Depl(S8))^true; Work(S7)^false} v N)}. Правила для оператора S8:
Trans(S7, S8) з Work(S8);
Work(S8) & Arg(S8, k) & —Res(S8, k) з Copy(S8, k);
WorkS) & Arg(S$, j) & —Res(S%, j) з Copy(S8, j);
Work(Sg) & Arg(S8, m) & —Res(S8, m) з Copy(S8, m);
Copy(S8, k) & Copy(S8, j) & Copy(S8, m) з Oper(S8, Q(S8) := k <= m + n); Oper(S8, Q(S8) := k <= m + n) з Form(S8);
Form(S8) & Q(S8) з Trans(S8, S2) & —Work(S8);
Form(S8) & —Q(S8) з Trans(S8, S9) & —Work(S8).
Логико-алгебраическое выражение для модуля MS8:
Ms8 = {[Trans(Depl(S7), Depl(Sg))]
({Trans(Depl(S7), Depl(S8))^false; Work(S8)^true} v R);
[Work(S8) & Arg(S8, k) & —Res(S8, k)](Copy(S8, k)^true v N);
[Work(Sg) & Arg(S8, j) & —Res(S8, j)](Copy(S8, j)^true v N);
[Work(S8) & Arg(S8, m) & —Res(S8, m)](Copy(S8, m)^true v N);
[Copy(S8, k) & Copy(S8, j) & Copy(S8, m)]
(Oper(S8, Q(S8) := k <= m + n)^true v N);
[Oper(S8, Q(S8) := k <= m + n)](Form(S8)^true v N);
[Form(S8)]({Copy(S8, k)^false; Copy(S8, j)^false; Copy(S8, m)^false; Form(S8)^false; Oper(S8, Q(S8) := k <= m + n)^false; [Q(S8)]({Trans(Depl(S8), Depl(S2))^true;
Work(S8)^false} v {Trans(Depl(S8), Depl(S9))^true;
Work(S8)^false})} v N)}.
Правила для заключительного оператора S9:
Trans(S7, S8) з Work(S9);
Work(S9) & Arg(S9, c) & —Res(S9, c) з Copy(S9, c);
Copy(S9, c) з Oper(S9, Write(c)) & —Work(S9) & Finish. Логико-алгебраическое выражение для модуля MS9:
[Trans(Depl(S7), Depl(S8))]({Trans(Depl(S7), Depl(S8))^false; Work(S9)^true} v R);
[Work(S9) & Arg(S9, c) & —Res(S9, c)](Copy(S9, c)^true v N);
[Copy(S9, c)]({Oper(S9, Write(c))^true; Work(S9)^false; Copy(S9,
c)^false;
Oper(S9, Write(c))^false; Finish^true}) v N)}.
Данные логико-алгебраические выражения построены непосредственно по правилам вывода и представляют собой формализованное описание, или спецификацию, некоторой абстрактной виртуальной машины. Такая модель уже относится к классу непосредственно исполнимых и представляет собой по существу программу для некоторой виртуальной машины. Спецификации, согласно одному из этапов применения «гибридной» технологии, должны
76
University proceedings. Volga region
№ 1 (33), 2015 Технические науки. Информатика, вычислительная техника
далее использоваться на практике при реализации соответствующего программного модуля и сводят простоту создания программного продукта до уровня семафорной техники. Элементы концептуального распределенного и параллельного программирования в сетях, а также примеры концептуальных графов для описания распределенных вычислений представлены в работах [25, 26].
Заключение
1. Предложена гибридная модель распределенной обработки данных в сетевой среде, отличающаяся от известных тем, что в ней передача управления осуществляется путем передачи сообщений через сетевое инфокомму-никационное пространство, а функциональные связи реализуются через структурированное виртуальное пространство памяти, что во многих случаях ускоряет обработку данных.
2. Формально определены распределенные операторные сети, причем в основу определения положены как известные теоретико-множественные понятия, так и понятия, связанные с использованием инфокоммуникационной среды и структурированным виртуальным пространством памяти, что в существенной степени облегчает составление и применение системы формализованных спецификаций для программных модулей, выполняемых в распределенной сетевой среде.
3. Формально определена операционная семантика распределенной модели вычислений, базирующаяся на концептуальном представлении выполняемых операций и логико-алгебраических моделях.
4. Предложены новые концептуальные, логические и логико-алгебраические модели распределенных вычислений в системах с гибридной архитектурой, отличающиеся от известных тем, что они относятся к классу непосредственно исполнимых (реализуемых), применение которых позволяет снизить трудозатраты при создании распределенных сетевых приложений.
Список литературы
1. Хьюз, К. Параллельное и распределенное программирование на C++ / К. Хьюз, Т. Хьюз. - М. : Вильямс, 2004. - 672 с.
2. Таненбаум, Э. Распределенные системы. Принципы и парадигмы / Э. Танен-баум, М. ван Стеен. - СПб. : Питер, 2003. - 877 с.
3. Ломакина, Л. С. Теория и практика структурного тестирования программных систем / Л. С. Ломакина, А. С. Базин, А. Н. Вигура, А. В. Киселев. - Воронеж : Научная книга, 2013. - 220 с.
4. Плесневич, Г. С. Логические модели / Г. С. Плесневич // Искусственный интеллект : справочник : в 3-х кн. Кн. 2. Модели и методы / под ред. Д. А. Поспелова. - М. : Радио и связь, 1990. - С. 14-28.
5. Курганский, В. И. Алгебраические преобразования программ и порождаемых ими отношений / В. И. Курганский // Системы управления и информационные технологии. - 2006. - № 3.1 (25). - С. 139-144.
6. Котов, В. Е. Сети Петри / В. Е. Котов. - М. : Наука, 1984. - 160 с.
7. Питерсон, Дж. Теория сетей Петри и моделирование систем / Дж. Питерсон. -М. : Мир, 1984. - 264 с.
8. Кулагин, В. П. Моделирование структур параллельных ВС на основе сетевых моделей / В. П. Кулагин. - М. : МИЭМ, 1998. - 102 с.
Engineering sciences. Computer science, computer engineering and control
77
Известия высших учебных заведений. Поволжский регион
9. Капитонова, Ю. В. Математическая теория проектирования вычислительных систем / Ю. В. Капитонова, А. А. Летичевский. - М. : Наука, 1988. - 296 с.
10. Глушков, В. М. Методы символьной мультиобработки / В. М. Глушков, Г. Е. Цейтлин, Е. Л. Ющенко. - Киев : Наукова думка, 1980. - 252 с.
11. Using Abstract State Machines at Microsoft: A Case Study / M. Barnett, E. Borger, Y. Gurevich, W. Schulte, M. Veanes // Abstract State Machines: Theory and Apps. -Springer LNCS, 2000. - P. 367-380.
12. Gurevich, Y. Formalizing database recovery / Y. Gurevich, N. Soparkar, C. Wallace // Journal of Universal Computer Science. - 1997. - Vol. 3, № 4 - P. 320-340.
13. Hoare, C. A. R. Communicating sequential processes / C. A. R. Hoare // Commun. ACM. - 1978. - Vol. 21, № 8. - P. 666-677.
14. Логика и компьютер. Моделирование рассуждений и проверка правильности программ / Н. А. Алешина, А. М. Анисов, П. И. Быстров. - М. : Наука, 1990. - 240 с.
15. Зинкин, С. А. Сети абстрактных машин высших порядков в проектировании систем и сетей хранения и обработки данных (базовый формализм и его расширения) / С. А. Зинкин // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2007. - № 3. - С. 13-22.
16. Зинкин, С. А. Сети абстрактных машин высших порядков в проектировании систем и сетей хранения и обработки данных (механизмы интерпретации и варианты использования) / С. А. Зинкин // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2007. - № 4. - С. 37-50.
17. Gelernter, D. Generative communication in Linda / D. Gelernter // ACM Computing Surveys. - 1985. - Vol. 7. - P. 80-112.
18. Ahuja, S. Linda and friends / S. Ahuja, N. Carriero, D. Gelernter // IEEE Computer. -1986. - Vol. 7.19 (8). - P. 26-34.
19. Официальный сайт Scientific Computing Associates, Inc. [Электронный ресурс]. -URL: http://www.lindaspaces.com. (дата обращения: 04.04.2015).
20. Котов, В. Е. Теория схем программ / В. Е. Котов, В. К. Сабельфельд. - М. : Наука, 1991. - 248 с.
21. Элементы параллельного программирования / В. А. Вальковский, В. Е. Котов, А. Г. Марчук, Н. Н. Миренков / под ред. В. Е. Котова. - М. : Радио и связь, 1983. -240 с.
22. Лавров, С. С. Программирование. Математические основы, средства, теория / С. С. Лавров. - СПб. : БХВ-Петербург, 2001. - 320 с.
23. Дейтел, Х. М. Технология программирования на Java 2. Кн. 2. Распределенные приложения / Х. М. Дейтел, П. Дж. Дейтел, С. И. Сантри. - М. : Бином-Пресс, 2003. - 464 с.
24. Wyckoff, P. Tspaces / P. Wyckoff // IBM System Journal. - 1998. - Vol. 37. -P. 454-474.
25. Дубравин, А. В. Элементы концептуального распределенного программирования в сетях / А. В. Дубравин, С. А. Зинкин // Университетское образование (МКУО-2015) : сб. ст. XIX Междунар. науч.-метод. конф. - Пенза : Изд-во ПГУ, 2015. - Т. 1. - С. 222-225.
26. Дубравин, А. В. Формальное определение гибридной модели распределенных вычислений в сетях / А. В. Дубравин, С. А. Зинкин // Университетское образование (МКУО-2015) : сб. ст. XIX Междунар. науч.-метод. конф. - Пенза : Изд-во ПГУ, 2015. - Т. 1. - С. 225-228.
References
1. Kh'yuz K., Kh'yuz T. Parallel’noe i raspredelennoe programmirovanie na C++ [Parallel and distributed C++ programming]. Moscow: Vil'yams, 2004, 672 p.
2. Tanenbaum E., M. van Steen Raspredelennye sistemy. Printsipy i paradigmy [Distributed systems. Principles and paradigms]. Saint-Petersburg: Piter, 2003, 877 p.
78
University proceedings. Volga region
№ 1 (33), 2015 Технические науки. Информатика, вычислительная техника
3. Lomakina L. S., Bazin A. S., Vigura A. N., Kiselev A. V. Teoriya i praktika strukturnogo testirovaniya programmnykh sistem [Theory and practice of structural testing of program systems]. Voronezh: Nauchnaya kniga, 2013, 220 p.
4. Plesnevich G. S. Iskusstvennyy intellekt: spravochnik: v 3-kh kn. Kn. 2. Modeli i metody [Artificial intelligence: reference book: in 3 books. Book 2. Models and methods]. Moscow: Radio i svyaz', 1990, pp. 14-28.
5. Kurganskiy V. I. Sistemy upravleniya i informatsionnye tekhnologii [Control systems and information technologies]. 2006, no. 3.1 (25), pp. 139-144.
6. Kotov V. E. Seti Petri [Petri nets]. Moscow: Nauka, 1984, 160 p.
7. Piterson Dzh. Teoriya setey Petri i modelirovanie sistem [Theory of Petri nets and system modeling]. Moscow: Mir, 1984, 264 p.
8. Kulagin V. P. Modelirovanie struktur parallel’nykh VS na osnove setevykh modeley [Modeling of parallel computing systems’ structures on the basis of network modeling]. Moscow: MIEM, 1998, 102 p.
9. Kapitonova Yu. V., Letichevskiy A. A. Matematicheskaya teoriya proektirovaniya vychislitel’nykh sistem [Mathematical theory of computing system design]. Moscow: Nauka, 1988, 296 p.
10. Glushkov V. M., Tseytlin G. E., Yushchenko E. L. Metody simvol’noy mul’tiobrabotki [Methods of symbol multiprocessing]. Kiev: Naukova dumka, 1980, 252 p.
11. Barnett M., Borger E., Gurevich Y., Schulte W., Veanes M. Abstract State Machines: Theory andApps. Springer LNCS, 2000, pp. 367-380.
12. Gurevich Y., Soparkar N., Wallace C. Journal of Universal Computer Science. 1997, vol. 3, no. 4, pp. 320-340.
13. Hoare C. A. R. Commun. ACM. 1978, vol. 21, no. 8, pp. 666-677.
14. Aleshina N. A., Anisov A. M., Bystrov P. I. Logika i komp’yuter. Modelirovanie rassu-zhdeniy i proverka pravil’nosti programm [Logic and computer. Modeling of reasoning and program verification]. Moscow: Nauka, 1990, 240 p.
15. Zinkin S. A. Izvestiya vysshikh uchebnykh zavedeniy. Povolzhskiy region. Tekhniches-kie nauki [University proceedings. Volga region. Engineering sciences]. 2007, no. 3, pp. 13-22.
16. Zinkin S. A. Izvestiya vysshikh uchebnykh zavedeniy. Povolzhskiy region. Tekhniches-kie nauki [University proceedings. Volga region. Engineering sciences]. 2007, no. 4, pp. 37-50.
17. Gelernter D. ACM Computing Surveys. 1985, vol. 7, pp. 80-112.
18. Ahuja S., Carriero N., Gelernter D. IEEE Computer. 1986, vol. 7.19 (8), pp. 26-34.
19. Scientific Computing Associates, Inc. Available at: http://www.lindaspaces.com. (accessed 4 April 2015).
20. Kotov V. E., Sabel'fel'd V. K. Teoriya skhem programm [Theory of program schemes]. Moscow: Nauka, 1991, 248 p.
21. Val'kovskiy V. A., Kotov V. E., Marchuk A. G., Mirenkov N. N. Elementy parallel’nogo programmirovaniya [Elements of parallel programming]. Moscow: Radio i svyaz', 1983, 240 p.
22. Lavrov S. S. Programmirovanie. Matematicheskie osnovy, sredstva, teoriya [Programming. Mathematical foundations, means, theory]. Saint-Petersburg: BKhV-Peterburg, 2001, 320 p.
23. Deytel Kh. M., Deytel P. Dzh., Santri S. I. Tekhnologiya programmirovaniya na Java 2. Kn. 2. Raspredelennye prilozheniya [Java 2 programming technology. Book 2. Distribution of applications]. Moscow: Binom-Press, 2003, 464 p.
24. Wyckoff P. IBM System Journal. 1998, vol. 37, pp. 454-474.
25. Dubravin A. V., Zinkin S. A. Universitetskoe obrazovanie (MKUO-2015): sb. st. XIX Mezhdunar. nauch.-metod. konf. [University education: collected articles of XIX International scientific and methodological conference]. Penza: Izd-vo PGU, 2015, vol. 1, pp. 222-225.
Engineering sciences. Computer science, computer engineering and control
79
Известия высших учебных заведений. Поволжский регион
26. Dubravin A. V., Zinkin S. A. Universitetskoe obrazovanie (MKUO-2015): sb. st. XIX Mezhdunar. nauch.-metod. konf. [University education: collected articles of XIX International scientific and methodological conference]. Penza: Izd-vo PGU, 2015, vol. 1, pp. 225-228.
Волчихин Владимир Иванович Volchikhin Vladimir Ivanovich
доктор технических наук, профессор, Doctor of engineering sciences, professor,
президент Пензенского государственного President of Penza State University университета (Россия, г. Пенза, (40 Krasnaya street, Penza, Russia)
ул. Красная, 40)
E-mail: [email protected]
Дубравин Алексей Викторович старший преподаватель, кафедра вычислительной техники, Пензенский государственный университет (Россия, г. Пенза, ул. Красная, 40)
E-mail: [email protected]
Зинкин Сергей Александрович доктор технических наук, профессор, кафедра вычислительной техники, Пензенский государственный университет (Россия, г. Пенза, ул. Красная, 40)
E-mail: [email protected]
Dubravin Aleksey Viktorovich Senior lecturer, sub-department of computer engineering, Penza State University (40 Krasnaya street, Penza, Russia)
Zinkin Sergey Aleksandrovich Doctor of engineering sciences, professor, sub-department of computer engineering, Penza State University (40 Krasnaya street, Penza, Russia)
УДК 681.324 Волчихин, В. И.
Абстрактный и структурный синтез распределенных систем обработки данных на основе мультипарадигмального подхода / В. И. Волчихин, А. В. Дубравин, С. А. Зинкин // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2015. - № 1 (33). - С. 60-80.
80
University proceedings. Volga region