Дипломная (вкр): Разработка компонентов системы удаленного доступа и управления распределенными вычислительными ресурсами

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

—   хранение и сопровождение информации (метаданных) о файлах и других объектах пользователей;

—   передача файлов с кодами программ, начальными данными или результатами между пользовательским приложением и хранилищем данных;

—   создание, удаление и управление пользователем своими объектами (файлами, расчетами);

—   хранение информации о доступных вычислительных ресурсах;

—   отслеживание состояния доступных удаленных вычислительных ресурсов;

—   отслеживание состояния расчетных программ на удаленных вычислительных ресурсах;

—   передача файлов между хранилищем и удаленными вычислительными ресурсами;

—   передача команд на удаленные вычислительные ресурсы;

—   определение очередности запуска программ в случае существования конкуренции за вычислительные ресурсы. [21]

Архитектура системы УД и УРВР

Система УД и УРВР построена по трехзвенной архитектуре «клиент - сервер - удаленный агент». В состав серверной части входят: сервер приложений, сервер баз данных и сервер управления кластерами (менеджер вычислительных ресурсов). Общая структура системы приведена на рисунке 1.

Рисунок 1 - Структура системы УД и УРВР

Так как система является частью информационно-вычислительного портала КемГУ, то пользователь взаимодействует с системой посредством web-браузера. В качестве хранилища данных выступает СУБД Oracle, а связующим звеном браузера пользователя и хранилища является web-сервер приложений Tomcat, который осуществляет динамическую генерацию страниц с использованием пакета KemsuWeb. Такая архитектура позволяет работать с системой из любой точки, имеющей выход в Интернет, а также обеспечивает независимость от платформы и минимальные системные требования к аппаратному обеспечению пользователя. Менеджер вычислительных ресурсов обеспечивает передачу агентам, размещенным на вычислительных кластерах, файлов из хранилища и запросов на генерацию исполняемого кода и выполнение расчетов, а также осуществляет прием результатов расчетов и размещение их в хранилище данных. [21]

Взаимодействие менеджера вычислительных ресурсов с базой данных осуществляется через прикладной интерфейс OCCI (Oracle C++ Call Interface) - низкоуровневый интерфейс, предназначенный для выполнения операций с базой данных Oracle (например, для входа в систему, разбора и исполнения SQL-предложений, получения записей и т.д.). [24]

Структура пользовательских данных

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

Основными объектами, которые обрабатываются системой, являются:

— расчет - совокупность выполняемого кода программы и начальных данных;

—   задание - совокупность расчета и параметров его запуска: выбранный кластер, количество процессоров, время старта.

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

Проект:

— файл исходного кода (1 .. *);

—   make-файл (0 .. 1);

—   параметры:

— архитектура вычислительной системы (1);

—   операционная система (1);

—   параллельная библиотека (1);

—   компилятор (1);

— исполняемый файл (0 .. 1) или файл ошибки компиляции (0 .. 1);

—   серия (1 .. *):

-  подсерия (0 .. *):

— расчет (0 .. *):

-  файл начальных данных (0 .. *);

-       задание (0 .. *):

— файл промежуточного результата (0 .. *);

—   файл ошибки (0 .. 1) или файл результата (0 .. 1);

-  расчет (0 .. *):

-  файл начальных данных (0 .. *);

-       задание (0 .. *):

— файл промежуточного результата (0 .. *);

—   файл ошибки (0 .. 1) или файл результата (0 .. 1).

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

Рисунок 2 - Структура пользовательских данных в хранилище

Состояния задания на запуск разделяются на 4 основные группы:

— Начальные состояния, связанные с ожиданием на сервере (New, Scheduled, Wait, NewBlocked, ScheduledBlocked, WaitBlocked);

—   Состояния, связанные с обработкой на кластере (например, WaitOnCluster, ProcessingOnCluster);

—   Состояния, связанные с созданием результата (например, DoneOnCluster, ResultCreated, DoneWithErrorOnCluster, RunErrorCreated);

—   Терминальные («тупиковые») состояния (DeleteOnServerError, GetResultErrorOnCluster и др.).

Рисунок 3 - Диаграмма состояний проекта

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

Основные этапы жизненного цикла задания на компиляцию аналогичны заданию на запуск.

Диаграммы состояний заданий на запуск и на компиляцию представлены на рисунках 4 и 5 соответственно.

Система УД к ВР

Система УД к ВР является интерфейсом системы УД и УРВР, т.е. клиентской частью данной системы. Система УД к ВР построена по трехзвенной архитектуре «клиент - сервер приложений - сервер баз данных» (рисунок 6) и взаимодействует с системой УРВР на уровне общей базы данных.

Рисунок 6 - Структура системы УД к ВР

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

С помощью клиентского приложения (web-браузера) пользователь просматривает текущее состояние объектов в базе данных и может создавать новые объекты, изменять параметры уже существующих и удалять объекты, вызывая процедуры, хранимые на сервере баз данных.

Рисунок 4 - Диаграмма состояний задания на запуск

Рисунок 5 - Диаграмма состояний задания на компиляцию

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

Принцип работы пакета KemsuWeb

Логика приложения реализуется на сервере приложений и сервере баз данных. В качестве сервера приложений используется Apache Tomcat, предназначенный для реализации технологии Java Servlets и выполняющий функции web-сервера. В качестве системы управления базой данных был использован Oracle 10 DataBase Server. В качестве клиента к системе используется стандартный web-браузер, обмен данными проходит по стандартным сетевым протоколам в среде Intranet/Internet.

Рисунок 7 - Архитектура системы на физическом уровне

