Авторефераты по всем темам  >>  Авторефераты по техническим специальностям  

На правах рукописи

Князьков Константин Валерьевич

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

Специальность: 05.13.11 Ч Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

АВТОРЕФЕРАТ

диссертации на соискание ученой степени

кандидата технических наук

Санкт-Петербург Ч 2012

Работа выполнена в Санкт-Петербургском национальном исследовательском университете информационных технологий, механики и оптики (НИУ ИТМО) на кафедре информационных систем

Научный руководитель:        доктор технических наук,

       Бухановский Александр Валерьевич

Официальные оппоненты:        Ильин Вячеслав Анатольевич, доктор физико-математических наук, профессор
Научно-исследовательский институт ядерной физики имени Д.В. Скобельцына, заведующий лабораторией аналитических вычислений в физике высоких энергий отдела теоретической физики высоких энергий

Болдырев Юрий Яковлевич, доктор технических наук, профессор
Санкт-Петербургский государственный политехнический университет, зав. каф. Математическое и программное обеспечение высокопроизводительных вычислений физико-механического факультета

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

Защита состоится 6 сентября 2012аг. в 17:00 на заседании диссертационного совета Д212.227.06 в Санкт-Петербургском национальном исследовательском университете информационных технологий, механики и оптики по адресу: 197101, г. Санкт-Петербург, Кронверкский пр., д. 49, конференц-зал, ЦИО.

С диссертацией можно ознакомиться в библиотеке НИУ ИТМО.

Автореферат разослан 6 августа 2012 г.

Ученый секретарь диссертационного совета,

доктор технических наук, профессор                Лисицына Л.С.

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

Актуальность темы. Современная парадигма лэлектронной науки (eScience) связана с развитием инструментария распределенных вычислений для научных исследований, позволяющего консолидировать вычислительные и программные ресурсы для решения сложных мультидисциплинарных задач в форме так называемых композитных приложений (КП). Наиболее распространенным подходом к представлению КП является формализм потока работ, или workflow (WF), который позволяет в виде ориентированного графа описать связи между отдельными операциями в распределенной среде. Инфраструктурная платформа для распределенных вычислений на базе WF формируется т.н. системами управления, или исполнения, WF (WMS), к которым относятся, например, Taverna, Kepler, Pegasus, Askalon, Triana, Yawl, а также отечественная разработка MathCloud. В России развитие данного направления связано с работами научных групп А.П. Афанасьева, В.П. Иванникова, В.А. Ильина и А.П. Крюкова, Л.Н. Щура, М.Н. Жижина и ряда других исследователей.

Разнообразие технологий проектирования и разработки КП на основе формализма WF определяется многообразием вычислительных, программных и информационных ресурсов самих сред распределенных вычислений, интерфейсов доступа к ним, а также способов их использования, обусловленных спецификой предметных областей. Как следствие, требуется развивать методы унификации описаний основных элементов и самой структуры КП, позволяющие (а) формализовать способ применения различных прикладных программ в составе WF, с использованием их функционала в полном объеме, (б) абстрагироваться от особенностей организации вычислительной инфраструктуры. Такая постановка требует единого способа интерпретации и исполнения КП, это позволяет в рамках одного WF использовать (а) различные вычислительные ресурсы, включая отдельные суперкомпьютеры, Грид-среды, среды облачных вычислений (модели SaaS, AaaS) и (б) разные типы прикладных программ, включая пакетные, сетевые, интерактивные и графические приложения. В совокупности решение этих вопросов позволяет повысить эффективность использования существующих инфраструктур распределенных вычислений и упростить процесс разработки, применения и распространения КП в предметно-ориентированных научных сообществах, что и определяет актуальность данной работы.

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

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

Задачи исследования:

  • обоснование требований к перспективной технологии разработки КП с использованием предметно-ориентированных программных модулей (ПМ) на основе анализа тенденций развития программного инструментария eScience;
  • разработка метода унифицированного описания прикладных ПМ1 в распределенной вычислительной среде на основе предметно-ориентированного языка;
  • разработка метода унифицированного описания структуры КП в форме workflow, консолидирующего прикладные программные модули и обеспечивающего организацию взаимодействия между ними, а также метода интерпретации описания в форму, исполнимую в распределенной среде;
  • разработка технологии создания и исполнения интерактивных КП на основе унифицированного описания структуры и прикладных ПМ в составе WF;
  • программная реализация разработанных методов, моделей и алгоритмов в рамках платформы облачных вычислений для задач eScience;
  • оценка работоспособности и эффективности разработанного решения на основе вычислительных экспериментов в области моделирования: наноразмерных атомно-молекулярных структур; социодинамических процессов; развития нагонных наводнений.

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

