Научная статья на тему 'Организация функционирования облачно-сетевых распределенных вычислительных систем с архитектурой «Агенты как сервисы»'

Организация функционирования облачно-сетевых распределенных вычислительных систем с архитектурой «Агенты как сервисы» Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
129
25
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ОБЛАЧНО-СЕТЕВЫЕ СИСТЕМЫ / АГЕНТЫ / СЕРВИСЫ / МУЛЬТИАГЕНТНЫЕ СИСТЕМЫ / МОДИФИЦИРОВАННЫЕ СЕТИ ПЕТРИ / ЛОГИКО-АЛГЕБРАИЧЕСКИЕ СПЕЦИФИКАЦИИ / CLOUD-BASED NETWORK SYSTEMS / AGENTS / SERVICES / MULTI-AGENT SYSTEMS / MODIFIED PETRI NETS / LOGICAL-ALGEBRAIC SPECIFICATIONS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Волчихин Владимир Иванович, Зинкин Сергей Александрович, Карамышева Надежда Сергеевна

Актуальность и цели. На концептуальном уровне проектирования распределенной вычислительной системы могут быть предложены различные схемы взаимодействий клиентов с серверами, при реализации которых клиенты по-разному обращаются к одному или к группе серверов. Актуальной является проблема организации подобных взаимодействий в облачно-сетевых распределенных вычислительных системах (ОС РВС) и переход от концептуального представления функциональной архитектуры к сетевым приложениям. Объектом исследования являются ОС РВС. Предметом исследования является методика синтеза функциональной архитектуры подобных систем. Целью исследования является решение актуальной задачи по расширению функциональных возможностей ОС РВС, объединяющих в себе свойства собственно облачных и грид-систем со свойствами мультиагентных систем. Особенностью предлагаемой новой функциональной архитектуры является то, что в аренду пользователю предоставляются мобильные агенты, выполняющие заданные функции. Материалы и методы. Исследования выполнены на основе сетевой компьютерной интерпретации исполнимых логико-алгебраических моделей и аппарата логических сетей Петри. Результаты. Предложена концепция построения ОС РВС, основанная на формализации перехода от облачной архитектуры «функция как сервис» (FааS Funсtiоn-аs-а-Sеrviсе) к новой архитектуре «агент как сервис» (АааS Аgеnt-аs-а-Sеrviсе). Предложена формализация функциональной архитектуры ОС РВС системами логико-алгебраических операционных выражений (ЛАОВ), относящихся к классу исполнимых моделей и пригодных для непосредственной программной реализации в сетевой компьютерной среде; дополнительным свойством ЛАОВ является возможность реконфигурации (модификации режима функционирования) результирующего сетевого программного обеспечения. Предложена методика отображения системы логико-алгебраических операционных выражений на архитектуру компьютерной сети, учитывающая регулярный характер модели. Выводы. Методика синтеза облачных систем с новой архитектурой АааS, основанная на формализованных логико-алгебраических спецификациях, позволяет ускорить создание программного обеспечения и расширить функциональные возможности рассматриваемых систем.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Волчихин Владимир Иванович, Зинкин Сергей Александрович, Карамышева Надежда Сергеевна

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

FUNCTIONING ORGANIZATION OF THE CLOUD-NETWORK DISTRIBUTED COMPUTER SYSTEMS WITH THE ARCHITECTURE “AGENTS AS THE SERVICES”

Background . At the conceptual level of designing a distributed computing system, there can be proposed various schemes of client interactions with servers, in the implementation of which clients differently access one or a group of servers. An urgent problem is the organization of such interactions in cloud-based distributed computing systems (CB DCS) and the transition from a conceptual representation of the functional architecture to network applications. The object of the study is the CB DCS. The subject of the research is the synthesis technique of the functional architecture of such systems. The aim of the study is to solve the urgent task of expanding the functionality of the CB DCS, combining the properties of the actual cloud and grid systems with the properties of multi-agent systems. A feature of the proposed new functional architecture is that mobile agents performing specified functions are provided for rent to the user. Materials and methods. The studies were performed on the basis of a networked computer interpretation of executable logical-algebraic models and apparatus of logical Petri nets. Results. The concept of building the CB DCS based on the formalization of the transition from the cloud-based architecture of FaaS Function-as-a-Service to the new architecture AaaS Agent-as-a-Service is proposed. The formalization of the functional architecture of the CB DCS based on the systems of logical-algebraic operational expressions (LAOE), belonging to the class of executable models and suitable for direct software implementation in a networked computer environment, is proposed; an additional property of LAOE is the possibility of reconfiguration (modification of the operating mode) of the resulting network software. A technique for mapping a system of logical-algebraic operational expressions onto a computer network architecture that takes into account the regular nature of the model is proposed. Conclusions. The synthesis technique of cloud systems with the new AaaS architecture, based on formalized logical-algebraic specifications, allows you to speed up the creation of software and expands the functionality of the systems in question.

Текст научной работы на тему «Организация функционирования облачно-сетевых распределенных вычислительных систем с архитектурой «Агенты как сервисы»»

УДК 004.9

DOI 10.21685/2072-3059-2019-4-3

В. И. Волчихин, С. А. Зинкин, Н. С. Карамышева

ОРГАНИЗАЦИЯ ФУНКЦИОНИРОВАНИЯ ОБЛАЧНО-СЕТЕВЫХ РАСПРЕДЕЛЕННЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ С АРХИТЕКТУРОЙ «АГЕНТЫ КАК СЕРВИСЫ»

Аннотация.

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

Материалы и методы. Исследования выполнены на основе сетевой компьютерной интерпретации исполнимых логико-алгебраических моделей и аппарата логических сетей Петри.

Результаты. Предложена концепция построения ОС РВС, основанная на формализации перехода от облачной архитектуры «функция как сервис» (FaaS -Function-as-a-Service) к новой архитектуре «агент как сервис» (AaaS - Agent-as-a-Service). Предложена формализация функциональной архитектуры ОС РВС системами логико-алгебраических операционных выражений (ЛАОВ), относящихся к классу исполнимых моделей и пригодных для непосредственной программной реализации в сетевой компьютерной среде; дополнительным свойством ЛАОВ является возможность реконфигурации (модификации режима функционирования) результирующего сетевого программного обеспечения. Предложена методика отображения системы логико-алгебраических операционных выражений на архитектуру компьютерной сети, учитывающая регулярный характер модели.

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

Ключевые слова: облачно-сетевые системы, агенты, сервисы, мультиа-гентные системы, модифицированные сети Петри, логико-алгебраические спецификации.

© Волчихин В. И., Зинкин С. А., Карамышева Н. С., 2019. Данная статья доступна по условиям всемирной лицензии Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), которая дает разрешение на неограниченное использование, копирование на любые носители при условии указания авторства, источника и ссылки на лицензию Creative Commons, а также изменений, если таковые имеют место.

V. I. Volchikhin, S. A. Zinkin, N. S. Karamysheva

FUNCTIONING ORGANIZATION OF THE CLOUD-NETWORK

DISTRIBUTED COMPUTER SYSTEMS WITH THE ARCHITECTURE "AGENTS AS THE SERVICES"

Abstract.

Background. At the conceptual level of designing a distributed computing system, there can be proposed various schemes of client interactions with servers, in the implementation of which clients differently access one or a group of servers. An urgent problem is the organization of such interactions in cloud-based distributed computing systems (CB DCS) and the transition from a conceptual representation of the functional architecture to network applications. The object of the study is the CB DCS. The subject of the research is the synthesis technique of the functional architecture of such systems. The aim of the study is to solve the urgent task of expanding the functionality of the CB DCS, combining the properties of the actual cloud and grid systems with the properties of multi-agent systems. A feature of the proposed new functional architecture is that mobile agents performing specified functions are provided for rent to the user.

Materials and methods. The studies were performed on the basis of a networked computer interpretation of executable logical-algebraic models and apparatus of logical Petri nets.

Results. The concept of building the CB DCS based on the formalization of the transition from the cloud-based architecture of FaaS - Function-as-a-Service to the new architecture AaaS - Agent-as-a-Service is proposed. The formalization of the functional architecture of the CB DCS based on the systems of logical-algebraic operational expressions (LAOE), belonging to the class of executable models and suitable for direct software implementation in a networked computer environment, is proposed; an additional property of LAOE is the possibility of reconfiguration (modification of the operating mode) of the resulting network software. A technique for mapping a system of logical-algebraic operational expressions onto a computer network architecture that takes into account the regular nature of the model is proposed.

