Известия высших учебных заведений. Поволжский регион
УДК 681.324
В. И. Волчихин, А. В. Дубравин, С. А. Зинкин
абстрактный и структурный синтез систем
ОБРАБОТКИ ДАННЫХ НА ОСНОВЕ ПАРАДИГМЫ ПЕРЕДАЧИ СООБЩЕНИЙ В РАСПРЕДЕЛЕННОМ ОКРУЖЕНИИ ВЫЧИСЛИТЕЛЬНОЙ СЕТИ1
Аннотация.
Актуальность и цели. Объектом исследования являются распределенные системы обработки данных, работа которых основана на принципах, названных в статье парадигмами. Рассмотрена парадигма, используемая для проектирования программного обеспечения промежуточного слоя, ориентированного на обмен сообщениями в распределенном окружении. Предметом исследования являются вопросы абстрактного и структурного проектирования распределенных сетевых приложений на основе логико-алгебраического подхода и некоторых методов искусственного интеллекта. Цель работы - совершенствование методов проектирования распределенных приложений на основе концептуальных, логических и логико-алгебраических моделей, положенных в основу технологии распределенного программирования в сетях ЭВМ, основанной на передаче сообщений.
Материалы и методы. Предлагаемые методы позволяют разрабатывать распределенные приложения для обработки данных, соответствующие некоторой формальной спецификации. Для реализации распределенных приложений обработки данных выбраны методы, не требующие специальных синтаксических примитивов при организации параллелизма в распределенных системах. Описание и поддержка параллелизма в распределенных системах осуществляется средствами, реализуемыми на основе перехода от первоначальных концептуальных представлений процессов, базирующихся на правилах вывода и концептуальных графов, к непосредственному программированию путем прямого использования логико-алгебраических выражений в качестве формализованных спецификаций.
Результаты и выводы. Предложенные новые концептуальные, логические и логико-алгебраические модели распределенных вычислений в системах с передачей сообщений отличаются от известных тем, что они относятся к классу непосредственно исполнимых (реализуемых), применение которых позволяет снизить трудозатраты при создании распределенных сетевых приложений.
Ключевые слова: распределенная обработка данных, сетевое окружение, концептуальные, логические и логико-алгебраические модели, парадигма обмена сообщениями, распределенное окружение, управляющие и функциональные межмодульные связи.
V. I. Volchikhin, A. V. Dubravin, S. A. Zinkin
ABSTRACT AND STRUCTURAL SYNTHESIS OF DATA PROCESSING SYSTEMS ON THE BASIS OF THE PARADIGM
1 Работа выполнена в рамках Федеральной целевой программы «Исследования и разработки по приоритетным направлениям развития научно-технического комплекса России на 2014-2020 годы» (Соглашение № 14.574.21.0045 от 19.06.14, UIN: RFMEFI57414X0045).
104
University proceedings. Volga region
№ 2 (34), 2015 Технические науки. Информатика, вычислительная техника
OF MESSAGE TRANSMISSION IN THE DISTRIBUTED ENVIRONMENT OF A COMPUTER NETWORK
Abstract.
Background. The research object is distributed systems of data processing based on the principles, designated as “paradigms” in the article. The considered paradigm, used at designing of intermediate software, oriented towards messaging in the distributed environment. The research subject is the problems of abstract and structural design of distributed network applications based on the logic-algebraic approach and some methods of artificial intelligence. The aim of the work is to improve the design methods of distributed applications on the basis of conceptual, logic and logic-algebraic models, forming the foundation of the technique of distributed programming in computer networks based on message transmission.
Materials and methods. The suggested methods allow to develop distributed applications for data processing, corresponding to a certain specifications. For realization of distributed applications of data processing the authors chose methods that require no special syntactical primitive elements when organizing parallelism in distributed systems. Description and maintenance of parallelism in distributed systems are carried out by means based on the transition from initial conceptual process representations, based on input rules and conceptual graphs, to immediate programming through direct usage of logic-algebraic expressions as formalized specifications.
Results and conclusions. The suggested new conceptual, logic and logic-algebraic models of distributed calculations in systems with message transmission differ from the knows ones by the relation to a class of the immediately executable (realized), implementation of which allows to reduce working hours at creation of distributed network applications.
Key words: distributed data processing, network environment, conceptual, logic and logic-algebraic models, paradigm of messaging, distributed environment, control and functional intermodule communications.
Введение
Настоящая работа является продолжением работы [1], в которой были предложены концептуальные и логико-алгебраические модели для двух Linda-подобных парадигм распределенных вычислений. Под парадигмой подразумевалась та или иная концепция, выбранная для программного решения, например: принцип организации связей между процессами, способ именования и синхронизации процессов, подход к распределению объектов и согласованию их функционирования.
В распределенном программировании известны, например, агентноориентированная парадигма, парадигма классной доски, парадигма пространства кортежей и отношений и др. Ранее отмечалось, что в работах [2, 3] использованы неформализованные архитектурные подходы к параллельному и распределенному программированию с акцентом на определении естественного параллелизма в самих задачах, что отражается в программных моделях решений. В настоящей работе рассматривается проектирование программного обеспечения промежуточного уровня, ориентированного на обмен сообщениями в распределенном окружении. Подобное программное обеспечение в англоязычной литературе получило название Message-Oriented Middleware (MOM). Как и ранее, в работе [1] предлагаемый архитектурный подход осно-
Engineering sciences. Computer science, computer engineering and control 105
Известия высших учебных заведений. Поволжский регион
ван на представлении структурных связей между компонентами, предикатами и функциями, а вычислительные процессы представляются каузально связанными модулями, работа которых задается выражениями в логике предикатов первого порядка.
1. Представление знаний
эксперта-программиста концептуальными графами
Согласно работам [4, 5] «концептуальный граф представляет логическую формулу. Имена и аргументы предикатов представлены в нем соответственно двумя типами узлов. Дуги графа соединяют имена предикатов с их аргументами». Далее в настоящей работе будут использованы концептуальные графы, представляющие бинарные предикаты. При построении концептуальных графов (КГ) в настоящей работе использована система поддержки и графического представления КГ CharGer [6, 7].
Сетевое представление абстрактных понятий (концептов) программирования и отношений между ними в виде концептуального графа приведено на рис. 1. Этот граф построен на основе небольшой модификации ассоциативной сети структуры знаний эксперта-программиста и описания связей между понятиями из работы [8]. Данный пример демонстрирует традиционное использование концептуальных графов в качестве моделей в системах искусственного интеллекта, например, при построении экспертных систем. Особенностью таких моделей является их неполнота, они использовались при исследовании эволюции знаний программистов по мере приобретения опыта.
Рис. 1. Концептуальное представление знаний эксперта-программиста
Расширенное концептуальное представление знаний эксперта-программиста приведено на рис. 2. Здесь добавлены концепты и отношения, связанные с представлением алгоритма сортировки-слияния для выполнения на ЭВМ в форме программы на каком-либо алгоритмическом языке. В графе используется специальная вершина-актор, символизирующая выполнение
106
University proceedings. Volga region
№ 2 (34), 2015 Технические науки. Информатика, вычислительная техника
операции слияния двух заранее отсортированных массивов а и b в один отсортированный массив с.
Рис. 2. Расширенное концептуальное представление знаний эксперта-программиста
2. Использование концептуальных графов в качестве математических моделей распределенных программ
Как следует из работы [9], целью построения математических моделей программ является замена сложных реальных объектов более простыми абстрактными моделями; при этом данные модели должны удовлетворять следующим требованиям: при помощи модели можно изучать свойства достаточно широких классов программ, а не отдельных конкретных программ; модель должна сохранять все интересующие исследователя свойства и особенности рассматриваемого класса программ и позволять игнорировать несущественные для данной проблемы свойства, например, синтаксические детали; модель должна быть модифицируемой и допускать нововведения, отслеживающие развитие языков программирования; удобно, если структура модели изобразительно подобна структуре программ, что дает возможность привлекать на некоторых этапах исследований программистскую интуицию.
Концептуальные схемы программ, построенные на основе концептуальных графов, удовлетворяют большинству из перечисленных требований; недостающие требования могут быть учтены путем дополнительного исполь-
Engineering sciences. Computer science, computer engineering and control 107
Известия высших учебных заведений. Поволжский регион
зования логико-алгебраических моделей при их соответствующей интерпретации. Данные модели предлагается использовать при проектировании схем распределенных программ, выполняемых в сетевой среде. В основу проектирования должны быть положены логический и логико-алгебраический аппараты. Логические модели при этом могут быть представлены концептуальными графами и дополнительными логическими правилами, а логикоалгебраические модели могут быть представлены сетями абстрактных машин, примененными ранее в предыдущей работе авторов [1].
В дальнейшем при описании предлагаемых методов будет использован пример программы сортировки-слияния массивов, выбранный, например, из работы [10] не в силу его каких-то специфических особенностей, а для иллюстрации практически всех черт предлагаемого в настоящей работе подхода, основанного на последовательном использовании концептуальных, логических и логико-алгебраических моделей распределенных программ. Так, на данном примере будет проиллюстрирован переход от схемы сосредоточенной программы к схеме ее распределенной реализации в виде сети алгоритмических модулей.
Концептуальное представление программы, соответствующей актору Sort на рис. 2 как при сосредоточенной, так и при распределенной реализации операторов 50, 51, ..., S9, иллюстрирует рис. 3. Здесь запись вида +Q(Sj) & Trans означает, что связь по управлению операторов Sj и Sj существует при истинном составном высказывании Q(S,) & Trans(Sj, Sj), где значение высказывания Q(S) формируется в результате выполнения оператора Sj, а запись -Q(Si) & Trans означает, что связь по управлению операторов Sj и Sk существует при истинном значении составного высказывания —Q(Sj) & Trans(Sj, Sk), т.е. при ложном значении Q(Si). Здесь Q - унарный предикатный символ, а Trans - бинарный предикатный символ, Sj, и Sj -имена операторов, или предметные константы. Все атомарные константные формулы вида Trans (Sj, Sj), Sj e S, Sj e S, где S - множество операторов, определяемые концептуальной схемой программы, представленной на рис. 3, предложено использовать при формировании сообщений, передающих управление от одних операторов к другим. Областью истинности предиката Trans является одноименное отношение Trans с SxS между оператором-предшественником и оператором-следователем. Такие же обозначения использовались для других парадигм распределенных вычислений в работе [1].
108
University proceedings. Volga region
№ 2 (34), 2015 Технические науки. Информатика, вычислительная техника
Управляющие связи, соответствующие отношению Trans, предлагается реализовывать путем передачи специальных управляющих сообщений между узлами вычислительной сети, на которой размещены программные модули, реализующие операторы S0, Sb ..., S9. Для реализации дополнительных функциональных межмодульных связей на основании концептуальной схемы программы построим совмещенный управляющий и функциональный граф распределенной программы (рис. 4).
Рис. 4. Совмещенный управляющий и функциональный граф распределенной программы
Сплошные дуги в графе программы на рис. 4 соответствуют управляющим связям, или связям операторов по управлению, а пунктирные - функциональным связям, или связям по данным. Вершины в графе отождествлены с функциональными операторами.
При распределенной реализации программы управляющие и функциональные связи реализуются при помощи соответствующих управляющих и функциональных сообщений, передаваемых между узлами вычислительной сети, на которых размещены программные модули, реализующие функциональ-
Engineering sciences. Computer science, computer engineering and control 109
Известия высших учебных заведений. Поволжский регион
ные операторы. На этапе разработки распределенного приложения предварительно формируются два отношения Trans и Data, представляющие собой области истинности одноименных предикатов. Бинарное отношение Trans необходимо для последующего формирования управляющих сообщений, а тернарное отношение Data - для формирования функциональных сообщений. При формировании отношения Trans учитываются сплошные дуги, а при формировании отношения Data - пунктирные дуги и их веса, т.е. значения передаваемых переменных или ссылок на них (на рис. 4 каждой паре весов на одной пунктирной стрелке соответствуют две совмещенные функциональные дуги графа).
В настоящей работе предлагается далее на этапе проектирования распределенного приложения при определении состава передаваемых управляющих и функциональных сообщений использовать концептуальные графы.
Концептуальные графы операторов, приведенные на рис. 5, дополняют концептуальную схему программы, представленную на рис. 3, т.е. полный граф концептуальной схемы программы определяется путем объединения всех концептуальных графов для операторов.
б)
Рис. 5. Примеры концептуальных графов для операторов S0, Sb ..., S9
110
University proceedings. Volga region
№ 2 (34), 2015 Технические науки. Информатика, вычислительная техника
в)
к)
Рис. 5. Окончание
Engineering sciences. Computer science, computer engineering and control 111
Известия высших учебных заведений. Поволжский регион
В графах овалами представлены следующие отношения: Arg с S х X -отношение «быть аргументом», где X - множество переменных; Res с S х X -отношение «являться результатом»; Func с S х X - отношение «являться функциональной переменной», т.е. переменной, передаваемой от одного оператора к другому для реализации функциональной связи, или связи по данным. Бинарные отношения Trans, Arg и Res образуют экстенсиональную базу данных, а единственное тернарное отношение Data - интенсиональную базу данных.
Правила формирования тернарного отношения Data, или области истинности одноименного тернарного предиката, используемого при формировании сообщений для реализации функциональных межоператорных связей, имеют следующий вид:
Res(S0, m) & Func(S2, m) з Data(S0, S2, m);
Res(S0, n) & Func(S3, n) з Data(S0, S3, n);
Res(S0, a) & Func(S4, a) з Data(S0, S4, a);
Res(S0, a) & Func(S6, a) з Data(S0, S6, a);
Res(S0, b) & Func(S4, b) з Data(S0, S4, b);
Res(S0, b) & Func(S5, b) з Data(S0, S5, b);
Res(Su i) & Func(S2, i) з Data(Su S2, i);
Res(Si, i) & Func(S4, i) з Data(Si, S4, i);
Res(Si, i) & Func(S6, i) з Data(Si, S6, i);
Res(Si, j) & Func(S3, j) з Data(S\, S3, j);
Res(S\, j) & Func(S4, j) з Data(S\, S4, j);
Res(Si, j) & Func(S5, j) з Data(S\, S5, j);
Res(Si, k) & Func(S5, k) з Data(S\, S5, k);
Res(Si, k) & Func(S6, k) з Data(S\, S6, k);
Res(Si, k) & Func(S7, k) з Data(S\, S7, k);
Res(S5, c) & Func(S9, c) з Data(S5, S9, c);
Res(S5, j) & Func(S3, j) з Data(S5, S3, j);
Res(S5, j) & Func(S4, j) з Data(S5, S4, j);
Res(S6, c) & Func(S9, c) з Data(S6, S9, c);
Res(S6, i) & Func(S2, i) з Data(S6, S2, i);
Res(S6, i) & Func(S4, i) з Data(S6, S4, i);
Res(S7, k) & Func(S5, k) з Data(S7, S5, k);
Res(S7, k) & Func(S6, k) з Data(S7, S6, k);
Res(S7, k) & Func(S8, k) з Data(S7, S8, k);
112
University proceedings. Volga region
№ 2 (34), 2015 Технические науки. Информатика, вычислительная техника
Например, правило Res(S0, m) & Func(S2, m) з Data(S0, S2, m) можно интерпретировать следующим образом: «если значение переменной m является результатом выполнения оператора S0 и должно участвовать в реализации функциональной связи, ведущей к оператору S2, то для организации этой связи следует передать значение переменной m от оператора S0 оператору S2». Истинность высказывания Data(S0, S2, m) в логико-алгебраической модели вычислительного процесса интерпретируется как необходимость передачи сообщения со значением переменной m от узла вычислительной сети, на котором выполнен оператор S0, к узлу, на котором должен быть выполнен оператор S2. Аналогичным образом интерпретируются и все остальные правила.
Атомарные константные формулы, описывающие непосредственные связи операторов по управлению, составляются непосредственно по концептуальной схеме на рис. 3: Trans(S0, Sj), Trans(S1, S2), Trans(S2, S3), Trans(S2, S5), Trans(S3, S4), Trans(S3, S6), Trans(S4, S5), Trans(S4, S6), Trans(S5, S7),
Trans(S7, S8), Trans(S8, S2), Trans(S8, S9), и используются далее при формировании управляющих сообщений.
3. Формализованные спецификации на основе логико-алгебраических представлений для программного обеспечения распределенных систем, ориентированных на передачу сообщений
Концептуальные схемы распределенных программ относятся к классу универсальных вычислительных моделей, поскольку они позволяют описывать все структурные дейкстровские конструкции: следование, разветвление и циклы. Однако они не относятся к классу непосредственно исполнимых моделей в том смысле, что они не могут использоваться непосредственно для построения программ - требуется дополнительная интерпретация используемых понятий и отношений между ними. Например, концептуальные модели оставляют программисту свободу в выборе парадигмы распределенных вычислений, например - гибридной, Linda-подобной или ориентированной на передачу сообщений [1].
Для последующего рассмотрения в качестве основного этапа технологии проектирования программного обеспечения распределенных систем рассмотрим исполнимые логико-алгебраические модели в интерпретации, данной в работе [1]. Другие приложения логических и логико-алгебраических методов для описания моделей программ и производственных процессов рассматривались, например, в работах [11-13]. До настоящего времени актуальными и мало исследованными остаются вопросы объема накладных расходов при декомпозиции программ для выполнения в параллельных и распределенных средах [2, 3, 14].
Большой проблемой является также отображение распределенных программ на обрабатывающие модули распределенной вычислительной среды. Логико-алгебраические методы проектирования позволяют выбирать нужную степень декомпозиции программы на модули, вплоть до элементарных операций языка программирования, а методы искусственного интеллекта, основанные на концептуальных схемах программ, позволят эффективно согласовать архитектурные и языковые вопросы.
Построим логико-алгебраическую (исполнимую) модель для программного обеспечения распределенных систем, полностью ориентирован-
Engineering sciences. Computer science, computer engineering and control 113
Известия высших учебных заведений. Поволжский регион
ных на передачу сообщений. Необходимость построение подобной модели вызвана тем, что обычно используемые на практике методы формализации распределенных программных систем практически не затрагивают обработку данных, либо не относятся к классу непосредственно исполнимых. Последнее обстоятельство часто вынуждает практического программиста к отказу от использования формализованных моделей, что может привести к наличию большого числа ошибок в логике работы распределенного приложения либо к усложнению процесса его проектирования.
Абстрактным объектам логико-алгебраической модели - множествам предметных переменных и констант, функциям, предикатам, правилам модификации предикатов - соответствуют реальные объекты, с которыми работают распределенные приложения, реализуемые на физической вычислительной сети. Логика работы с этими объектами напоминает сложную семафорную технику. При описании работы модели далее, как это часто принято, будут отождествляться ее абстрактные элементы и элементы предметной области (там, где это не вызывает противоречий).
В то время как согласно определению из [10] для определения «сосредоточенной» операторной схемы, реализуемой на одном узле вычислительной сети, при описании связей по управлению использован бинарный предикат Trans: S X S ^ {true, false} (сокращенно T), для описания распределенной реализации операторной схемы понадобится тернарный (трехместный) предикат Data: S X S X X ^ {true, false} (сокращенно D), с помощью которого формализуются функциональные связи, т.е. передачи элементов данных или ссылок на них по сети. Здесь S = {S0, S1, ..., Sm} - множество операторов; X = {х0, x1, ..., xn} - множество элементов данных (переменных, массивов, списков, кортежей, отношений). Добавив множество Y = {Y0, Y1, ..., Yk} вершин (узлов) графа связей инфокоммуникационной среды передачи данных, унарную функцию Depl: S ^ Y развертывания операторов в инфокоммуникационной среде и бинарный предикат Comm: Y X Y ^ {true, false} связности узлов инфокоммуникационной среды, модифицируем определение из [10], получая следующее определение.
Определение. Распределенная операторная сеть (РОС, или MOON -Message-Oriented Operator Net) для спецификации распределенной вычислительной системы с программным обеспечением, ориентированным на передачу сообщений при реализации связей по управлению и функциональных связей по данным (путем передачи самих данных либо ссылок на них), описывается кортежем
MOON = (S, X, Y, Depl, Comm, Arg, Res, Trans, Data),
где областью истинности бинарного предиката ^rg: S X X ^ {true, false} задано отношение «быть аргументом», а областью истинности бинарного предиката Res: S X X ^ {true, false} - отношение «иметь результатом». Остальные элементы кортежа определены выше.
Распределенные вычислительные системы, построение распределенных приложений для которых основано на данном определении, содержат сетевые вычислительные узлы, обладающие собственной локальной памятью и, возможно, частично или полностью разделяемую общую память. Функциональ-
114
University proceedings. Volga region
№ 2 (34), 2015 Технические науки. Информатика, вычислительная техника
ные связи реализуются здесь путем передачи сообщений с элементами данных или ссылок на них по сети. Связи по управлению между узлами реализуются путем передачи служебных сообщений.
Например, как было определено ранее, модификация предиката
Trans(Si, S2) ^ true
означает, что от оператора Si реализуется связь по управлению, направленная к оператору S2, путем передачи управляющего сообщения от узла сети, на котором реализуется оператор Si, узлу, на котором реализуется оператор S2.
Аналогично, модификация предиката
Data(S0, S2, m) ^ true
означает реализацию функциональной связи между операторами S0 и S2 путем передачи «функционального» сообщения со значением переменной m или со ссылкой на нее, т.е. с ее адресом в сети. Строго говоря, сообщения обоих типов должны содержать адреса узлов, на которых реализуются соответствующие операторы, т.е. правила модификации предикатов должны иметь такой вид:
Trans(Si, Depl(S{), S2, Depl(S2)) ^ true);
Data(S0, Depl(S0), S2, Depl(S2), m) ^ true,
где функция Depl определяет адреса узлов-источников и узлов-приемников. Но мы далее для краткости записи атомарных константных формул будем опускать адресную информацию и полагать, что она существует по умолчанию и входит в формат передаваемых сообщений. В сообщениях также следует явно указывать, передается ли значение элемента данных (например, Val(m)) или ссылка на него (Ref(m)). Для краткости будем указывать просто имя элемента данных (например, m).
Положим, что модификации предикатов вида
Trans(Si, S2) ^ false;
Data(S0, S2, m) ^ false
означают, что передача соответствующих сообщений завершена. Кроме того, предполагаем, что конфигурация сети коммуникаций, определяемая областью истинности бинарного предиката Comm, известна всем узлам сети (на практике каждый узел может иметь лишь ограниченную информацию о топологии сети, поскольку при перемещении сообщений в реальной сети участвуют программно или аппаратно реализованные маршрутизаторы).
Рассмотрим переход от сосредоточенной операторной схемы к распределенной сети типа РОС (MOON). Разработаем новую систему логикоалгебраических выражений для сети типа РОС (MOON), в которой будут дополнительно учтены функциональные связи, реализуемые по мере выполнения распределенного вычислительного процесса. Как следует из определения сети РОС (MOON), каждый оператор сети может быть выполнен только тогда, когда по отношению к нему будет реализована не только связь по управлению, но и все функциональные связи, т.е. связи по всем данным, которые он должен использовать. Новая система логико-алгебраических выражений имеет следующий вид:
Engineering sciences. Computer science, computer engineering and control 115
Известия высших учебных заведений. Поволжский регион
qSo = [Start\({Start ^ false; So; D(So, S2, m) ^ true; D(So, S3, n) ^ true; D(So, S4, a) ^ true; D(So, S4, b) ^ true; D(So, S5, b) ^ true;
D(So, S6, a) ^ true; D(So, S8, m) ^ true; D(So, S8, n) ^ true;
T(So, S\) ^ true}v R);
qS1 = [T(S0, S1)\({T(S0, S\)^false; S1; D(S1, S2, 0 ^ true;
D(S\, S3, j) ^ true; D(S\, S4, i) ^ true; D(S\, S4, j) ^ true;
D(S\, S5, k) ^ true; D(S\, S5, j) ^ true; D(S\, S6, k) ^ true;
D(S\, S6, i) ^ true; D(S\, S7, k) ^ true; T(S\, S2) ^ true} v R);
qS2 = [T(S\, S2)&D(S\, S2, i)&D(So, S2, m) v T(Ss, S2)&D(S6, S2, i)\
({T(S\, S2) ^ false; T(Sg, S2) ^ false; S2; D(S\, S2, i) ^ false;
D(S6, S2, i) ^ false; [g(S2)\(T(S2, S5) ^ true v T(S2, S3) ^ true)} v R);
qS3 = [T(S2, S3)&D(So, S3, n)&(D(S\, S3, j) v D(S5, S3, j))\
({T(S2, S3) ^ false; S3; D(S\, S3, j) ^ false; D(S5, S3, j) ^ false; [6(S3)\(T(S3, S4) ^ true v T(S3, S6) ^ true)} v R);
qS4 = [T(S3, S4)&D(So, S4, b)&D(So, S4, a)&(D(S\, S4, i)&D(S\, S4, j) v D(S5, S4, j) v D(S6, S4, i))\({T(S3, S4) ^ false; S4; D(S\, S4, i) ^ false; D(S\, S4, j) ^ false; D(S5, S4, j) ^ false; D(S6, S4, i)^false; [6(S4)\(T(S4, S5) ^ true v T(S4, S6) ^ true)} v R);
qS5 = [((T(S2, S5) v T(S4, S5))&D(So, S5, b)&(D(S\, S5, k)&D(S\, S5, j) v D(S7, S5, k)&D(S5, S5,M({T(S2, S5) ^ false; Щ4, S5) ^ false; S5;
D(S\, S5, k) ^ false; D(S\, S5, j) ^ false; D(S7, S5, k) ^ false;
D(S5, S5, j) ^ false;
T(S5, S7) ^ true; D(S5, S9, c) ^ true; D(S5, S3, j) ^ true; D(S5, S4, j) ^ true; D(S5, S5, j) ^ true} v R);
qS6 = [(T(S3, S6) v T(S4, S6))&D(So, S6, a)&(D(S\, S6, k)&D(S\, S6, i) v D(S7, S6, k)&D(S6, S6, i))\({T(S3, Se) ^ false; Щ4, S6) ^ false; S6; D(S\, S6, k) ^ false; D(S\, S6, i) ^ false; D(S7, S6, k) ^ false;
D(S6, S6, i) ^ false;
116
University proceedings. Volga region
№ 2 (34), 2015 Технические науки. Информатика, вычислительная техника
T(S6, S7) ^ true; D(S6, S9, c) ^ true; D(S6, S2, i) ^ true; D(S6, S4, i) ^ true; D(S6, S6, i) ^ true} v R);
qS7 = [(T(S5, S7) v T(S6, S7))&(D(Sl5 S7, k) v D(S7, S7, k))]
({T(S5, S7) ^ false; T(S6, S7) ^ false; S7; D(S1, S7, k) ^ false;
D(S7, S7, k) ^ false;
T(S7, S8) ^ true; D(S7, S8, k) ^ true; D(S7, S5, k) ^ true; D(S7, S6, k) ^ true; D(S7, S7, k) ^ true} v R);
qS8 = [T(S7, S8)&D(S7, S8, k)&D(So, S8, m)&D(So, S8, n)]
({T(S7, S8) ^ false; S8; D(S7, S8, k) ^ false;
[6(S8)](T(S8, S2) ^ true v T(S8, S9) ^ true} v R);
qS9 = [T(S8, S9)&(D(S5, S9, c) v D(S6, S9, S9) ^false;
S9; D(S5, S9, c) ^ false; D(S6, S9, c) ^ false; Finish ^ true} v R).
Подставляя на место операторов конкретные операции, выполняемые в программе, получим следующие окончательные выражения для модулей сети виртуальных машин:
qS0 = [Start]({Start ^ false; Read(m, n, a, b); D(S0, S2, m) ^ true;
D(S0, S3, n) ^ true; D(S0, S4, a) ^ true; D(S0, S4, b) ^t rue;
D(S0, S5, b) ^ true; D(S0, S6, a) ^ true; D(S0, S8, m) ^ true;
D(S0, S8, n) ^ true; T(S0, S1) ^ true}v R);
qS1 = [T(S0, SO]({T(S0, S1) ^ false; i :=j := k := 1; D(Si, S2, i) ^ true;
D(S1, S3, j) ^ true; D(S1, S4, i) ^ true; D(S1, S4, j) ^ true;
D(S1, S5, k) ^ true; D(S1, S5, j) ^ true; D(S1, S6, k) ^ true;
D(S1, S6, i) ^ true; D(S1, S7, k) ^ true; T(S1, S2) ^ true} v R);
qS2 = [T(S1, S,)&D(S1, S2, i)&D(S0, S2, m) v T(S8, S,)&D(S6, S2, i)]
({T(S1, S2) ^ false; T(S8, S2) ^ false; Q(S2):= i > m; D(S1, S2, i) ^ false; D(S6, S2, i) ^ false; [QS)](T(S2, S5) ^ true v Щ2, S3)^true)} v R);
qS3 = [T(S2, S3)&D(S0, S3, n)&(D(Su S3, j) v D(S5, S3, j))]
({T(S2, S3) ^ false; Q(S3):=j > n; D(SU S3, j) ^ false; D(S5, S3, j) ^ false; [Q(S3)](T(S3, S4) ^ true v T(S3, Se) ^ true)} v R);
Engineering sciences. Computer science, computer engineering and control 117
Известия высших учебных заведений. Поволжский регион
qs4 — [Д£з, S4)&D(S0, S4, b)&D(S0, S4, a)&.(D(Si, S4, i)&D(Si, S4, j) v D(S5, S4, j) v D(S6, S4, i))]({T(S3, S4) ^ false; Q(S4):—a[i] > bj;
D(S1, S4, i) ^ false; D(S1, S4, j) ^ false; D(S5, S4, j) ^ false;
D(S6, S4, i) ^ false; [Q(S4)](T(S4, S5) ^ true v T(S4, S6) ^ true)} v R);
qS5 — [((T(S2, S5) v T(S4, S5))&D(So, S5, b)&(D(S1, S5, k)&D(S1, S5, j) v D(S7, S5, k)&D(S5, S5,M({T(S2, S5) ^ false; Щ4, S5) ^ false; c[k] :— b[j]; j :—j + 1; D(SU S5, k) ^ false; D(SU S5, j) ^ false;
D(S7, S5, k) ^ false; D(S5, S5, j) ^ false; T(S5, S7) ^ true;
D(S5, S9, c) ^ true; D(S5, S3, j) ^ true; D(S5, S4, j) ^ true;
D(S5, S5, j) ^ true} v R);
qS6 — [(T(S3, S6) v T(S4, S6))&D(So, S6, a)&(D(Su S6, k)&D(Sx, S6, i) v D(S7, S6, k)&D(S6, S6, i))]({T(S3, S6) ^ false; Щ4, S6) ^ false; c[k] :— a[i]; i :— i + 1; D(S1, S6, k) ^ false; D(S1, S6, i) ^ false;
D(S7, S6, k) ^ false; D(S6, S6, i) ^ false;
T(S6, S7) ^ true; D(S6, S9, c) ^ true; D(S6, S2, i) ^ true; D(S6, S4, i) ^ true; D(S6, S6, i) ^ true} v R);
qS7 — [(T(S5, S7) v T(S6, S7))&(D(S1, S7, k) v D(S7, S7, k))]
({T(S5, S7) ^ false; T(S6, S7) ^ false; k :— k + 1; D(S1, S7, k) ^ false; D(S7, S7, k) ^ false; T(S7, S8) ^ true; D(S7, S8, k) ^ true;
D(S7, S5, k) ^ true; D(S7, S6, k) ^ true; D(S7, S7, k) ^ true} v R);
qS8 — Ss)&D(S7, Ss, k)&D(S0, Ss, m)&D(S0, S8, n)}
({T(S7, S8) ^ false; Q(S8):— k <— m + n; D(S7, S8, k) ^ false;
[Q(Ss)](T(Ss, S2) ^ true v T(Sg, S9) ^ true} v R);
qS9 — [T(S8, S9)&(D(S5, S9, c) v D(S6, S9, S9) ^false;
Write(c); D(S5, S9, c) ^ false; D(S6, S9, c) ^ false; Finish ^ true} v R).
Нотация логико-алгебраических выражений соответствует нотации, принятой в работах [1, 15-17]. Символом R обозначен оператор возврата
118
University proceedings. Volga region
№ 2 (34), 2015 Технические науки. Информатика, вычислительная техника
к проверке условия, описанного в квадратных скобках выражения для каждого абстрактного модуля сети абстрактных машин. В рассмотренном примере реализация функциональных связей и связей по управлению между операторами (в абстрактной модели) или между программными модулями (в реальном приложении) происходит с помощью механизмов передачи сообщений -управляющих и функциональных. При реализации распределенной программы необходимо выбрать, передавать значения элементов данных или только ссылки на места хранения этих значений. От этого выбора зависит объем передаваемой информации и, следовательно, эффективность работы приложения в сетевой среде. При получении логико-алгебраических выражений учтены представления распределенных вычислений концептуальными графами (рис. 3, 5), а также основанные на них правила формирования предикатов Trans и Data. Дополнительные концептуальные схемы для описания других управляющих структур распределенного программирования приведены в работах [18-20].
При абстрактном и структурном синтезе распределенных приложений от программиста дополнительно требуется наличие знаний эксперта-разработчика, представленных концептуальными графами на рис. 1, 2, а также знание принципов построения концептуальных схем распределенных программ. В настоящей работе показано, что проектирование экспертной модели знаний программиста и проектирование самого распределенного приложения может быть выполнено на основе общей концептуальной схемы.
Заключение
1. Предложена новая концептуальная модель распределенной обработки данных в сетевой среде, в которой учитывается реализация связей по управлению и данным через сетевое инфокоммуникационное пространство, что упрощает абстрактный синтез систем распределенной обработки данных.
2. Формально определен новый класс распределенных операторных сетей, причем в основу определения положены как известные теоретикомножественные понятия, так и понятия, связанные с использованием инфо-коммуникационной среды, что в существенной степени облегчает составление и применение системы формализованных спецификаций для программных модулей, выполняемых в распределенной сетевой среде.
3. Формально определена операционная семантика распределенной модели вычислений, базирующаяся на концептуальном представлении выполняемых операций и логико-алгебраических моделях.
4. Предложены новые концептуальные, логические и логико-алгебраические модели распределенных вычислений в системах с архитектурой, основанной на передаче сообщений, отличающиеся от известных тем, что они относятся к классу непосредственно исполнимых (реализуемых), применение которых позволяет снизить трудозатраты при создании распределенных сетевых приложений.
Список литературы
1. Волчихин, В. И. Абстрактный и структурный синтез распределенных систем обработки данных на основе мультипарадигмального подхода / В. И. Волчихин, А. В. Дубравин, С. А. Зинкин // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2015. - № 1 (33). - С. 60-69.
Engineering sciences. Computer science, computer engineering and control 119
Известия высших учебных заведений. Поволжский регион
2. Хьюз, К. Параллельное и распределенное программирование на C++ / К. Хьюз,
Т. Хьюз. - М. : Вильямс, 2004. - 672 с.
3. Таненбаум, Э. Распределенные системы. Принципы и парадигмы / Э. Танен-баум, М. ван Стеен. - СПб. : Питер, 2003. - 877 с.
4. Логический подход к искусственному интеллекту: от классической логики к логическому программированию / А. Тейз, П. Грибомон, Ж. Луи и др. - М. : Мир, 1990. - 429 с.
5. Sowa, J. F. Conceptual Graphs: Draft Proposed American National Standard /
J. F. Sowa // Proceedings of the 7th International Conference on Conceptual Structures: Standards and Practices (July 12-15, 1999). - М., 1999. - P. 1-65.
6. Delugach, H. CharGer: Some Lessons Learned and New Directions. Working with Conceptual Structures: Contributions to ICCS 2000 / G. Stumme ; ed., Shaker Verlag, 2000. - P. 306-309.
7. CharGer Manual. - 2005. - Vol. 3.5, b. 1. - P. 1-58. - URL: http://charger. sourceforge.net (дата обращения: 04.04.2015).
8. Гаврилова, Т. А. Базы знаний интеллектуальных систем / Т. А. Гаврилова,
B. Ф. Хорошевский. - СПб. : Питер, 2001. - 384 с.
9. Котов, В. Е. Теория схем программ / В. Е. Котов, В. К. Сабельфельд. - М. :
Наука, 1991. - 248 с.
10. Лавров, С. С. Программирование. Математические основы, средства, теория /
C. С. Лавров. - СПб. : БХВ-Петербург, 2001. - 320 с.
11. Ломакина, Л. С. Теория и практика структурного тестирования программных систем / Л. С. Ломакина, А. С. Базин, А. Н. Вигура, А. В. Киселев. - Воронеж : Научная книга, 2013. - 220 с.
12. Плесневич, Г. С. Логические модели / Г. С. Плесневич // Искусственный интеллект : в 3 кн. Кн. 2. Модели и методы : справочник / под ред. Д. А. Поспелова. -М. : Радио и связь, 1990. - С. 14-28.
13. Курганский, В. И. Алгебраические преобразования программ и порождаемых ими отношений / В. И. Курганский // Системы управления и информационные технологии. - 2006. - № 3.1 (25). - С. 139-144.
14. Элементы параллельного программирования / В. А. Вальковский, В. Е. Котов, А. Г. Марчук, Н. Н. Миренков ; под ред. В. Е. Котова. - М. : Радио и связь, 1983. -240 с.
15. Зинкин, С. А. Сети абстрактных машин высших порядков в проектировании систем и сетей хранения и обработки данных (базовый формализм и его расширения) / С. А. Зинкин // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2007. - № 3. - С. 13-22.
16. Зинкин, С. А. Сети абстрактных машин высших порядков в проектировании систем и сетей хранения и обработки данных (механизмы интерпретации и варианты использования) / С. А. Зинкин // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2007. - № 4. - С. 37-50.
17. Зинкин, С. А. Элементы новой объектно ориентированной сетевой технологии для моделирования и реализации систем и сетей хранения и обработки данных / Зинкин С. А. // Информационные технологии. - 2008. - № 10. - С. 20-27.
18. Дубравин, А. В. Элементы концептуального распределенного программирования в сетях / А. В. Дубравин, С. А. Зинкин // Университетское образование (МКУО-2015) : сб. ст. XIX Междунар. науч.-метод. конф., посвящ. 70-летию Победы в Великой Отечественной войне (г. Пенза, 9-10 апреля 2015 г.) : в 2 т. / под ред. А. Д. Гулякова, Р. М. Печерской. - Пенза : Изд-во ПГУ, 2015. - Т. 1. -
С. 222-225.
19. Дубравин, А. В. Формальное определение гибридной модели распределенных вычислений в сетях / А. В. Дубравин, С. А. Зинкин // Университетское образование (МКУО-2015) : сб. ст. XIX Междунар. науч.-метод. конф., посвящ. 70-летию
120
University proceedings. Volga region
№ 2 (34), 2015 Технические науки. Информатика, вычислительная техника
Победы в Великой Отечественной войне (г. Пенза, 9-10 апреля 2015 г.) : в 2 т. / под ред. А. Д. Гулякова, Р. М. Печерской. - Пенза : Изд-во ПГУ, 2015. - Т. 1. -С. 226-228.
20. Дубравин, А. В. Развитие логико-алгебраического подхода к созданию распределенных приложений для обработки данных в вычислительных сетях / А. В. Дубравин, С. А. Зинкин // Оптико-электронные приборы и устройства в системах распознавания образов, обработки изображений и символьной информации (Распознавание-2015) : сб. ст. XII Междунар. науч.-техн. конф. (г. Курск, 1215 мая 2015 г.). - Курск : Изд-во ЮЗГУ, 2015.
References
1. Volchikhin V. I., Dubravin A. V., Zinkin S. A. Izvestiya vysshikh uchebnykh zavedeniy. Povolzhskiy region. Tekhnicheskie nauki [University proceedings. Volga region. Engineering sciences]. 2015, no. 1 (33), pp. 60-69.
2. Kh'yuz K., Kh'yuz T. Parallel’noe i raspredelennoeprogrammirovanie na C++ [Parallel and distributed C++ programming]. Moscow: Vil'yams, 2004, 672 p.
3. Tanenbaum E., M. van Steen Raspredelennye sistemy. Printsipy i paradigmy [Distributed systems. Principles and paradigms]. Saint-Petersburg: Piter, 2003, 877 p.
4. Teyz A., Gribomon P., Lui Zh. et al. Logicheskiy podkhod k iskusstvennomu intellektu: ot klassicheskoy logiki k logi-cheskomu programmirovaniyu [Logic approach to artificial intelligence: from classical logic to logical programming]. Moscow: Mir, 1990, 429 p.
5. Sowa J. F. Proceedings of the 7th International Conference on Conceptual Structures: Standards and Practices (July 12-15, 1999). Moscow, 1999, pp. 1-65.
6. Delugach H., Stumme G. CharGer: Some Lessons Learned and New Directions. Working with Conceptual Structures: Contributions to ICCS 2000. 2000, pp. 306-309.
7. CharGer Manual. 2005, vol. 3.5, b. 1, pp. 1-58. Available at: http://charger. sourceforge.net (accessed April 4, 2015).
8. Gavrilova T. A., Khoroshevskiy V. F. Bazy znaniy intellektual’nykh sistem [Knowledge bases of intelligence systems]. Saint-Petersburg: Piter, 2001, 384 p.
9. Kotov V. E., Sabel'fel'd V. K. Teoriya skhem programm [Theory of program schemes]. Moscow: Nauka, 1991, 248 p.
10. Lavrov S. S. Programmirovanie. Matematicheskie osnovy, sredstva, teoriya [Programming. Mathematical bases, means, theory]. Saint-Petersburg: BKhV-Peterburg, 2001, 320 p.
11. 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 software systems]. Voronezh: Nauchnaya kniga, 2013, 220 p.
12. Plesnevich G. S. Iskusstvennyy intellekt: v 3 kn. Kn. 2. Modeli i metody: spravochnik [Artificial intelligence: in 3 books. Book 2. Models and methods: reference book]. Moscow: Radio i svyaz', 1990, pp. 14-28.
13. Kurganskiy V. I. Sistemy upravleniya i informatsionnye tekhnologii [Control systems and information technologies]. 2006, no. 3.1 (25), pp. 139-144.
14. 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.
15. Zinkin S. A. Izvestiya vysshikh uchebnykh zavedeniy. Povolzhskiy region. Tekhnicheskie nauki [University proceedings. Volga region. Engineering sciences]. 2007, no. 3, pp. 13-22.
16. Zinkin S. A. Izvestiya vysshikh uchebnykh zavedeniy. Povolzhskiy region. Tekhnicheskie nauki [University proceedings. Volga region. Engineering sciences]. 2007, no. 4, pp. 37-50.
17. Zinkin S. A. Informatsionnye tekhnologii [Information technologies]. 2008, no. 10, pp. 20-27.
Engineering sciences. Computer science, computer engineering and control 121
Известия высших учебных заведений. Поволжский регион
18. Dubravin A. V., Zinkin S. A. Universitetskoe obrazovanie (MKUO-2015): sb. st. XIX Mezhdunar. nauch.-metod. konf., posvyashch. 70-letiyu Pobedy v Velikoy Otechestven-noy voyne (g. Penza, 9-10 aprelya 2015 g.): v 2 t. [University education (MKUO-2015): proceedings of XIX International scientific and methodological conference devoted to 70th Anniversary of the Victory in the Great Patriotic War (Penza, 9-10 April 2015): in 2 volumes]. Penza: Izd-vo PGU, 2015, vol. 1, pp. 222-225.
19. Dubravin A. V., Zinkin S. A. Universitetskoe obrazova-nie (MKUO-2015): sb. st. XIX Mezhdunar. nauch.-metod. konf., posvyashch. 70-letiyu Pobedy v Velikoy Otechestven-noy voyne (g. Penza, 9-10 aprelya 2015 g.): v 2 t. [University education (MKUO-2015): proceedings of XIX International scientific and methodological conference devoted to 70th Anniversary of the Victory in the Great Patriotic War (Penza, 9-10 April 2015): in 2 volumes]. Penza: Izd-vo PGU, 2015, vol. 1, pp. 226-228.
20. Dubravin A. V., Zinkin S. A. Optiko-elektronnye pribory i ustroystva v sistemakh raspoznavaniya obrazov, obrabotki izobrazheniy i simvol'noy informatsii (Raspoznavanie-2015): sb. st. XIIMezhdunar. nauch.-tekhn. konf. (g. Kursk, 12-15 maya 2015 g.). [Optoelectronic devices and equipment in systems of image recognition, image processing and symbolic information (Recognition-2015): proceedings of XII International scientific and technical conference (Kursk, 12-15 May 2015)]. Kursk: Izd-vo YuZGU, 2015.
Волчихин Владимир Иванович Volchikhin Vladimir Ivanovich
доктор технических наук, профессор, Doctor of engineering sciences, professor,
президент Пензенского государственного President of Penza State University университета (Россия, г. Пенза, (40 Krasnaya street, Penza, Russia)
ул. Красная, 40)
E-mail: cnit@pnzgu.ru
Дубравин Алексей Викторович старший преподаватель, кафедра вычислительной техники, Пензенский государственный университет (Россия, г. Пенза, ул. Красная, 40)
E-mail: radamsa@yandex.ru
Зинкин Сергей Александрович доктор технических наук, профессор, кафедра вычислительной техники, Пензенский государственный университет (Россия, г. Пенза, ул. Красная, 40)
E-mail: zsa49@yandex.ru
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. - № 2 (34). - С. 104-122.
122
University proceedings. Volga region