Содержание к диссертации
Введение
Глава 1. Анализ современного состояния информационных технологий в области высокопроизводительных вычислений 14
Глава 2. Формализованное проектирование функциональной и виртуализированной системной архитектуры предметно-ориентированной облачной среды (ПООС) 38
Глава 3. Логико-алгебраические модели представления знаний о структурных, логических и причинно-следственных связях между компонентами и ресурсами виртуализированной предметно-ориентированной облачной среды 94
Глава 4. Проектирование виртуализированной системной архитектуры предметно-ориентированной облачной среды на прикладном уровне и практические рекомендации по организации работы системы 123
Заключение 164
Список используемых сокращений 166
Список использованных источников 167
Приложение А. Описание принципов построения базы данных системы аккаунтинга, характеристики ее состава и объема. 180
Приложение Б. Формат XML-файлов с метаинформацией о вычислительных заданиях, использующихся при взаимодействии компонентов ПООС с внешними ресурсами. 184
Приложение В. Формат XML-файла логико-алгебраической модели. 186
Приложение Г. Матрицы совместимости для системных сценариев работы ПООС. 187
Приложение Д. Акты о внедрении результатов работы 192
- Анализ современного состояния информационных технологий в области высокопроизводительных вычислений
- Формализованное проектирование функциональной и виртуализированной системной архитектуры предметно-ориентированной облачной среды (ПООС)
- Логико-алгебраические модели представления знаний о структурных, логических и причинно-следственных связях между компонентами и ресурсами виртуализированной предметно-ориентированной облачной среды
- Проектирование виртуализированной системной архитектуры предметно-ориентированной облачной среды на прикладном уровне и практические рекомендации по организации работы системы
Введение к работе
Актуальность темы. При проведении сложных расчетов, связанных с математическим моделированием, зачастую недостаточно обычных персональных компьютеров ввиду того, что они не обладают необходимой вычислительной мощностью. Для решения подобных задач были предложены подходы, позволяющие получить значительно большую производительность. Они основаны на использовании вычислительных комплексов, в первую очередь на базе кластерной архитектуры, из-за ее эффективности, масштабируемости и сниженной стоимости владения по сравнению с аналогами.
К особенностям таких вычислительных комплексов и соответствующего программного обеспечения относятся их высокая стоимость и большие затраты, связанные с их эксплуатацией. Кроме того, отсутствие для ряда отраслей промышленности открытых программных пакетов для моделирования вынуждает пользователей покупать их коммерческие аналоги. Поэтому большинство компаний малого и среднего бизнеса, а также вузы не могут позволить себе приобретение промышленного вычислительного комплекса и вынуждены использовать недорогие, менее мощные решения, что приводит к увеличению времени счета, а при небольшом количестве задач – к неэффективному использованию оборудования ввиду его длительного простоя. С указанной проблемой тесно связана задача разработки и тестирования высокопроизводительных приложений. Отсутствие у пользователей необходимого оборудования и удобных инструментальных средств не позволяет проводить анализ программной модели и строить оптимизированные параллельные приложения.
Одной из основных тенденций развития информационных технологий в настоящее время является массовое внедрение облачных вычислений и грид-систем. Благодаря развитию аппаратных вычислительных и сетевых технологий стало возможным объединение разнородных распределенных вычислительных ресурсов, хранилищ данных, соответствующего программного обеспечения в единую вычислительную среду, доступ к которой предоставляется через Интернет.
Существенный вклад в исследование облачных вычислений внесли R. Buyya, N. Antonopoulos, D. Avresky, S. Ahson, B. Sosinsky, K. Hwang, G. Fox, J. Dongarra, В. П. Потапов, В. В. Губарев. Изучением предметно-ориентированных облачных сред для прикладных научных исследований занимаются M. McLennan и G. Klimeck. Грид-системам и связанным с ними технологиям распределенных вычислений посвящены работы В. В. Воеводина, Вл. В. Воеводина, A. Tanenbaum, M. van Steen, N. Preve, A. Abbas, I. Fosterи, A. Mantri. Формализация параллельных вычислений в распределенных системах рассматривается в работах Н. П. Вашкевича, В. А. Горбатова, В. Е. Котова, В. П. Кулагина, В. В. Топоркова.
Существуют различные сервисные модели облачных вычислений; в диссертации рассматривается модель SaaS – программное обеспечение
как услуга (англ. Software-as-a-Service) и модель PaaS – платформа как услуга (англ. Platform-as-a-Service).
В модели SaaS представлены многие типы прикладного программного обеспечения, однако для класса высокопроизводительного программного обеспечения с графическим интерфейсом пользователя отсутствует возможность распространения в данной модели в связи с трудностями адаптации таких приложений под Интернет. Одновременно с этим не существует облачной платформы, предоставляющей средства разработки и тестирования таких приложений.
В связи с этим актуальной задачей является создание концепции, описывающей развертывание программно-аппаратных комплексов для обеспечения пользователей удаленным интерактивным доступом к высокопроизводительному программному обеспечению с графическим интерфейсом в модели SaaS, а также к платформе для разработки и тестирования такого программного обеспечения в модели PaaS.
Реализуемый функционал таких программно-аппаратных комплексов определяется набором установленных в них прикладных приложений и зависит от предметной области. Cовокупность всех предоставляемых комплексом специфичных для конкретной отрасли сервисов составляет предметно-ориентированную облачную среду (ПООС). Подобные среды можно рассматривать как подкласс распределенных вычислительных систем.
Целью работы является повышение эффективности проектирования и расширение функциональных и эксплуатационных возможностей предметно-ориентированных облачных сред за счет виртуализации их функциональной и системной архитектур.
Для достижения поставленной цели необходимо решить следующие основные задачи:
-
провести анализ современных принципов построения архитектур облачных сред и смежных с ними систем;
-
разработать методики проектирования функциональной и системной архитектур на абстрактном и прикладном уровнях;
-
разработать функциональную и системную архитектуры ПООС на основе логико-алгебраических моделей, учитывающих структурные, логические и темпоральные связи между компонентами;
-
реализовать систему аккаунтинга ресурсов, оснащенную супервизором, в задачи которой входит учет и контроль использования ресурсов, а также взаимодействие с внешними вычислительными ресурсами и обеспечение параллельной и асинхронной работы компонентов;
-
разработать инструментальные средства поддержки проектирования функциональной и системной архитектур многокомпонентных ПООС, обеспечивающие концептуальное и поведенческое моделирование при учете асинхронного и параллельного функционирования компонентов;
-
реализовать и протестировать прототип ПООС в одной из актуальных предметных областей.
Объектом исследования являются предметно-ориентированные облачные среды, предметом исследования – многокомпонентная системная и функциональная организация предметно-ориентированных облачных сред.
Методы исследования. Для решения поставленных задач были применены объектно-ориентированные анализ и проектирование систем, методология системного моделирования, логико-алгебраические модели и методы для формализации системной и функциональной архитектур систем.
Научная новизна заключается в следующем:
-
предложены методики проектирования на абстрактном и прикладном уровнях системной и функциональной архитектур сложных многокомпонентных ПООС на основе декларативно-императивного подхода к представлению знаний о предметной ориентации и сценариях функционирования облачной среды, благодаря которым становится возможным построение масштабируемых, регулярных, модульных и реконфигурируемых структур ПООС;
-
предложена функциональная архитектура ПООС, основанная на анализе и интерпретации причинно-следственных межкомпонентных связей, отличительной особенностью которой является внедрение системы аккаунтинга ресурсов и супервизора с поддержкой технологии мультире-сурсного запуска вычислительных заданий, что позволяет упростить реализацию и повысить оперативность взаимодействия компонентов системы;
-
предложены логико-алгебраические модели представления знаний о структурных, логических и темпоральных связях между компонентами и ресурсами ПООС, базирующиеся на эволюционирующих многоосновных алгебраических системах и алгебре модулей, которые позволяют в отличие от известных аналогов упростить построение формализованных поведенческих моделей системы, обеспечить их непосредственное использование в качестве формализованных технических заданий в процессе проектирования функциональной и системной архитектур ПООС, учесть на абстрактном и прикладном уровнях проектирования предметную ориентированность, асинхронную и параллельную работу компонентов и на этой основе повысить производительность ПООС;
-
предложена виртуализированная системная архитектура ПООС, учитывающая реализацию структурных, логических и темпоральных связей между различными компонентами и ресурсами и отличающаяся от известных принципом отображения унифицированной абстрактной схемы декларативно-императивной поведенческой модели в архитектуру программно-аппаратных средств ПООС, что позволило сократить сроки проектирования и ускорить проведение анализа работы системы.
Практическая значимость работы заключается в следующем: 1) разработана универсальная система аккаунтинга ресурсов, снабженная супервизором и подсистемой управления заданиями, отличающаяся тем, что она позволяет одновременно контролировать программные и аппаратные ресурсы ПООС, осуществлять мониторинг вычислительных
заданий и управление ими, хранить историю запусков и формировать отчеты по проведенным исследованиям;
-
разработаны инструментальные средства поддержки проектирования функциональной и системной архитектур многокомпонентных ПООС, обеспечивающие поведенческое моделирование при учете асинхронного и параллельного функционирования компонентов;
-
реализована, протестирована и внедрена ПООС для решения задач в области приборостроения.
Область исследования. Содержание диссертации соответствует паспорту специальности 05.13.15 «Вычислительные машины, комплексы и компьютерные сети» (Технические науки) по пунктам 1, 2 и 4 областей исследований.
На защиту выносятся:
-
системная и функциональная архитектуры ПООС;
-
методики абстрактного и структурного синтеза функциональной и системной архитектур ПООС;
-
логико-алгебраические модели представления знаний о структурных и логических связях между компонентами и ресурсами ПООС;
-
реализация прототипа референсной ПООС и инструментальных средств поддержки проектирования функциональной и системной архитектур многокомпонентных ПООС.
Реализация результатов работы. Теоретические и практические результаты работы использованы при выполнении фундаментальной НИР «Развитие теории организации взаимодействия параллельных процессов в распределенных системах обработки данных» (2012–2013, № гос. рег. 01201257166) на кафедре «Вычислительная техника» Пензенского государственного университета; внедрены на промышленном предприятии ЗАО НПК «Электровыпрямитель» (реализована предметно-ориентированная облачная среда в области приборостроения, обеспечивающая удаленный доступ к прикладному программному обеспечению для математического моделирования, а также к средствам разработки и тестирования), применены в учебном процессе Пензенского государственного университета и Мордовского государственного университета им. Н. П. Огарева, что подтверждается соответствующими актами о внедрении.
Обоснованность и достоверность результатов определяются корректным использованием строгих и апробированных методов исследования и подтверждаются практическим применением полученных результатов при разработке промышленной облачной среды и инструментальных программных средств, что подтверждено актами о внедрении результатов, наличием патента и свидетельств о государственной регистрации программ, а также апробацией работы на международных конференциях.
Апробация работы. Основные положения диссертации докладывались и обсуждались в рамках различных международных научно-технических конференций: XVII-th International Open Science Conference (Lorman,
MS, USA, 2013), IX Ежегодная международная научно-практическая конференция «Перспективы развития информационных технологий (г. Новосибирск, 2012), III Ежегодная международная конференция «Облачные вычисления: образование, исследования, разработки» (Москва, 2012), Международная заочная научно-практическая конференция «Наука и образование в жизни современного общества» (г. Тамбов, 2013), XVIII Международная открытая научная конференция «Современные проблемы информатизации» – «Modern Problems of Informatization» (г. Воронеж, 2013), Международная научная конференция «Современные наукоемкие технологии» (Aqaba, Jordan, 2013), III Международная научная конференция «Проблемы управления, обработки и передачи информации» (г. Саратов, 2013), XIV Международная научно-техническая конференция «Проблемы техники и технологий телекоммуникаций» (г. Самара, 2013).
Публикации. По теме диссертации работы опубликовано 13 печатных работ, из них пять – в журналах, рекомендованных ВАК РФ. Получены три свидетельства об официальной регистрации программ для ЭВМ, Получен патент на полезную модель аппаратно-вычислительного комплекса.
Личный вклад автора. Все результаты, составляющие содержание диссертации, получены автором самостоятельно. Работы [1, 2, 13] опубликованы в соавторстве с научным руководителем, которому принадлежат разработка концепции решаемой проблемы и постановка задачи исследования. В работах [5, 6, 10, 12, 13] автором предложена методика предоставления доступа к прикладному программному обеспечению в концепции веб-лабораторий, новая архитектура веб-лабораторий, новые принципы их организации в конкретных предметных областях, технология поддержки мультире-сурсного запуска заданий в ПООС и новая организация ПООС, направленная на решение задач приборостроения, соответственно. В работе [14] (патент на полезную модель) личный вклад автора состоит в улучшении технико-экономических и эксплуатационных характеристик веб-лабораторий за счет внедрения в их структуру системы аккаунтинга, благодаря которой становится возможным развертывать на их базе предметно-ориентированные облачные среды. В программных продуктах [15–17] автором разработаны концепции, алгоритмы и коды основных программ.
Структура и объем диссертации. Диссертация состоит из введения, четырех глав, заключения, библиографического списка из 132 наименований и пяти приложений. Работа содержит 166 страниц основного текста (включая 49 рисунков), библиографический список на 13 страницах и приложения на 15 страницах.
Анализ современного состояния информационных технологий в области высокопроизводительных вычислений
Для решения актуальных задач, требующих проведения сложных расчетов, связанных с математическим моделированием, зачастую недостаточно обычных персональных компьютеров ввиду того, что они не обладают необходимой вычислительной мощностью. Список таких задач (англ. Grand Challenges) [1] был представлен, например, правительством США и, в частности, содержит такие разделы, как: – механика сплошных сред; – прогнозирование погоды, климата и изменений в атмосфере; – приборостроение; – генетика; – астрономия и др. Подобные задачи, в которых необходимо использование высокопроизводительных вычислений, невозможно решать эффективно и зачастую невозможно решать вообще, без использования сверхмощных вычислительных ресурсов, также называемых «суперкомпьютерами», благодаря которым становится реальным получение результатов расчетов до нескольких порядков быстрее. Тем не менее, к основным особенностям использования суперкомпьютерных систем относятся их высокая стоимость и большие затраты, связанные с их эксплуатацией.
Другой не менее важной проблемой становится нехватка прикладного программного обеспечения. Кроме того, отсутствие для ряда отраслей промышленности открытых программных пакетов (open source [2]) для моделирования вынуждает пользователей покупать их коммерческие аналоги. В некоторых случаях стоимость программных решений и их дальнейшая поддержка сопоставима со стоимостью покупки такой системы, а иногда и значительно превышает ее. Ввиду этого большинство компаний малого и среднего бизнеса, а также вузы, не могут позволить себе приобретение промышленного суперкомпьютера и необходимого программного обеспечения.
В связи с ориентацией на решение данных проблем, а также в связи с активным развитием технологии виртуализации и каналов связи, основной задачей последних лет стала попытка упрощения доступа к вычислительным кластерам и прикладному программному обеспечению. Это стало возможным в связи с последовательным развитием технологий «грид» (grid) [3] и облачных вычислений (cloud computing) [4].
Помимо этого наблюдается потребность в объединении ученых, исследователей и учащихся в социальные научные сети [5, 6, 7], где они могут найти необходимые им публикации, выявить актуальные тенденции в данной тематике, узнать о проведении тематических конференций и установить контакт друг с другом. По этой причине была разработана концепция виртуальных информационно-вычислительных веб-лабораторий или «хабов» [8], позволяющая организовывать предметно-ориентированные научные сообщества с предоставлением пользователям развитых средств коммуникации и взаимодействия, а также доступом к прикладным моделям данных. Таким образом, для достижения поставленной цели работы были определены функциональные требования к ПООС, которые должны обеспечивать пользователей удобным повсеместным доступом к высокопроизводительному программному обеспечению с графическим интерфейсом, предоставлять средства разработки и тестирования ресурсоемких приложений и обеспечивать создание сообществ для проведения совместных исследований в рамках единой платформы. Учитывая вышесказанное, следует утверждать, что создаваемая ПООС должна предоставлять пользователям облачные сервисы согласно известным моделям SaaS и PaaS, использовать адаптированные под облачную среду грид-технологии на внутреннем уровне и обеспечивать доступ к прикладным моделям данных и организации научных сообществ в рамках концепции веб-лабораторий. 1.2 Анализ структуры вычислительного кластера Наибольшее распространение среди суперкомпьютерных архитектур для решения ресурсоемких задач [9] получили вычислительные кластеры [10]. Это стало возможным благодаря их экономической эффективности при решении широкого класса вычислительных задач. В списке самых мощных вычислительных систем Топ-500 из суперкомпьютеров, представленных в 2013 году, 85% были построены по кластерной технологии [11]. Вычислительный кластер представляет собой набор взаимосвязанных автономных компьютеров (вычислительных узлов), которые работают совместно, как единый интегрированный вычислительный ресурс (рисунок 1). Процессор вычислительного узла кластера работает только со своим локальным адресным пространством памяти, а доступ к удаленной памяти других узлов обеспечивается через механизм передачи сообщений. Такая организация вычислений исключает возникновение конфликтов при обращении к памяти и возникновение проблемы
когерентности кэш-памяти. Это обеспечивает высокую масштабируемость системы и позволяет наращивать ее производительность простым добавлением узлов [12].
В зависимости от типа вычислительного кластера к его архитектуре могут накладываться специальные функциональные и не функциональные требования. Так, параллельные программы, на эффективное выполнение которых нацелены высокопроизводительные системы, характеризуются наличием частых обменов данными, эффективность выполнения которых и определяет общую эффективность выполнения программы. В связи с этим на компоненты и архитектуру высокопроизводительной кластерной системы накладываются специальные требования. Высокопроизводительная кластерная система с распределенной памятью, предназначенная для решения параллельных задач, должна состоять из однородных вычислительных узлов, объединенных специализированной сетью и иметь централизованную точку доступа, администрирования и управления. При этом характеристики вычислительных узлов и сети должны быть согласованны.
Базовая схема высокопроизводительной кластерной вычислительной системы представлена на рисунке 2. Общее требование однородности узлов вычислительного поля можно рассмотреть как обобщение требований к подсистемам, из которых состоит кластерная вычислительная система: требование к однородности аппаратных компонентов вычислительных узлов (аппаратная однородность), требование к однородности настроек системного программного окружения вычислительных узлов (программная однородность), требование к инженерной инфраструктуре, обеспечивающей функционирование вычислительных узлов (однородность среды функционирования) [14]. Рисунок 2 – Общая схема высокопроизводительной кластерной вычислительной системы Аппаратная однородность. Желательно, чтобы вычислительные узлы кластера в рамках одного вычислительного поля были построены на компонентах одного типа, одного производителя и имели максимально близкие по абсолютным значениям характеристики. Программная однородность. Необходимо обеспечить одинаковые настройки системного окружения (ядро, административные и инфраструктурные службы операционной системы) на всех вычислительных узлах. Важно отметить, что в процессе эксплуатации может появляться так называемый «шум», обусловленный появлением в процессе эксплуатации незавершенных процессов, утечек памяти и так далее. Система мониторинга средств управления вычислительными ресурсами суперкомпьютерного центра должна иметь средства для выявления и последующего устранения такого «шума». Для обеспечения программной однородности системное программное обеспечения среднего уровня кластера, входящее в состав средств управления вычислительными ресурсами суперкомпьютерного центра, должно поддерживать возможность инсталляции вычислительных узлов с использованием единого загрузочного образа. Такие свободные пакеты кластерного ПО, как OSCAR [15, 16], Rocks [17, 18], коммерческий пакет HP CMU [19] содержат компоненты, которые позволяют создавать, хранить загрузочные образы вычислительных узлов кластера и с их использованием проводить инсталляцию и выполнять процедуры восстановления в случаях возможных сбоев. Для инсталляции узлов кластера может быть использован метод унификации вычислительных ресурсов bare-metal, реализованный в пакете OpenStack [20]. Однородность среды функционирования. Инженерная инфраструктура должна обеспечивать одинаковые климатические условия для функционирования всех узлов вычислительного поля. Однородность среды функционирования обеспечивается инженерной инфраструктурой, которая будет подробно описана в следующих разделах. Нарушение любого из этих требований даже в рамках одного узла вычислительного поля ведет к недетерминированному поведению параллельной программы и может являться причиной ее неэффективного выполнения. Вычислительные узлы высокопроизводительного кластера объединяются сетями. Обмен данными между частями программы в процессе ее выполнения обеспечивает вычислительная сеть. Функционирование сетевых системных служб операционных систем вычислительных узлов обеспечивает управляющая сеть, а сеть подсистемы параллельного ввода-вывода обеспечивает подключение узлов к хранилищу данных. Такая организация сетевой инфраструктуры вычислительного кластера позволяет исключить взаимное влияние потоков данных и обеспечить однородность характеристик межузловых коммуникаций. К каждой из сетевых инфраструктур могут предъявляться свои требования к характеристикам. Так, например, вычислительная сеть высокопроизводительного кластера должна обеспечивать высокую пропускную способность, низкую латентность, низкую загрузку центрального процессора вычислительного узла.
Формализованное проектирование функциональной и виртуализированной системной архитектуры предметно-ориентированной облачной среды (ПООС)
Методологии концептуального и поведенческого моделирования являются мощным инструментом, позволяющим проектировать и исследовать широкий класс сложных систем, в том числе и ПООС. В последнее время получили широкое применение методологии системного моделирования, базирующиеся на использовании формальных моделей, в том числе таких формализмов, которые могут быть положены в основу формализованных спецификаций или формализованных технических заданий. Использование таких методологий позволяет проводить проектирование системных и функциональных архитектур сложных вычислительных систем путем задания структурных и логических причинно-следственных связей между компонентами. Структурные и логические связи определяют знания о проектируемой системе и окружающей ее среде. Как известно, логико-алгебраические модели, основанные на логических и алгебраических исчислениях, описывают важные статические свойства объекта, но не указывают причины изменения этих свойств во времени; при построении логических моделей строят и исследуют истинные или ложные утверждения о моделируемом объекте. Из алгебраических моделей наиболее распространены реляционные алгебры, алгебраические модели абстрактных типов данных, процессные алгебры, а также различные типы алгебраических структур, элементами носителя которых являются схемы алгоритмов или программы [56, 115, 116]. С алгебраическими моделями тесно связаны так называемые операционные модели, позволяющие задавать динамику моделируемой системы – сети Петри, конечные автоматы, логики Хоара, программные логики, машины абстрактных состояний, системы алгоритмических алгебр и др. [115, 117]. Например, конечный автомат может быть рассмотрен как трехсортная алгебра с двумя операциями [75]. Из перечисленных формализмов представляют большой интерес последние два, так как они в большей степени относятся к классу непосредственно исполнимых или интерпретируемых спецификаций и пригодны для задания системной и функциональной архитектуры виртуализованных ПООС. В диссертационной работе для моделирования и построения функциональной и системной архитектур ПООС используются математический аппарат многоосновного исчисления предикатов первого порядка, алгебраических систем, а также некоторые элементы формализмов систем алгоритмических алгебр (САА) и эволюционирующих алгебр (другое, название формализма – машины абстрактных состояний). Данный аппарат систематизирован в виде взаимно-согласованных определений для применения при построении концептуальных и формализованных поведенческих логико-алгебраических моделей. Недостатком логических моделей представления знаний о системной архитектуре сложных систем, основанных на логике предикатов первого порядка, является то, что они позволяют описывать в основном статические связи в системе, которые в модели трудно модифицировать. Это затрудняет построение функциональной архитектуры сложной системы, как части ее системной архитектуры. Например, логические модели представления знаний, описанные в работе [56], пригодны лишь для описания статических структурных и логических связей в сложной системе. Использование процедурной составляющей модели представления знаний, примененное, например, в работе [57] к семантическим сетям, не формализовано и сводится к рутинному программированию (то есть не является программированием на основе непосредственно интерпретируемых формализованных технических заданий). Последнее характерно и для других средств представления процедурных знаний в моделях искусственного интеллекта.
Для представления в формализованном виде процедурных знаний, необходимых для проектирования функциональной архитектуры ПООС, в данной работе выбраны системы алгоритмических алгебр. Система алгоритмических алгебр [58, 59, 60, 61, 62] – это двухосновная алгебраическая система САА = {Aоп, Аусл, }, где – сигнатура САА; Aоп = Aоп, оп – алгебра операторов; Aусл = Aусл, усл – алгебра условий; оп = {seq, arb , sim } – сигнатура алгебры операторов (помимо обычной для САА операции seq (“;”) – последовательного применения операторов в алгоритмическом модуле может использоваться операция arb (“:”) применения операторов в произвольном порядке и операция sim (“,”) возможно одновременного выполнения операторов, где рядом в скобках показаны упрощенные и рекомендуемые для инфиксной записи обозначения операторов в случаях, когда это не противоречит контексту; звездочками отмечены дополнительные операторы, не описанные явно в [58, 59, 60, 61, 62]); усл = -і, &, v - сигнатура алгебры всюду определенных условий; Aоп - основное, или базовое, множество операторов (носитель алгебры операторов Аоп); Aусл - основное, или базовое, множество условий (носитель алгебры условий Лсл); A оп, - система образующих алгебры операторов Аоп, A оп а Aоп; A усл - система образующих алгебры условий Aусл, A усл а Aусл. Алгебра операторов, согласно [60], «состоит из частичных преобразований С а (В В) состояний В информационной среды, а алгебра условий из частичных предикатов р с: (В {true, false})». Система образующих - это «функционально-полная совокупность операторов и логических условий; с помощью этой совокупности посредством суперпозиций операций, входящих в , порождаются произвольные операторы и условия из множеств Aоп и Aусл соответственно» [61]. Дополнительные операции в сигнатуре : - операция а-дизъюнкции [а]( 2 v S) - это тернарная, или трехместная, операция, зависящая от условия а є Aусл и операторов Q є Aоп и S є Aоп, ее результатом является результат выполнения оператора Q, если а = true, или результат выполнения оператора S, если а = false; - операция ос-итерации [ос]{ 2} - это бинарная операция, зависящая от условия а и оператора Q, ее результатом является результат циклического выполнения оператора Q при ложном а до тех пор, пока условие а не станет истинным. В работе используются только всюду определенные условия. В САА также дополнительно используются операторы Е (тождественный оператор) и N - неопределенный оператор.
Понятие машин абстрактных состояний [63, 64, 65, 66, 67, 68] основано на «эволюции», или «развитии», интерпретации сигнатуры многоосновных алгебраических систем путем выполнения операций модификации предикатов и функций. Для организации потоков управления в сети алгоритмических модулей эти операторы целесообразно добавить к системе образующих A оп алгебры операторов Аоп, описанной выше. Для описания модулей машин абстрактных состояний в работах [69, 70, 71, 72] предложено использовать аппарат, близкий к системам алгоритмических алгебр [118]. В этих же работах показано, что при формировании логических условий целесообразно использовать логику предикатов первого порядка и реляционное исчисление на кортежах и доменах, определенное для языков запросов к базам данных. Определенные таким образом условия целесообразно включить в систему образующих A усл описанной выше алгебры условий Аусл. Приведенное ниже описание развивающихся алгебр соответствует в целом описанию в работах [63, 64, 65, 66, 67, 68] и отечественных источниках [73, 74, 75, 76] и отличается системой обозначений. Например, мы здесь используем понятие «интерпретация сигнатуры алгебраической системы» (следуя [73]) и ее «развитие».
С помощью системы образующих алгебры операторов - совокупности подобных элементарных операторов модификации предикатов и функций абстрактного пространства памяти и на основе сигнатуры порождаются произвольные модули абстрактных машин. Под модулем на абстрактном уровне мы будем подразумевать модуль, описываемый одним выражением в САА. Используемые в диссертационной работе элементарные условия из множества A усл представлены булевыми переменными и атомарными константными формулами; в записи последних могут присутствовать предикатные символы (возможно, символы сравнения), предметные константы и термы.
Логико-алгебраические модели представления знаний о структурных, логических и причинно-следственных связях между компонентами и ресурсами виртуализированной предметно-ориентированной облачной среды
Сценарии поведения ПООС представляются логико-алгебраическими выражениями [104, 105], в которых значениям унарных функций соответствуют длины очередей а{. Используются также бинарные предикаты сравнения pge и peq на “больше или равно” и “равно” соответственно, fminus - функция вычитания, - функция сложения, Е - тождественный (пустой) оператор, а, - предметные константы, представляющие имена очередей.
Дополнительно сценарии снабжены наглядными диаграммами, базирующимися на логике сетей Петри, которые строятся по реализованным логико-алгебраическим моделям и используются при дальнейшей верификации системы.
Продолжения перечней элементов для основных множеств сортов «процедура» и «программа», функциональной сигнатуры, а также системы образующих алгебры условий и модулей очевидны и соответствуют логико-алгебраическим выражениям для модулей абстрактных машин, индивидуальных для каждого сценария. 3.2 Получение доступа к прикладному программному обеспечению в ПООС Процесс получения интерактивного доступа к прикладному ПО можно разделить на три этапа: 1. Авторизация пользователя в системе. 2. Запуск приложения и связанные с ним внутренние операции ПООС. 3. Подготовка входных данных и отправка задания на счет вычислительному ресурсу. На первом этапе пользователь ПООС с помощью клиентского приложения (веб-браузера) заходит на веб-сайт ПООС и вводит свои учетные данные, полученные им при регистрации, в специальную форму на сайте. На основе этих данных веб-сервер формирует и отправляет запрос к серверу авторизации. Сервер авторизации проверяет, соответствуют ли введенные данные зарегистрированному пользователю. В случае положительного ответа веб-сервер предоставляет пользователю список текущих проектов и размещенных приложений, доступных для запуска. Далее подробнее будут рассмотрены более сложные второй и третий этапы работы системы, связанные с загрузкой задания на вычислительный ресурс.
На втором этапе пользователь выбирает проект, в котором он состоит, и необходимое ему приложение из списка предложенных и далее отправляет запрос на его запуск. Веб-сервер передает данные о пользователе и запускаемом приложении серверу системы аккаунтинга, который создает запись в базе данных и отправляет задание менеджеру контейнеров на создание виртуальной машины (рисунок 22).
Менеджер создает контейнер с предустановленной операционной системой и графической средой и затем передает ему информацию о запускаемом приложении. На основе полученных от сервера системы аккаунтинга данных в созданный контейнер автоматически подгружаются бинарные файлы приложения, и домашний каталог пользователя синхронизируется с данными в системе хранения данных. Затем в контейнере запускается клиент системы аккаунтинга, который устанавливает соединение с соответствующим сервером и требуемое приложение с настройками из домашнего каталога пользователя.
В заключение в контейнере запускается сервер системы удаленного доступа к приложению, который настраивается на передачу изображения клиенту. Происходит отправка веб-серверу информации о получении доступа к приложению. Веб-сервер перенаправляет эту информацию клиенту СУДП в браузере пользователя. Получив информацию, браузер запускает внутри себя клиент СУДП (Java-апплет).
На третьем этапе, после того как приложение запущено и пользователь получил к нему доступ, производится подготовка задания через интерфейс приложения и последующая отправка на вычислительный ресурс. Для этого приложение должно быть настроено на работу с одним из возможных менеджеров учета ресурсов, поддерживаемых ПООС (рисунок 23).
Далее с помощью соответствующего перехватчика задание передается клиенту системы аккаунтинга, который обрабатывает его и отправляет серверу СА. Сервер СА проводит проверку возможности запуска путем сверки количества требуемых пользователю ресурсов с доступным количеством. В случае, если проверка пройдена, то сервер СА передает задание серверу ПРЗ, который выбирает вычислительный ресурс для проведения расчетов [106].
Проектирование виртуализированной системной архитектуры предметно-ориентированной облачной среды на прикладном уровне и практические рекомендации по организации работы системы
В сети алгоритмических модулей (в дальнейшем реализуемых программными компонентами) можно уже на абстрактном уровне выявить присущий им параллелизм [126, 127, 128, 129, 130, 131]. В настоящей работе использовано достаточное условие параллельности модулей: совместимость выполняемых различными модулями элементарных правил обновления предикатов и функций, а также проверок элементарных высказываний в а-выражениях. На практике совместимость зависит также от формы представления предикатов и функций информационными объектами, то есть отношениями реляционной базы данных. Уровень параллельности можно повысить, воспользовавшись горизонтальной фрагментацией (вплоть до разбиения отношений на кортежи) и распределенным хранением результирующих отношений. Для выявления параллелизма в модели были разработаны два программных продукта: анализатор модели и интерпретатор (рисунок 30). На вход анализатора подается закодированная логико-алгебраическая модель (ЛАМ), которая затем переводится во внутреннее представление и анализируется. На основе проведенного анализа строится бинарная матрица совместимости компонентов, описывающая их попарное соотношение при одновременном использовании разделяемых ресурсов. Далее анализатор выделяет пригодные для параллельного выполнения компоненты и передает модель на вход интерпретатора, который, получив описание программной логики компонентов, исполняет модель в параллельном режиме.
В работе [120] рассмотрена сосредоточенная реализация приложения, реализующего функции логического управления в однопроцессорном узле вычислительной сети и приведены логико-алгебраические выражения для модулей абстрактных машин, реализуемых программными компонентами, размещенными на одном узле. Рассмотрим, в отличие от работы [120], реализацию распределенной системы логического управления (супервизора) мобильными программными компонентами или стационарными программными модулями, размещенными на различных узлах вычислительной сети. Различие в реализации двух вариантов работы состоит в том, что мобильные компоненты могут перемещаться к удаленным узлам и работать там, а стационарные компоненты должны быть заранее проинсталлированы пользователем на удаленных узлах ПООС.
Унифицированная абстрактная схема взаимодействия компонентов через структурированную абстрактную память, или пространство унарных предикатов, представлена на рисунке 31. Здесь треугольниками обозначены мобильные компоненты A0, A1, A2, …, A7, размещаемые соответственно на узлах L0, L1, L2, …, L7 распределенной системы, кружками обозначены реализуемые данными компонентами модули абстрактных машин m0, m1, m2, …, m7 (в программных компонентах модули реализуются соответствующими «методами»). Среди компонентов выделен стационарный компонент-диспетчер A0 и рабочие мобильные компоненты A1, A2, …, A7.
Для представления распределенного процесса управления в ПООС задано множество символов x1, x2, …, x7, составляющих область определения для унарного предиката p(x) и отмечающих события, происходящие при реализации распределенного процесса; число данных символов равно числу реализуемых процессом событий. Предикат p(x) выполняет роль характеристической функции для множества событий данного процесса. Задано также множество символов w1, w2, …, w7 (область определения унарного предиката q(w)) для исполняемых модулей из множества M. Предикат q(w) является характеристической функцией для множества исполняемых модулей.
В приведенных выражениях производятся проверки -условий, при истинности которых происходит инициирование выполнения рабочих операций компонентами, размещенными на удаленных компьютерах. Здесь истинность высказывания —iq(wt) при проверке означает, что удаленный модуль т в текущий момент времени не выполняется компонентом Aj (/ = 1, 2, …, 7). Истинность следующего члена конъюнкции означает, что модуль готов к выполнению своей основной функции в сети. Истинность высказывания -3w{q{w)8Lct{w)) означает, что модуль ті совместим с текущими выполняемыми в сети модулями. Здесь истинные значения предиката c,(w) являются признаками попарной несовместимости модуля ті с остальными модулями (эти признаки можно получить, проинвертировав элементы матрицы совместимости компонентов; важные примеры таких матриц, полученных путем автоматического анализа логико-алгебраичесих выражений для основных поведенческих моделей ПООС, представлены в приложении Г). При истинности всей конъюнкции модуль т может быть инициатором выполнения рабочей операции на удаленном узле сети. Для этого после успешной проверки условия в квадратных скобках выполняется модификация q{wi)- true предиката q(w) на исходном узле L0 и это истинное значение передается как команда на удаленный узел Li. Данная команда формализована модулем m\ как модификация q\wi) q{wi) предиката q\w\ размещенного в памяти удаленного узла сети, то есть одно значение предиката q{w) передается по сети предикату q \w).
При выполнении некоторого модуля mi реализующим его мобильным компонентом Ai проверяется аi -условие и при его истинности выполняются элементарные правила модификации предикатов p( x) и q(w), а также операции обработки данных, выполнение которых определяется результатом модификации предиката p(x). Модификация предиката p(x) переводит процесс модуля mi в новое состояние, а модификация q(w1)false предиката q(w) свидетельствует о завершении выполнения модуля mi компонентом Ai. Этот компонент передает результат модификации предикатов p(x) и q(w) по сети стационарному компоненту, который тем самым узнает о завершении выполнения модуля mi компонентом Ai.
Компонент m0 инициирует выполнение некоторого модуля сети параллельно с уже исполняемыми модулями при условии, что новый модуль совместим с ними, то есть выполняет совместимые правила модификации предикатов и обработки данных. Данная распределенная система управления должна инициировать выполнение процедур обработки данных Proc1, Proc2, …, Proc7 удаленными компонентами в распределенной облачной или грид-среде. Таким образом в распределенном клиент-серверном сетевом приложении реализуется параллельное выполнение операций.
Супервизор реализован в виде программы для управления распределенными процессами и ресурсами в облачной грид-системе. Он осуществляет автоматическое размещение компонентов-исполнителей, выполняющих заданные операции, на подходящих узлах распределенной вычислительной сети, а также динамическое управление ходом вычислений на основе заданного алгоритма. Распределенный алгоритм задается в виде асинхронной сети модулей ЭМАС. Программа поддерживает различные режимы диспетчеризации процессов с возможностью параллельного или последовательного запуска процессов, а также имеет встроенные средства оценки времени выполнения вычислений в облачной среде ПООС.
Программа имеет модульную структуру и реализуется стационарным компонентом A0 и рабочими компонентами A1, A2, …, An. Эти компоненты, как естественные модули, инкапсулируют логику взаимодействия компонентов, обеспечивая максимальную простоту использования продукта для решения пользовательских задач в ПООС. Программа написана на языке Java и является платформенно-независимой, что позволяет запускать ее на широком классе устройств с различной аппаратной и программной архитектурой. Единственным требованием при использовании варианта с мобильными компонентами является наличие известной в международной практике библиотеки JADE [119]. Программа может быть реализована и на других компонентских платформах, а также в распределенной архитектуре «клиент-сервер». Программа хорошо интегрируется с известной распределенной технологией CORBA и технологиями распределенных баз данных. Базовая версия программы зарегистрирована в государственном Реестре программ для ЭВМ.
Учитывая вышесказанное, на основе созданных моделей был проведен анализ, целью которого являлась улучшение работы различных элементов системы. Для этого для каждой модели была построена бинарная матрица совместимости компонентов, описывающая их попарное соотношение при одновременном использовании разделяемых ресурсов. Примеры таких матриц приводятся в приложении Г для всех описанных в работе системных сценариев. Благодаря анализу стало возможно улучшить работу системы за счет одновременного параллельного выполнения различных независимых частей. Наибольшее ускорение работы было получено при запуске приложения, так как именно в этом случае в ПООС выполняется множество операций, связанных как с работой системы аккаунтинга, так и с созданием и инициализацией виртуального контейнера. Также дополнительным улучшением стало использование асинхронного режима работы СА при загрузке заданий на внешние ресурсы и предварительно созданного и частично инициализированного виртуального контейнера, в котором заранее запускаются сервер СУДП и клиент СА.