«ФЕДОСИН Михаил Евгеньевич УДК 519.687 ВИРТУАЛИЗАЦИЯ МНОГОКОМПОНЕНТНОЙ СИСТЕМНОЙ АРХИТЕКТУРЫ ПРЕДМЕТНО-ОРИЕНТИРОВАННОЙ ОБЛАЧНОЙ ВЫЧИСЛИТЕЛЬНОЙ СРЕДЫ ДИССЕРТАЦИЯ на соискание ученой степени кандидата технических наук ...»
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«Пензенский государственный университет»
На правах рукописи
ФЕДОСИН Михаил Евгеньевич
УДК 519.687
ВИРТУАЛИЗАЦИЯ МНОГОКОМПОНЕНТНОЙ СИСТЕМНОЙ
АРХИТЕКТУРЫ ПРЕДМЕТНО-ОРИЕНТИРОВАННОЙ ОБЛАЧНОЙ
ВЫЧИСЛИТЕЛЬНОЙ СРЕДЫ
ДИССЕРТАЦИЯ
на соискание ученой степени кандидата технических наукСпециальность 05.13.15 – Вычислительные машины, комплексы и компьютерные сети
Научный руководитель:
доктор технических наук, доцент С. А. Зинкин ПЕНЗА Оглавление Введение
Глава 1. Анализ современного состояния информационных технологий в области высокопроизводительных вычислений
1.1 Анализ современного состояния предметной области – доступа к технологиям высокопроизводительных вычислений
1.2 Анализ структуры вычислительного кластера
1.2.1 Преимущества кластерной архитектуры
1.2.2 Требования к кластерной архитектуре
1.3 Технология «грид»
1.4 Облачные вычисления
Особенности использования кластерных систем в 1.4. промышленности и образовании
1.4.2 Свойства облачных вычислений
1.4.3 Сервисные модели
1.5 Концепция виртуальных предметно-ориентированных информационно-вычислительных веб-лабораторий
1.5.1 Возможности веб-лаборатории
1.5.2 Устройство веб-лаборатории
1.5.3 Особенности реализации программной части.
1.6 Выводы по главе
Глава 2. Формализованное проектирование функциональной и виртуализированной системной архитектуры предметно-ориентированной облачной среды (ПООС)
2.1 Обоснование и выбор формализмов для поведенческого моделирования и последующего проектирования ПООС на основе формализованных спецификаций
2.1.1 Формализованные спецификации ПООС на основе систем алгоритмических алгебр
2.1.2 Доопределение формализованных спецификаций ПООС на основе аппарата эволюционирующих алгебраических систем
2.1.3 Основные этапы проектирования ПООС
2.2 Методики автоматизированного абстрактного и структурного проектирования системной и функциональной архитектур ПООС на основе логико-алгебраических моделей
2.2.1 Методика проектирования функциональной архитектуры ПООС на абстрактном уровне
архитектуры ПООС на прикладном уровне
2.3 Функциональная архитектура ПООС
2.3.1 Структура программно-аппаратного комплекса
2.3.2 Математическое описание функциональной архитектуры ПООС 2.3.3 Группы и проекты
2.3.4 Логико-алгебраические модели функционирования ПООС......... 2.4 Структура грид-подсистемы
2.5 Архитектуры компонентов системы аккаунтинга
2.5.1 Архитектура сервера системы аккаунтинга
2.5.2 Архитектура клиента системы аккаунтинга
2.5.3. Архитектура сервера подсистемы распределения заданий.......... 2.5.4 Архитектура сервера подсистемы управления заданиями............ 2.6 Основные результаты и выводы
структурных, логических и причинно-следственных связях между компонентами и ресурсами виртуализированной предметно-ориентированной облачной среды 3.1 Эволюционирующие многоосновные алгебраические системы для сценариев работы системы
3.2 Получение доступа к прикладному программному обеспечению в ПООС
3.2.1 Запуск приложения в ПООС
3.2.2 Загрузка задания на вычислительный ресурс
3.3 Мониторинг состояния задания
3.3.1 Мониторинг задания с помощью веб-браузера
3.3.2 Мониторинг задания из контейнера
3.3.3 Общие действия
3.4 Завершение выполнения задания
3.5 Завершение работы приложения
3.6 Верификация логико-алгебраических моделей
3.7 Основные результаты и выводы
Глава 4. Проектирование виртуализированной системной архитектуры практические рекомендации по организации работы системы
4.1 Выявление и реализация параллелизма при работе алгоритмических модулей
4.1.1 Пример построения распределенной системы логического управления (супервизора) для ПООС с параллельным выполнением операций
параллельного и асинхронного выполнения компонентов
4.2 Компоненты и интерфейсы ПООС
4.2.1 Веб-ядро
4.2.2 Система аккаунтинга
4.2.3 Контейнер виртуальной машины
4.2.4 Подсистемы распределения и управления заданиями................. 4.3 Развертывание системы
4.3.1 Серверная часть
4.3.2 Клиент
4.3.3 Образ контейнера
4.3.4 Вычислительная часть
приборостроения
4.5 Установка прикладного программного обеспечения
4.5.1 Особенности хранения приложений в ПООС
4.5.2 Автоматическая установка приложения
4.5.3 Установка в ручном режиме
4.6 Подключение внешних вычислительных ресурсов
4.6.1 Установка на стороне ресурса
4.6.2 Установка на стороне ПООС
4.7 Разработка прикладного программного обеспечения средствами ПООС
4.7.1 Средства разработки, предоставляемые ПООС
4.7.2 Особенности работы системы аккаунтинга при разработке приложений.
4.8 Основные результаты и выводы
Заключение
Список используемых сокращений
Список использованных источников
Приложение А. Описание принципов построения базы данных системы аккаунтинга, характеристики ее состава и объема.
Приложение Б. Формат XML-файлов с метаинформацией о вычислительных заданиях, использующихся при взаимодействии компонентов ПООС с внешними ресурсами.
Приложение В. Формат XML-файла логико-алгебраической модели........ Приложение Г. Матрицы совместимости для системных сценариев работы ПООС.
Приложение Д. Акты о внедрении результатов работы
Актуальность темы исследований.
моделированием, зачастую недостаточно обычных персональных компьютеров ввиду того, что они не обладают необходимой вычислительной мощностью. Для решения подобных задач были предложены подходы, позволяющие получить значительно большую производительность. Они основаны на использовании вычислительных комплексов, в первую очередь на базе кластерной архитектуры, за счет ее эффективности, масштабируемости и сниженной стоимости владения по сравнению с аналогами.
К особенностям таких вычислительных комплексов и соответствующего программного обеспечения относятся их высокая стоимость и большие затраты, связанные с их эксплуатацией. Кроме того, отсутствие для ряда отраслей промышленности открытых программных пакетов для моделирования вынуждает пользователей покупать их коммерческие аналоги. Поэтому большинство компаний малого и среднего бизнеса, а также вузы, не могут позволить себе приобретение промышленного вычислительного комплекса и вынуждены использовать недорогие, менее мощные решения, что приводит к увеличению времени счета, а при небольшом количестве задач – к неэффективному использованию оборудования ввиду его длительного простоя. С указанной высокопроизводительных приложений. Отсутствие у пользователей необходимого оборудования и удобных инструментальных средств не позволяет проводить анализ программной модели и строить оптимизированные параллельные приложения.
Одной из основных тенденций развития информационных технологий в настоящее время является массовое внедрение технологий облачных вычислений и грид-систем. Благодаря развитию аппаратных вычислительных и сетевых технологий стало возможным объединение разнородных распределенных вычислительных ресурсов, хранилищ данных, соответствующего программного обеспечения в единую вычислительную среду, доступ к которой предоставляется через Интернет.
Существенный вклад в исследование облачных вычислений внесли ученые 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-aService).
В модели SaaS распространяются многие типы прикладного программного обеспечения, однако для класса высокопроизводительного программного обеспечения с графическим интерфейсом пользователя отсутствует возможность его распространения в данной модели в связи с трудностями адаптации таких приложений под Интернет. Одновременно с этим не существует облачной платформы, представляющей средства разработки и тестирования таких приложений.
Поэтому актуальной задачей является создание концепции, описывающей развертывание программно-аппаратных комплексов для обеспечения пользователей удаленным интерактивным доступом к высокопроизводительному программному обеспечению с графическим интерфейсом в модели SaaS, а также к платформе для разработки и тестирования такого программного обеспечения в модели PaaS.
Реализуемый функционал таких программно-аппаратных комплексов определяется набором установленных в них прикладных приложений и зависит от специфичных для конкретной отрасли сервисов составляет предметноориентированную облачную среду (ПООС). Подобные среды можно рассматривать как подкласс распределенных вычислительных систем.
Целью работы является повышение эффективности проектирования и расширение функциональных и эксплуатационных возможностей предметноориентированных облачных сред за счет виртуализации их функциональной и системной архитектур.
Для достижения поставленной цели необходимо решить следующие основные задачи:
1) провести анализ современных принципов построения архитектур облачных сред и смежных с ними систем;
2) разработать методики проектирования функциональной и системной архитектур на абстрактном и прикладном уровнях;
3) разработать функциональную и системную архитектуры ПООС на основе логико-алгебраических моделей, учитывающих структурные, логические и темпоральные связи между компонентами;
4) реализовать систему аккаунтинга ресурсов, оснащенную супервизором, в задачи которой входит учет и контроль использования ресурсов, а также взаимодействие с внешними вычислительными ресурсами и обеспечение параллельной и асинхронной работы компонентов;
5) разработать инструментальные средства поддержки проектирования функциональной и системной архитектур многокомпонентных ПООС, обеспечивающие концептуальное и поведенческое моделирование при учете асинхронного и параллельного функционирования компонентов;
6) реализовать и протестировать прототип ПООС в одной из актуальных предметных областей.
Объектом исследования являются предметно-ориентированные облачные функциональная организация предметно-ориентированных облачных сред.
Методы исследования. Для решения поставленных задач были применены объектно-ориентрованный анализ и проектирование систем, методология системного моделирования, логико-алгебраические модели и методы для формализации системной и функциональной архитектур систем.
Научная новизна заключается в следующем:
1) предложены методики проектирования на абстрактном и прикладном уровнях системной и функциональной архитектур сложных многокомпонентных ПООС на основе декларативно-императивного подхода к представлению знаний о предметной ориентации и сценариях функционирования облачной среды, благодаря которым становится возможным построение масштабируемых, регулярных, модульных и реконфигурируемых структур ПООС;
2) предложена функциональная архитектура ПООС, основанная на анализе и интерпретации причинно-следственных межкомпонентных связей, отличительной особенностью которой является внедрение системы аккаунтинга ресурсов и супервизора с поддержкой технологии мультиресурсного запуска вычислительных заданий, что позволяет упростить реализацию и повысить оперативность взаимодействия компонентов системы;
3) предложены логико-алгебраические модели представления знаний о структурных, логических и темпоральных связях между компонентами и ресурсами ПООС, базирующиеся на эволюционирующих многоосновных алгебраических системах и алгебре модулей, которые позволяют в отличие от известных аналогов упростить построение формализованных поведенческих моделей системы, обеспечить их непосредственное использование в качестве формализованных технических заданий в процессе проектирования функциональной и системной архитектур ПООС, учесть на абстрактном и прикладном уровнях проектирования предметную ориентированность, асинхронную и параллельную работу компонентов и на этой основе повысить производительность ПООС;
4) предложена виртуализированная системная архитектура ПООС, учитывающая реализацию структурных, логических и темпоральных связей между различными компонентами и ресурсами и отличающаяся от известных принципом отображения унифицированной абстрактной схемы декларативноимперативной поведенческой модели в архитектуру программно-аппаратных средств ПООС, что позволило сократить сроки проектирования и ускорить проведение анализа работы системы.
Практическая значимость работы заключается в следующем:
1) разработана универсальная система аккаунтинга ресурсов, снабженная супервизором и подсистемой управления заданиями, отличающаяся тем, что она позволяет единовременно контролировать программные и аппаратные ресурсы ПООС, осуществлять мониторинг и управление вычислительными заданиями, хранить историю запусков и формировать отчеты по проведенным исследованиям;
2) разработаны инструментальные средства поддержки проектирования функциональной и системной архитектур многокомпонентных ПООС, обеспечивающие поведенческое моделирование при учете асинхронного и параллельного функционирования компонентов;
3) реализована, протестирована и внедрена ПООС для решения задач в области приборостроения.
Область исследования. Содержание диссертации соответствует паспорту специальности 05.13.15 «Вычислительные машины, комплексы и компьютерные сети» (Технические науки) по пунктам 1, 2 и 4 областей исследований.
На защиту выносятся:
1. Системная и функциональная архитектуры ПООС.
2. Методики абстрактного и структурного синтеза функциональной и системной архитектур ПООС.
3. Логико-алгебраические модели представления знаний о структурных и логических связях между компонентами и ресурсами ПООС.
4. Реализация референсной архитектуры ПООС и инструментальных средств поддержки проектирования функциональной и системной архитектур многокомпонентных ПООС.
результаты работы использованы при выполнении фундаментальной НИР «Развитие теории организации взаимодействия параллельных процессов в государственного университета; внедрены на промышленном предприятии ЗАО НПК «Электровыпрямитель» (реализована предметно-ориентированная облачная среда в области приборостроения, обеспечивающая удаленный доступ к прикладному программному обеспечению для математического моделирования, а также к средствам разработки и тестирования), а также используются в учебном соответствующими актами о внедрении.
Обоснованность и достоверность результатов определяются корректным подтверждаются практическим применением полученных результатов при разработке промышленной облачной среды и инструментальных программных средств, что подтверждено актами о внедрении результатов работы, наличием патента и свидетельств о государственной регистрации программ, а также апробацией работы на международных конференциях.
Апробация работы. Основные положения диссертации докладывались и конференций: XVIII-th International Open Science Conference (Lorman, MS, USA, 2013), «Перспективы развития информационных технологий (г. Новосибирск, 2012), III ежегодная международная конференция «Облачные вычисления: образование, исследования, разработки» (Москва, 2012), Международная заочная научнопрактическая конференция «Наука и образование в жизни современного общества» (г. Тамбов, 2013), Восемнадцатая международная открытая научная конференция "Современные проблемы информатизации" – "Modern Problems of Informatization (г. Воронеж, 2013), Международная научная конференция «Современные наукоемкие технологии» (Aqaba, Jordan, 2013), III Международная научная конференция «Проблемы управления, обработки и передачи информации» (г. Саратов, 2013), XIV Международная научно-техническая конференция «Проблемы техники и технологий телекоммуникаций» ПТиТТ- (г. Самара, 2013).
Публикации. По теме диссертационной работы опубликовано 13 печатных работ, из них 5 – в журналах, рекомендованных ВАК РФ. Получены свидетельства об официальной регистрации программ для ЭВМ. Получен патент на полезную модель аппаратно-вычислительного комплекса.
Структура и объем диссертации. Диссертация состоит из введения, четырех глав, заключения и библиографического списка из 132 наименований и пяти приложений.
Работа содержит 166 страниц основного текста (включая рисунков), библиографический список на 13 страницах и приложения на страницах.
Глава 1. Анализ современного состояния информационных технологий в области высокопроизводительных вычислений Глава посвящена рассмотрению способов решений проблем, возникающих перед учеными и исследователями при проведении сложных вычислений, связанных с математическим моделированием. Для этого в главе представлено актуальное состояние сектора информационных технологий в области высокопроизводительных вычислений, где описываются различные технологии, направленные на упрощение проведения исследовательских проектов:
– грид, обеспечивающий унифицированный доступ к вычислительному оборудованию, как к единой платформе;
предоставления услуг, в которых пользователь получает доступ к различным ресурсам в виде Интернет-сервиса;
– веб-лаборатории или хабы (англ. hub), базирующиеся на технологии web 2.0 и направленные на организацию научных сообществ с предоставлением пользователям развитых средств коммуникации и взаимодействия.
1.1 Анализ современного состояния предметной области – доступа к технологиям высокопроизводительных вычислений Для решения актуальных задач, требующих проведения сложных расчетов, связанных с математическим моделированием, зачастую недостаточно обычных персональных компьютеров ввиду того, что они не обладают необходимой вычислительной мощностью.
Список таких задач (англ. Grand Challenges) [1] был представлен, например, правительством США и, в частности, содержит такие разделы, как:
– механика сплошных сред;
– прогнозирование погоды, климата и изменений в атмосфере;
– приборостроение;
– генетика;
высокопроизводительных вычислений, невозможно решать эффективно и зачастую невозможно решать вообще, без использования сверхмощных вычислительных ресурсов, также называемых «суперкомпьютерами», благодаря которым становится реальным получение результатов расчетов до нескольких порядков быстрее. Тем не менее, к основным особенностям использования суперкомпьютерных систем относятся их высокая стоимость и большие затраты, связанные с их эксплуатацией.
Другой не менее важной проблемой становится нехватка прикладного программного обеспечения. Кроме того, отсутствие для ряда отраслей промышленности открытых программных пакетов (open source [2]) для моделирования вынуждает пользователей покупать их коммерческие аналоги. В некоторых случаях стоимость программных решений и их дальнейшая поддержка сопоставима со стоимостью покупки такой системы, а иногда и значительно превышает ее. Ввиду этого большинство компаний малого и среднего бизнеса, а суперкомпьютера и необходимого программного обеспечения.
В связи с ориентацией на решение данных проблем, а также в связи с активным развитием технологии виртуализации и каналов связи, основной задачей последних лет стала попытка упрощения доступа к вычислительным кластерам и прикладному программному обеспечению. Это стало возможным в связи с последовательным развитием технологий «грид» (grid) [3] и облачных вычислений (cloud computing) [4].
исследователей и учащихся в социальные научные сети [5, 6, 7], где они могут найти необходимые им публикации, выявить актуальные тенденции в данной тематике, узнать о проведении тематических конференций и установить контакт друг с другом. По этой причине была разработана концепция виртуальных информационно-вычислительных веб-лабораторий или «хабов» [8], позволяющая организовывать предметно-ориентированные научные сообщества с предоставлением пользователям развитых средств коммуникации и взаимодействия, а также доступом к прикладным моделям данных.
Таким образом, для достижения поставленной цели работы были определены функциональные требования к ПООС, которые должны обеспечивать пользователей удобным повсеместным доступом к высокопроизводительному программному обеспечению с графическим интерфейсом, предоставлять средства разработки и тестирования ресурсоемких приложений и обеспечивать создание сообществ для проведения совместных исследований в рамках единой платформы.
Учитывая вышесказанное, следует утверждать, что создаваемая ПООС должна предоставлять пользователям облачные сервисы согласно известным моделям SaaS и PaaS, использовать адаптированные под облачную среду гридтехнологии на внутреннем уровне и обеспечивать доступ к прикладным моделям данных и организации научных сообществ в рамках концепции веб-лабораторий.
1.2 Анализ структуры вычислительного кластера Наибольшее распространение среди суперкомпьютерных архитектур для решения ресурсоемких задач [9] получили вычислительные кластеры [10]. Это стало возможным благодаря их экономической эффективности при решении широкого класса вычислительных задач. В списке самых мощных вычислительных систем Топ-500 из суперкомпьютеров, представленных в году, 85% были построены по кластерной технологии [11].
Вычислительный кластер представляет собой набор взаимосвязанных автономных компьютеров (вычислительных узлов), которые работают совместно, как единый интегрированный вычислительный ресурс (рисунок 1). Процессор вычислительного узла кластера работает только со своим локальным адресным пространством памяти, а доступ к удаленной памяти других узлов обеспечивается через механизм передачи сообщений. Такая организация вычислений исключает возникновение конфликтов при обращении к памяти и возникновение проблемы когерентности кэш-памяти. Это обеспечивает высокую масштабируемость системы и позволяет наращивать ее производительность простым добавлением узлов [12].
Рисунок 1 – Общая схема организации кластерных вычислительных систем с 1.2.1 Преимущества кластерной архитектуры Среди преимуществ кластерной архитектуры можно отметить [13]:
– эффективность: компоненты общего назначения, на базе которых создаются кластерные системы, а так же специальные мероприятия по настройке системного программного обеспечения позволяют добиться высокой эффективности кластерных вычислительных систем при решении широкого круга вычислительных задач;
– масштабируемость: вычислительная система, построенная по кластерной архитектуре, состоит из одинаковых независимых вычислительных модулей, что позволяет строить системы самого широкого круга вычислительных возможностей, от небольших кластеров рабочих групп до вычислительных систем масштаба группы предприятий;
– стоимость владения: использование в основе кластера вычислительных компонентов общего назначения и распространенных свободных программных средств снижает совокупную стоимость владения кластерной вычислительной системой.
1.2.2 Требования к кластерной архитектуре В зависимости от типа вычислительного кластера к его архитектуре могут накладываться специальные функциональные и не функциональные требования.
Так, параллельные программы, на эффективное выполнение которых нацелены высокопроизводительные системы, характеризуются наличием частых обменов эффективность выполнения программы. В связи с этим на компоненты и архитектуру высокопроизводительной кластерной системы накладываются специальные требования. Высокопроизводительная кластерная система с распределенной памятью, предназначенная для решения параллельных задач, должна состоять из однородных вычислительных узлов, объединенных администрирования и управления. При этом характеристики вычислительных узлов и сети должны быть согласованны.
Базовая схема высокопроизводительной кластерной вычислительной системы представлена на рисунке 2.
Общее требование однородности узлов вычислительного поля можно рассмотреть как обобщение требований к подсистемам, из которых состоит кластерная вычислительная система: требование к однородности аппаратных компонентов вычислительных узлов (аппаратная однородность), требование к однородности настроек системного программного окружения вычислительных узлов (программная однородность), требование к инженерной инфраструктуре, обеспечивающей функционирование вычислительных узлов (однородность среды функционирования) [14].
Рисунок 2 – Общая схема высокопроизводительной кластерной вычислительной Аппаратная однородность. Желательно, чтобы вычислительные узлы кластера в рамках одного вычислительного поля были построены на компонентах одного типа, одного производителя и имели максимально близкие по абсолютным значениям характеристики.
Программная однородность. Необходимо обеспечить одинаковые настройки системного окружения (ядро, административные и инфраструктурные службы операционной системы) на всех вычислительных узлах. Важно отметить, что в процессе эксплуатации может появляться так называемый «шум», обусловленный появлением в процессе эксплуатации незавершенных процессов, утечек памяти и так далее. Система мониторинга средств управления вычислительными ресурсами суперкомпьютерного центра должна иметь средства для выявления и последующего устранения такого «шума». Для обеспечения программной однородности системное программное обеспечения среднего уровня кластера, входящее в состав средств управления вычислительными ресурсами суперкомпьютерного центра, должно поддерживать возможность инсталляции вычислительных узлов с использованием единого загрузочного образа. Такие свободные пакеты кластерного ПО, как OSCAR [15, 16], Rocks [17, 18], коммерческий пакет HP CMU [19] содержат компоненты, которые позволяют создавать, хранить загрузочные образы вычислительных узлов кластера и с их использованием проводить инсталляцию и выполнять процедуры восстановления в случаях возможных сбоев. Для инсталляции узлов кластера может быть использован метод унификации вычислительных ресурсов bare-metal, реализованный в пакете OpenStack [20].
Однородность среды функционирования. Инженерная инфраструктура должна обеспечивать одинаковые климатические условия для функционирования всех узлов вычислительного поля. Однородность среды функционирования обеспечивается инженерной инфраструктурой, которая будет подробно описана в следующих разделах.
Нарушение любого из этих требований даже в рамках одного узла вычислительного поля ведет к недетерминированному поведению параллельной программы и может являться причиной ее неэффективного выполнения.
Вычислительные узлы высокопроизводительного кластера объединяются сетями. Обмен данными между частями программы в процессе ее выполнения обеспечивает вычислительная сеть. Функционирование сетевых системных служб операционных систем вычислительных узлов обеспечивает управляющая сеть, а сеть подсистемы параллельного ввода-вывода обеспечивает подключение узлов к хранилищу данных. Такая организация сетевой инфраструктуры вычислительного кластера позволяет исключить взаимное влияние потоков данных и обеспечить однородность характеристик межузловых коммуникаций. К каждой из сетевых инфраструктур могут предъявляться свои требования к характеристикам. Так, например, вычислительная сеть высокопроизводительного кластера должна обеспечивать высокую пропускную способность, низкую латентность, низкую загрузку центрального процессора вычислительного узла.
Наибольшее распространение получили кластерные системы следующих типов: кластеры высокой готовности, высокопроизводительные кластеры, кластеры массовой обработки запросов [21].
использования кластерных решений относятся их высокая стоимость, а также большие затраты, связанные с их эксплуатацией: энергопотребление, коммуникации, утилизация и так далее.
Ввиду этого большинство компаний малого и среднего бизнеса, а также вузы, не могут позволить себе приобретение промышленного кластера и вынуждены использовать недорогие, менее мощные решения, что приводит к неэффективному использованию оборудования ввиду его длительного простоя.
Для упрощения доступа к кластерам была разработана концепция «грид».
Концепция подразумевает объединение множества кластерных систем нескольких вычислительных центров в единую инфраструктуру. Такие грид-системы используются совместно в рамках консорциумов организаций и позволяют перераспределять вычислительные задачи, тем самым значительно повышая эффективность использования ресурсов.
Технология «грид» для распределенных вычислений возникла в середине 90-х годов и происходит от английского термина, буквальный перевод которого на русский язык – «решетка». Основной определяющей характеристикой гридсистем является отчуждение пользователей от компьютерных ресурсов, особенно в плане доступа, который осуществляется не к конкретному ресурсу (или ресурсам), а в виде унифицированного доступа ко всей грид-системе.
Главной задачей грид-технологий является обеспечение пользователей доступными компьютерными вычислениями «по запросу». Таким образом, технология «грид» – это соединение технологии, инфраструктуры и стандартов, позволяющее одним организациям и частным лицам предоставлять ресурсы (компьютеры, хранилища данных, сеть и другие ресурсы) в общее пользование, а другим – использовать их по необходимости. Технология реализована на основе специального программного обеспечения, с помощью которого обеспечивается работа системы. Инфраструктура состоит из различных аппаратных компонентов, предоставляющих услуги для совместного использования ресурсов. Наконец, взаимодействие компонентов и общие правила работы «грид» должны определяться стандартными, универсальными протоколами.
Для грид существует набор критериев, сформулированных в работе Яна Фостера, которые стандартизуют принадлежность системы к «грид» [22]: «грид – согласованная, открытая и стандартизованная среда, которая обеспечивает гибкое, безопасное, скоординированное разделение (общий доступ) ресурсов в рамках виртуальной организации» [23]. Другими словами, «грид» – это система, которая:
централизованного управления;
– использует стандартные, открытые, унифицированные протоколы и интерфейсы;
– обеспечивает высокое качество обслуживания.
Типы построения грид-систем с точки зрения решаемых задач можно разделить на три направления:
1. Вычислительный «грид» (Computational Grid) [24].
2. «Грид» для интенсивной обработки данных (Data intensive Grid) [25].
3. Семантический «грид», предназначенный для работы с данными из различных баз данных (Semantic Grid) [26, 27, 28].
Целью первого направления является достижение максимальной скорости вычислений за счет глобального распределения этих вычислений между множеством суперкомпьютеров. В данной работе будет рассматриваться именно вычислительный «грид».
Второе направление применяется при обработке массивных объемов данных при относительной простоте вычислений с помощью простых программ.
Поэтому вычислительные ресурсы грид-инфраструктуры в этом случае зачастую представляют собой кластеры, собранные из персональных компьютеров или просто отдельные машины. Основную сложность в этом случае представляет доставка данных для обработки и пересылка полученных результатов. Одним из крупнейших проектов, целью которого является создание грид-системы для обработки научных данных, является проект EGEE (Enabling Grids for E-science).
Грид-системы третьего направления – семантические, предоставляют распределенного мета-информационного окружения, позволяющего оперировать данными из разнотипных баз данных с различной архитектурой и схемами, представляя результат в формате, определяемым приложением. Более подробно про это написано на портале, посвященном проблематике развития таких систем [29].
Грид осуществляет объединение и управление распределенными ресурсами пользователей и направлен на решение вопросов безопасности [30], взаимодействия пользователей и ресурсов, а также оплаты услуг. Система строится на базе многоцелевых универсальных протоколов и интерфейсов, позволяющих решать такие задачи, как управление и мониторинг состояния ресурсов, аутентификация пользователей, контроль доступа к ресурсам и другие [31].
Основная задача грид – обеспечить высокое качество обслуживания за счет совместного использования входящих в него ресурсов, так как применение комбинированной системы повышает эффективность ее работы по сравнению с использованием ее отдельных частей.
Несмотря на то, что грид-технологии позволили организовывать доступ к оборудованию, для пользователей не меньшее значение имеет предоставление оборудования для расчетов, необходимо применение специализированных приложений, адаптированных под соответствующие архитектуры и использующих технологии параллельного программирования [32], такие как MPI [33] или OpenMP [34].
промышленности и образовании Ввиду отсутствия для ряда отраслей промышленности открытых программных пакетов для моделирования пользователи вынуждены покупать их коммерческие аналоги. В некоторых случаях стоимость программных решений и их дальнейшая поддержка сопоставима со стоимостью покупки кластерной системы, а иногда и значительно превышает ее. Ввиду этого большинство компаний малого и среднего бизнеса, а также вузы, не могут позволить себе приобретение промышленного суперкомпьютера и необходимого программного обеспечения.
Таким образом, в связи с активным развитием технологии виртуализации и каналов связи, основной задачей последних лет стала попытка упрощения доступа к прикладному программному обеспечению и средствам его разработки. Это стало возможным в связи с последовательным развитием технологий облачных вычислений (cloud computing) [35].
Облачные вычисления – это модель предоставления сервиса (услуги), при которой пользователь имеет возможность получить повсеместный, удобный, доступ по требованию к пулу (англ. pool) разделяемых, конфигурируемых ресурсов (например, сетей, серверов, памяти, приложений), которые могут быть быстро предоставлены пользователю и с минимальными для пользователя усилиями по взаимодействию с сервис-провайдерами в процессе получения доступа к ресурсам [35].
1.4.2 Свойства облачных вычислений Национальным институтом стандартов и технологий США зафиксированы следующие обязательные характеристики облачных вычислений [36]:
– самообслуживание по требованию (англ. self service on demand), при котором потребитель самостоятельно определяет и изменяет вычислительные потребности, такие как серверное время, скорости доступа и обработки данных, объем хранимых данных без взаимодействия с представителем поставщика услуг;
– универсальный доступ по сети, услуги доступны потребителям по сети передачи данных вне зависимости от используемого терминального устройства;
– объединение ресурсов (англ. resource pooling), когда поставщик услуг объединяет ресурсы для обслуживания большого числа потребителей в единый пул для динамического перераспределения мощностей между потребителями в условиях постоянного изменения спроса на мощности; при этом потребители контролируют только основные параметры услуги (например, объем данных, скорость доступа), но фактическое распределение ресурсов, предоставляемых потребителю, осуществляет поставщик (в некоторых случаях потребители всетаки могут управлять некоторыми физическими параметрами перераспределения, например, указывать желаемый центр обработки данных из соображений географической близости);
– «эластичность», когда услуги могут быть предоставлены, расширены, взаимодействие с поставщиком, как правило, в автоматическом режиме;
– учет потребления, когда поставщик услуг автоматически исчисляет потребленные ресурсы на определенном уровне абстракции (например, объем хранимых данных, пропускная способность, количество пользователей, количество транзакций) и на основе этих данных оценивает объем предоставленных потребителям услуг.
непостоянному характеру потребления со стороны потребителей, облачные вычисления позволяют экономить на масштабах, используя меньшие аппаратные ресурсы, чем требовались бы при выделенных аппаратных мощностях для каждого потребителя, а за счет автоматизации процедур модификации выделения ресурсов существенно снижаются затраты на абонентское обслуживание.
С точки зрения потребителя эти характеристики позволяют получить услуги с высоким уровнем доступности (англ. high availability) и низкими рисками неработоспособности, обеспечить быстрое масштабирование вычислительной системы благодаря эластичности без необходимости создания, обслуживания и модернизации собственной аппаратной инфраструктуры.
Удобство и универсальность доступа обеспечивается широкой доступностью услуг и поддержкой различного класса терминальных устройств (персональных компьютеров, мобильных телефонов, планшетных ПК).
Такой подход к организации услуг дает возможность получить следующие преимущества [37]:
– удаленный доступ к вычислительным ресурсам с любого рабочего места вне зависимости от географического положения пользователей;
– масштабируемость предоставляемых услуг;
– возможность полного самообслуживания пользователей в отношении подготовки к работе, управлению и завершению предоставления услуг;
– высокая степень доступности услуг за счет возможности быстрого восстановления после вероятных катастроф;
– высокий уровень эффективности использования аппаратных ресурсов (обслуживание большего числа пользователей за счет обеспечения возможности общего использования вычислительных ресурсов системы для решения задач с разными, часто взаимоисключающими требованиями к вычислительной инфраструктуре); за счет этого возможно обеспечить снижение стоимости единицы ресурса;
– экономия за счет унифицированных механизмов обслуживания и администрирования.
1.4.3 Сервисные модели Существуют различные сервисные модели облачных вычислений [38], но наибольшее распространение получили:
– программное обеспечение как услуга (SaaS, англ. Software as a Service):
модель, в которой потребителю предоставляется возможность использования прикладного программного обеспечения провайдера, работающего в облачной инфраструктуре и доступного из различных клиентских устройств, например, из веб-браузера. Контроль и управление основной физической и виртуальной инфраструктурой облака, в том числе сети, серверов, операционных систем, хранения, или даже индивидуальных возможностей приложения (за исключением ограниченного набора пользовательских настроек конфигурации приложения) осуществляется облачным провайдером;
– платформа как услуга (PaaS, англ. Platform as a Service): модель, в которой потребителю предоставляется возможность использования облачной инфраструктуры для размещения базового программного обеспечения для последующего размещения на нем новых или существующих приложений (собственных, разработанных на заказ или приобретенных тиражируемых приложений). В состав таких платформ входят инструментальные средства создания, тестирования и выполнения прикладного программного обеспечения – системы управления базами данных, связующее программное обеспечение, среды исполнения языков программирования, предоставляемые облачным провайдером.
В модели SaaS распространяются многие типы прикладного программного обеспечения: офисные пакеты (Google Docs, Office 360, ZohoDocs), графические редакторы (Pixlr, picnik), клиенты электронной почты (Gmail, iNotes), ERPсистемы (Microsoft Dynamics AX, SAP Business ByDesign), CRM (Salesforce.com, ZohoCRM) и др. Существует также множество облачных платформ для разработки таких приложений (Google Apps Engine, Microsoft Azure, Amazon AWS).
Однако для класса высокопроизводительного программного обеспечения с графическим интерфейсом пользователя отсутствует возможность его распространения в модели SaaS. Одновременно с этим не существует облачной платформы по предоставлению средств разработки и тестирования таких приложений в модели PaaS [39].
1.5 Концепция виртуальных предметно-ориентированных информационно-вычислительных веб-лабораторий В связи с тем, что в мире наблюдается потребность в объединении ученых, исследователей и учащихся в социальные научные сети, где они могут найти необходимые им публикации, выявить актуальные тенденции в данной тематике, узнать о проведении тематических конференций, установить контакт друг с другом и, наконец, проводить совместные исследования, была разработана концепция виртуальных информационно-вычислительных веб-лабораторий или «хабов» (англ. hubs) [8]. Затем на основе этой концепции была разработана референсная архитектура системы под названием HUBzero [40]. Основной целью, для которой используется эта система, является организация предметноориентированных научных сообществ [41, 42] с возможностью совместной работы и доступа к прикладным моделям и данным.
С точки зрения пользователя веб-лаборатория представляет собой сайт, доступный через Интернет, который позволяет:
– получать безопасный доступ к размещенным ресурсам;
– публиковать информацию о себе и своих исследовательских работах;
– осуществлять поиск коллег в своей области, а также смежных научных областях;
– поддерживать связь со своими коллегами;
– организовывать коллективы по интересам для дальнейшего совместного участия;
– получать актуальную информацию о направлениях деятельности различных научных коллективов, проводимых конференциях и тому подобное.
– использовать материалы веб-лаборатории: обучающие курсы, статьи, инструкции по использованию приложений и др.;
– запускать приложения в вычислительной инфраструктуре веблаборатории;
– получать помощь исследователей в разработке, установке и дальнейшей поддержке приложений.
Важным аспектом организации таких веб-лабораторий является сокрытие от пользователей сложностей, связанных с авторизацией, обменом данными, запуском вычислительных приложений, получением результатов и их визуализацией [43].
1.5.1 Возможности веб-лаборатории Взаимодействие пользователей с веб-лабораторией происходит через веббраузер. Веб-лаборатория предоставляет пользователям следующие возможности [44, 45]:
– получение интерактивного доступа к прикладному программному обеспечению в концепции облачных вычислений;
– предоставление площадки для разработки и тестирования собственных приложений, которые в дальнейшем могут быть размещены в веб-лаборатории;
– средства для взаимодействия пользователей.
Далее приводится подробное описание этих возможностей.
1.5.1.1 Получение доступа к прикладному программному обеспечению Для получения доступа к программному обеспечению веб-лаборатории пользователю необходимо авторизоваться на сайте, выбрать нужное ему приложение из предложенного списка и запустить его.
Запуск приложения приводит к созданию сессии, которая выполняется на вычислительных узлах веб-лаборатории и отображается в браузере пользователя.
При этом работа с приложением происходит в интерактивном графическом режиме и не отличается от работы с локальным настольным приложением. Тем не менее, иногда работа с приложением в окне браузера бывает недостаточно удобной и для таких случаев присутствует возможность использования автономного окна для приложения.
Важной особенностью является то, что выполнение сессии происходит удаленно, пользователь может завершить работу своего компьютера и позднее вернуться к запущенным сессиям с помощью любого компьютера с доступом в Интернет.
Пользователь может получить результаты выполнения с помощью протокола WebDAV [46]. Через него можно работать с удаленной файловой системой так, как если бы она была локальной.
Для организации совместной работы сервисы веб-лаборатории позволяют разделять рабочую сессию запускаемого приложения между несколькими пользователями, список которых должен определить ее владелец путем обновления параметров запущенной сессии, то есть добавления регистрационных имен учетных записей выбранных пользователей. Помимо этого, владелец может ограничить доступ на изменение сессии и она будет доступна только для просмотра. Эти пользователи могут также получить доступ к результатам завершенной сессии приложения. [47] 1.5.1.2 Средства для разработки, тестирования и создания графических интерфейсов приложений Для разработки приложения пользователю предоставляется ряд средств. Все разработчики приложения получают доступ к рабочей среде операционной системы Debian GNU/Linux [48] через web-браузер, в которой они могут редактировать файлы, компилировать исходный код и тестировать свое приложение.
В качестве инструмента управления проектами и отслеживания ошибок используется система Trac [49]. Она позволяет эффективно организовывать работу разработчиков, помогает избежать многих трудностей, связанных с управлением и сопровождением проекта. Trac использует веб-интерфейс, основанный на технологии wiki [50], что облегчает ведение документации по проекту, его версиям и этапам разработки.
Для хранения исходных кодов разрабатываемого приложения используются системы управления версиями [51]: Subversion (SVN) [52] и GIT [53]. Системы позволяют хранить несколько версий одного и того же файла, при необходимости возвращаться к более ранним версиям, определять, кто и когда сделал то или иное изменение и многое другое, что упрощает коллективную разработку.
Для упрощения использования приложений, не имеющих графического пользовательского интерфейса, веб-лаборатория предоставляет разработчикам набор инструментов Rappture [54] для его быстрого создания.
Rappture автоматически генерирует GUI после считывания и обработки XML-описания входных и выходных данных приложения: для каждого параметра описывается его физическая величина, минимальное и максимальное доступные значения, а также значение по умолчанию. Для удобства разработчиков в библиотеке Rappture заранее предустановлено более 20 популярных типов данных, таких как числа, булевы значения, скалярные/векторные типы, графики, молекулы и другие. Все они могут использоваться для описания входных и выходных значений приложения.
После финального тестирования приложение может быть опубликовано в веб-лаборатории. Это означает, что доступ к нему могут получить не только разработчики, но также и остальные пользователи. В момент публикации приложения разработчики должны указать, под какой лицензией оно распространяется, и в зависимости от типа лицензии код приложения будет доступен, либо скрыт от остальных пользователей веб-лаборатории.
1.5.1.3 Средства для взаимодействия пользователей Веб-лаборатория предоставляет пользователям основные возможности социальных сетей. Пользователи могут размещать информацию о себе; загружать в веб-лабораторию материалы в различных форматах – видео, фотографии, различные документы; делиться с коллегами в рамках веб-лаборатории документами, презентациями, ссылками. Присутствует возможность формирования групп по научным интересам и общения с другими пользователями путем обмена сообщениями, комментирования материалов, запуска приложений и др.
1.5.2 Устройство веб-лаборатории Для предоставления доступа к описанным выше сервисам веб-лаборатория должна в частности содержать следующие аппаратные компоненты (рисунок 3) [55]:
– группу серверов, обеспечивающих функционирование веб-ядра (1);
– хранилище виртуальных контейнеров (2);
– систему хранения для пользовательских данных и приложений (3);
– высокопроизводительные вычислительные ресурсы (4).
Рисунок 3 – Аппаратная архитектура веб-лаборатории Работа с веб-лабораторией происходит c помощью клиента (1) через вебядро (2), которое предоставляет все возможности по взаимодействию пользователей в рамках социальной научной сети и отвечает за доступ к размещенным ресурсам.
Хранилище виртуальных контейнеров (3) содержит множество работающих виртуальных машин, где выполняются запущенные пользователями приложения, доступ к которым предоставляется с помощью специального клиента в веббраузере.
Система хранения данных (СХД) (4) содержит домашние каталоги пользователей и бинарные файлы приложений веб-лаборатории, которые подключаются к контейнеру сессии при запуске.
1.5.3 Особенности реализации программной части.
Программное обеспечение веб-лаборатории имеет многоуровневую структуру. На этапе создания системы HUBzero, которая является прототипом веб-лаборатории, был разработан и реализован стек программного обеспечения как совокупность программных инструментов, поддерживающих соответствующие технологии. Стек базируется на свободном программном обеспечении с открытыми универсальными интерфейсами, что позволяет, с одной стороны, решить задачи обеспечения совместимости уровней и организации их эффективного взаимодействия при наложении, а с другой стороны, обеспечивать высокую степень адаптивности к различным требованиям.
Программное обеспечение веб-лаборатории состоит из следующих слоев:
Первый слой обеспечивает доступ к множеству приложений через единую точку доступа – веб-портал. На данном уровне решаются задачи представления и организации информации, первоначальной авторизации пользователей, а также предоставляются возможности автоматизированной генерации интерфейсов, обеспечивающих интерактивное взаимодействие с приложением через Интернет.
Второй слой отвечает за доступ к распределенным вычислительным ресурсам, которые будут использоваться для выполнения интерактивных приложений. На этом уровне решаются проблемы объединения разнородных ресурсов, разграничения доступа и безопасности. Для решения данной проблемы доступ к ресурсам основан на открытых, общедоступных интерфейсах, которые позволяют наращивать вычислительную инфраструктуру, подключая к ней новые вычислительные средства.
Также важной проблемой, решаемой на уровне второго слоя, является обеспечение однородности вычислительных ресурсов для запускаемых приложений. Например, каждое приложение предъявляет свои требования к версии операционной системы, составу предустановленных библиотек и, возможно, аппаратному обеспечению. При этом невозможно гарантировать, что все вычислительные ресурсы смогут удовлетворить данным требованиям.
виртуализации.
вычислительным ресурсам. На данном уровне размещается интерфейс с системой управления. В задачи данного уровня входит обеспечение эффективного использования вычислительных ресурсов, безопасности, надежности передачи данных.
окружения:
– поддержку вычислительных экспериментов (интеграцию вычислительных моделей, подготовку и проведение вычислительных экспериментов) с использованием аппаратуры суперкомпьютерного центра;
– разработку новых пакетов прикладных программ междисциплинарными коллективами специалистов;
– управление информационной средой взаимодействия групп специалистов (ведение онлайн документации, wiki и др.);
– процесс обучения студентов и аспирантов, специализирующихся по тематике веб-лаборатории: обеспечение курсов лекций (в том числе – спецкурсов), практических и лабораторных занятий, семинаров.
масштабируемый доступ к приложениям, обеспечивающий одновременное обслуживание большого количества пользователей.
Несмотря на обилие возможностей, концепция не предусматривает внедрения средств контроля и учета ресурсов, из-за чего пользователи могут запускать приложения на длительный срок без ограничений на используемые вычислительные ресурсы. По этой причине в веб-лабораториях устанавливаются только бесплатные, нетребовательные к ресурсам приложения. В результате существующую концепцию невозможно использовать для построения на ее основе лаборатории для организации доступа к платным прикладным пакетам и средствам разработки высокопроизводительного программного обеспечения.
Другим недостатком разработанной концепции является отсутствие развитых механизмов взаимодействия с внешними кластерными системами и средств учета вычислительных ресурсов, что не позволяет использовать их для загрузки заданий на внешние подключенные к веб-лаборатории ресурсы.
В главе проведен анализ современного состояния ряда отраслей науки и промышленности, в которых для проведения расчетов, связанных с высокопроизводительных вычислений. В результате анализа установлено, что использование даже самых мощных персональных компьютеров не позволяет получать результаты работы в необходимый срок, а зачастую и проводить такие расчеты вообще. Поэтому для этих областей используются специальные вычислительные комплексы, использование которых позволяет получать результаты расчетов до нескольких порядков быстрее.
В результате анализа были сделаны следующие выводы:
1. Среди суперкомпьютерных архитектур наибольшее распространение получили кластерные системы, в первую очередь за счет эффективности работы, масштабируемости и сниженной стоимости владения по сравнению с остальными решениями. Тем не менее, установлено, что, несмотря на очевидные преимущества, доступность индустриальных кластерных решений остается низкой для широкого круга пользователей, что вынуждает их использовать менее дорогие и маломощные решения.
2. Для упрощения доступа к кластерным решениям была разработана концепция «грид», на базе которой строятся системы, представляющие согласованную, открытую и стандартизованную среду, обеспечивающую гибкое, безопасное, скоординированное разделение ресурсов в рамках виртуальной организации. Преимуществом грид-технологий является возможность объединения вычислительных ресурсов и организация прозрачного доступа к ним для пользователей, как к единой системе.
3. В связи с активным развитием технологии виртуализации и каналов связи была разработана концепция облачных вычислений (cloud computing), описывающей ряд сервисных моделей, поставляемых через Интернет. Благодаря концепции стало возможно обеспечение повсеместного и удобного сетевого доступа по требованию к общему пулу конфигурируемых вычислительных ресурсов, которые могут быть оперативно предоставлены и освобождены с минимальными эксплуатационными затратами и обращениями к провайдеру.
Среди существующих моделей наибольшую популярность получили:
Software-as-a-Service (SaaS), подразумевающей обеспечение удаленного доступа к прикладному программному обеспечению, и модели Platform-as-a-Service (PaaS), в рамках которой пользователями предоставляется платформа для разработки и тестирования программного обеспечения с возможностью последующей его публикации.
4. Чрезвычайно важной проблемой для исследователей остается нехватка прикладного программного обеспечения, так как для ряда отраслей промышленности отсутствуют открытые или бесплатные программные пакеты для моделирования пользователи вынуждены покупать их коммерческие аналоги.
В некоторых случаях стоимость программных решений и их дальнейшая поддержка сопоставима со стоимостью покупки кластерной системы, а иногда и значительно превышает ее. Отсутствие средств разработки и тестирования также негативно сказывается на развитии конкретных прикладных областей из-за вычислительном оборудовании.
После анализа было определено, что эти проблемы можно решить с помощью облачных вычислений. Тем не менее, несмотря на то, что облачные аналоги большинства прикладных областей (офисные системы, ERP, графические пакеты и др.) присутствуют на рынке, они в качестве образцов для организации высокопроизводительных вычислений пока еще не были предложены.
5. Для создания сетевых информационных сообществ с возможностью совместной разработки и доступа к прикладным моделям и данным была разработана концепция виртуальных информационно-вычислительных веблабораторий, или «хабов». Данная концепция могла бы лечь в основу разрабатываемой облачной среды, но она содержит ряд недостатков, связанных с отсутствием развитых механизмов взаимодействия с высокопроизводительными ресурсами и средств учета вычислительных ресурсов, что не позволяет использовать ее для предоставления облачных сервисов.
6. На основе представленных выше технологий предложено создать новую концепцию ПООС, позволяющую объединить в себе три элемента:
вычислительному оборудованию, как к единой платформе;
– облачные вычисления в двух сервисных моделях: Software-as-aService для предоставления интерактивного доступа к прикладному высокопроизводительному программному обеспечению и Platform-as-aобеспечивающей пользователей средствами разработки и Service, тестирования таких программ с возможностью их дальнейшей публикации;
направленные на организацию научных сообществ с предоставлением пользователям развитых средств коммуникации и взаимодействия.
Глава 2. Формализованное проектирование функциональной и виртуализированной системной архитектуры предметноориентированной облачной среды (ПООС) Глава посвящена вопросам абстрактного и структурного проектирования проектирования функциональной и системной архитектур предметноориентированных облачных сред на абстрактном и прикладном уровнях. В главе предложены правила функционирования ПООС, структуры аппаратной и программной частей комплекса и механизмы взаимодействия различных компонентов друг с другом, для описания которых используется математический аппарат систем алгоритмических алгебр и эволюционирующих многоосновных алгебраических систем. Ключевым моментом является описание разработанной системы аккаунтинга и ее составных частей. В частности, рассматриваются различные типы запросов и их обработка соответствующими компонентами.
Помимо этого в главе приводится описание грид-подсистемы, которая строится на базе ПООС и технологии мультиресурсного запуска вычислительных заданий, используемой супервизором.
2.1 Обоснование и выбор формализмов для поведенческого моделирования и последующего проектирования ПООС на основе Методологии концептуального и поведенческого моделирования являются мощным инструментом, позволяющим проектировать и исследовать широкий класс сложных систем, в том числе и ПООС. В последнее время получили широкое применение методологии системного моделирования, базирующиеся на использовании формальных моделей, в том числе таких формализмов, которые формализованных технических заданий. Использование таких методологий позволяет проводить проектирование системных и функциональных архитектур сложных вычислительных систем путем задания структурных и логических причинно-следственных связей между компонентами. Структурные и логические связи определяют знания о проектируемой системе и окружающей ее среде.
Как известно, логико-алгебраические модели, основанные на логических и алгебраических исчислениях, описывают важные статические свойства объекта, но не указывают причины изменения этих свойств во времени; при построении логических моделей строят и исследуют истинные или ложные утверждения о моделируемом объекте. Из алгебраических моделей наиболее распространены реляционные алгебры, алгебраические модели абстрактных типов данных, процессные алгебры, а также различные типы алгебраических структур, элементами носителя которых являются схемы алгоритмов или программы [56, 115, 116]. С алгебраическими моделями тесно связаны так называемые операционные модели, позволяющие задавать динамику моделируемой системы – сети Петри, конечные автоматы, логики Хоара, программные логики, машины абстрактных состояний, системы алгоритмических алгебр и др. [115, 117].
Например, конечный автомат может быть рассмотрен как трехсортная алгебра с двумя операциями [75]. Из перечисленных формализмов представляют большой интерес последние два, так как они в большей степени относятся к классу непосредственно исполнимых или интерпретируемых спецификаций и пригодны для задания системной и функциональной архитектуры виртуализованных ПООС.
функциональной и системной архитектур ПООС используются математический аппарат многоосновного исчисления предикатов первого порядка, алгебраических систем, а также некоторые элементы формализмов систем алгоритмических алгебр (САА) и эволюционирующих алгебр (другое, название формализма – машины абстрактных состояний). Данный аппарат систематизирован в виде взаимно-согласованных определений для применения при построении концептуальных и формализованных поведенческих логико-алгебраических моделей.
2.1.1 Формализованные спецификации ПООС на основе систем алгоритмических алгебр Недостатком логических моделей представления знаний о системной архитектуре сложных систем, основанных на логике предикатов первого порядка, является то, что они позволяют описывать в основном статические связи в системе, которые в модели трудно модифицировать. Это затрудняет построение функциональной архитектуры сложной системы, как части ее системной архитектуры. Например, логические модели представления знаний, описанные в работе [56], пригодны лишь для описания статических структурных и логических связей в сложной системе. Использование процедурной составляющей модели представления знаний, примененное, например, в работе [57] к семантическим сетям, не формализовано и сводится к рутинному программированию (то есть не является программированием на основе непосредственно интерпретируемых формализованных технических заданий). Последнее характерно и для других средств представления процедурных знаний в моделях искусственного интеллекта.
Для представления в формализованном виде процедурных знаний, необходимых для проектирования функциональной архитектуры ПООС, в данной работе выбраны системы алгоритмических алгебр.
Система алгоритмических алгебр [58, 59, 60, 61, 62] – это двухосновная алгебраическая система САА = {Aоп, Аусл, }, где – сигнатура САА;
Aоп = < Aоп, оп > – алгебра операторов;
Aусл = < Aусл, усл > – алгебра условий;
оп = {seq, arb*, sim*} – сигнатура алгебры операторов (помимо обычной для САА операции seq (“;”) – последовательного применения операторов в алгоритмическом модуле может использоваться операция arb (“:”) применения одновременного выполнения операторов, где рядом в скобках показаны упрощенные и рекомендуемые для инфиксной записи обозначения операторов в случаях, когда это не противоречит контексту; звездочками отмечены дополнительные операторы, не описанные явно в [58, 59, 60, 61, 62]);
усл = <,, > – сигнатура алгебры всюду определенных условий;
Aоп – основное, или базовое, множество операторов (носитель алгебры операторов Aоп);
Aусл – основное, или базовое, множество условий (носитель алгебры условий Aусл);
A'оп, – система образующих алгебры операторов Aоп, A'оп Aоп;
A'усл – система образующих алгебры условий Aусл, A'усл Aусл.
Алгебра операторов, согласно [60], «состоит из частичных преобразований C (B B) состояний B информационной среды, а алгебра условий – из частичных предикатов (B {true, false})».
операторов и логических условий; c помощью этой совокупности посредством суперпозиций операций, входящих в, порождаются произвольные операторы и условия из множеств Aоп и Aусл соответственно» [61].
Дополнительные операции в сигнатуре :
– операция -дизъюнкции [](Q S) – это тернарная, или трехместная, операция, зависящая от условия Aусл и операторов Q Aоп и S Aоп, ее результатом является результат выполнения оператора Q, если = true, или результат выполнения оператора S, если = false;
– операция -итерации []{Q} – это бинарная операция, зависящая от условия и оператора Q, ее результатом является результат циклического выполнения оператора Q при ложном до тех пор, пока условие не станет истинным.
В работе используются только всюду определенные условия.
В САА также дополнительно используются операторы E (тождественный оператор) и N – неопределенный оператор.
2.1.2 Доопределение формализованных спецификаций ПООС на основе аппарата эволюционирующих алгебраических систем Понятие машин абстрактных состояний [63, 64, 65, 66, 67, 68] основано на «эволюции», или «развитии», интерпретации сигнатуры многоосновных алгебраических систем путем выполнения операций модификации предикатов и функций. Для организации потоков управления в сети алгоритмических модулей эти операторы целесообразно добавить к системе образующих A'оп алгебры операторов Aоп, описанной выше. Для описания модулей машин абстрактных состояний в работах [69, 70, 71, 72] предложено использовать аппарат, близкий к системам алгоритмических алгебр [118]. В этих же работах показано, что при формировании логических условий целесообразно использовать логику предикатов первого порядка и реляционное исчисление на кортежах и доменах, определенное для языков запросов к базам данных. Определенные таким образом условия целесообразно включить в систему образующих A'усл описанной выше алгебры условий Aусл. Приведенное ниже описание развивающихся алгебр соответствует в целом описанию в работах [63, 64, 65, 66, 67, 68] и отечественных источниках [73, 74, 75, 76] и отличается системой обозначений. Например, мы здесь используем понятие «интерпретация сигнатуры алгебраической системы»
(следуя [73]) и ее «развитие».
Эволюционирующая многоосновная алгебраическая система (ЭМАС) – это кортеж где A1, A2, …, An – основные непустые непересекающиеся множества различных сортов (носители алгебры); Sort = {s1, s2, …, sn} – множество сортов, приписанных основным множествам (для каждого сорта зафиксирован набор предметных переменных; среди сортов имеется сорт T = {true, false}); P – множество символов отношений или предикатов (предикатных символов); F – множество символов операций или функций (функциональных символов); = P F – предикатнофункциональная сигнатура; I0 – начальная интерпретация сигнатуры, или начальное отображение множества в множество отношений и операций, определенных на некоторых из основных множеств A1, A2, …, An; : {0, 1, …, k} – отображение местности или арности для ; M – множество абстрактных модулей, или абстрактных машин, связанных через пространство абстрактной памяти предикатов и функций (при программной реализации взаимосвязанной сети абстрактных модулей используется понятие «сеть алгоритмических модулей», в которой каждый модуль описан аналитически с помощью аппарата САА), M Aоп; A'усл – система образующих алгебры Aусл условий, A'усл Aусл;
A'оп, – система образующих алгебры Aоп операторов (или алгебры модулей абстрактных машин), A'оп Aоп, состоящая из элементарных модулей – элементарных правил модификации интерпретации предикатно-функциональной сигнатуры. Определенная таким образов алгебраическая система «эволюционирует», или «развивается», переходя от одной интерпретации сигнатуры к другой, начиная с начальной интерпретации I0.
Элементы каждого из основных множеств обладают общими свойствами, характеризуемыми «сортами». В настоящей работе, например, используются сорта «программа», «ЭВМ», «виртуальный объект» и др.
Дополним определение согласно [75, 76]. Каждому функциональному kарному символу f F сопоставлена схема функции s1s2…sk sk+1; si Sort (i = 1, 2, …, k+1), а каждому k-арному предикатному символу p P сопоставлена схема предиката (высказывательной функции) s1s2…sk T; T, si Sort (i = 1, 2, …, k). Нульарные функции выделяют элементы в некотором множестве.
Далее в настоящей работе будут использоваться предикаты вида p: A1A2…Ak {true, false} и функции вида с определенными выше схемами.
Элементарные правила модификации интерпретации I сигнатуры состоят из правил (операторов) модификации предикатов и функций следующего вида:
где t1, t2, …, tk, tk+1 – термы различных сортов, b – булево выражение, p P, f F.
Сорт символа функции f, или сорт значений функции f, совпадает с сортом терма tk+1.
С помощью системы образующих алгебры операторов – совокупности подобных элементарных операторов модификации предикатов и функций абстрактного пространства памяти и на основе сигнатуры порождаются произвольные модули абстрактных машин. Под модулем на абстрактном уровне мы будем подразумевать модуль, описываемый одним выражением в САА.
Используемые в диссертационной работе элементарные условия из константными формулами; в записи последних могут присутствовать предикатные символы (возможно, символы сравнения), предметные константы и термы.
Пример составления логико-алгебраического выражения для модуля ЭМАС. Как было определено ранее, эволюционирующая многоосновная алгебраическая система (ЭМАС) – это кортеж вида где i – индекс типа архитектуры ПООС. Элементы A1, A2, …, An, Sort, P, F, I0, данного кортежа задают декларативные знания об архитектуре ПООС, а именно, структурные связи компонентов и состояния объектов. Логические связи задаются замкнутыми формулами, содержащими функциональные и предикатные символы и, возможно, кванторы, рассматриваемые как сокращающие символы.
Остальные три элемента M, A'усл, A'оп задают императивную (процедурную) составляющую модели, то есть определяют динамику предметной области, или ее эволюцию – изменение межкомпонентных связей, состояний объектов и др.
Модули из множества M строятся по правилам, определенным САА В.М.
Глушкова. Рассмотрим в качестве примера построение следующего ЭМАСвыражения на основе теории САА:
m'7 = [q(w7)]([p(x5)&p(x7)]([w(q(w)&c7(w))]({q(w7) true;
Система образующих для алгебры условий включает следующие атомарные константные формулы:
A'усл = {q(w7), p(x5), p(x7), q(w1), c7(w1), q(w2), c7(w2), q(w3), c7(w3), q(w4), c7(w4), Новые логические условия порождаются из приведенной совокупности элементарных логических условий посредством суперпозиций операций булевой алгебры:
1 = q(w7), 2= p(x5)&p(x7), 3 = q(w1)&c7(w1), 4 = q(w2)&c7(w2), 6 = q(w4)&c7(w4), 7 =q(w5)&c7(w5), 8 = q(w6)&c7(w6), 9 = q(w7)&c7(w8), Здесь учтен тот факт, что квантор существования для конечной предметной области представляет собой сокращающий символ для дизьюнкции.
Все условия, составляющие систему образующих A'усл, и сформированные на их основе новые условия принадлежат основному (базовому) множеству условий Aусл.
Система образующих для алгебры операторов включает следующие элементарные операции модификации предикатов и тождественный (“пустой”) оператор E:
элементарных операторов посредством суперпозиций операций композиции “;” и используются условия из множества Aусл):
A1 = (q(w7) true; q(w7) q(w7)), A2 = [11](A1 E), A3 = [2](A2 E), Подстановка сформированных выражений дает результирующее выражение для абстрактного модуля m'7. Все операторы, составляющие систему образующих A'оп, и сформированные на их основе новые операторы принадлежат основному (базовому) множеству операторов Aоп. Подставляя в последнее выражение выражения для составляющих его условий и операторов, получим исходное выражение m7. Естественно, в системы образующих алгебры условий и алгебры операторов должны быть соответственно включены все элементарные условия и элементарные операторы рассматриваемой модели, описываемой полной системой ЭМАС-выражений. Отметим, что выражение m'7 входит в систему распределенной ПООС (п. 4.1.1). Остальные выражения строятся по такому же принципу.
В настоящей работе вместо термина «оператор» мы чаще будем использовать термин «абстрактный модуль ЭМАС», или просто «модуль». Так, элементарных модулей модификации предикатов и функций, а систему образующих для алгебры логических условий составляет совокупность атомарных константных формул и элементарных высказываний. Заметим, что приведенный аппарат обладает определенной избыточностью в приложении к данной работе.
Недостатком использования известных методов виртуализации является неформальный характер основных понятий и рекомендаций. Используемая в диссертационной работе концепция виртуализации является базой для сквозного формализованного проектирования системной архитектуры ПООС на основе унифицированной абстрактной схемы ЭМАС. При этом взятая за основу исходная абстрактная поведенческая модель ПООС трансформируется, дополняется новыми элементами основных множеств и самими множествами, расширяются функциональной архитектуры ПООС к формально определенной системной архитектуре учитываются новые структурные связи развертывания компонентов ПООС на узлах глобальной вычислительной сети в рамках единого программноаппаратного комплекса. Сквозным межкомпонентным связям ставятся в соответствие реальные связи в сети.
Отличительной особенностью принятой концепции виртуализации является непосредственное использование результатов построения формализованной поведенческой модели при проектировании системной архитектуры ПООС:
информационные объекты, которыми представлены функции и предикаты в составе абстрактной памяти, непосредственно используются в программноаппаратной реализации ПООС. Абстрактные модули, реализуемые программно виртуальными машинами, обеспечивают динамику работы ПООС: подключение и отключение отдельных компонентов, перераспределение вычислительных ресурсов, обеспечение связи с внешней средой, то есть с пользователем.
Далее детализированные спецификации, полученные на основе формализма ЭМАС, рассматриваются проектировщиком в качестве формализованных технических заданий для реализации ПООС в виде программно-аппаратного непосредственно интерпретируемых, согласно работам В.М. Глушкова [58, 61], и и были ранее предназначены почти исключительно для разработки программ и микропрограмм. В дополнении к данной концепции использование формализма ЭМАС позволяет учесть структуризацию памяти и развертывание программных компонентов на физических серверах сети. Включение в кортеж, определяющий ЭМАС, элементов многоосновной алгебраической системы позволяет легко формализовать представление логических и структурных связей между программными и аппаратными компонентами. Этим выбранный формализм ЭМАС отличается от формализмов сетей Петри и систем алгоритмических алгебр и становится пригодным как для проектирования операционных систем, так и систем типа ПООС с параллельными и асинхронными процессами, взаимодействующими со сложными структурами данных.
Регулярность структуры абстрактной памяти, посредством которой осуществляется взаимодействие абстрактных модулей, в существенной степени облегчает реализацию структурных, логических и темпоральных связей, переносимых из поведенческой модели непосредственно в проект ПООС.
Ограниченность структуры абстрактных модулей ЭМАС, большинство из которых построено на основе операции -дизъюнкции и операций семафорного типа по модификации унарных и бинарных предикатов и функций, тем не менее, позволяет строить универсальные структуры, настраиваемые на различные стратегии управления в реализации ПООС. По этим же причинам на основе формализма ЭМАС и в соответствии с предлагаемыми в диссертации методиками абстрактного и прикладного проектирования возможно построение масштабируемых, регулярных, модульных и реконфигурируемых структур ПООС.
Особенностью выбранного формализма ЭМАС является то, что становится возможной формализация функциональной и системной архитектуры ПООС, начиная с уровня концептуального моделирования на основе содержательного описания, поскольку поведенческая модель любого уровня использует набор базовых отношений, описывающих структурные, логические и темпоральные связи между компонентами и почти не изменяемых в процессе усложнения модели вплоть до работающего приложения ПООС.
2.1.3 Основные этапы проектирования ПООС Архитектура ПООС определяется множеством объектов различных сортов, структурных и логических связей между ними (рисунок 4). Для ПООС в настоящей работе определены:
Рисунок 4 – Основные этапы проектирования архитектуры ПООС – методики проектирования архитектур ПООС на абстрактном и прикладном уровнях;
– функциональная архитектура, состоящая из структуры программноаппаратного комплекса, а также основных правил функционирования ПООС, заданных с помощью аппарата математической логики;
– системная архитектура, состоящая из системных сценариев работы ПООС, среди которых запуск приложения, загрузка вычислительных заданий на внешний ресурс, мониторинг состояния задания, закрытие приложения и завершение работы задания;
– супервизорная архитектура, задающая работу подсистемы распределения заданий, в том числе и мультиресурсного запуска вычислительных заданий на различных источниках;
– архитектура системы аккаунтинга, описывающая взаимодействие сервера системы аккаунтинга с веб-ядром, клиентом, сервером подсистемы распределения заадний и хранилищем виртуальных контейнеров;
– архитектура подсистемы управления заданиями, представляющая базовые действия при работе с заданиями: добавление в очередь, мониторинг текущего состояния, завершение выполнения и принудительная остановка;
– унифицированная абстрактная схема ПООС, включающая в себя формализованное описание развертывания ПООС на физических ЭВМ, интерфейсов взаимодействия различных компонентов друг с другом, а также основных процедур администрирования ПООС: установку прикладного ПО, подключение вычислительного ресурса и разработку приложений с графическим интерфейсом.
2.2 Методики автоматизированного абстрактного и структурного проектирования системной и функциональной архитектур ПООС на основе логико-алгебраических моделей Проектирование функциональной архитектуры ПООС на основе логикоалгебраических моделей должно при последующем ее анализе облегчить переход к виртуализированной реализации комплекса программно-аппаратных средств. В результате использования данных методик предполагается, что архитектура ПООС будет обладать следующими характеристиками:
– масштабируемостью;
– реконфигурируемостью;
– регулярностью структуры связей;
– динамическим управлением ресурсами;
– повышенной производительностью за счет применения унифицированной абстрактной схемы представления логических и структурных связей между многими компонентами, позволяющей выявить параллельно и асинхронно протекающие процессы.
2.2.1 Методика проектирования функциональной архитектуры ПООС на абстрактном уровне Совокупность компонентов ПООС и связей между ними, отражающая состав, порядок распределения функций и принципы взаимодействия компонентов ПООС при организации вычислительного процесса программноаппаратного комплекса во всех режимах функционирования, называется функциональной архитектурой ПООС. Каждый функциональный компонент реализует определенную функцию по организации процессов планирования, использования и управления ресурсами ПООС. Данное определение имеет общий характер и в целом соответствует работе [118]. В отличие от этой работы функциональная архитектура ПООС в настоящей диссертационной работе наиболее полно задается абстрактной моделью ЭМАС, которая определяет состав, порядок и принципы взаимодействия всех частей ПООС.
Методика состоит из следующих основных этапов:
1. Анализ предметной области, определенной для функционирования ПООС.
2. Определение функционально-целевого назначения ПООС.
3. Детализация функций компонентов.
4. Выявление причинно-следственных отношений между компонентами.
5. Разработка главной функциональной модели ПООС на абстрактном уровне.
5.1. Определение сортов (типов) объектов.
5.2. Определение основных множеств.
5.3. Определение предикатно-функциональной сигнатуры и ее арностей.
5.4. Определение реальных отношений и функций между компонентами ПООС с учетом функционально-целевых и причинно-следственных связей.
6. Выбор системы образующих для алгебры модулей и логических условий.
7. Разработка формализованных процедурных моделей компонентов на основе суперпозиции операций над модулями, начиная от системы образующих – элементарных модулей и элементарных логических условий.
8. Верификация функциональной модели.
архитектуры ПООС на прикладном уровне Совокупность компонентов функциональной архитектуры ПООС совместно с совокупностью информационных компонентов (управляющих таблиц, списков, очередей, стеков, массивов, простых переменных и др.), отражающие состояние программно-аппаратного комплекса ПООС, задающие состав, порядок распределения (развертывания) функций и принципы взаимодействия компонентов ПООС при организации вычислительного процесса программноаппаратного комплекса во всех режимах функционирования, называется виртуализированной системной архитектурой (ВСА) ПООС. Данное определение основано на работе [118], в которой описаны функциональная, информационная и физическая организация операционных систем. Однако, в отличие от указанной работы, состав информационных и алгоритмических компонентов ВСА ПООС в диссертационной работе полностью специфицируется ее формально определенной поведенческой моделью на базе унифицированной абстрактной схемы ЭМАС.
Методика включает следующие основные этапы:
1. Анализ структурных связей между понятиями предметной области.
2. Доопределение функциональных связей между понятиями предметной области.
3. Определение отношений, задающих структурные связи между объектами предметной области.
4. Разработка главной системной модели ПООС.
4.1. Выделение виртуальных компонентов.
4.2. Разработка модели развертывания программных и виртуальных компонентов в аппаратной среде вычислительной сети.
4.3. Преобразование функциональных и процедурных моделей компонентов с учетом наличия виртуальных элементов.
4.4. Разработка и конкретизация асинхронных взаимодействий алгоритмических и программных модулей.
4.5. Программная реализация главной системной модели.
5. Реализация программно-аппаратного комплекса ПООС в среде вычислительной сети.
6. Верификация системной модели.
2.3 Функциональная архитектура ПООС Функциональная архитектура ПООС, как было определено ранее, определяется фиксацией состава ее программных компонентов с определенными функциями, структурными и логическими межкомпонентными связями, а также сценариями ее поведения. Дополнительным уточнением функциональной архитектуры ПООС являются логические правила функционирования, задающие инварианты поведения при выполнении операций.
2.3.1 Структура программно-аппаратного комплекса Аппаратная часть ПООС, спроектированной на основе разработанной методики, содержит (рисунок 5):
– веб-ядро, которое предоставляет интерфейс для работы с ПООС, отвечает за авторизацию и хранение данных пользователей и выполняет рассылку информационных сообщений;
– хранилище контейнеров, внутри которых выполняются запущенные приложения, удаленно управляемые пользователями с помощью клиентов ПООС;
– систему хранения данных (СХД) для бинарных файлов приложений и домашних каталогов пользователей, которые подключаются к контейнеру виртуальной машины при запуске;
– ЭВМ подсистемы распределения заданий, которая занимается распределением заданий пользователей по необходимым вычислительным ресурсам, а также обработкой результатов выполнения заданий;
– ЭВМ системы аккаунтинга, в задачи которой входит обработка запросов на возможность проведения счета, а также хранение данных о доступных пользователям ресурсах и истории запусков;
– внешние подключаемые высокопроизводительные вычислительные ресурсы – кластеры, на которых происходит основное выполнение приложений.
Рисунок 5 – Архитектура программно-аппаратного комплекса Взаимодействие пользователя с системой происходит через веб-браузер по протоколу HTTP/HTTPS. Для этого он заходит на специальный портал ПООС, где ему после авторизации предоставляется список сервисов.
Доступ к запущенным приложениям также происходит через веб-браузер (рисунок 6), но в отличие от портала все взаимодействие выполняется через специальный встроенный в веб-страницу Java-апплет с помощью системы СУДП, за основу которой берется технология VNC [77].
При разработке приложений доступ к репозиторию программного кода выполняется при помощи двух систем: Subversion (SVN) и Git. Существует несколько способов взаимодействия с этими системами и пользователь вправе самостоятельно выбирать наиболее удобный из них:
1. Протоколы SVN и GIT. Они требуют установки клиента на локальный компьютер пользователя и предоставляют удобный, в том числе и графический, интерфейс взаимодействия с репозиторием.
2. Протокол WebDAV (поверх HTTPS), используемый для взаимодействия с программным кодом по аналогии с локальным каталогом на компьютере пользователя и для доступа к коду через веб-браузер.
3. SSH, предоставляющий доступ с помощью командной строки.
4. Локальная разработка через протокол FILE. ПООС имеет поддержку разработки, сборки и тестирования приложений непосредственно на собственных серверах. Для этих целей администратору требуется установить любую интегрированную среду разработки (IDE) и предоставить ее пользователям. В этом случае взаимодействие будет осуществляться через веб-браузер, как и с любым другим приложением ПООС, а доступ к репозиторию будет локальным.
осуществляется с помощью WebDAV, защищенного сетевого протокола высокого уровня для доступа к объектам и коллекциям, работающего поверх HTTP(S).
Через него можно взаимодействовать с удаленной файловой системой так, как если бы она была локальной.
Все внутренние операции ПООС организуются в рамках локальной сети на основе механизма серверных и клиентских сокетов и используют стандартные интерфейсы, предлагаемые операционной системой [78].
высокопроизводительных вычислительных ресурсов выполняется через протокол SSH (OpenSSH) [79]. Для этого требуется, чтобы на каждом подключенном к ПООС ресурсе был заведен служебный аккаунт пользователя, от имени которого будут запускаться задания, и чтобы в соответствующие каталоги были добавлены пары ключей, необходимые для аутентификации.
2.3.1.1 Особенности реализации программной части.
Идентификация пользователей в системе осуществляется с помощью сверки учетных данных, полученных ранее пользователем при регистрации, с данными, введенными им в форму на веб-сайте ПООС.
Для повышения эффективности использования аппаратных и программных ресурсов ПООС, обеспечения безопасности работы и доступности ресурсов каждое запускаемое пользователем приложение работает в выделенном легковесном виртуальном окружении, базирующемся на системе OpenVZ [80], которая является реализацией технологии виртуализации на уровне операционной системы, основанной на ядре Linux. OpenVZ позволяет на одном физическом сервере запускать множество изолированных копий операционной системы, также называемыми «контейнерами». В разработанной концепции контейнер исполняет роль головного узла виртуального кластера.
паравиртуализационных технологий (Xen, QEMU) [81] в роли «гостевых» систем для OpenVZ могут выступать только дистрибутивы семейства Linux, что дает лучшие производительность, масштабируемость, плотность размещения и динамическое управление ресурсами, чем у приведенных выше решений.
При создании контейнера автоматически происходит монтирование бинарных файлов запускаемого приложения и домашнего каталога пользователя, где хранятся специфичные настройки для приложения и куда будут отправлены результаты счета приложения после его завершения.
Для отображения работы содержимого контейнера в браузере пользователя выбрана технология удаленного доступа к приложению (УДП), запущенному на вычислительных ресурсах ПООС, использующая протокол RFB (Remote Frame Buffer). СУДП состоит из трех частей: клиента, сервера и прокси. Сервер – приложение, предоставляющее доступ к экрану контейнера, внутри которого оно запущено. Клиент – приложение, получающее изображение экрана с сервера и взаимодействующее с ним. Прокси же отвечает за установку соединения между клиентом и сервером СУДП и перенаправление запросов в нужный контейнер.
Графические сессии рабочей среды (X11) приложения создаются при его запуске в отдельном контейнере системы OpenVZ, где также работает СУДПсервер. Для создания графической сессии выбирается один из свободных контейнеров и затем запускается приложение, которое посылает браузеру пользователя инструкции о том, как получить соединение с ним [82].
контейнеров, который контролирует все сетевые операции контейнера приложения, упрощая доступ к вычислительным кластерам и облачной инфраструктуре. В его задачи входят:
– создание и запуск контейнера виртуальной машины с выбранными параметрами;
– удаление контейнера после завершения работы приложения;
– разделение доступа к контейнеру между несколькими пользователями ПООС.
2.3.1.2 Внедрение системы аккаунтинга Отличительной особенностью разработанной концепции является наличие системы аккаунтинга ресурсов (СА) [83]. Система состоит из четырех частей:
клиентской, работающей в контейнере виртуальной машины, сервера подсистемы распределения заданий (ПРЗ) и основного сервера СА, запущенных на выделенных ЭВМ, а также множества серверов подсистемы управления заданиями (ПУЗ), которые выполняются на каждом подключенном к ПООС вычислительном ресурсе [84]. Соответствующие новые компоненты выделены на рисунке 5 рамками, а ранее существовавшие модифицированные компоненты обозначены пунктиром.
В задачи системы аккаунтинга ресурсов входят:
1. Контроль над использованием ресурсов ПООС.
2. Распределение заданий пользователей по необходимым вычислительным ресурсам.
3. Осуществление проверки на возможность получения пользователем доступа к ресурсам ПООС.
4. Ограничение доступа в случае, если проверка не пройдена.
5. Обработка и хранение результатов запусков.
6. Поддержка формирования отчетов по осуществленным запускам.
Клиентская часть выполняется внутри виртуального контейнера приложения. Она занимается перехватом и обработкой запросов от приложения к менеджеру распределенных ресурсов (МРР) и последующей передачей запросов серверу системы аккаунтинга.
Сервер подсистемы распределения задний, запущенный на выделенной ЭВМ ПРЗ, выполняет ряд ключевых функций: оперативный выбор вычислительного ресурса для проведения расчетов, пересылку вычислительных заданий и запросов СА необходимому серверу ПУЗ, обработку полученных результатов счета и перемещение их в домашний каталог пользователя.
Сервер системы аккаунтинга запущен на выделенной ЭВМ СА и является центральной частью ПООС. Главной задачей сервера СА является прием вычислительных заданий от различных клиентов СА и проверка возможности их запуска на основе количества доступных средств на счету соответствующих проектов. Сервер также обрабатывает информационные запросы о статусе выполняемых заданий, осуществляет управление ходом выполнения расчетов, хранит результаты запусков и формирует отчеты о проведенных исследованиях.