Conclusions. The synthesis technique of cloud systems with the new AaaS architecture, based on formalized logical-algebraic specifications, allows you to speed up the creation of software and expands the functionality of the systems in question.

Keywords: cloud-based network systems, agents, services, multi-agent systems, modified Petri nets, logical-algebraic specifications.

Введение

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

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

1. Применение агентно-ориентированного подхода AaaS (Agent-as-a-Service) в облачно-сетевых средах типа SaaS (Software-as-a-Service) и FaaS (Function-as-a-Service)

Программное обеспечение как сервис (SaaS - Software-as-a-Service) предоставляет возможность пользователям подключаться к облачным приложениям и использовать их через Интернет [1, 2]. Облачный сервис SaaS позволяет организациям быстро запускать приложения с минимальными предварительными расходами. Агентно-ориентированный подход к построению облачно-сетевых вычислительных сред (AaaS - Agent-as-a-Service) может позволить пользователю не только арендовать, но и самому запускать в сеть приложения, существующие в форме взаимодействующих мобильных агентов.

Подход, развиваемый в настоящей работе, пригоден для реализации на базе многих существующих платформах мобильных агентов, управляющих функционированием агентов [3, 4]. Известен ряд инструментальных средств и языков для агентно-ориентированного программирования. Для реализации архитектуры ОС РВС типа AaaS большой интерес представляют агентные платформы, базирующиеся на кроссплатформенном языке Java [5-7]: Agent Factory, AgentBuilder, AgentScape, Aglets, AGLOBE, Cougaar, CybelePro, EMERALD, JACK, JADE, Jadex, Jason, JIAC, Jas, MASON, SeSAm, Swarm и др. В настоящей работе учитываются основные свойства открытых платформ мобильных агентов JADE и Aglets, хорошо зарекомендовавшие себя при создании сетевых, метакомпьютерных и других видов Internet-приложений [8-16].

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

Бессерверный подход (serverless), практически эквивалентный FaaS-подходу (Function-as-a-Service - функция как сервис) [17-21] основан на известной облачной модели, в которой платформа берет на себя функции распределения машинных ресурсов между клиентами. При традиционном подходе запрос «тонкого» клиента вызывает некоторые службы, размещенные на сервере. При новом подходе в подобных системах программными компонентами реализуются функции, которые исполняют запросы к платформе и получают доступ к ее ресурсам. Данная архитектура обеспечивает широкие возможности для удовлетворения требований клиентов, упрощает процессы адресации, анализа емкости хранилища и выделения вычислительных мощностей. Платформа облачной среды занимается настройкой сервера и распределением машинных ресурсов между собой и другими пользователями.

В работе [19] предлагается архитектура облачной системы NFaaS (Named-Function-as-a-Service - именованные функции как сервис), в которой в качестве сервисов используются именованные функции, которые могут быть загружены и запущены любым узлом в сети. Функции могут переме-

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

Облачная модель FaaS функционирует следующим образом [21]:

1. Клиент делает запрос к серверной вычислительной платформе для выполнения определенной функции.

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

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

4. Выполняется функция и фиксируется результат.

5. Результат возвращается клиенту.

Формально архитектура облачно-сетевых сервисов типа AaaS определяется отношением, являющимся областью истинности бинарного предиката

UAaas: Fх A ^ {true, false},

где F - множество функций-сервисов; A - множество мобильных агентов, реализующих эти сервисы.

Изменяемая архитектура AaaS фиксируется путем выполнения множества правил модификации предиката UAaaS следующего вида:

UAaasiFi, a}) ^ Ь,

где Ь - булев терм; Fi е F, aj е A. При Ь = true функция Fi связывается с агентом aj, а при Ь = false эта связь не реализуется или разрывается. Если принято, что каждая функция реализуется одним агентом, то отношение связности должно иметь функциональный характер. Один и тот же агент может реали-зовывать несколько функций. Рисунок 1 иллюстрирует закрепление функций за агентами в мультиагентной системе, реализующей архитектуру ОС РВС типа AaaS. Здесь A0 - агент-менеджер, в функции которого входит создание клонов остальных «облачных» агентов и наделение их требуемой функциональностью. Минимальные требования к агентам - реализация требуемых функций и способность выполнять операции, проиллюстрированные рис. 2.

Способы конкретной реализации процессов в мультиагентных системах описаны в работах [8, 9, 16] и характерны для многих мультиагентных платформ. В данной работе предполагается, что в мультиагентной системе выполняются операции создания копий (клонов) агентов, обмена сообщениями между агентами, перемещения агентов на новый узел сети, обмена данными и их копиями.

Размещение агентов и организацию связей между агентами и узлами в вычислительной сети иллюстрирует рис. 3.

Рис. 1. Многофункциональная мультиагентная система, реализующая архитектуру AaaS

Виртуальные связи в реальной компьютерной TCP/IP сети на сетевом уровне реализуются при помощи коммутаторов и маршрутизаторов. Агенты и сообщения в данной системе могут перемещаться по произвольным маршрутам. Например, агент A0, размещенный в узле 2, может передавать свои клоны и сообщения по кольцу физических узлов <3, 5, 7, 22, 26, 20, 17, 12> или по хордам <3, 5>, <3, 7>, <3, 22>, <3, 26>, <3, 20>, <3, 17>, <3, 12>.

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

По существу, для организации ОС РВС с архитектурой AaaS «агент как сервис» достаточно использовать архитектуры «клиент-сервер» или «клиент-агент-сервер». Мультиагентные платформы возможно также реализовать с применением пиринговых технологий P2P (peer-to-peer) [22], используемых также в файлообменных системах. Архитектура P2P похожа на архитектуры «клиент-сервер» и «клиент-агент-сервер» с тем различием, что размещенный на узле вычислительной сети программный модуль или агент может поочередно выполнять функции как клиента, так и сервера. В этой связи далее рассматривается сетевая архитектура ОС РВС, включающей в свой состав

клиентскую (возможно, беспроводную и мобильную) сеть и TCP/IP сеть -облачный фрагмент Internet Cloud сети Internet. На концептуальном уровне проектирования могут быть предложены различные схемы взаимодействий клиентов с серверами, при реализации которых клиенты по-разному обращаются к одному или к группе серверов при реализации обменов функциями согласно рис. 2 и 3. На рис. 4 представлена упрощенная концептуальная модель взаимодействий нескольких агентов-клиентов с, (i = 1, ..., m) с несколькими агентами-серверами Rj (j = 1, ..., n) в многосерверной системе «клиент-агент-сервер». Здесь принято, что данная архитектура доступа агентов-клиентов к агентам-серверам, далее называемым просто клиентами и серверами, реализуется через составную TCP/IP сеть.

Перемещение агента Перемещение клона агента Перемещение агента с данными Перемещение агента с копией данных Перемещение клона агента с копией данных

Перемещение клона агента с данными

Перемещение сообщений

Перемещение копии данных

а

о

А

■О

о о о о

<3

- Узел сети

- Данные

J\^ - Мобильный агент —► - Сообщения

Рис. 2. Разновидности способов перемещения агентов и данных в агентно-ориентированных сетях

Рассматриваемая далее методика абстрактного и структурного синтеза функциональной архитектуры ОС РВС на основе логико-алгебраической интерпретации реконфигурируемых сетей Петри для ряда других сетевых систем была ранее предложена в работах [23-27] с тем существенным отличи-

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

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

В настоящей работе используются логические, или бинарные, сети Петри, эквивалентные по графическому представлению безопасным сетям Петри [28-31]. Такие сети использовались в работе [32] для описания интерфейса передачи сообщений в сетях, а в работе [33] - для описания работы мобильных агентов в метакомпьютерной среде для управления распределенной базой данных.

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

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

рассмотрения две схемы (схема 1 и схема 2) клиент-серверных взаимодействий при выполнении запросов клиентов. Согласно технологиям FaaS и AaaS функции и агенты, как и сообщения, также могут перемещаться между узлами в соответствии с требованиями пользователя.

Рис. 4. Концептуальная модель взаимодействий в многосерверной системе «агент-клиент-сервер»

