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

кандидата технических наук
Князьков, Константин Валерьевич
город
Санкт-Петербург
год
2012
специальность ВАК РФ
05.13.11
Диссертация по информатике, вычислительной технике и управлению на тему «Технология разработки композитных приложений с использованием предметно-ориентированных программных модулей»

Автореферат диссертации по теме "Технология разработки композитных приложений с использованием предметно-ориентированных программных модулей"

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

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

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

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

АВТОРЕФЕРАТ диссертации на соискание ученой степени кандидата технических наук

005055602

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

005055602

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

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

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

Официальные оппоненты: Ильин Вячеслав Анатольевич, доктор физико-

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

Болдырев Юрий Яковлевич, доктор технических наук, профессор

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

Ведущая организация: Федеральное государственное бюджетное

учреждение науки Институт прикладной математики им. М.В. Келдыша Российской академии наук

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

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

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

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

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

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

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

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

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

Задачи исследования: • обоснование требований к перспективной технологии разработки КП с использованием предметно-ориентированных программных модулей (ПМ) на основе анализа тенденций развития программного инструментария eScience;

• разработка метода унифицированного описания прикладных ПМ1 в распределенной вычислительной среде на основе предметно-ориентированного языка;

• разработка метода унифицированного описания структуры КП в форме workflow, консолидирующего прикладные программные модули и обеспечивающего организацию взаимодействия между ними, а также метода интерпретации описания в форму, исполнимую в распределенной среде;

• разработка технологии создания и исполнения интерактивных КП на основе унифицированного описания структуры и прикладных ПМ в составе WF;

• программная реализация разработанных методов, моделей и алгоритмов в рамках платформы облачных вычислений для задач eScience;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

• формы задания не позволяют унифицировать параметры программных модулей для их ассоциации с понятиями предметной области;

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

На основании проведенного исследования в качестве основы для разрабатываемой технологии были выбраны концепция ¡РЯЕ3 и программная платформа для облачных вычислений СЬАУЖЕ, реализующая данную концепцию.

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

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

Название Архитектура Вычислительные ресурсы Модули

Taverna University of Manchester, UK Автономное приложение, координация на локальной машине, доступен сервер Локальная машина, сервер, Грид Web-сервисы (WS), скрипты на R и Beanshell, библиотеки Java, вызов команд

Kepler Сообщество разработчиков Автономное приложение, координация \\Т на локальной машине Локальная машина, кластер, Грид (Globus, EcoGrid) Java, скрипты на R и Matlab, локальные приложения, web-сервисы

Triana Cardiff University, UK Автономное приложение, координация на локальной машине Локальная машина, Грид, пиринговые сети Java

Nimrod Monash University, Australia Автономное прил., координация на локальной машине, портал Грид (Condor, Legion) и облака (vCloud, Azure, ЕС2), кластеры (PBS) Встроенные в Грид приложения

LoniPipeline University of California, USA Тонкий клиент, координация выполнения на сервере Сервер, Грид (Oracle Grid Engine), DRMAA Пакетные приложения

WS-VLAM University of Amsterdam, Netherlands Тонкий клиент, координация выполнения на сервере Грид (GT4) Приложения, использующие библиотеку vlport, пакетные приложения

Pegasus University of Southern California, USA Автономное приложение, портал (ЗааБ), координация выполнения на сервере Грид (Open Science Grid, TeraGrid), облако Amazon EC2, кластер Пакетные приложения

Galaxy Pennsylvania State University, USA 8аа8 - портал для сообщества, серверная часть централизована Сервер, кластеры, Грид Скрипты, пакетные приложения, возможность публикации модулей

E-science Central Newcastle University, UK ЗааЭ, социальная сеть Облака (Azure) Программные модули на Java, .NET, R, Octave

Askalon University of Innsbruck, Austria Автономное приложение, координация \УР на сервере Грид (Globus) Пакетные приложения оборачиваются в сервисы

MathCloud Центр Грчд-технологий и распределенных вычислений ИСА PAJI, РФ ЭааБ Грид (EGEE через библиотеку jLite) Пакетные приложения, REST web-сервисы, скрипты на Python, JavaScript

Gridmd ОИВТ РАН, РФ Программная библиотека Кластеры (PBS), Грид (Globus, UNICORE) Часть кода на С++

Yawl Queensland University of Technology, Australia Серверная часть, включающая портал и систему исполнения. Клиентское приложение -редактор Сервер Web-сервисамы, запуски внешних приложений, взаимодействие с людьми