Научная новизна заключается в сочетании унифицированного подхода к платформо-независимому описанию программных модулей на языке EasyPackage и описанию КП в форме WF на языке EasyFlow, что позволяет:

  • обеспечить сопряжение неоднородных ПМ в составе одного WF на этапе интерпретации из абстрактного представления в исполнимую форму;
  • обеспечить процесс проектирования, создания и исполнения КП как в пакетном, так и в интерактивном режиме исполнения с возможностью динамического изменения структуры WF.

Практическую ценность работы составляют:

  • языки EasyPackage и EasyFlow, которые обеспечивают унификацию описания программных модулей и композитных приложений и позволяют проектировать и исполнять распределенные приложения в гетерогенной среде, полностью абстрагируя пользователя от ресурсов этой среды;
  • программные компоненты (интерпретации WF и обработки описания вычислительных модулей - база пакетов), входящие в состав МИТП CLAVIRE2, которая позволяет исполнять КП, заданные в форме workflow, в распределенной неоднородной вычислительной среде облачных вычислений.

На защиту выносятся

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

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

Внедрение результатов работы. Результаты работы использованы при выполнении следующих НИОКР: Инструментальная среда для построения композитных приложений для моделирования сложных систем, Интеллектуальные технологии распределенных вычислений для моделирования сложных систем и Инструментальная технологическая среда для создания распределенных интеллектуальных систем управления сложными динамическими объектами в рамках ФЦП Научные и научно-педагогические кадры инновационной России на 2009Ц2013 годы, Создание функционирующего в режиме удаленного доступа интерактивного учебно-методического комплекса для выполнения работ в области моделирования наноразмерных атомно-молекулярных структур, наноматериалов, процессов и устройств на их основе, в распределенной вычислительной среде в рамках ФЦП Развитие инфраструктуры наноиндустрии в Российской Федерации на 2008Ц2011 годы, Создание высокотехнологичного производства комплексных решений в области предметно-ориентированных облачных вычислений для нужд науки, промышленности, бизнеса и социальной сферы в рамках реализации постановления Правительства РФ №218, Распределенные экстренные вычисления для поддержки принятия решений в критических ситуациях в рамках реализации постановления Правительства РФ №220, а также в ряде хоздоговорных проектов.

Апробация работы. Полученные результаты обсуждались на пяти международных и всероссийских научных конференциях, семинарах и совещаниях, включая Infrastructure Meeting - семинар,  посвященный вопросам построения инфраструктурных высокопроизводительных систем в области eScience (2010 г., Амстердам), XIV Всероссийскую объединенную научную конференцию Интернет и современное общество (2011аг., Санкт-Петербург), ХI Всероссийскую конференцию Высокопроизводительные параллельные вычисления на кластерных системах (2011аг., Нижний Новгород), Международную научно-практическую конференцию молодых ученых и специалистов Технологии высокопроизводительных вычислений и компьютерного моделирования (2012аг., Амстердам), XIX Всероссийскую научно-методическую конференцию Телематика'2012.

Публикации. По материалам диссертации опубликовано 7 печатных работ, в том числе 4 Ч в изданиях из перечня ведущих рецензируемых научных журналов и изданий ВАК РФ.

ичный вклад автора в работах, выполненных в соавторстве, заключается в: выполнении аналитического обзора в проблемной области диссертационной работы; обосновании требований к технологии разработки КП; разработке методов унификации на основе описания для программных пакетов и КП; проектировании и реализации части программной платформы для облачных вычислений CLAVIRE, отвечающей за исполнение композитных приложений и встраивание ПМ; проведении вычислительных экспериментов и интерпретации их результатов. Из работ, выполненных в соавторстве, в диссертацию включены результаты, которые соответствуют личному участию автора.

Структура и объем работы. Диссертация состоит из введения, четырех глав, заключения, списка литературы (97 источников) и 3 приложений. Содержит 170 с. текста (из них 163 основного и 7 - приложений), включая 65арис. и 8атабл.

СОДЕРЖАНИЕ РАБОТЫ

Во введении обоснована актуальность проблемы, сформулированы цель и задачи исследования, отмечены научная новизна и практическая значимость результатов, перечислены основные положения, выносимые на защиту.

Первая глава содержит аналитический обзор существующих технологий разработки КП, который охватывает существующие системы исполнения композитных приложений (WMS), использующих в качестве ресурсов распределенные вычислительные среды. На базе анализируемых WMS, а также некоторых других проектов в области eScience детально рассматриваются существующие методы встраивания ПМ, формальные модели композитных приложений, подходы к представлению WF и методы задания КП.

В табл. 1 приведены  основные платформенные характеристики существующих WMS: архитектура, используемые ресурсы, поддерживаемые типы модулей. В табл. 2 рассмотрены особенности используемой модели представления КП в форме WF. Анализ существующих решений показал ряд недостатков:

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

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