При работе по схеме 1 клиент C пытается отыскать свободный сервер из серверов Rb R2 и R3. Для этого он посылает сообщение, последовательно обходящее серверы. Если будет найден свободный сервер, то этот сервер посылает ответ клиенту. Данное сообщение будет циркулировать в сети Internet Cloud, переходя от одного сервера к другому до тех пор, пока не будет найден свободный сервер. Дальнейшее описание целесообразно проиллюстрировать моделью, построенной на основе модификации безопасной сети Петри с дополнительными ингибиторными и информационными дугами и внедренными в ЛАОВ формализованными сетевыми примитивами, соответствующими передачам сообщений в компьютерной сети.

Поведенческая модель М1(С, Rb R2, R3) взаимодействий по схеме 1 в системе «клиент-серверы» для одного клиента и трех серверов представлена на рис. 5. Здесь модель клиентского приложения C представлена фрагментом бинарной сети Петри, содержащим позиции a1, a2, a3, aw и переходы at1, at2, at3. Переход at1 в модели выполняет функцию передачи сообщения, которое самостоятельно отыскивает свободный сервер. Серверные приложения на рис. 5 представлены следующими позициями и переходами: сервер R1 представлен в модели позициями a4, a7, r1 и переходами at4, at7, at8, причем позиция r1 характеризует состояние ресурса Ri: незанятость ресурса при наличии метки в позиции r1 (M(r1) = true) и его занятость, т.е. недоступность клиенту, при отсутствии метки в позиции r1 (M(r1) = false). Здесь M - унарный преди-

кат текущей маркировки позиции r1. Аналогично, сервер R2 представлен в модели позициями a5, a8, r2 и переходами at5, at9, at10, а сервер R3 представлен в модели позициями a6, a9, r3 и переходами at6, at11, at12.

Клиент С

-(TyJ

r1

at10

O^J

r2

at12

r3

Рис. 5. Поведенческая модель М1(С, R1, R2, R3) взаимодействий в системе «клиент-серверы»

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

Система Е1 логико-алгебраических операционных выражений (ЛАОВ) для сети, представленной на рис. 5, имеет следующий вид:

Ati = [P(ai)]({P(ai) ^ false, Pfe) ^ true, P(a4) ^ true} v E);

At2 = [P(a2) & Р(аш)]({Р(а2) ^ false, P(aw) ^ false, P(a3) ^ true} v E);

Ats = [P(a3)]({P(a3) ^ false, P(ai) ^ true} v E);

At4 = [P(a4) & -P(ri)]({P(a4) ^ false, P(a5) ^ true} v E);

At5 = [P(a5) & -P(r2)]({P(a5) ^ false, P(a6) ^ true} v E);

At6 = [P(a6) & -P(r3)]({P(a6) ^ false, P(a4) ^ true} v E);

At7 = [P(a4) & P(ri)]({P(a4) ^ false, P(ri) ^ false, P(a7) ^ true} v E);

At8 = [P(a7)]({P(a7) ^ false, P(ri) ^ true, P(aio) ^ true} v E);

At9 = [P(a5) & P(r2)]({P(a5) ^ false, P(r2) ^ false, P(a8) ^ true} v E);

Atio = [P(a8)]({P(a8)^false, P(r2) ^ true, P(aio) ^ true} v E);

Atn = [P(a6) & P(r3)]({P(a6) ^ false, P(r3) ^ false, P(a9) ^ true} v E);

Ati2 = [P(a9)]({P(a9) ^ false, P(r3) ^ true, P(aw) ^ true} v E).

Здесь и далее используется унарный предикат, или функция разметки позиций, P: A и R ^ {true, false}, где A - множество «рабочих» позиций, а R - множество ресурсных позиций, A п R = 0. Система Е1 ЛАОВ содержит продукционные правила срабатывания переходов бинарной сети Петри, представленные для удобства программирования исполнимой модели в целях со-

здания реального сетевого приложения в виде альфа-дизъюнкций Глушкова: нотация [а](В V О) означает, что в зависимости от истинности или ложности замкнутого (без свободных предметных переменных) логического выражения а выполняются действия В или О. В фигурные скобки в выражениях для системы Е1 заключены операции модификации предиката Р. Символ Е обозначает пустое действие при ложности условия в квадратных скобках.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

При работе по схеме 2 клиент так же, как и при работе по схеме 1, пытается отыскать свободный сервер из серверов Я1, Я2 и Я3. Отличие заключается в том, что в случае, когда все серверы оказались заняты, сообщение возвращается к клиенту. Модифицированная поведенческая модель М2(С, Я1, Я2, Я3), описывающая работу системы по схеме 2, представлена на рис. 6. Продукционные правила срабатывания Л^*, А2* и А6* для переходов 11, ¿2 и ¿6 изменятся (здесь и в приведенной ниже системе ЛАОВ Х2 измененные правила отмечены звездочками).

Клиент С

R1

R2

R3

r1

at10

<7yJ

r2

r3

Рис. 6. Модифицированная поведенческая модель М2(С, Я1, Я2, Я3) взаимодействий в системе «клиент-серверы»

Система Х2 логико-алгебраических операционных выражений для сети M2(C, Ri, R2, R3), представленной на рис. 6, примет следующий вид:

Ati* = [P(al)]({P(al) ^ false, P(a4) ^ true} v E);

At2* = [P(aio)]({P(aio) ^ false, Р(аз) ^ true} v E);

At3 = [P(a3)]({P(a3) ^ false, P(ax) ^ true} v E);

At4 = [P(a4) & —P(ri)]({P(a4) ^ false, P(a5) ^ true} v E);

At5 = [P(a5) & —Pfo)]({P(a5) ^ false, Pfo) ^ true} v E);

At6* = [P(a6) & —P(^3)]({P(a6) ^ false, P(ai) ^ true} v E);

At7 = [P(a4) & P(ri)]({P(a4) ^ false, P(ri) ^ false, P(a7) ^ true} v E);

At8 = [P(a7)]({P(a7) ^ false, P(ri) ^ true, P(aio) ^ true} v E);

At9 = [P(a5) & P(r2)]({P(a5) ^ false, Pfo) ^ false, P(a8) ^ true} v E);

Ati0 = [P(a8)]({P(a8)^false, P(r2) ^ true, P(ai0) ^ true} v E);

Atii = [P(a6) & P(r3)]({P(a6) ^ false, P(r3) ^ false, P(ag) ^ true} v E);

Ati2 = [P(a9)]({P(a9) ^ false, P(r3) ^ true, P(aw) ^ true} v E).

Объединяя две системы Е1 и Х2, получим следующую систему выражений для новой системы ЛАОВ Х2_3:

Ati = [-¿(г) & P(ai)]({P(ai) ^ false, Pfe) ^ true, P(a4) ^ true} v E);

Ati* = [¿(г) & P(ai)]({P(ai) ^ false, P(a4) ^ true} v E);

At2 = [-¿(г) & P(a2) & P(aio)]({P(a2) ^ false, P(aio) ^ false,

P(a3) ^ true} v E);

At2* = [-¿(г) & P(aio)]({ P(aio) ^ false, P(a3) ^ true} v E);

At3 = [P(a3)]({P(a3) ^ false, P(ai) ^ true} v E);

At4 = [P(a4) & -P(ri)]({P(a4) ^ false, P(a5) ^ true} v E);

At5 = [P(a5) & -P(r2)]({P(a5) ^ false, P(a6) ^ true} v E);

At6 = [-¿(г) & P(a6) & -P(r3)]({P(a6) ^ false,

P(a4) ^ true} v E);

At6* = [¿(г) & P(a6) & -P(r3)]({P(a6) ^ false,

P(ai) ^ true} v E);

At7 = №0 & P(ri)]({P(a4) ^ false, P(ri) ^ false, P(a7) ^ true} v E);

At8 = [P(a7)]({P(a7) ^ false, P(ri) ^ true, P(aio) ^ true} v E);

At9 = [P(a5) & P(r2)]({P(a5) ^ false, P(r2) ^ false, P(a8) ^ true} v E);

Atio = [P(a8)]({P(a8)^false, P(r2) ^ true, P(aio) ^ true} v E);

Atii = [P(a6) & P(r3)]({P(a6) ^ false, P(r3) ^ false, P(a9) ^ true} v E);

Ati2 = [P(a9)]({P(a9) ^ false, P(r3) ^ true, P(aw) ^ true} v E).

Для настройки системы на работу по схеме 1 или по схеме 2 введен предикат ¿ и предметная константа г. При ложности высказывания ¿(г) система настраивается на работу по схеме 1, а при его истинности - по схеме 2.

