Конфигурирование распределенных приложений Исполнитель: Шелестова Анастасия Олеговна Научный руководитель: Анойкин Денис Александрович Научный консультант: Пальчунов Дмитрий Евгеньевич Распределенные приложения • Состоят из множества программных компонентов, запущенных на некотором количестве компьютеров. • Нуждаются в конфигурировании. • Адаптация к требованиям клиентов, взаимодействие компонентов, порядок запуска узлов и более тонкие настройки. Конфигурирование распределенных приложений 2 Конфигурирование – нетривиальная задача • Динамическая адаптация к изменяющимся требованиям. • Взаимозависимые параметры на разных компонентах. • При настройке компонентов по одному невозможно отследить настройку приложения в целом. • Трудности при ведении истории изменений. Конфигурирование распределенных приложений 3 Недостатки существующих решений Привязанность к ОС Привязанность к языку программирования Необходимость промежуточного ПО Низкоуровневые решения Конфигурирование распределенных приложений 4 Актуальность работы • В настоящий момент не существует стандартного способа конфигурирования распределенных приложений на гетерогенном кластере. • Необходим гибкий и удобный для использования инструмент, позволяющий централизованно решать задачи конфигурирования. Конфигурирование распределенных приложений 5 Цель работы Создание инструмента, позволяющего динамически конфигурировать и адаптировать к изменениям локальные и распределенные приложения. Конфигурирование распределенных приложений 6 Задачи • создание языка описания конфигурации распределенного приложения; • формулировка простого централизованного процесса конфигурирования компонентов системы; • разработка основных интерфейсов (с учетом возможности расширения функционала); • реализация системы динамической конфигурации распределенных приложений на языке java. Конфигурирование распределенных приложений 7 Язык описания конфигурации • Управление как группами компонентов, так и каждым компонентом распределенного приложения. • Манипуляция взаимозависимыми параметрами. Конфигурирование распределенных приложений 8 Логическая модель • Древовидная структура. • Узлы дерева: именованные секции параметров. Конфигурирование распределенных приложений 9 Дерево конфигурации Конфигурирование распределенных приложений 10 Физическая модель Каждый компонент приложения имеет: • имя; • адрес; • основную секцию в дереве конфигурации; • секции в дереве конфигурации, от которых он зависит. Конфигурирование распределенных приложений 11 Компоненты системы • Сервер службы конфигурации: База данных; Пользовательский интерфейс; Координатор; Основной контроллер. • Клиент службы конфигурации. Конфигурирование распределенных приложений 12 Компоненты системы: UML Конфигурирование распределенных приложений 13 Результаты работы • изучены принципы разработки распределенных систем; • разработан язык описания конфигурации; • спроектирована архитектура инструмента; • сформулирован процесс конфигурирования распределенного приложения; • реализована простейшая версия системы; • внедрена система логгирования; • проект сопровождается модульными тестами; • используется система автоматической сборки Gradle. Конфигурирование распределенных приложений 14 Перспективы • Система мониторинга узлов • Создание автоматизированной системы управления узлами • Реализация возможности загрузки скомпилированного Java-кода на узлы Конфигурирование распределенных приложений 15