Таблица 1 Ц Системы исполнения композитных приложений

Название

Архитектура

Вычислительные ресурсы

Модули

Taverna

University of Manchester, UK

Автономное приложение, координация WF на локальной машине, доступен сервер

окальная машина. сервер, Грид

Web-сервисы (WS), скрипты на R и Beanshell библиотеки Java, вызов команд

Kepler

Сообщество

разработчиков

Автономное приложение, координация WF на локальной машине

окальная машина, кластер, Грид (Globus, EcoGrid)

Java, скрипты на R и Matlab, локальные приложения, web-сервисы

Triana

Cardiff University, UK

Автономное приложение, координация WF на локальной машине

окальная машина, Грид, пиринговые сети

Java

Nimrod

Monash University, Australia

Автономное прил., координация WF на локальной машине, портал

Грид (Condor, Legion) и облака (vCloud, Azure, EC2), кластеры (PBS)

Встроенные в Грид приложения

LoniPipeline

University of California, USA

Тонкий клиент, координация выполнения WF на сервере

Сервер, Грид (Oracle Grid Engine), DRMAA

Пакетные приложения

WS-VLAM

University of Amsterdam, Netherlands

Тонкий клиент, координация выполнения WF на сервере

Грид (GT4)

Приложения, использующие vlport, пакетные приложения

Pegasus

University of Southern California, USA

Автономное приложение, портал (SaaS), координация выполнения WF на сервере

Грид (Open Science Grid, TeraGrid), облако Amazon EC2, кластер

Пакетные приложения

Galaxy

Pennsylvania State University, USA

SaaS - портал для сообщества, серверная часть централизована

Сервер, кластеры, Грид

Скрипты, пакетные приложения, возможность публикации модулей

E-science Central

Newcastle University, UK

SaaS, социальная сеть

Облака (Azure)

Программные модули на Java, .NET, R, Octave

Askalon

University of Innsbruck, Austria

Автономное приложение, координация WF на сервере

Грид (Globus)

Пакетные приложения оборачиваются в сервисы

MathCloud

Центр Грид-технологий и распределенных вычислений ИСА РАН, РФ

SaaS

Грид (EGEE через библиотеку jLite)

Пакетные приложения, REST web-сервисы, скрипты на Python, JavaScript

Gridmd

ОИВТ РАН, РФ

Программная библиотека

Кластеры (PBS), Грид (Globus, UNICORE)

Часть кода на C++

Yawl

Queensland University of Technology, Australia

Серверная часть, включающая портал и систему исполнения. Клиентское приложение - редактор

Сервер

Web-сервисамы, запуски внешних приложений, взаимодействие с людьми

Cublic

ООО НИ - СВТ, РФ

SaaS

Сервер, поддержка GPU, кластер, Грид

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

CAEBeans

ЮУрГУ, РФ

SaaS - только для запуска готовых WF

Грид (GPE)

Обычные приложения

DAGMan

University of Wisconsin, USA

Центральный менеджер работает на отдельном сервере

Condor

Приложения в Condor

Таблица 2 Ц Особенности реализации модели WF

Название

Модель WF

Представление WF

Возможности WF

Интерактивные WF

Taverna

DAG

Графическое, текстовое  - SCUFL (XML), SCUFL2 (OWL), Клиентские библиотеки Ruby и Java

Условия, циклы, итерация, вложенные WF, возможность публикации в виде WS

Нет

Kepler

DAG

Графическое, внутреннее  - MoML (XML), KAR (TAR-архив)

Условия, циклы, вложенные WF, механизм токенов, язык для задания выражений, порты и параметры

Обмен данными в рамках локальной машины

Triana

DCG

Графическое, внутреннее  - XML

Условия, циклы, вложенные WF, простой язык для задания выражений, возможность публикации в виде WS

Нет

Nimrod

Цепочка задач

Plan file

Варьирование параметров, оптимизация параметров, обработка ошибок

Поддерживается привлечение пользователя в Nimrod/OI

LoniPipeline

Ч

Графическое, внутреннее - XML

Упрощенный язык для выражений

Нет


WS-VLAM

DAG

Графическое, внутреннее  - XML

Вложенные WF, параметры и порты, управление WF публикация WF

Интерактивные узлы, поддержка потоковой передачи между узлами


Pegasus

DAG

Графическое, DAX (XML), клиентские биб. Java, Perl, Python, интел. система Wings

Ч

Нет


Galaxy

Ч

Ч

Ч

Нет


E-science Central

ннЧ

Графическое

Ч

Режим потоковой передачи для больших объемов данных


Askalon

UML

Графическое (UML) Текстовое - AGWL(XML)

Условия, циклы, распараллеливания, связь по данным

Нет


MathCloud

Ч

Графическое

