Основные элементы архитектуры компонента «Клиент» для системы распределенных расчетов | Вестник Томского государственного университета. Управление, вычислительная техника и информатика. 2011. № 2(15).

Основные элементы архитектуры компонента «Клиент» для системы распределенных расчетов

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

Elements of the architecture of «Client» component for distributed computing system.pdf Рост вычислительной мощности современных компьютеров - не только не-прерывный, но и постоянно ускоряющийся процесс. Растущие возможности су-перкомпьютеров каждый год позволяют решать все более сложные задачи. Нопомимо промышленных суперкомпьютеров не менее быстрыми темпами развива-ется сектор ПК и компьютерных сетей общего назначения. И существует целыйпласт задач, также нуждающихся в огромных вычислительных мощностях, нопрактически решаемых при помощи задействования свободного времени обыч-ных ПК.В [1] была представлена компонентная модель объектно-ориентированнойсистемы имитационного моделирования. Ключевыми компонентами системы яв-ляются компоненты «Сервер» и «Клиент». Компонент «Сервер» отвечает за коор-динацию работы компонентов «Клиент», получение заданий от пользователейсистемы, разделение заданий на подзадания для конкретных «Клиентов» и итого-вую обработку результатов всех подзаданий для получения конечного результата,необходимого пользователю.1. Компонент «Сервер»Для достижения высокой степени повторной используемости компонентов сис-темы, а точнее, для реализации возможности использовать однажды развернутуюсистему для выполнения любых расчетов, реализован механизм расширения вычис-лительной функциональности системы при помощи подключаемых модулей [2].В состав компонента «Сервер» входят следующие компоненты: Task WCF service - Windows Communication Foundation (WCF) web-службасервера для получения заданий и выдачи результата пользовательским приложе-ниям; GRID-worker WCF service - WCF web-служба для подключения компонентов«Клиент»; GRID-server Logic - «ядро» компонента, в котором описаны классы предмет-ной области системы и сценарии манипуляции ими; Dividers - набор алгоритмов разделения заданий на подзадания. Предусмат-ривает добавление новых алгоритмов; Storage - поставщик хранилища для хранения заданий, подзаданий, резуль-татов и учетной информации о существующих «Клиентах». Потенциально воз-можно создание поставщиков хранилища для любых систем хранения информа-ции - баз данных, бинарных или XML-файлов, облачных хранилищ и т.д.; Modules - каркас модульного расширения системы и набор самих модулей.Рис. 1. Структура компонента «Сервер»Важно отметить, что компонент «Сервер» в данном случае является пассив-ным. Он предоставляет два интерфейса - для клиентов системы и для компонен-тов «Клиент», при этом сам не производит никаких обращений к другим компо-нентам системы. Такой подход позволяет сделать сервер максимально доступнымдля большого количества компьютеров, находящихся в разных условиях сетевогодоступа к физическому серверу.2. Элементы интерфейса веб-службысервера распределенных расчетовВ свою очередь за сам процесс выполнения расчетов и отправку результатовна сервер отвечает компонент «Клиент».Рассмотрим интерфейс веб-службы [3] сервера распределенных расчетов, с ко-торым придется работать данному клиенту. Очевидно, что набор сервисов, пре-доставляемых службой, напрямую зависит от принципов взаимодействия с ее по-мощью клиента и сервера. Так как принципиально сервер расчетов является пас-сивным хранилищем заданий и результатов, основными действиями клиента поотношению к нему будут запрос и получение доступных заданий, а также отправ-ка результатов их выполнения. Однако набор необходимых действий этим не ог-раничивается. Прежде всего, каждый новый клиент должен быть зарегистрированв системе. Сервер расчетов хранит коллекцию данных обо всех зарегистрирован-ных клиентах, их производительности и скорости сетевого соединения, ведет ста-тистику их работы и на основе этих данных составляет наиболее оптимальные длякаждого клиента списки заданий. Из этого также следует, что каждый клиентдолжен как минимум однажды провести тест производительности компьютера, накотором он установлен и скорость сетевого соединения с сервером, после чего пе-редать эти данные серверу. В дальнейшем при необходимости возможно повтор-ное проведение таких тестов и обновление сведений на сервере. Таким образом,основными методами службы сервера являются: RegisterClient() - регистрация клиента; SendRatings() - отправка данных о производительности; GetGridTasks() - получение заданий; SendGridResults() - отправка результатов.Рис 2. Структура компонента «Клиент»Кроме этого, служба предоставляет еще несколько методов вспомогательногоназначения для проверки, нуждаются ли какие-то результаты в повторной отправ-ке, и для получения журнала выполненных клиентом заданий и «списка ожида-ния» сервера. Эти методы существуют для обеспечения отказоустойчивости сис-темы в непредвиденных случаях.Рассмотрим внутреннее устройство компонента «Клиент», представленного нарис. 2. Подобно компоненту «Сервер» задания и результаты их выполнения хра-нятся в виде экземпляров классов GridTask и GridResult соответственно. ПодобноGridTaskRepository на сервере, здесь интерфейсом внешнего взаимодействия сданными коллекциями служит экземпляр класса ClientGridTaskRepository, немно-го отличающийся от первого набором предоставляемых функций.3. Организация работы компонента «Клиент»Для координации работы всего компонента предназначен класс Controller. Эк-земпляр класса непосредственно совершает вызовы методов веб-службы сервера,диспетчеризирует получение новых заданий и отправку результатов, инициируетвыполнение заданий и запуск тестов.В организации сеансов связи с сервером важную роль играет то, что к работесистемы планируется привлечь так называемый «volunteer computing» - предос-тавление сторонними пользователями свободного времени личных ПК для нуждраспределенных расчетов. В этом случае каждый пользователь, и только он, дол-жен иметь контроль над временем и условиями как совершения самих расчетов,так и передачи данных по сети. Для этой цели служит класс Scheduler (рис. 3),хранящий в виде коллекции объектов :Schedule заданные пользователем времен-ные расписания работы или другие условия ее автоматического запуска/остановки(например, определенное время простоя ЦП). Объект Controller, в свою очередь, сзаданным промежутком времени выполняет проверку, существует ли условие, со-гласно которому, в данный момент нужно совершить то или иное действие.Рис 3. Реализация расписания работы компонентаПредставленный в [1] механизм модульного расширения системы на сторонеклиента реализуется следующим образом. Объекты GridResult, Calculator, а такжеTaskContent, инкапсулированные в GridTask, не являются прямыми экземплярамиэтих абстрактных классов, вместо этого объекты инстанцируют конкретные клас-сы-потомки, описанные в подключаемом модуле. Так, TaskContent имеет структу-ру и набор свойств, характерных для конкретного класса задач, GridResult пред-ставляет собой объект для хранения результатов, специфичных для такой задачи,а Calculator является непосредственным исполнителем необходимых для получе-ния результата расчетов.ЗаключениеВ статье разработана архитектура клиентского компонента системы распреде-ленных расчетов, отвечающая всем требованиям, характерным для такого родазадач. Предоставляемая пользователю возможность лично контролировать про-цесс использования времени компьютера призвана привлечь к работе системыбольшое количество клиентов. Применение для связи компонентов системы тех-нологии Microsoft WCF [3] облегчает соблюдение требований к конфигурации се-ти на стороне клиента, что значительно увеличивает количество ПК, потенциаль-но доступных для использования.