Cublic ООО «ИИЦСВТ», РФ ЭааЭ Сервер, поддержка GPU, кластер, Грид Сложный блок может быть создан из простых, нет поддержки встраивания модулей

CAEBeans ЮУрГУ, РФ 8аа8 - только для запуска готовых WF Грид (GPE) Пакетные приложения

DAGMan University of Wisconsin, USA Центральный менеджер работает на отдельном сервере Condor Приложения в Condor

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

Название Модель WF Представление WF Возможности WF Интерактивные \\Т

Taverna Направленный ациклический граф (DAG) Графическое, текстовое - SCUFL (XML), SCUFL2 (OWL), клиентские библиотеки Ruby и Java Условия, циклы, итерация, вложенные WF, возможность публикации в виде WS Нет

Kepler DAG Графическое, внутреннее - MoML (XML) Условия, циклы, вложенные WF, механизм токенов, язык для задания выражений, порты и параметры Обмен данными в рамках локальной машины

Triana DCG Графическое, внутреннее -XML Условия, циклы, вложенные WF, простой язык для задания выражений, возможность публикации в виде WS Нет

Nimrod Цепочка задач Plan file Варьирование параметров, оптимизация параметров, обработка ошибок П оддерживается привлечение пользователя в №тгос1Ю1

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) Условия, циклы, распараллеливания, связь по данным Нет

MathCIoud — Графическое Условия, ветвления Нет

Gridmd — С++ Варьирование параметров Нет

Yawl Расширен-ная модель сетей Петри YAWL (XML), формальное представление Условие, вложенные WF, базовый набор управляющих конструкций Нет

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

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

DAGMan DAG Текстовое представление Блоки,связи, обработка ошибок Нет

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

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

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

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

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

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

{Sin,Sout,Sconf,Sinf,V,R,E), (1)

где Sin - множество входных данных, относящихся к предметной области, Sout -множество выходных данных, Sconf - поддерживаемые пакетом конфигурации запуска, определяющие входные данные, не относящиеся к предметной области, Sinf - множество служебных выходных данных, не относящихся к предметной области (например, успешность работы модуля), V 6 V* — конкретная установлен-

ная версия ПМ, R G R* - ресурс, на котором установлен пакет, Е - функция исполнения пакета на ресурсе вида:

Е: Sin X Sconf X R* х V* -> Sout X Sinf. (2)

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

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

4 DSL разработан на базе интерпретируемого языка программирования Ruby и позволяет за счет новых конструкций задавать ОП, а также описывать процедуры в виде императивного кода.

и

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

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

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

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

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

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

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

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

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

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

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

filename I path I filters I coeff s) BbipaxeHneRuby