3. Логико-алгебраические спецификации с формализованными

расширениями для представления передач сообщений и агентов в облачно-сетевых вычислительных системах

Приведенные ранее модели M1(C, R1, R2, R3) и M2(C, R1, R2, R3) являются неполными в том плане, что в них не учтены сетевые обмены, протекающие в среде вычислительной сети Internet Cloud. Поэтому целесообразно рассмотреть полные модели, в которых учитываются сетевые взаимодействия между клиентами и серверами. На рис. 7 представлена полная сетевая модель M3(C1, C2, C3, C4, R1, R2, R3), описывающая доступ четырех клиентов C1, C2, C3 и C4 к трем серверам R1, R2 и R3 по схеме 1, а на рис. 8 представлена полная сетевая модель M4(C1, C2, C3, C4, R1, R2, R3), описывающая доступ такого же числа клиентов к серверам по схеме 2.

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

Сетевые спецификации представлены логико-алгебраическими операционными выражениями, построенными на основе правил срабатывания переходов в бинарных сетях Петри. Вводятся унарные предикаты, одноименные клиентам и серверам: C1, C2, C3, C4, R1, R2, R3. Эти предикаты представляют собой функции разметки позиций. В качестве значений предметных переменных используются предметные константы, имена которых совпадают с име-

нами позиций, используемых в моделях M3(Cb C2, C3, C4, Rb R2, R3) и M4(Cb

C2, C3, C4, R\, R2, R3).

Клиент C1

R1

R2

R3

Клиент C2

s b1 ,—

bt1 -4-Г

bt3 Ь2лл~

bt2\p~

b3 у

b4„

4b1C

Клиент C3