Условия, ветвления

Нет


Gridmd

Ч

C++

Варьирование параметров

Нет


Yawl

Расширен-ная модель сетей Петри

YAWL (XML), формальное представление

Условие, вложенные WF, базовый набор управляющих конструкций

Нет


Cublic

Ч

Графическое

Блоки, связи и параметры-настройки, блоки синхронизации, переключения, повторитель

Нет


CAEBeans

Ч

Задается системным программистом

Ч

Нет


DAGMan

DAG

Текстовое представление

Блоки, связи, обработка ошибок

Нет

Примечание: прочерк означает отсутствие информации.


CLAVIRE представляет собой программную платформу для построения предметно-ориентированных программно-аппаратных комплексов, обеспечивающих через сеть Интернет многопользовательский удаленный доступ к функциональности по исполнению пользовательских композитных приложений на неоднородных ресурсах распределенной облачной вычислительной среды. Разрабатываемая на основе принципов сервисно-ориентированной архитектуры платформа позволяет конфигурировать состав функциональных компонентов и их свойства в зависимости от варианта использования. МИТП обеспечивает возможность управления режимом использования параллельных архитектур за счет автоматического распараллеливания и распределения WF, а также предоставления КП как облачных продуктов в среде Интернет. Возможна автоматическая оптимизация эффективности функционирования платформы с использованием знаний из предметной области.

Вышесказанное определяет совокупность требований к технологии разработки КП: методы унификации должны быть абстрагированы от ресурсов распределенной среды; необходима формализация управления запуском и режимами распараллеливания; эффективность исполнения КП обеспечивает автоматическое управление режимами распараллеливания; необходимо обеспечить возможность связывания неоднородных модулей в рамках одного КП; возможность описания и исполнения реактивных и интерактивных распределенных систем; а также возможность планирования исполнения с использованием информации о пакете.

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

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

В рамках распределенной среды ПМ, установленный на конкретном ресурсе, можно формально представить в виде:

       ,        (1)

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

       .        (2)

Для решения задачи унификации реализован механизм абстрактных описаний пакетов (ОП), который используется в качестве основного элемента взаимодействия с пакетом. Описание пакета является уровнем абстракции над реальным ПМ, что позволяет скрывать специфику работы с ним от системных компонентов платформы. Так, на этапе интерпретации КП ОП позволяет рассматривать пакет в рамках платформы как кортеж: , где - множества возможных входных и выходных параметров предметной области, - функция пакета в рамках предметной области (). При этом специфические особенности (версия пакета, архитектура ресурса) определяются автоматически на этапе планирования исполнения. Таким образом, ОП можно считать формализованным знанием эксперта о работе с пакетом (эксперт может описать его запуск, способ передачи в него данных, примерное время вычислений и т.д.).

Поскольку в состав описания пакета должна входить информация как в декларативном виде, так и в императивном (процедуры), в качестве формы представления описания был разработан специальный предметно-ориентированный язык (DSL) - EasyPackage4. Грамматика языка в нотации РБНФ представлена на рис. 1. В основе EasyPackage лежит формализация знаний о пакете, осуществляемая за счет декомпозиции интерфейса работы с пакетом в граф взаимосвязанных параметров. Выделяются входные и выходные параметры (описывают предметный интерфейс пакета и открыты пользователю), а также параметры исполнения (характеризуют запуск пакета, отвечают за распараллеливание, определение механизма запуска, прогноз производительности по заложенным моделям). Помимо графа параметров в ОП входят описания механизмов обработки данных: проверки целостности задания входных параметров (попадания параметра в область допустимых значений), формирования входных данных для пакета из входных параметров, определения успешности запуска пакета, извлечения информации из результатов работы пакета. Предметные параметры пакета в разработанном описании характеризуются названием, описанием, значением по умолчанию, а также типом, который может быть выбран из набора базовых. Помимо общих свойств имеется ряд вспомогательных, с помощью которых эксперт может задавать взаимосвязи между параметрами: свойства обязательности задания значения параметра пользователем и условия активности параметра. Оба свойства могут быть заданы динамически, т.е. процедурой, определяющей их значения путем проверки определенных условий. Также эксперт может определить скрытые параметры, значения которых будут вычислены по указанной им процедуре в зависимости от значений других параметров. Параметры укладываются в ациклический граф, в котором зависимости определяют порядок вычисления свойств и значений. Для описания файлов предусмотрен специальный тип файлового параметра. Файлы являются основным механизмом передачи данных на вход пакетам и получения результатов (помимо файлов параметры передаются через командную строку и переменные окружения). Ключевая особенность обработки файлов состоит в применении к ним процедур извлечения данных (экстракторы) в параметры и формирования их из параметров (сборщики). Таким образом, за счет использования процедур осуществляется переход от низкоуровневой работы с пакетом к высокоуровневому параметрическому представлению.