Ключевые слова

object-oriented designing, imitating modeling, WCF, GRID, distributed computing, объектно-ориентированное проектирование, WCF, имитационное моделирование, GRID, распределенные вычисления

Авторы

ФИООрганизацияДополнительноE-mail
Войтиков Константин ЮрьевичФилиал Кемеровского государственного университета в г. Анжеро-Судженскекандидат технических наук, доцент кафедры информатикиkost_v@ngs.ru
Тумаев Павел НиколаевичФилиал Кемеровского государственного университета в г. Анжеро-Судженскепрограммист отдела автоматизации и разработки программного обеспеченияptumaev@yandex.ru
Всего: 2

Ссылки

Резник С., Крейн Р., Боуэн К. Основы Windows Communication Foundation для .NET Framework 3.5: пер с англ. М.: ДМК Пресс, 2008. 480 с.
Войтиков К.Ю., Тумаев П.Н. Построение архитектуры сервера распределенных вычислений // Научное творчество молодёжи: материалы XIV Всероссийской научно-практической конференции (15 - 16 апреля 2010 г.). Томск: Изд-во Том. ун-та, 2010. Ч. 1. С. 115−118
Войтиков К.Ю., Моисеев А.Н., Тумаев П.Н. Компонентная модель распределенной объектно-ориентированной системы имитационного моделирования // Вестник Томского государственного университета. Управление, вычислительная техника и информатика. 2010. № 1(10). С. 78-83.
 Основные элементы архитектуры компонента «Клиент» для системы распределенных расчетов | Вестник Томского государственного университета. Управление, вычислительная техника и информатика. 2011. № 2(15).

Основные элементы архитектуры компонента «Клиент» для системы распределенных расчетов | Вестник Томского государственного университета. Управление, вычислительная техника и информатика. 2011. № 2(15).

Полнотекстовая версия