с \ c1 (—K'J

ct1 -Ж-

ct3

ct2\p~

V- c3 У

c4„

Клиент C4

d1 t—K'J

dt1 -4-Г

dt3 d2r4~

d3 J

d4.

vd10

bt7 b7 \

•жн

ч>

bt9 be |

c5

d5

55?

qJ

at11 a9 I

ЖЯ

at10

bt6

bt11 b9 I

bt10

c6

ct9 ce

ct10

d6

r1

dt9 de

Ш

dt10 -©^

r2

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

at12

bt12

ct6

ct11 c9 I

ct12

dt6

dt11 d9 I

dt12 -Q^J

r3

Рис. 7. Сетевая модель M3(Cb C2, C3, C4, Rb R2, R3)

Клиент С1

R1

R2

R3

r1

(Tyj

r2

dt11 d9 I

dt12 -GH

r3

Рис. 8. Сетевая модель М4(СЬ С2, С3, С4, Яи Я2, Я3)

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

M3(C1, C2, C3, C4, R1, R2, R3) при ¿(г) = false, так и модели M4(C1, C2, C3, C4, R1, R2, R3) при ¿(г) = true, представлены в следующем виде:

- сетевые спецификации для модулей, реализуемых приложением-клиентом C1:

At1/C1 = [-¿(г) & ¿tart & Ci(ai)](^{^Send(Cl, R1, MC1R1) ^ true # R1(a4) ^

true,

C1(a1) ^ false, C1(a2) ^ true} v E);

Ati*/Ci = [¿(г) & ¿tart & Cl(al)]({¿end(Cl, Ri, Mciri) ^ true # Ri(a4) ^

true,

Ci(ai) ^ false} v E);

At2/C1 = [-¿(г) & (¿end(R1, C1, MR1,C1) v ¿end(R2, C1, MR2,C1) v ¿end(R3, C1, Mr3,ci)) & Ci(a2) & Cl(alo)]({¿end(Rl, Cu Mri,ci) ^ false, ¿end(R2, Ci, M^ci) ^ false, ¿end(R3, C1, MR3,C1) ^ false, C1(a2) ^ false, C1(a10) ^ false, C1(a3) ^ true} v E);

At2*/C1 = [¿(г) & (¿end(R1, C1, MR1,C1) v ¿end(R2, C1, MR2,C1) v ¿end(R3, C1, Mr3,ci)) & Cl(alo)]({¿end(Rl, Cb Mri,ci) ^ false, ¿end(R2, Ci, Mr2,ci) ^ false, ¿end(R3, Ci, MR3,Ci) ^ false, Ci(ai0) ^ false, Ci(a3) ^ true} v E);

At3/Ci = [Ci(a3)]({Ci(a3) ^ false, Ci(ai) ^ true} v RetT,„(Ati/Ci));

- сетевые спецификации для модулей, реализуемых приложением-сервером Ri для приложения-клиента Ci:

At4/Ri = [¿end(Ci, Ri,Mciri) & Ri(a4) & -Ri(ri)]

({¿end(Ci, Ri, MciRi) ^ false, Ri(a4) ^ false, ¿end(Ru R2, Mrir2) ^ true # R2(a5) ^ true} v E);

At7/Ri = [¿end(Ci, Ri,Mciri) & Ri(a4) & Ri(ri)] ({¿end(Cu Ri, MCiRi) ^ false, Ri(a4) ^ false, Ri(a7) ^ true, Ri(ri) ^ false} v E);

At8/Ri = [Ri(a7)]({Ri(a7) ^ false, Ri(ri) ^ true, ¿end(Ri, Ci, Mri,ci) ^ true # Ci(aio) ^ true} v E);

- сетевые спецификации для модулей, реализуемых приложением-сервером R2 для приложения-клиента Ci:

At5/R2 = [¿end(Ri, R2, Mri,r2) & R2(a5) & -R2(r2)]

({¿end(Ri, R2, MRiR2) ^ false, R2(a5) ^ false, ¿end(R2, R3, MR2R3) ^ true # R3(a6) ^ true} v E);

At9/R2 = [¿end(Ri, R2, Mri,r2) & R2(a5) & R2(r2)] ({¿end(Ri, R2, Mrir2) ^ false, R2(a5) ^ false, R2(a8) ^ true, R2(r2) ^ false} v E);

Atio/R2 = [R2(a8)]({R2(a8) ^ false, R2(r2) ^ true, ¿end(R2, Ci, Mr2,ci) ^ true # Ci(aio) ^ true} v E);

- сетевые спецификации для модулей, реализуемых приложением-сервером R3 для приложения-клиента Ci:

At6/R3 = [-¿(г) & ¿end(R2, R3, Mr2r3) & R3(a6) & -№)]

({¿end(R2, R3, Mr2R3) ^ false, R3^) ^ false, ¿end(R3, Ri, Mr3ri) ^ true #

Ri(a4) ^ true} v E);

At6*R = [S(z) & Send(R2, R3, Mr2r3) & R3(a6) & —№)]

({Send(R2, R3, Mr2r3) ^ false, R3(a6) ^ false, Send(R3, Ci, Mr3,ci) ^ true #

Ci(oi) ^ true} v E);

Atn/R3 = [Send(R2, R3, Mr2r3) & R3(a6) & R3^)] ({Send(R2, R3, MR2R3) ^ false, R3(a6) ^ false, R3(a9) ^ true, R3(r3) ^ false} v E);

At 12/R3 = [R3(a9)]({R3(a9) ^ false, R3^) ^ true, Send(R3, Ci, Mr3,ci) ^ true # Ci(aio) ^ true} v E);

- сетевые спецификации для модулей, реализуемых приложением-клиентом C2:

Bti/C2 = [—iS(z) & Start & C2(6i)]({Send(C2, Ri, MC2,Ri) ^ true # Ri(64) ^

true,

C2(6i) ^ false, C2(&2) ^ true} v E);

Bti*/C2 = [S(z) & Start & C2(bi)]({Send(C2, Ri, Mc2ri) ^ true # Rib) ^

true,

C2(bi) ^ false} v E);

Bt2/C2 = [—S(z) & (Send(Ri, C2, MRl^) v Send(R2, C2, Mr2,c2) v Send(R3, C2, Mr3,c2)) & C2(b2)& C2(bio)]({Send(Ri, C2, Mri,c2) ^ false, Send(R2, C2, Mr2,c2) ^ false,

Send(R3, C2, Mr3,c2) ^ false, C2b) ^ false, C2(bw) ^ false, С2(Ьз) ^ true} v E);

Bt2*/C2 = [—S(z) & (Send(Ri, C2, MRl^) v Send(R2, C2, Mr2,c2) v Send(R3, C2, Mr3,c2)) & C2(bio)]({Send(Ri, C2, Mri,c2) ^ false, Send(R2, C2, MR2£2) ^ false, Send(R3, C2, Mr3,c2) ^ false, С2(ЬШ) ^ false, С2(Ьз) ^ true} v E);

BtC = [С2(Ьз)]({С2(Ьз) ^ false, C2(bi) ^ true} v ReU^BtO);

- сетевые спецификации для модулей, реализуемых приложением-сервером Ri для приложения-клиента C2:

Bt4/Ri = [Send(C2, Ri,Mc2,ri) & Rib) & —Ri(ri)]

({Send(C2, Ri, Mc2,ri) ^ false, Ri(b4) ^ false, Send(Ri, R2, Mrir2) ^ true # R2(bs) ^ true} v E);

Bt7/Ri = [Send(C2, Ri,Mc2,ri) & Ri(b4) & Ri(ri)] ({Send(C2, Ri, Mc2ri) ^ false, Ri(b4) ^ false, Ri(b7) ^ true, Ri(ri) ^ false} v E);

Bts/Ri = [Ri(b7)]({Ri(b7) ^ false, Ri(ri) ^ true,

Send(Ri, C2,Mri,c2) ^ true # С2Ы ^ true} v E);

- сетевые спецификации для модулей, реализуемых приложением-сервером R2 для приложения-клиента C2:

Bt5/R2 = [Send(Ri, R2, Mri,r2) & R2(bs) & — R2(r2)]

({Send(Ri, R2, MRiR2) ^ false, R2(b5) ^ false, Send(R2, R3, MR2R3) ^ true # R3(b6) ^ true} v E);

Bt9/R2 = [Send(Ri, R2, Mri,r2) & R2(b5) & R2(r2)] ({Send(Ri, R2, Mrir2) ^ false, R2(b5) ^ false, R2(b8) ^ true,

R2(r2) ^ false} v E);

Btio/R2 = [R2(^8)]({R2(^8) ^ false, R2(r2) ^ true, ¿end(R2, C2, Mr2,c2) ^ true # C2(bio) ^ true} v E);

- сетевые спецификации для модулей, реализуемых приложением-сервером R3 для приложения-клиента C2:

Bt6/R3 = [-¿(г) & ¿end(R2, R3, Mr2rs) & Rsfo) & -№)]

({¿end(R2, R3, MR2R3) ^ false, R3(b6) ^ false, ¿end(R3, Ri, MR3Ri) ^ true #

Ri(b4) ^ true} v E);

Bt6*/R3 = [¿(г) & ¿end(R2, R3, Mr2rs) & Rsb) & -Rs(rs)]

({¿end(R2, R3, Mr2,r3) ^ false, R3(&6) ^ false, ¿end(R3, C2, Mr3c2) ^ true #

C2(bi) ^ true} v E);

Bt„/R3 = [¿end(R2, R3, Mr2,r3) & Rsb) & R3(r3)] ({¿end(R2, R3, Mr2R3) ^ false, R3(b6) ^ false, R3(b9) ^ true, R3(r3) ^ false} v E);

Bti2/R3 = [R3(b9)]({R3(b9) ^ false, Rs(rs) ^ true, ¿end(R3, C2, Mr3,c2) ^ true # C2(bio) ^ true} v E);

- сетевые спецификации для модулей, реализуемых приложением-клиентом C3:

Cti/C3 = [-¿(г) & ¿tart & Сз(сОК{&^(Сз, Ri, Mc3,ri) ^ true # R^) ^ true, C3(ci) ^ false, C3(c2) ^ true} v E);

Cti*/C3 = [¿(г) & ¿tart & Сз(сО]({&^(Сз, Ri, Mcsri) ^ true # R^) ^

true,

C3(ci) ^ false} v E);

Ct2/C3 = [-¿(г) & (¿end(Ri, C3, MRXff) v ¿end(R2, C3, Mr2^) v ¿end(R3, C3, Mr3,c3)) & C3(cio)](^e«d(Rb C3,Mri.cb) ^ false, ¿end(R2, C3,Mr2,cs) ^ false,

¿end(R3, C3, MR3,C3) ^ false, C3(ci0) ^ false, C3(c2) ^ false, C3(c3) ^ true} v E);

Ct2*/C3 = [¿(г) & (Send(Ru C3, Mr^cs) v ¿end(R2, C3, Mr2^) v ¿end(R3, C3, Mr3,c3)) & C3(cio)](№nd(Rb C3, Mri,cs) ^ false, ¿end(R2, C3, Mr2,cs) ^ false, ¿end(Rs, C3, Mrs.cs) ^ false, Сз(сш) ^ false, Сз(сз) ^ true} v E); Cts/Cs = [Сз(сз)]({Сз(сз) ^ false, Csfa) ^ true} v RetrJCti/Сз));

- сетевые спецификации для модулей, реализуемых приложением-сервером Ri для приложения-клиента C3:

Ch/Ri = [¿end(Cs, Ri, Mcsri) & Ri(q) & -Ri(ri)]

({¿end(Cs, Ri, Mc3ri) ^ false, Ri(c4) ^ false, ¿end(Ru R2, MriM) ^ true # R2(C5) ^ true} v E);

Ct7/Ri = [¿end(Cs, Ri,Mcsri) & Ri(q) & Ri(ri)] ({¿end(C3, Ri, MC3Ri) ^ false, Ri(c4) ^ false, Ri(c7) ^ true, Ri(ri) ^ false} v E);

Ct8/Ri = [Ri(c7)]({Ri(c7) ^ false, Ri(ri) ^ true, ¿end(Ri, C3, Mrics) ^ true # Сз(сш) ^ true} v E);

- сетевые спецификации для модулей, реализуемых приложением-сервером R2 для приложения-клиента C3:

Ct5/R2 = [¿end(Ri, R2, Mrir2) & R2(C5) & -R2(r2)]

({¿end(Ri, R2, Mrir2) ^ false, R2(c5) ^ false, SendR, R3, Mr2rs) ^ true # Rs(c6) ^ true} v E);

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Ct9/R2 = [¿end(Ri, R2, MRi,R2) & R2(C5) & R2(r2)] ({¿end(Ri, R2, Mrir2) ^ false, R2(c5) ^ false, R2(c8) ^ true, R2(r2) ^ false} v E);

Ctio/R2 = [R2(C8)]({R2(C8) ^ false, R2^) ^ true, ¿end(R2, C3, Mr2,c3) ^ true # Сз(сш) ^ true} v E);

- сетевые спецификации для модулей, реализуемых приложением-сервером R3 для приложения-клиента C3:

Ct6/Rs = [-¿(г) & ¿end(R2, R3, Mr2rs) & RsO & -Rs(rs)]

({¿end(R2, R3, MR2R3) ^ false, R3(c6) ^ false, ¿end(R3, Ri, MR3Ri) ^ true #

Ri(c4) ^ true} v E);

Ct6*/Rs = [¿(г) & ¿end(R2, R3, Mr2^) & Rsfo) & -№)]

({¿end(R2, R3, Mr2rs) ^ false, Rs(c6) ^ false, ¿end(Rs, C3, Mrs,cs) ^ true #

C3(ci) ^ true} v E);

Ctii/R3 = [¿end(R2, R3, Mr2,rs) & Rsfe) & Rsfo)] ({¿end(R2, R3, Mr2rs) ^ false, Rs(c6) ^ false, Rs(c9) ^ true, Rs(rs) ^ false} v E);

Cti2/R3 = [Rs(c9)]({Rs(c9) ^ false, Rs(rs) ^ true, ¿end(R3, C3, MR3,C3) ^ true # C3(ci0) ^ true} v E);

- сетевые спецификации для модулей, реализуемых приложением-клиентом C4:

Dti/С4 = [-¿(г) & ¿tart & C4(dl)]({¿end(C4, Ri, Mc4ri) ^ true # Ri(d4) ^ true, C4(d2) ^ true, C4(di) ^ false} v E);

Dti*/C4 = [¿(г) & ¿tart & C4(dl)]({¿end(C4, Ri, Mc4ri) ^ true # Ri(d4) ^ true, C4(di) ^ false} v E);

Dt2/С4 = [(¿end(Ri, C4, Mri ,C4) v ¿end(R2, С4, Mr2,c4) v ¿end(Rs, С4, M?3,C4)) & C^d^XK^end^, C4,MRi,C4) ^ false, ¿end(R2, C4,MR2,C4) ^ false, ¿end(R3, C4, MR3,C4) ^ false, C4(di0) ^ false, C4(d3) ^ true} v E); Dt3/С4 = [C4(ds)]({C4(ds) ^ false, C4(di) ^ true} v Ret^DtC));

- сетевые спецификации для модулей, реализуемых приложением-сервером Ri для приложения-клиента C4:

DtJRi = [¿end(C4, Ri, Mc4,ri) & Ri(d4) & -Ri(ri)]

({¿end(C4, Ri, Mc4ri) ^ false, Ri(d4) ^ false, ¿end(Ri, R2, Mrir2) ^ true # R2(d5) ^ true} v E);

Dt7/Ri = [¿end(C4, Ri, Mc4,ri) & Ri(d4) & Ri(ri)] ({¿end(C4, Ri, MC4Ri) ^ false, Ri(d4) ^ false, Ri(d7) ^ true, Ri(ri) ^ false} v E);

Dt8/Ri = [Ri(d7)]({Ri(d7) ^ false, Ri(ri) ^ true,

¿end(Ri, С4,Mri,c4) ^ true # C4(dio) ^ true} v RetT,„(At4/Ri));

- сетевые спецификации для модулей, реализуемых приложением-сервером R2 для приложения-клиента C4:

D5/R2 = [Send(Ri, R2, Mri,r2) & R2(d5) & — R2{r2)]

({Send(Ri, R2, Mrir2) ^ false, R2d) ^ false, SendR, R3, Mr2r3) ^ true # R3H) ^ true} v E);

Dt9/R2 = [Send(Ri, R2, Mri,r2) & R2(d5) & R2(r2)] ({Send(Ri, R2, Mrir2) ^ false, R2d) ^ false, R2H) ^ true, R2(r2) ^ false} v E);

Dtio/R2 = [R2(d8)]({R2(d8) ^ false, R2^) ^ true,

Send(R2, С4, Mr2,c4) ^ true # C4(dio) ^ true} v RetT,„(At5/R2));

- сетевые спецификации для модулей, реализуемых приложением-сервером R3 для приложения-клиента C4:

Dt6/R3 = [—S(z) & Send(R2, R3, MR2R3) & R3H) & —№)]

({Send(R2, R3, MR2R3) ^ false, R3(d6) ^ false, Send(R3, Ri, MR3Ri) ^ true,

Ri(d4) ^ true} v E);

Dt6*/R3 = [S(z) & Send(R2, R3, M^) & R3(d6) & — R3^)]

({Send(R2, R3, Mr2,r3) ^ false, R3(d6) ^ false, Send(R3, C4, Mr3,c4) ^ true #

C4(di) ^ true} v E);

Dtii/R3 = [Send(R2, R3, M^) & R3(d6) & R3(r3)] ({Send(R2, R3, Mr2R3) ^ false, R3H) ^ false, R3(d9) ^ true, R3(r3) ^ false} v E);

Dti2/R3 = [R3(d9)]({R3(d9) ^ false, R3^) ^ true,

Send(R3, C4, MR3,C4) ^ true # C4(di0) ^ true} v RetT,n(At6/R3)).

4. Методика отображения логико-алгебраических операционных выражений на архитектуру ОС РВС типа FaaS и AaaS

Приведенные выше выражения описывают в логико-алгебраической форме срабатывания переходов в бинарных сетях Петри, представленных на рис. 7 и 8. Построенные модели относятся к классу исполнимых, поскольку на их основе возможно построить прототипное программное обеспечение для компьютерной сети, реализующей функции ОС РВС типа FaaS или AaaS. Для облегчения этого построения в выражениях используются правила обновления тернарных предикатов вида Send(Ci, Ri, MCi>Ri)^true и Send(Ci, Ri, MCi>Ri)^false. Первое из этих правил соответствует в сетевом приложении команде отправки сообщения Mc1r1 из узла Ci, а второе - состоявшемуся приему этого сообщения узлом Ri.

Методика отображения логико-алгебраических операционных выражений на архитектуру ОС РВС типа FaaS или AaaS состоит в формировании логико-алгебраических операционных выражений по модульному принципу, распределении модулей по серверам. В связи с регулярностью моделей M3(Ci, С2, С3, С4, Ri, R2, R3) и M4(Ci, С2, С3, С4, Ri, R2, R3) это распределение выполняется естественным образом.

Клиентские (Ci, С2, С3, С4) и серверные (Ri, R2, R3) агентно-ориентированные приложения реализуются в виде сетевых программных модулей на основе логико-алгебраических операционных выражений. Например, клиентское приложение Ci включает модули - программные реализации выражений Ati/Ci, Ati*/Ci, At2/Ci, At2*/Ci и At3/Ci, а серверное приложение R3 -модули At6/R3, At6*/R3, Atn/R3, At^, BtR Bt6*R Bt„/R3, BtiR CtR

Ct6*/R3, Ctii/R3, Cti2/R3, Dt6/R3, Dt6*/R3, Dtii/R3, Dti2/R3. Звездочками здесь отмечены альтернативно исполняемые выражения системы X4x3 для реконфигу-рируемой модели, построенной на основе совмещения моделей M3(Ci, С2, С3,

C4, R1, R2, R3) и , C2, C3, C4, R1, R2, R3).

В отличие от предыдущих упрощенных моделей M1(C, R1, R2, R3) и M2(C, R1, R2, R3), при построении последней логико-алгебраической модели X4x3 на формальном уровне учтены особенности объекта моделирования при работе в сети Internet Cloud. При описании модели и сетевого приложения будут, как это часто принято для сокращения описания, смешиваться понятия об объектах модели и объектах предметной области. Проанализируем некоторые основные моменты построения формализованных спецификаций на примере следующего выражения At1/C1 для перехода at1:

Ati/Ci = [—S(z) & Start & Ci(ai)]({Send(Ci, Ri, Mciri) ^ true # R^) ^

true, C1(a1) ^ false, C1(a2) ^ true} v E).

Имя At1/C1 означает, что процедура At1/C1 перехода at1 в виде программного модуля реализуется на компьютере клиента С1. Модуль начинает выполнение с проверки истинности составного высказывания — S(z)&Start&Ci(ai), где S(z) - предикат настройки модуля на заданный режим работы по схеме 1 или схеме 2, Start - стартовое условие для модуля, C1(a1) - условие готовности клиента к выдаче сообщения. Если указанное условие истинно, то далее выполняется следующая последовательность действий: Send(C1, R1, MC1>R1)^true #R1(a4)^true.

Обновлению тернарного предиката Send(C1, R1, MC1R1)^true соответствует отправка сообщения Mc1r1 от приложения клиента С1 приложению сервера R1. Обновлению унарного предиката разметки R1(a4)^true соответствует факт приема сообщения Mc1r1 приложением сервера R1. Символ "#" означает, что два действия причинно связаны и выполняются последовательно. Выполнение правила C1(a2)^true соответствует переходу приложения клиента в состояние ожидания ответного сообщения от одного из серверов. Логико-алгебраическое выражение

AtJRi = [Send(Ci, Ri,Mci,ri) & Ri(a4) & —Ri(ri)]

({Send(C1, R1, MC1R1) ^ false, R1(a4) ^ false, Send(R1, R2, MR1R2) ^ true # R2(a5) ^ true} v E)

реализуется программным модулем приложения сервера R1. Этот модуль принимает сообщение Mc1r1. О наличии этого сообщения в модели сервера R1 свидетельствует истинность составного высказывания Send(C1, R1, MC1R1)&R1(a4). Сервер R1 недоступен при ложности высказывания R1(r1). Поэтому в модели сервер R1 аннулирует сообщение путем обновления предикатов Send(C1, R1, MC1R1)^false и R1(a4)^false и далее посылает сообщение Mr1r2 следующему серверу R2. В модели серверного приложения этот факт отмечается последовательным выполнением следующих действий: Send(R1, R2, Mr iR2)^true# R2(a5)^true.

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

At3/C1 = [С1(аз)]({С1(аз) ^ false, Cl(al) ^ true} v Ret%n(At1/C1))

и при C1(a3) = false выполняется оператор RetT,n(At1/C1), передающий управление модулю At1/C1) после отработки тайм-аута т, но не более n раз.

Заключение

Предложена организация функционирования облачно-сетевых РВС, основанная на формализации перехода от известной облачной архитектуры «функция как сервис» (FaaS - Function-as-a-Service) к новой архитектуре «агент как сервис» (AaaS - Agent-as-a-Service). Предложена формализация функциональной архитектуры ОС РВС системами логико-алгебраических операционных выражений, относящихся к классу исполнимых моделей и пригодных для непосредственной программной реализации в сетевой компьютерной среде; дополнительным свойством ЛАОВ является возможность реконфигурации (модификации режима функционирования) результирующего сетевого программного обеспечения. Предложена методика отображения системы логико-алгебраических операционных выражений на архитектуру компьютерной сети, учитывающая регулярный характер модели.

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

В качестве направления дальнейших исследований предлагается развивать методы абстрактного и структурного синтеза облачно-сетевых сервис-ориентированных распределенных вычислительных систем и поддерживающих их агентских платформ на основе формализованных спецификаций и автоматической генерации сетевого программного обеспечения промежуточного уровня (middleware level).

Библиографический список

1. Apache CloudStack: Open Source Infrastructure as a Service Cloud Computing Platform / R. Kumar, K. Jain, H. Maharwal, N. Jain, A. Dadhich // International Journal of advancement in Engineering technology, Management and Applied Science (IJAET-MAS). - 2014. - Vol. 1, № 2. - P. 111-116.

2. Kumar, R. Comparison between Cloud Computing, Grid Computing, Cluster Computing and Virtualization / R. Kumar // International Journal of Modern Computer Science and Applications (IJMCSA). - 2015. - Vol. 3, № 1. - P. 42-47.

3. Tanenbaum, A. S. Distributed Systems: principles and paradigms / A. S. Tanen-baum, Maarten van Steen. - 2nd Edition. - Pearson Education, Inc., 2007. - 669 p.

4. FIPA Specifications. - URL: http://www.fipa.org/specifications/index.html, свободный (дата обращения: 12.11.2019).

5. A Survey of Programming Languages and Platforms for Multi-Agent Systems / R. H. Bordini et al. // Informatica. - 2006. - Vol. 30. - P. 33-44.

6. Kravari, K. A Survey of Agent Platforms / K. Kravari, N. Bassiliades // Journal of Artificial Societies and Social Simulation. - 2015. - Vol. 18 (1), № 11. - P. 1-18.

7. Cynthia, N. Tools of the Trade: A Survey of Various Agent Based Modeling Platforms / N. Cynthia, M. Gregory // Journal of Artificial Societies and Social Simulation. -2009. - Vol. 12, № 2 2. - URL: http://jasss.soc.surrey.ac.uk/12/2/2.html.

8. Bellifemine, F. L. Developing multi-agent systems with JADE / F. L. Bellifemine,

G. Caire, D. Greenwood. - Wiley, 2007. - 300 p.

9. Java Agent Development Environment (JADE). - URL: http://jade.tilab.com/, свободный (дата обращения: 12.11.2019).

10. Development of Mobile Agents with Aglets (A Java Based Tool) / M. Yadav, P. Sethi, D. Juneja, N. Chauhan // Int. Journal of Innovations & Advancement in Computer Science. - 2015. - Vol. 4, Special Issue. - P. 245-251.

11. Evripidou, P. Metacomputing with Mobile Agents / P. Evripidou, G. Samaras // Int. Journal of Parallel Programming. - 2006. - Vol. 34, № 5. - P. 429-458.

12. Barelos, D. Mobile agents procedures: metacomputing in Java / D. Barelos, E. Pi-toura, G. Samaras // Proc. of the ICDCS Workshop on Distributed Middleware (in conjunction with the 19th IEEE International Conference on Distributed Computing Systems (ICDCS99)). - Austin, TX USA, 1999. - P. 90-95.

13. Samaras, G. Extendible, Mobile-Agent Based Services for the Materialization and Maintenance of Personalized and Shareable Web Views ViSMA / G. Samaras, K. Ka-renos, P. K. Chrysanthis, E. Pitoura // In Proc. 11th DEXA Int. Workshop on Mobility in Databases and Distributed Systems, 2003. - P. 974-979.

14. Kausar, Md. Abu Web Crawler Based on Mobile Agent and Java Aglets / Md. Abu Kausar, V. S. Dhaka, Sanjeev Kumar Singh // International Journal of Information Technology and Computer Science (IJITCS). MECS Publisher. - 2013. - Vol. 5, № 10. -P. 85-91.

15. Dada, E. G. Performance Evaluation of AGLETS and JADE Mobile Agent Using Encryption and Decryption Time / E. G. Dada, S. B. Joseph, M. K. Mishra // Radioelec-tronics&Informatics. - 2010. - № 4. - P. 16-20.

16. Lange, D. Programming and deploying Java mobile agents with aglets / D. Lange, M. Oshima. - Addison : Wesley Professional, 1998. - 256 p.

17. Стельмах, С. Шесть ключевых преимуществ бессерверной архитектуры / С. Стельмах. - URL: https://www.itweek.ru/its/article/detail.php?ID=208802:, свободный (дата обращения: 12.11.2019).

18. FaaS (Function-as-a-Service) / Материал из Национальной библиотеки им. Н. Э. Баумана. - URL: https://ru.bmstu.wiki/FaaS_(Function-as-a-Service), свободный (дата обращения: 12.11.2019).

19. Krol, M. NFaaS: Named Function as a Service / M. Krol, I. Psaras // In Proceedings of ICN '17 (Berlin, Germany, September 26-28, 2017). - Berlin, 2017. - 11 p.

20. Ellis, A. Introducing Functions as a Service - OpenFaaS / A. Ellis. Опубл. 08.08.2017. - URL: https://blog.alexellis.io/introducing-functions-as-a-service/, свободный (дата обращения: 12.11.2019).

21. Haines, S. Serverless computing with AWS Lambda, 2018 / S. Haines. - URL: https://www.javaworld.com/article/3210726/serverless-computing-with-aws-lambda.html, свободный (дата обращения: 12.11.2019).

22. Gorodetsky, V. P2P Agent Platform: Implementation and Testing / V. Gorodetsky, O. Karsaev, V. Samoylov, S. Serebryakov // The AAMAS Sixth International Workshop on Agents and Peer-to-Peer. Computing (AP2PC 2007) (Honolulu, May 14-18, 2007). - Honolulu, 2007. - P. 41-54.

23. Волчихин, В. И. Абстрактное и структурное моделирование сетей хранения и обработки данных / В. И. Волчихин, С. А. Зинкин // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2011. - № 4 (20). - С. 3-18.

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

ных / В. И. Волчихин, С. А. Зинкин // Известия высших учебных заведений. Поволжский регион. Технические науки. - 20i2. - № 2 (22). - С. 3-i6.

25. Зинкин, С. А. Элементы новой объектно-ориентированной технологии для моделирования и реализации систем и сетей хранения и обработки данных / С. А. Зинкин // Информационные технологии. - 2008. - № i0. - С. 20-27.

26. Карамышева, Н. С. Методы и модели логического управления дискретными процессами в распределенных вычислительных системах на основе концепции согласования / Н. С. Карамышева // Известия высших учебных заведений. Поволжский регион. Технические науки. - 20ii. - № i (i7). - С. 35-47.

27. Карамышева, Н. С. Обобщенная логико-алгебраическая модель и организация мультиагентных метакомпьютерных систем / Н. С. Карамышева // Перспективы науки. - 20ii. - № 4. - С. 98-i08.

28. Peterson, J. L. Petri Net Theory and the Modeling of Systems / J. L. Peterson. -New Jersey : Prentice-Hall, i98i. - 288 p.

29. Iordache, M. V. Supervisory Control of Concurrent Systems. A Petri Net Structural Approach / M. V. Iordache, P. J. Antsaklis. - Boston : Birkhauser, 2006. - 28i p.

30. Petri Nets Fundamental Models, Verification and Applications / Edited by Michel Diaz. -John Wiley & Sons, 2009. - 585 p.

31. Методы параллельного микропрограммирования / П. А. Анишев, С. М. Ачасова, О. Л. Бандман и др. - Новосибирск : Наука, i98i. - i82 с.

32. Implementation of the interface for sending messages in agent-oriented cloud/grid systems based on formalized specifications / D. Pashchenko, S. Zinkin, A. Dubravin, N. Karamisheva // In IEEE Proc. of the Int. Siberian Conf. on Control and Communications (SIBCON 20i6) (Moscow, Russia, i2-i4 May 20i6). - Moscow, 20i6. -P. i73-i78.

33. Zinkin, S. A. Organization of Autonomous Agent-Robots Interactions for Managing a Very Large Distributed Database System in a Metacomputer Environment / S. A. Zinkin, V. B. Mehanov, N. S. Karamisheva V. I. Volchihin // In Proceedings of the 20i9 IEEE International Conference on Real-time Computing and Robotics (Irkutsk, Russia August 4-9, 20i9). - Irkutsk, 20i9. - P. 846-85i.

References

1. Kumar R., Jain K., Maharwal H., Jain N., Dadhich A. International Journal of advancement in Engineering technology, Management and Applied ¿cience (IJAET-MA¿). 20i4, vol. i, no. 2, pp. iii-ii6.

2. Kumar R. International Journal of Modern Computer ¿cience and Applications (IJMC¿A). 20i5, vol. 3, no. i, pp. 42-47.

3. Tanenbaum A. S., Van Steen M. Distributed ¿ystems: principles and paradigms. 2nd Edition. Pearson Education, Inc., 2007, 669 p.

4. FIPA ¿pecifications. Available at: http://www.fipa.org/specifications/index.html, svo-bodnyy (accessed Nov. i2, 20i9).

5. Bordini R. H. et al. Informatica. 2006, vol. 30, pp. 33-44.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

6. Kravari K., Bassiliades N. Journal of Artificial ¿ocieties and ¿ocial ¿imulation. 20i5, vol. i8 (i), no. ii, pp. i-i8.

7. Cynthia N., Gregory M. Journal of Artificial ¿ocieties and ¿ocial ¿imulation. 2009, vol. i2, no. 2 2. Available at: http://jasss.soc.surrey.ac.uk/i2/2/2.html.

8. Bellifemine F. L., Caire G., Greenwood D. Developing multi-agent systems with JADE. Wiley, 2007, 300 p.

9. Java Agent Development Environment (JADE). Available at: http://jade.tilab.com/, svo-bod-nyy (accessed Nov. i2, 20i9).

10. Yadav M., Sethi P., Juneja D., Chauhan N. Int. Journal of Innovations & Advancement in Computer Science. 2015, vol. 4, Special Issue, pp. 245-251.

11. Evripidou P., Samaras G. Int. Journal of Parallel Programming. 2006, vol. 34, no. 5, pp. 429-458.

12. Barelos D., Pitoura E., Samaras G. Proc. of the ICDCS Workshop on Distributed Middleware (in con-junction with the 19th IEEE International Conference on Distributed Computing Systems (ICDCS99)). Austin, TX USA, 1999, pp. 90-95.

13. Samaras G., Karenos K., Chrysanthis P. K., Pitoura E. In Proc. 11th DEXA Int. Workshop on Mobility in Databases and Distributed Systems. 2003, pp. 974-979.

14. Md. Abu Kausar, Dhaka V. S., Sanjeev Kumar Singh International Journal of Information Technology and Computer Science (IJITCS). MECS Publisher. 2013, vol. 5, no. 10, pp. 85-91.

15. Dada E. G., Joseph S. B., Mishra M. K. Radioelectronics&Informatics. 2010, no. 4, pp. 16-20.

16. Lange D., Oshima M. Programming and deploying Java mobile agents with aglets. Addison : Wesley Professional., 1998, 256 p.

17. Stel'makh S. Shest' klyuchevykh preimushchestv besservernoy arkhitektury [Six key advantages of serverless architecture]. Available at: https://www.itweek.ru/its/article/detail.php?ID=208802:, svobodnyy (accessed Nov. 12, 2019). [In Russian]

18. FaaS (Function-as-a-Service). Material iz Natsional'noy biblioteki im. N. E. Baumana. Available at: https://ru.bmstu.wiki/FaaS_(Function-as-a-Service), svobodnyy (accessed Nov. 12, 2019).

19. Krol M., Psaras I. In Proceedings of ICN '17 (Berlin, Germany, September 26-28, 2017). Berlin, 2017, 11 p.

20. Ellis A. Introducing Functions as a Service - OpenFaaS. Publ. 08.08.2017. Available at: https://blog.alexellis.io/introducing-functions-as-a-service/, svo-bodnyy (accessed Nov. 12, 2019).

21. Haines S. Serverless computing with AWS Lambda, 2018. Available at: https://www.javaworld.com/article/3210726/serverless-computing-with-aws-lambda.html, svobodnyy (accessed Nov. 12, 2019).

22. Gorodetsky V., Karsaev O., Samoylov V., Serebryakov S. The AAMAS Sixth International Work-shop on Agents and Peer-to-Peer. Computing (AP2PC 2007) (Honolulu, May 14-18, 2007) [ ]. Honolulu, 2007, pp. 41-54.

23. Volchikhin V. I., Zinkin S. A. Izvestiya vysshikh uchebnykh zavedeniy. Povolzhskiy region. Tekhnicheskie nauki [University proceedings. Volga region. Engineering sciences]. 2011, no. 4 (20), pp. 3-18. [In Russian]

24. Volchikhin V. I., Zinkin S. A. Izvestiya vysshikh uchebnykh zavedeniy. Povolzhskiy region. Tekhnicheskie nauki [University proceedings. Volga region. Engineering sciences]. 2012, no. 2 (22), pp. 3-16. [In Russian]

25. Zinkin S. A. Informatsionnye tekhnologii [Information technologies]. 2008, no. 10, pp. 20-27. [In Russian]

26. Karamysheva N. S. Izvestiya vysshikh uchebnykh zavedeniy. Povolzhskiy region. Tekhnicheskie nauki [University proceedings. Volga region. Engineering sciences]. 2011, no. 1 (17), pp. 35-47. [In Russian]

27. Karamysheva N. S. Perspektivy nauki [Prospects of science]. 2011, no. 4, pp. 98-108. [In Russian]

28. Peterson J. L. Petri Net Theory and the Modeling of Systems. New Jersey: Prentice-Hall, 1981, 288 p.

29. Iordache M. V., Antsaklis P. J. Supervisory Control of Concurrent Systems. A Petri Net Structural Approach. Boston: Birkhauser, 2006, 281 p.

30. Petri Nets Fundamental Models, Verification and Applications. Edited by Michel Diaz. John Wiley & Sons, 2009, 585 p.

31. Anishev P. A., Achasova S. M., Bandman O. L. et al. Metody parallel'nogo mikropro-grammirovaniya [Methods of parallel microprogramming]. Novosibirsk: Nauka, 1981, 182 p. [In Russian]

32. Pashchenko D., Zinkin S., Dubravin A., Karamisheva N. In IEEE Proc. of the Int. Siberian Conf. on Control and Communications (SIBCON 2016). (Moscow, Russia, 12-14 May 2016). Moscow, 2016, pp. 173-178.

33. Zinkin S. A., Mehanov V. B., Karamisheva N. S., Volchihin V. I. In Proceedings of the 2019 IEEE International Conference on Real-time Computing and Robotics (Irkutsk, Russia August 4-9, 2019). Irkutsk, 2019, pp. 846-851.

Волчихин Владимир Иванович

доктор технических наук, профессор, президент Пензенского государственного университета (Россия, г. Пенза, ул. Красная, 40)

E-mail: [email protected]

Volchihin Vladimir Ivanovich Doctor of engineering sciences, professor, president of Penza State University (40 Krasnaya street, Penza, Russia)

Зинкин Сергей Александрович доктор технических наук, профессор, кафедра вычислительной техники, Пензенский государственный университет (Россия, г. Пенза, ул. Красная, 40)

E-mail: [email protected]

Zinkin Sergey Aleksandrovich Doctor of engineering sciences, professor, sub-department of computer engineering, Penza State University (40 Krasnaya street, Penza, Russia)

Карамышева Надежда Сергеевна кандидат технических наук, доцент, кафедра вычислительной техники, Пензенский государственный университет (Россия, г. Пенза, ул. Красная, 40)

E-mail: [email protected]

Karamysheva Nadezhda Sergeevna Candidate of engineering sciences, associate professor, sub-department of computer engineering, Penza State University (40 Krasnaya street, Penza, Russia)

Образец цитирования:

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

B. И. Волчихин, С. А. Зинкин, Н. С. Карамышева // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2019. - № 4 (52). -

C. 27-50. - DOI 10.21685/2072-3059-2019-4-3.

i Надоели баннеры? Вы всегда можете отключить рекламу.