ОписаниеПакета        ::= {ИмпортБиблиотек} {ОбъявлениеКлассаRuby} ОбщееОписание {Секция}

ИмпортБиблиотек        ::= use ИмяБиблиотеки

ОбщееОписание        ::= {ИмяПоляОписания Строка}

ИмяПоляОписания        ::= name|display|vendor|url|license|description

Секция        ::= ИмяСекции "{" {ОбъявлениеПарам} "}"

ИмяСекции        ::= inputs|outputs|execution

ОбъявлениеПарам        ::= [public] ТипПараметра "{" {Поле} "}"

ТипПараметра        ::= param|file|file_group|models

Поле        ::= ПолеДанных|ТипДанных|Процедура|ОбработкаДанных

ПолеДанных        ::= (name|display|description|depends|type|default|depends|package|

               filename|path|filters|coeffs) ВыражениеRuby

ТипДанных        ::= bool | enum [{Строка [","] }] | int | float | string | list | hash

Процедура        ::= (required|validator|enabled|evaluator|expected|estimator) Лямбда

ямбда        ::= ["{" БлокRubyСПараметрами "}"]

ОбработкаДанных        ::= (assembler|extractor) ВыражениеСозданияОбъектаКлассаRuby

Рис. 1. Упрощенная грамматика языка описания пакетов5

Для практической реализации механизма исполнения пакетов в распределенной среде на основе абстрактного описания на языке EasyPackage разработан программный компонент - база пакетов (БП), включающий программную библиотеку, позволяющую обрабатывать ОП, и репозиторий ОП, который отвечает за хранение и выдачу описаний по сети. При запуске ПМ в распределенной среде за счет использования ОП и его интерпретации БП по алгоритму, представленному на рис. 2, обеспечиваются абстрагирование и возможность планирования исполнения, выбора ресурса, подготовки к запуску, запуска и интерпретации результатов работы ПМ в автоматическом режиме. При интерпретации описания ПМ БП создает внутреннее представление описания в виде графа параметров. Дуги графа определяют порядок обхода параметров и их обработки (установка переданных извне значений, проверка корректности значения, установка значения по умолчанию, определение активности параметра и т.д.). Значения параметров хранятся отдельно в динамическом контексте, который модифицируется на каждом этапе алгоритма и может быть временно сохранен при выполнении длительных операций вне БП (например, исполнения пакета на ресурсе).

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

Рис. 2. Алгоритм работы БП при запуске пакета

С этой целью в БП был реализован интерактивный режим работы, согласно которому при модификации пользователем значений входных параметров высчитываются и возвращаются изменения в свойствах других параметров. При этом графический интерфейс реагирует на полученные изменения одним из следующих действий: скрытие/появление параметра, отображение ошибки при вводе значения, отображение маркера лобязательности. На рис. 3 приведен пример динамически построенного web-интерфейса для запуска пакета генерации случайной комплексной сети по параметрам, описывающим ее структуру, применяемого для задач социодинамики. Для разных типов входных параметров генерируются разные объекты ввода, выходные файлы разного типа отображаются по-разному: для бинарных файлов возможно только скачивание, небольшие текстовые файлы могут быть отображены в виде текста, графические файлы - в виде изображений,  некоторые специальные типы файлов отображаются путем обращения интерфейса к серверному визуализатору. Такое поведение задается в ОП за счет указания типа параметра и его типа отображения. Подход автоматической генерации интерфейса по ОП распространяется и на группу различных программных интерфейсов пакета: web-сервисов (SOAP, REST) или программных библиотек для существующих языков программирования.

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

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

Рис. 3. Пример автоматически сгенерированного web-интерфейса

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

В качестве формальной модели для представления КП выбран направленный ациклический граф (DAG). КП в такой модели - граф, узлами которого являются блоки обработки данных с входными и выходными параметрами, а дуги - зависимости между узлами. Блоком может быть запуск пакета, процедура, блок варьирования параметров, условное ветвление, цикл. Между узлами могут быть заданы зависимости по данным (соединяет выходной параметр одного блока с входным другого, порядок исполнения блоков задается неявно) и по управлению (задает порядок исполнения блоков явно). На основе последних строятся управляющие конструкции: условие, цикл. Запуск ПМ осуществляется, когда удовлетворены все условия, определяемые зависимостями, связывающими блок с другими элементами WF. Таким образом, параллельность операций задается неявно.

В работе используется следующая формальная модель абстрактного WF (AWF)6. Блок композитного приложения - это кортеж вида , где и - множество идентификаторов входных и выходных параметров блока ( - множество всех идентификаторов параметров), - предикат, определяющий попадание переданного набора входных значений в область допустимых для пакета (т.е. проверяющий корректность), - оператор, определяющий тип идентификатора, - функция, переводящая переданные входные значения в выходные:

.        (3)

Для пакета данную функцию выполняет БП при запуске, для процедуры или вложенного КП данная функция - интерпретация подграфа WF.

Композитное приложение - это кортеж , где и - множество идентификаторов входных и выходных параметров WF, - множество узлов WF (здесь - узел WF, см. выше), - множество связей по данным, - множество зависимостей по управлению.

Зависимость по управлению - это двойка вида , - зависимый узел, а - узел, от которого зависит. При этом узлы не совпадают .

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

       .        (4)

Интерпретация - это функция, которая позволяет для конкретного WF преобразовать набор входных значений в набор выходных:        ,        (5)

при этом функция интерпретации работает только для корректно заданных WF.

Формула (5) справедлива для абстрактного описания в терминах предметной области. В рамках платформы распределенных вычислений за счет интерпретации граф абстрактного WF транслируется в исполнимую форму - граф конкретного WF, который постепенно определяется при интерпретации и в то же время исполняется в распределенной среде. При интерпретации одного блока AWF могут порождаться узлы в CWF. Выполнение конструкции запуска пакета порождает один блок в CWF, при этом управляющие конструкции (блок варьирования параметров) могут порождать неограниченное количество блоков. Таким образом, уравнение для интерпретации (5), примененное к модели WF, позволяет на абстрактном уровне задавать WF, который однозначно транслируется в исполнимую форму.

Для задания WF разработан интерпретируемый со слабой динамической типизацией переменных язык, позволяющий связывать предметно-ориентированные модули и обрабатывать данные - EasyFlow  (рис.а4). Высокоуровневая структура КП задается в виде декларативных указаний, а промежуточная обработка данных оформлена в императивном виде. Язык  позволяет задавать блоки (исполнения пакета и варьирования параметров) и зависимости между ними.

Для обработки описания КП на EasyFlow был разработан программный компонент интерпретации WF (КИ). КИ принимает на вход описание КП. После лексического и синтаксического анализа текста описания формируется его внутреннее представление, интерпретируемое с использованием принципов событийно-ориентированного моделирования. Узлы КП представляют собой конечные автоматы с определенными для каждого типа узла наборами состояний, генерируемых событий и поддерживаемых действий. Зависимость между узлами задает условие срабатывания определенного действия над зависимым узлом. Условия формируются по законам булевой алгебры над событиями. Граф КП может динамически изменяться за счет управляющих блоков. Для примера, узел варьирования параметров порождает набор расчетных узлов с заданными параметрами.

Программа ::= {ВходныеДанные} {АтрибутWF} {({Комментарий}|{ОписаниеБлока})}

Комментарий ::= "//" Строка

ВходныеДанные ::= require СписокИдентификаторов ";"

АтрибутWF ::= "{" flow ":" Идентификатор "=" Выражение "}"

ОписаниеБлока ::= {Атрибут} (step|~step) Идентификатор runs КомпозитныйИдентификатор [after СписокИдентификаторов] СписокПараметров [ ПостОбработка ] ";"

КомпозитныйИдентификатор ::= { Идентификатор [Точка] }

СписокИдентификаторов ::= { Идентификатор [ "," ] }

Атрибут ::= "[" Идентификатор "=" Выражение "]"

СписокПараметров ::= "(" {(Параметр|Порт)[,]} ")"

Параметр ::= Идентификатор "=" Выражение

Порт ::= Идентификатор "<-" ПолеОбъекта

ПостОбработка ::= post code ruby КодRuby code end

Выражение ::= Литерал | ПолеОбъекта

ПолеОбъекта ::= КомпозитныйИдентификатор [ "[" Выражение "]" ]

Рис. 4. Упрощенная грамматика языка EasyFlow

Для компонента исполнения WF разработана модульная расширяемая архитектура. Ее нижний логический уровень - платформа распределенных вычислений, на базе которой компонент развернут. Уровень распределения нагрузки необходим для одновременного обслуживания множества клиентов и их WF и определяет, как будут исполняться отдельные WF. Уровень исполнения WF может изменяться для разных механизмов интерпретации. Уровень представления определяет форму, в которой задан WF. В КИ реализован режим предварительной интерпретации КП для определения графа CWF без реального запуска, что позволяет планировать исполнение на уровне всего WF в рамках распределенной среды7.

На рис. 5 приведен пример КП оценки неопределенности прогнозов наводнений в Санкт-Петербурге, разработанного с применением описанной технологии. Приложение позволяет, основываясь на сгенерированных масках коэффициентов для прогностических полей ветра, строить ансамбль прогнозов ветрового волнения и хода уровня воды в контрольных точках Финского залива для оценки неопределенности прогноза в целом и пика наводнения, в частности. После интерпретации абстрактного WF был получен граф СWF, который исполнен на ресурсах распределенной среды. При этом два блока варьирования параметров в AWF сгенерировали по два дополнительных узла в графе CWF.

