Конфигурирование распределенных приложений

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