Платформа для построения распределенных приложений Подготовил: Меньшов А. В., МПС-603-О Научный руководитель: Тюменцев Е. А. Постановка задачи 2 Применение распределенных систем: • Интеграция приложений. • Ускорение вычислений. • Разделение ресурсов. • Построение отказоустойчивых систем. 2 Постановка задачи 3 Существующие средства для построения распределенных систем: • Специализированные языки. • Промежуточное программное обеспечение. • Системы обмена сообщениями. 3 Постановка задачи 4 Создание платформы со следующей функциональностью: • Механизм взаимодействия. • Механизм выполнения заданий. • Механизм миграции заданий. • Механизм репликации заданий. • Масштабируемость. • Средства для взаимодействия со внешними системами. 4 Структура компонентов 5 Узел – основной компонент при построении распределенной системы 5 Структура компонентов 6 Нить – обертка над потоком выполнения 6 Структура компонентов 7 Задания представлены конечными автоматами, выполняются пошагово 7 Структура компонентов 8 Задания позволяют наделить распределенную систему необходимой функциональностью 8 Структура компонентов 9 Конечные точки инкапсулируют обмен сообщениями от сетевого взаимодействия 9 Структура компонентов 10 Виды взаимодействия: • сетевое • межпроцессное • протокол HTTP 10 Построение системы 11 • Один узел – распределенная система • Для добавления узла в существующую распределенную систему необходимо указать для него узел-родитель 11 Взаимодействие компонентов 12 • Узлы, нити и задания именуются. • Взаимодействие на основе обмена сообщениями. • Паттерн Стратегия для адресации сообщений. 12 Адресация с помощью XPath 13 • XML-документы имеют древовидную структуру. • XPath – язык запросов к XML-документам. • XPath используется для задания получателей сообщения. 13 Адресация с помощью XPath 14 • Поддерживаются атрибуты для узлов, нитей и заданий. • Атрибуты могут быть динамическими. 14 Репликация заданий 15 • Инициируется посылкой заданию специального сообщения. • Может повышения быть использована отказоустойчивости для и производительности системы. 15 Миграция заданий 16 • Позволяет перемещать задания в пределах распределенной системы без их остановки. • Осуществляется итеративно по аналогии с «живой миграцией» виртуальных машин. 16 Заключение 17 Построена платформа со следующей функциональностью: • Механизм адресации компонентов системы. • Миграция заданий. • Репликация заданий. • Перераспределение структуры подчиненности узлов без их приостановки. • Масштабирование системы. • Точки расширения – задания, сообщения, конечные точки, стратегии адресации. 17 Демонстрация Генерация видео 19 Video Creator – приложение для распределенной генерации видео методом трассировки лучей 19 Генерация видео 20 Задача: генерации 2000 изображений на одном компьютере для создания видео. Количество потоков Время выполнения (мин.) 1 150 2 86 3 64 4 53 20 Генерация видео 21 Задача: генерации 2000 изображений на нескольких компьютерах для создания видео. Количество потоков Количество компьютеров Время выполнения (мин.) 2 1 170 4 2 102 6 3 68 21 Спасибо за внимание