Таким образом, разработанная технология позволяет связывать ПМ пакетного исполнения в КП на основе абстрактного описания структуры графа WF и исполнять его на распределенных ресурсах.

Четвертая глава посвящена проектированию интерактивных композитных приложений и их исполнению в распределенной вычислительной среде.

Рис. 5. Пример приложения в окне графической среды разработки CLAVIRE,
слева - заданный на EasyFlow AWF, справа - исполненный CWF

Существуют задачи, которые сложно адаптировать к пакетному режиму работы либо адаптация приводит к значительной потере эффективности использования ресурсов. Эти задачи требуют непрерывной обработки данных, постоянного взаимодействия с внешней средой (Интернет, датчики), задачи, в которых критически важно время получения результата и требуется возможность изменения условий эксперимента без перезапуска WF.

Для преодоления ограничений вследствие пакетного исполнения введено расширение модели WF Ч интерактивные WF (или WF длительного исполнения), основанные на нескольких ключевых позициях:

  • поддержка WF, исполняющихся долгое время. Узлы, время жизни которых не ограничено, будем называть узлами длительного исполнения;
  • поддержка механизмов управления извне поведением исполняющихся заданий и их жизненным циклом;
  • поддержка коммуникации между узлами WF во время исполнения. Одновременная работа нескольких (возможно всех) узлов WF, обменивающихся информацией по каналам связи;
  • возможность изменения WF во время исполнения за счет сценария WF, а также за счет внешнего управления. Узлы и дуги такого WF могут быть добавлены или удалены во время исполнения.

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

Блок композитного приложения - это кортеж вида8: , где и - множество идентификаторов входных и выходных портов блока ( - множество всех идентификаторов портов), - оператор, который определяет протокол идентификатора, - множество поддерживаемых протоколов, - множество поддерживаемых блоком команд, - множество генерируемых событий.

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

Коммуникационная зависимость - это двойка вида , - коммуникационный порт зависимого узла, а - порт, от которого зависит.

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

Функция интерпретации (5) осталась такой же, как и в обычной модели WF, т.к. интерактивные узлы и интерактивный WF остаются пакетными.

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

В рамках реализации представленной выше модели синтаксис языков EasyPackage и EasyFlow был расширен за счет новых конструкций. В описание программного модуля на EasyPackage добавлено объявление входных и выходных портов. В EasyFlow добавлена возможность связывания узлов по портам. Компонент интерпретации WF модифицирован за счет добавления логики обработки коммуникационной связи, а также динамического конфигурирования запускаемых интерактивных пакетов за счет передачи им конфигурационного файла, содержащего коммуникационные настройки среды. В качестве среды коммуникации и передачи команд был выбран программный сетевой транспортный уровень ZMQ (Zero message queue), в качестве формата сериализации данных - формат BSON. При этом для встраивания пакета длительного исполнения в полученную среду необходимо подключить к нему специальную программную библиотеку.

Эффективность предложенного решения проверена экспериментально. Для проверки модели и разработанного прототипа системы исполнения был реализован WF, нацеленный на решение задачи моделирования процесса эвакуации людей из зоны затопления. WF состоит из нескольких частей: пакет, осуществляющий имитационное моделирование людей на местности с использованием аппарата мультиагентных систем; пакет визуализации (рис. 7); узел генерации, предназначенный для периодического обновления начальных данных модели о положении людей на карте9. Состав приложения может меняться при запуске путем варьирования количества процессов визуализации. Все части КП поддерживают режим длительного исполнения и могут неограниченное время взаимодействовать в сети. Полученные экспериментальные данные о накладных расходах показали, что выбранный уровень передачи данных ZMQ подходит по временным характеристикам для организации системной части системы исполнения интерактивных КП, т.к. он продемонстрировал низкий уровень задержек передачи данных (latency). В рамках эксперимента получено среднее значение задержки 80 мс для размера задачи  30000 агентов (размер одного сообщения ~ 600 Кбит, 100 Мбит сеть между машинами, параллельно 3 визуализатора). Шаблон взаимодействия один-ко-многим ZMQ позволил динамически оповещать несколько клиентских узлов. Это позволяет строить распределенные приложения обработки данных на базе принципа реактивного программирования.

Таким образом, предложенная модель интерактивных КП и расширенная за счет нее технология позволяют описывать, встраивать, связывать и исполнять интерактивные ПМ в рамках распределенной вычислительной среды.

Рис. 6. Схема интерактивного КП
(серым выделены узлы длительного исполнения)

Рис. 7. Окно визуализации во время
моделирования