ТипДанных = bool | enum [{Строка ["/'] >] | int J float | string | list | hash

Процедура » (required|validator|enabled|evaluatorjexpectedjestimator) Лямбда

Лямбда = Г'Ч" БлoкRubvCПapaмeтoaми "}"1

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

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

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

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

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

КИ - компонент интерпретации WF

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

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

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

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

Входные параметры

Закон распределения Пуассон; Коэффициент закона распределения

Параметры исполнения

Ресурс I Автоматический вы' Приоритет I Обычный

Показать сгеиорирава!

:j в

Мониторинг исполнения Вынодные j Визуализация графе сети not.yiaphml о

J

е файлы 17

Запуск >

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

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

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

В работе используется следующая формальная модель абстрактного WF (AWF)6. Блок композитного приложения - это кортеж вида {ins, Р, Outs, F), где Ins = {/ : i = 0..n,Ij е Id} и Outs = {О, : i = Q..m,Oi e Id) — множество идентификаторов входных и выходных параметров блока {Id — множество всех идентификаторов параметров), Р :Type{I0)x...xType(In) —» {true, false] - предикат, определяющий попадание переданного набора входных значений в область допустимых для пакета (т.е. проверяющий корректность), Type \ld —> В - оператор, определяющий тип идентификатора, F -функция, переводящая переданные входные значения в выходные:

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

F :{x:(xe T}pe(I0) x... x Type(In)) л P(x)) Type{Oa) x...x Type(Om) . (3)

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

Композитное приложение — это кортеж [insи/, Outsи/, N, D, Cj, где Ins"* = {/ | i = О..«,/, е Id} и Outswf = {О,. | i = О..т, О, е Id} - множество идентификаторов входных и выходных параметров WF, N = {Nl \Nt :Node,i = 0..k} — множество узлов WF (здесь Node- узел WF, см. выше), D - множество связей по данным, С - множество зависимостей по управлению.

Зависимость по управлению - это двойка вида (Child с, Parent0 }, Child с е N

- зависимый узел, a Parentс е N- узел, от которого Childcзависит. При этом узлы не совпадают Childс * Parentс.

Зависимость по данным - это тройка вида (ChildD, ParentsD ,Fcon^, где ChildD e y^N^ImvjOuts^ - зависимый узел, ParentsD с \^NrOuts\jIns"f — множество узлов, от которых ChildD зависит, Fconv - функция конвертации данных. Зависимость по данным устанавливается между одним входным параметром и несколькими выходными:

Fconv: Type(Parentg)х...xType(Parent°) -> Type(ChildD),z = \ParentsD\. (4)

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

Interpret(WF) : Typeil,) х...х Type(In) TypeiO^) х...х Туре{От), (5) при этом функция интерпретации работает только для корректно заданных WF.

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

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

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

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

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

ВходныеДанные require СписокИдентификаторов ";" АтрибутИР ::- "{" flow ":" Идентификатор "=" Выражение "}"

ОписаниеБлока ::= {Атрибут} (step|~step) Идентификатор runs КомпозитныйИдентификатор [after СписокИдентификаторов] СписокПараметров [ Постобработка ] ";" КомпозитныйИдентификатор ::= { Идентификатор [Точка] } СписокИдентификаторов : := { Идентификатор [ "," ] } Атрибут ::= "[" Идентификатор "=" Выражение "]" СписокПараметров ::= "(" {(Параметр|Порт)[л]> ")" Параметр Идентификатор "=" Выражение Порт ::= Идентификатор "<-" ПолеОбъекта Постобработка ::= post code ruby KonRubv code end Выражение ::= Литерал | ПолеОбъекта

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

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

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

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

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

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

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

Рис. 5. Пример приложения в окне графической среды разработки СЬАУЖЕ, слева - заданный на ЕазуР1о\у А\УР, справа - исполненный С\\Т

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

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

• поддержка исполняющихся долгое время. Узлы, время жизни которых не ограничено, будем называть узлами длительного исполнения;

• поддержка механизмов управления извне поведением исполняющихся заданий и их жизненным циклом;

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

• возможность изменения WF во время исполнения за счет сценария \\Т, а также за счет внешнего управления. Узлы и дуги такого ХУБ могут быть добавлены или удалены во время исполнения.

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

Блок композитного приложения — это кортеж вида8: (/«.у, Р, Ои&, Т7, ¡п['ог1ч, Ои/Р'оПч,Сот, £у), где 1пРог1з = {1р1 : г = О..и, /р1 е Ргс/} и

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

OutPorts = {Opi : i = 0..m,0p, e Pi ci} - множество идентификаторов входных и выходных портов блока ( Pid - множество всех идентификаторов портов), protocol : Pid —> Protocols - оператор, который определяет протокол идентификатора порта, Protocols - множество поддерживаемых протоколов, Сот с Commands — множество поддерживаемых блоком команд, Eve Events — множество генерируемых событий.

Интерактивное композитное приложение — это кортеж вида: (lnsKf ,Outswf,Sources,ClientPorts,N,D,С,Q) , Sources = {Ip, : i = 0..w,Ipi e Pid} - множество идентификаторов портов внешних источников данных, ClientPorts = {Opi : i = 0,M,Opi е Pid} - множество идентификаторов выходных портов WF. Будем считать, что протокол - это множество конкретных адресов. Выходной порт WF - это точка подсоединения клиентских приложений, Q — множество коммуникационных зависимостей.

Коммуникационная зависимость — это двойка вида (Child0 .Parent ), ChildQ e (J NrInPorts и ClientPorts — коммуникационный порт зависимого узла, а

ParentQ e ¡.OutPorts kj Sources - порт, от которого ChildQ зависит.

Зависимость no управлению расширяется за счет введения механизма событийного взаимодействия и команд. Зависимость по управлению — это тройка вида (Child с, Parents с, Pconi^, Child с e \^NrCom - команда зависимого узла,

Parent0 Q U Л/, .Ev - узел, ОТ которого Childс зависит. Pcond: Events* -> {true, false}

- предикат, в зависимости от событий (Events* — множество всех возможных событий) определяющий выполнять команду или нет.

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

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

В рамках реализации представленной выше модели синтаксис языков EasyPackage и EasyFlow был расширен за счет новых конструкций. В описание программного модуля на EasyPackage добавлено объявление входных и выходных портов. В EasyFlow добавлена возможность связывания узлов по портам. Компо-

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

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

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

зшние клиенты

Коммуникационная

зависимость Зависимость по

данным Зависимость по

управпенаю

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

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

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

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

следующие основные результаты.

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

• Предложены метод унифицированного описания структуры композитных приложений в форме WF на основе предметно-ориентированного языка EasyPackage и реализующая его программная технология интерпретации КП в исполнимую форму.

• Разработана технология проектирования, разработки и исполнения интерактивных композитных приложений в распределенной среде на основе унифицированного описания структуры WF и его программных модулей на языках EasyFlow и EasyPackage.

• Продемонстрирована работоспособность и эффективность предложенных решений на основе реализации прикладных задач моделирования динамики сложных систем с использованием МНТП CLAVIRE.

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

1. Князьков К. В. Особенности работы с потоками задач длительного исполнения в рамках концепции iPSE // Известия вузов. Приборостроение. 2011. № 10. С. 97-99 (по перечню ВАК).

2. Бухановский А. В., Князьков К. В. и др. Результаты реализации проекта «Мобильность молодых ученых» в 2010 г.: развитие функциональных элементов технологии iPSE и расширение состава прикладных сервисов // Известия вузов. Приборостроение. 2011. № 10. С. 80-86 (по перечню ВАК).

3. Князьков К, В., Ларченко А. В. Предметно-ориентированные технологии разработки приложений в распределенных средах // Известия вузов. Приборостроение. 2011. № 10. С. 36^3 (по перечню ВАК).

4. Марьин C.B., Князьков К.В. и др. Интеллектуальные технологии распределенных вычислений для моделирования сложных систем // Научно-технический вестник СПбГУ ИТМО. 2010. Вып. 70. С. 123-124 (по перечню ВАК).

5. Карьшов И. Л., Князьков К. В., Крючкова Е. Н. Разработка технологии и инструментария для создания распределенных систем на основе унифицированной структуры каркасов систем и приложений // Ползуновский альманах. 2009. Т. 2, № 3. С. 154-158.

6. Князьков КВ., Ковальчук C.B., Ларченко A.B. Автоматизация построения проблемно-ориентированных интерфейсов для прикладных сервисов в распределенных вычислительных средах// Интернет: инновационные технологии и инженерные разработки. Всеросс. конф. молодых ученых. Тез. докл. СПб, 2011. С. 17-18.

7. Князьков КВ., Ларченко A.B. Композитные приложения в распределенных предметно-ориентированных средах // Высокопроизводительные параллельные вычисления на кластерных системах. Матер. XI Всеросс. конф. Нижний Новгород: Изд-во ННГУ, 2011. С. 147-152.

Формат 60x84/16. Бумага офсетная. Печать офсетная. Усл. печ. л. 1,2. Тираж 30 экз. Заказ № 215.

Типография «Восстания -1». 191036, Санкт-Петербург, Восстания, 1.

Оглавление автор диссертации — кандидата технических наук Князьков, Константин Валерьевич

Основные обозначения и сокращения.

Введение.

Глава 1 Композитные приложения в распределенных средах для решения научных задач.

1.1 Системы управления композитными приложениями.

1.1.1 Taverna.

1.1.2 Kepler.

1.1.3 Triana.

1.1.4 Nimrod.

1.1.5 LoniPipeline.

1.1.6 WS-VLAM.

1.1.7 Pegasus.

1.1.8 Galaxy.

1.1.9 E-Science Central.

1.1.10 Askalon.

1.1.11 MathCloud.

1.1.12 Gridmd.

1.1.13 Yawl.

1.1.14 Cublic.

1.1.15 CAEBeans.

1.1.16 Condor DAGMan.

1.1.17 Сравнение систем.

1.2 Методы встраивания программных модулей.

1.2.1 Встраивание модуля в виде программной библиотеки или на уровне исходного кода

1.2.2 Встраивание модуля в виде отдельного приложения или сервиса с унифицированным программным интерфейсом.

1.2.3 Встраивание модуля путем описания.

1.2.4 Сравнение методов встраивания.

1.3 Методы задания композитных приложений в фоме WF.

1.3.1 Модели WF.

1.3.2 Текстовое описание

1.3.3 Сравнение методов задания \УР.

1.4 Платформа для облачных вычислений СЬАУЖЕ.

Выводы по главе 1.

Глава 2 Метод описания вычислительных пакетов на предметно-ориентированном языке.

2.1 Язык описания вычислительных пакетов.

2.1.1 Вычислительный пакет.

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

2.1.3 Формализация представления пакета и механизма его обработки в виде описания на предметно-ориентированном языке.

2.1.4 Язык описания пакетов — ЕаБуРаск^е.

2.1.5 Режимы исполнения пакета и их наследование.

2.1.6 Формирование описания пакета.

2.2 Программный компонент для обработки описаний пакетов — база пакетов.

2.2.1 Механизм функционирования базы пакетов.

2.2.2 Архитектура базы пакетов.

2.3 Пример применения.

2.4 Проблемно-ориентированный интерфейс.

2.4.1 Механизм автоматического создания ПОИ на основе описания пакета.

2.4.2 Структура генерируемого интерфейса.

2.4.3 Архитектура системы построения ПОИ.

2.4.4 Пример автоматически генерируемого интерфейса.

2.4.5 Дополнительные возможности автоматической генерации на основании описания пакета

Выводы по главе 2.

Глава 3 Метод описания композитных приложений.

3.1 Описание композитных приложений.

3.1.1 Модель композитного приложения.

3.1.2 Формальная модель композитного приложения.

3.1.3 Выбор формы представления композитного приложения.

3.2 Язык описания композитных приложений - ЕаБуИоху.

3.3 Программный компонент интерпретации и исполнения композитных приложений

3.3.1 Высокоуровневая архитектура программного компонента исполнения WF.

3.3.2 Модуль разбора скрипта EasyFlow.

3.3.3 Механизм функционирования компонента исполнения композитных приложений

3.3.4 Архитектура компонента интерпретации WF.

3.4 Реализация композитного приложения на языке EasyFlow.

3.5 Эксперименты.

3.5.1 Эксперимент по определению временных характеристик интерпретации.

3.5.2 Исследование временных издержек исполнения WF в рамках виртуальной лаборатории экстренных вычислений.

Выводы по главе 3.

Глава 4 Модель интерактивных композитных приложений.

4.1 Области применения интерактивных КП.

4.2 Интерактивные композитные приложения.

4.2.1 Модель интерактивных композитных приложений.

4.2.2 Формальная модель.

4.2.3 Модификация EasyFlow и EasyPackage.

4.3 Прототип программной системы исполнения интерактивных композитных приложений.

4.3.1 Реализация модели.

4.3.2 Исполнение композитных приложений длительного исполнения.

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

4.3.4 Описание примера композитного приложения в предложенной модели.

4.4 Эксперимент.

Выводы по главе 4.

Введение 2012 год, диссертация по информатике, вычислительной технике и управлению, Князьков, Константин Валерьевич

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

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

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

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

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

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

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

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

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

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

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

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

Личный вклад автора в работах, выполненных в соавторстве, заключается в: выполнении аналитического обзора в проблемной области диссертационной работы; обосновании требований к технологии разработки КП; разработке методов унификации на основе описания для программных пакетов и КП; проектировании и реализации части программ

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

Заключение диссертация на тему "Технология разработки композитных приложений с использованием предметно-ориентированных программных модулей"

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

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

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

Заключение

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

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

• Предложены метод унифицированного описания структуры композитных приложений в форме WF на основе предметно-ориентированного языка EasyPackage и реализующая его программная технология интерпретации КП в исполнимую форму.

• Разработана технология проектирования, разработки и исполнения интерактивных композитных приложений в распределенной среде на основе унифицированного описания структуры WF и его программных модулей на языках EasyFlow и EasyPackage.

• Продемонстрирована работоспособность и эффективность предложенных решений на основе реализации прикладных задач моделирования динамики сложных систем с использованием МНТП CLAVIRE.

Библиография Князьков, Константин Валерьевич, диссертация по теме Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

1. David De Roure, Carole Goble, "Software Design for Empowering Scientists," IEEE Software, vol. 26, no. 1, pp. 88-95, - 2009.

2. Collaborative e-Science Experiments and Scientific Workflows Belloum, A.; Inda, M.A.; Vasunin, D.; Korkhov, V.; Zhiming Zhao; Rauwerda, H.; Breit, T.M.; Bubak, M.; Hertzberger, L.O.; Internet Computing, IEEE, Vol. 15 Issue:4 pp. 39 - 47, 2011.

3. A Taxonomy of Workflow Management Systems for Grid Computing / J. Yu, R. Buyya // Journal of Grid Computing, Volume 3, Numbers 3-4. 2005 - pp. 171-200.

4. Curcin, V.; Ghanem, M.; , "Scientific workflow systems can one size fit all?," Biomedical Engineering Conference, 2008. CIBEC 2008. Cairo International, pp. 1-9, 18-20,-2008.

5. Ewa Deelman, Dennis Gannon, Matthew Shields, Ian Taylor, Workflows and e-Science: An overview of workflow system features and capabilities, Future Generation Computer Systems, Vol. 25, Issue 5, pp. 528-540, - 2009

6. Grid Workflow :: Workflow Description Languages Электронный ресурс. Режим до ступа: http ://www. grid workflow, org/snips/gridworkflo w/ space/Workflo w+Engines.

7. Looking into the Future of Workflows: The Challenges Ahead /1. J. Taylor, E. Deelman, D. B. Gannon and M. Shields / Workflwos for e-Science. Springer. - 2007. - pp. 475-481.

8. Examining Challenges of Scientific Workflows / Y. Gil, E. Deelman et al // IEEE Computer, Vol. 40. 2007. - pp. 24-32

9. Taverna open source and domain independent Workflow Management System Электронный ресурс. - Режим доступа: http://www.taverna.org.uk/.

10. D. Hull, К. Wolstencroft, R. Stevens, C. Goble, M. Pocock, P. Li, and T. Oinn, "Taverna: a tool for building and running workflows of services.," Nucleic Acids Research, vol. 34, iss. Web Server issue, pp. 729-732, 2006.

11. The R Project for Statistical Computing Электронный ресурс. Режим доступа: http ://www.r-proj ect.org/.

12. The Kepler Project Kepler Электронный ресурс. - Режим доступа: https://kepler-project.org/.

13. В. Ludascher, I. Altintas, С. Berkley, D. Higgins, E. Jaeger, M. Jones, E. A. Lee, J. Tao, and Y. Zhao, "Scientific workflow management and the kepler system", Concurr. Comput. : Pract. Exper, vol. 18, 2005.

14. Johan Eker, Jorn Janneck, Edward A. Lee, Jie Liu, Xiaojun Liu, Jozsef Ludvig, Sonia Sachs, Yuhong Xiong. Taming heterogeneity the Ptolemy approach, Proceedings of the IEEE, 91(1):127-144, January 2003.

15. Triana Open Source Problem Solving Software Электронный ресурс. - Режим доступа: http://www.trianacode.org/.

16. Taylor, M. Shields, I. Wang, and A. Harrison. In I. Taylor, E. Deelman, D. Gannon, and M. Shields, editors, Workflows for e-Science, pages 320-339. Springer, New York, Secaucus, NJ, USA, 2007.

17. MeSsAGE Lab Nimrod Toolkit Электронный ресурс. - Режим доступа: http://messagelab.monash.edu.au/Nimrod.

18. Abramson, D., Giddy, J. and Kotler, L. "High Performance Parametric Modeling with Nim-rod/G: Killer Application for the Global Grid?", International Parallel and Distributed Processing Symposium (IPDPS), pp 520- 528, Cancun, Mexico, May 2000.

19. LONI Pipeline | Электронный ресурс. Режим доступа: http://pipeline.loni.ucla.edu/.

20. WS-VLAM Home Page Электронный ресурс. Режим доступа: http ://staff. science.uva.nl/~gvlam/wsvlam/.

21. A. Wibisono, V. Korkhov, D.Vasunin, V. Guevara-Masis, Z. Zhao, A. Belloum "Workshop on Workflow Systems in e-Science", Lecture Notes in Computer Science, Vol. 4489, pp. 191198, 2007.

22. Pegasus | Workflow Management System Электронный ресурс. Режим доступа: http://pegasus.isi.edu/.

23. Wings: Intelligent Workflow-Based Design of Computational Experiments, Yolanda Gil, Varun Ratnakar, Ewa Deelman et al. Intelligent Systems, IEEE. January 2010.

24. Goecks, J, Nekrutenko, A, Taylor, J and The Galaxy Team. Galaxy: a comprehensive approach for supporting accessible, reproducible, and transparent computational research in the life sciences. Genome Biol. 2010 Aug 25;11(8):R86.

25. Galaxy Электронный ресурс. Режим доступа: http://usegalaxy.org/29. e-Science Central Электронный ресурс. Режим доступа: http://www.esciencecentral.co.uk/.

26. P. Watson, A Multi-Level Security Model for Partitioning Workflows over Federated Clouds, IEEE CloudCom 2011 (3rd International Conference on Cloud Computing technology and Science) http://www.cs.ncl.ac.uk/publications/trs/papers/1271 .pdf

27. Askalon Programming Environment for Grid Computing Электронный ресурс. Режим доступа: http://www.dps.uibk.ac.at/projects/askalon/

28. MathCloud | Центр грид-технологий и распределенных вычислений Электронный ресурс. Режим доступа: http://dcs.isa.ru/drupal/ru/development/mathcloud.

29. GridMD С++ library Электронный ресурс. Режим доступа: http://gridmd.sourceforge.net/.

30. Morozov, I.V. and Valuev, I.A. "Automatic distributed workflow generation with GridMD library" / In Proceedings of Computer Physics Communications, pp. 2052-2058, - 2011.

31. YAWL Электронный ресурс. Режим доступа: http://www.yawlfoundation.org/.

32. В. Kiepuszewski. Expressiveness and Suitability of Languages for Control Flow Modelling in Workflows. PhD thesis, Queensland University of Technology, Brisbane, Australia, 2002.

33. Workflow Patterns Home Page Электронный ресурс. Режим доступа: http://www.workflowpatterns.com/.

34. Радченко, 2009. Радченко Г.И. Грид-система CAEBeans: интеграция ресурсов инженерных пакетов в распределенные вычислительные среды // Вестник Нижегородского университета им. Н.И. Лобачевского. № 6. 2009. С. 192-202.

35. Grid Programming Environment (GPE) Электронный ресурс. Режим доступа: http://sourceforge.net/projects/gpe4gtk/

36. Directed Acyclic Graph Manager Электронный ресурс. Режим доступа: http://research.cs.wisc.edu/condor/dagman/.

37. Sage: Open Source Mathematics Software Электронный ресурс. Режим доступа: http://www.sagemath.org/.

38. Julien Wintz, Thibaud Kloczko, Nicolas Niclausse and David Rey. dtk A Metaplatform for Scientific Software Development, ERCIM News 88, January 2012, http://ercim-news.ercim.eu/images/stories/EN88/EN88-web.pdf

39. OSGi Alliance | Specifications / HomePage Электронный ресурс. Режим доступа: http://www.osgi.org/Specifications/HomePage

40. HUBzero Platform for Scientific Collaboration Электронный ресурс. - Режим доступа: http ://hubzero .org/

41. Ковальчук С. В., Маслов В. Г. Интеллектуальная поддержка процесса конструирования композитных приложений в распределенных проблемно-ориентированных средах // Изв. вузов. Приборостроение. 2011. Т. 54, № 10. С. 29—36.

42. Ларченко А.В. Инструментальная оболочка проектирования и разработки высокопроизводительных приложений в среде Грид: Дис. . канд. техн. наук: 05.13.11. Санкт-Петербург. 2008. - 114 с.

43. OASIS Web Services Business Process Execution Language (WSBPEL) ТС | OASIS Электронный ресурс. Режим доступа: https://www.oasis-open.org/committees/tchome.php?wgabbrev=wsbpel

44. A. Slominsky, "Adapting BPEL to Scientific Workflows," in Workflows for e-Science, I. Taylor, E. Deelman, D. Gannon, and M. Shields, Eds. Springer, New York, 2007, pp. 208226.

45. Т. Fahringer, S. Pllana, and A. Villazon, AGWL: Abstract Grid Workflow Language, International Conference on Computational Science, Programming Paradigms for Grids and Metacomputing Systems, Krakow, Poland, June 2004. Copyright (C) Springer-Verlag.

46. S. Pllana, T. Fahringer, J. Testori, S. Benkner, and I. Brandic, Towards an UML Based Graphical Representation of Grid Workflow Applications, The 2nd European Across Grids Conference, Nicosia, Cyprus, January 2004. Copyright (C) Springer-Verlag.

47. M. Dumas and A.H.M. ter Hofstede, "UML Activity Diagrams as a Workflow Specification Language", in UML'2001 Conference, Toronto, Ontario, Canada, Lecture Notes in Computer Science (LNCS), Springer, Berlin, Heidelberg, New York, October 1-5, 2001.

48. K-Wf Grid in Cyfronet Электронный ресурс. Режим доступа: http://www.cyf-kr.edu.pl/kwfgrid/index.htm

49. Object Management Group/Business Process Management Initiative. Business Process Modeling Notation, BPMN 1.1: OMG Specification, February 2008.

50. R. Alur and M. Yannakakis. Model checking of hierarchical state machines. Foundations of Software Engineering, pages 175-188, 1998.

51. Zhilin Feng, Jianwei Yin, Zhaoyang He, Xiaoming Liu and Jinxiang Dong. A Novel Architecture for Realizing Grid Workflow Using Pi-Calculus Technology. Lecture Notes in Computer Science, 2006, Volume 3841/2006, 800-805, DOI: 10.1007/1161011376.

52. C. Stefansen. SMAWL: A SMA11 workflow language based on CCS. TechnicalReport TR-06-05, Harvard University, Mar. 2005.

53. Yong Zhao, Michael Wilde and Ian Foster. Virtual Data Language: A Typed Workflow Notation for Diversely Structured Scientific Data / Workflows for e-Science, Springer London, 2007, -pp. 258-275.

54. ADL — Algorithm Definition Language | Heterogeneous Computing Laboratory Электронный ресурс. Режим доступа: http://hcl.ucd.ie/project/ADL

55. А.В. Бухановский, В.Н. Васильев и др. CLAVIRE: Перспективная технология облачных вычислений второго поколения // Известия высших учебных заведений. Приборостроение. -2011. -№10. С. 7-14.

56. CTWatch Quarterly. Urgent Computing: Exploring Supercomputing's New Role. Vol. 4. #1 March 2008.

57. Debasish Ghosh. 2010. Dsls in Action (1st ed.). Manning Publications Co., Greenwich, CT, USA.

58. NAMD Scalable Molecular Dynamics Электронный ресурс. - Режим доступа: http://www.ks.uiuc.edu/Research/namd/82. start GridNNN. [Электронный ресурс]. Режим доступа: http://www.ngrid.ru/ngrid/

59. Марьин С.В. Интеллектуальная платформа управления композитными приложениями в распределенных вычислительных средах: Дис. . канд. техн. наук: 05.13.11. Санкт-Петербург. 2010. - 117 с.

60. А.В. Бухановский, А.Н. Житников, С.Г. Петросян, П.М.А. Слоот. Высокопроизводительные технологии экстренных вычислений для предотвращения угрозы наводнений // Известия высших учебных заведений. Приборостроение. 2011. - №10. - С. 16-22.

61. ACLab VLUC (Виртуальная лаборатория экстренных вычислений) Электронный ресурс. - Режим доступа: http://acl.ifmo.ru/index2.php?ws=122 Дата обращения: 07.03.12.

62. Simulation-Based Engineering Science, Report of the NSF SBES Panel to the NSF Engineering Advisory Committee, National Science Foundation, May 3, 2006, http://www.nsf.gov/attachments/106803/public/TOSBESDebrief050306.pdf

63. Koulouzis S., Zudilova-Seinstra E., Belloum A. Data transport between visualization web services for medical image analysis // Procedia Computer Science. — 2010. — Vol. 1, no. 1.

64. Pp. 1727-1736. — ICCS 2010.

65. Autonomie streaming pipeline for scientific workflows / Tolosana-Calasanz R., Banares J. A., Rana O. F. // Concurrency and Computation: Practice and Experience. 23, 16 (November 2011), 1868-1892.

66. Fide S., Jenks S. A middleware approach for pipelining communications in clusters // Cluster Computing. — 2007. — Vol. 10, no. 4 — Pp. 409-424.

67. J.N. Tsitsiklis Efficient algorithms for globally optimal trajectories. IEEE Transactions on Automatic Control, Sep. 1995.

68. A. Treuille, S. Cooper, Z. Popovic Continuum Crowds. ACM Transactions on Graphics, SIGGRAPH, 2006.

69. J. van den Berg, D. Ming Lin Manocha Reciprocal Velocity Obstacles for real-time multiagent navigation. ICRA, 2008.

70. D. Helbing et al. Simulation of pedestrian crowds in normal and evacuation situations. Pedestrian and Evacuation Dynamics (2002), pp. 21-58.