Логика приложения на стороне сервера базы данных реализована в виде набора пакетов: для функциональных блоков создаются пакеты для осуществления операций с данными, обеспечивающие манипуляцию необходимыми данными путем вызова хранимых процедур. Для реализации пакетов используется язык PL/SQL. Для реализации web-интерфейса используются технологии J2EE и XML.

На сервере приложений Apache Tomcat использована библиотека KemsuWeb, которая обеспечивает единую среду для создания приложений, основанных на трехуровневой архитектуре в среде Internet за счет адаптеров, которые удовлетворяют различные потребности разработчика: в операциях с Oracle, в защите информации, в управлении ходом приложения. Пакет разработан в ЦНИТ КемГУ. [9]

Рисунок 8 - Архитектура реализации

Разработчик создает XSLT-шаблоны оформления интерфейса пользователя и XML-файлы, в которых описывается вызов хранимых процедур и обработка полученных результатов с использованием специальных "команд", которые описываются элементами из пространства имен "res=<#"868430.files/image009.jpg">

Рисунок 9 - Архитектура web-интерфейса

ER-модель базы данных системы УД и УРВР

ER-модель базы данных системы УД и УРВР содержит 37 сущностей с общим количеством атрибутов свыше 200. Полная ER-модель базы данных приведена на рисунке 10. Далее приведено краткое описание основных сущностей ER-модели:

T_PROJECT - содержит информацию о пользовательских проектах.

T_SERIES - содержит информацию о сериях расчетов.

T_CALCULATION - содержит информацию о расчетах.

T_TASK - содержит информацию о заданиях на запуск.

T_COMPILATION_TASK - содержит информацию о заданиях на компиляцию.

T_CALCULATOR - содержит информацию о вычислительных ресурсах (кластерах).

T_RESULT - содержит информацию о файлах результатов заданий.

T_RUN_ERROR - содержит информацию о файлах ошибок.

T_SOURCE_CODE - содержит информацию о файлах исходных кодов программ.

T_INPUT_DATA - содержит информацию о файлах начальных данных расчетов.

T_USER - содержит информацию о пользователях системы.

T_USERS_GROUP - содержит информацию о группах пользователей.

T_ACCESS - содержит информацию о правах доступа пользователей к вычислительным ресурсам (кластерам).

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

T_LOG - содержит информацию о всех событиях в системе.

T_FILE - содержит пользовательские файлы всех типов и информацию о них.

Целью данной работы является разработка и реализация компонентов «Интерфейс администратора», «Интерфейс клиента» и «Виртуальная лаборатория» системы УД и УРВР. В соответствии с целью работы были поставлены следующие задачи:

-  изучить пакет KemsuWeb и освоить необходимые программные средства и языки (HTML, XML, PL/SQL, JavaScript);

-       изучить архитектуру и принципы функционирования системы УД и УРВР; определить требования к разрабатываемым компонентам;

-       построить модели разрабатываемых компонентов системы;

-       реализовать компоненты.

Рисунок 10 - ER-модель БД системы УД и УРВР

В главе 1 описаны основные этапы процесса разработки компонента «Интерфейс администратора» системы УД и УРВР, приведены модели, поясняющие механизм работы компонента, а также даны описания web-форм и пакета p_admin, содержащего процедуры и функции, необходимые для реализации компонента.

В главе 2 описаны основные этапы процесса разработки компонента «Интерфейс клиента» системы УД и УРВР, приведены модели, поясняющие механизм работы компонента, а также даны описания web-форм и пакета p_client, содержащего процедуры и функции, необходимые для реализации компонента.

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


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


1.1 Определение функций администратора


Любая сложная информационная система нуждается в администрировании. Для осуществления функций по администрированию системы УД и УРВР понадобилась реализация отдельного компонента «Интерфейс администратора». Администратор отвечает за работоспособность системы в целом. Для этого он наделен соответствующими возможностями по управлению объектами БД системы УД и УРВР.

Были определены следующие функции администратора системы УД и УРВР:

-  Управление кластерами:

-  Просмотреть список вычислительных ресурсов (кластеров), подключенных к системе;

-       Добавить кластер в систему (добавить информацию о новом кластере);

-       Удалить кластер из системы;

-       Заблокировать кластер (в случае временной неисправности);

-       Изменить атрибуты кластера;

-       Перезагрузить кластер;

-  Управление очередью заданий:

-  Просмотреть очередь заданий;

-       Заблокировать задание;

-       Удалить задание (с отправкой клиенту промежуточных результатов или без);

-       Изменить приоритет задания;

-  Просмотр и анализ статистики использования системы:

-  Просмотреть журнал событий;

-       Просмотреть общую статистику использования системы;

-       Просмотреть статистику по определенному кластеру;

-       Просмотреть статистику по определенному пользователю;

-  Управление пользователями и группами:

-  Просмотреть списки пользователей и групп;

-       Назначить (изменить) права на доступ пользователей к кластерам;

-       Назначить (изменить) права на доступ групп пользователей к кластерам;

-       Назначить (изменить) атрибуты пользователей, (в том числе, принадлежность группам и приоритеты).

1.2 Моделирование администраторской части системы УД к ВР


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

— Диаграмма вариантов использования;

—   Диаграмма связей между web-формами.

Диаграмма вариантов использования для администратора системы УД и УРВР представлена на рисунке 11.

Управлять кластерами. Администратор должен иметь возможность просматривать список кластеров в системе, добавлять в систему новые кластеры, блокировать/разблокировать (при неисправностях или профилактических работах на кластере), перезагружать и удалять кластеры, а также изменять их атрибуты.

Источник: https://www.bibliofond.ru/detail.aspx?id=868430