Заключение. В ходе выполнения диссертационной работы были получены следующие основные результаты.

  • Предложены метод унифицированного описания прикладных программных модулей в распределенной вычислительной среде на основе предметно-ориентированного языка EasyPackage и реализующая его программная технология проблемно-ориентированных интерфейсов.
  • Предложены метод унифицированного описания структуры композитных приложений в форме WF на основе предметно-ориентированного языка EasyPackage и реализующая его программная технология интерпретации КП в исполнимую форму.
  • Разработана технология проектирования, разработки и исполнения интерактивных композитных приложений в распределенной среде на основе унифицированного описания структуры WF и его программных модулей на языках EasyFlow и EasyPackage.
  • Продемонстрирована работоспособность и эффективность предложенных решений на основе реализации прикладных задач моделирования динамики сложных систем с использованием МИТП CLAVIRE.

Публикации по теме диссертационной работы

  1. Князьков К. В. Особенности работы с потоками задач длительного исполнения в рамках концепции iPSE // Изв. вузов. Приборостроение. 2011. № 10. С. 97Ц99 (по перечню ВАК).
  2. Бухановский А. В., Князьков К. В. и др. Результаты реализации проекта ДМобильность молодых ученых" в 2010 г.: развитие функциональных элементов технологии iPSE и расширение состава прикладных сервисов  // Изв. вузов. Приборостроение. 2011. №а10. С. 80Ц86 (по перечню ВАК).
  3. Князьков К. В., Ларченко А. В. Предметно-ориентированные технологии разработки приложений в распределенных средах  // Изв. вузов. Приборостроение. 2011. № 10. С. 36Ц43 (по перечню ВАК).
  4. Марьин С.В., Князьков К.В. и др. Интеллектуальные технологии распределенных вычислений для моделирования сложных систем // Науч.-техн. вестник СПбГУ ИТМО. 2010. Вып. 70. С. 123Ц124 (по перечню ВАК).
  5. Карымов И. Л., Князьков К. В., Крючкова Е. Н.  Разработка технологии и инструментария для создания распределенных систем на основе унифицированной структуры каркасов систем и приложений // Ползуновский альманах.  2009. Т. 2, № 3.  С. 154158.
  6. Князьков К.В., Ковальчук С.В., Ларченко А.В.а Автоматизация построения проблемно-ориентированных интерфейсов для прикладных сервисов в распределенных вычислительных средах// Интернет: инновационные технологии и инженерные разработки. Всеросс. конф. молодых ученых. Тез. докл. СПб, 2011.  С. 17Ц18.
  7. Князьков К.В., Ларченко А.В. Композитные приложения в распределенных предметно-ориентированных средах  // Высокопроизводительные параллельные вычисления на кластерных системах. Матер. XI Всеросс. конф. Нижний Новгород: Изд-во ННГУ, 2011.  С. 147Ц152.

1 Программный модуль - это прикладная программа, предоставляющая интерфейс для вызова и исполнения определенной предметной функциональности. Далее понятия программный модуль и пакет являются эквивалентными.

2 CLoud Applications VIRtual Environment - многопрофильная инструментально-технологическая платформа (МИТП) для облачных вычислений, разрабатываемая в рамках НИОКР Создание высокотехнологичного производства комплексных решений в области предметно-ориентированных облачных вычислений для нужд науки, промышленности, бизнеса и социальной сферы в рамках реализации постановления Правительства РФ № 218.

3 Концепция iPSE (Intelligent Problem Solving Environment) определяет принципы построения инструментальных технологических платформ для разработки КП в форме интеллектуальной оболочки управления параллельными вычислительными процессами в распределенной иерархической среде, включающей вычислительные системы разной архитектуры. Подход iPSE обеспечивает эффективное исполнение КП, т.к. использует для управления вычислениями симбиотические знания об особенностях предметной области и специфике вычислительного процесса.

4 DSL разработан на базе интерпретируемого языка программирования Ruby и позволяет за счет новых

конструкций задавать ОП, а также описывать процедуры в виде императивного кода.

5 При задании грамматики используются следующие соглашения: ::= Ч отделяет название лексемы от ее описания; {A} Ч нуль или более элементов A; [A] Ч элемент А может входить или не входить; (A B) Ч группа элементов; A|B Ч либо А, либо B.

6 Обычно выделяют три этапа проектирования WF: мета-workflow (MWF), abstract workflow (AWF) и concrete workflow (CWF). Согласно такому разделению, рассматриваемое в рамках данной работы описание композитного приложения задает AWF, а процесс исполнения WF является переходом от AWF к CWF.

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

8 Модель блока интерактивного WF расширяет модель блока пакетного исполнения, поэтому рассматриваются только отличительные особенности.

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

Авторефераты по всем темам  >>  Авторефераты по техническим специальностям