21 lines
7.2 KiB
TeX
21 lines
7.2 KiB
TeX
\section{Исследование и построение решения задачи}
|
|
\label{sec:Chapter3} \index{Chapter3}
|
|
% \todo[inline]{Здесь надо декомпозировать большую задачу из постановки на подзадачи и продолжать этот процесс, пока подзадачи не станут достаточно простыми, чтобы их можно было бы решить напрямую (например, поставив какой-то эксперимент или доказав теорему) или найти готовое решение.}
|
|
|
|
Поставленная задача состоит в разработке средства, позволяющего описывать частично сконфигурированную сеть виртуальных машин и получать на основе этого описания формализованное представление конфигурации. Для построения решения общая задача была разложена на несколько подзадач: определение состава описываемой информации, выбор формы представления данных, построение внутренней модели, разработка способа редактирования и реализация механизмов преобразования описания.
|
|
|
|
\todo[inline]{пока что нет конретики в том, какие поля мы описываем. Куда вставить их?}
|
|
|
|
Первой подзадачей является определение состава информации, необходимой для описания сетевой конфигурации. Конфигурация сети виртуальных машин рассматривается как совокупность узлов, сетевых интерфейсов и связей между ними. Узел соответствует виртуальной машине, интерфейс задаёт точку подключения узла к сети, а связь описывает соединение интерфейсов или их принадлежность к одному сетевому сегменту. Для этих сущностей необходимо хранить имена, адреса, роли, параметры подключения и другие атрибуты, которые могут использоваться при последующей настройке или визуализации.
|
|
|
|
---
|
|
|
|
Второй подзадачей является выбор основного представления конфигурации. Рассмотрение существующих решений показывает, что диаграмма удобна для визуального восприятия, но недостаточна как основная форма хранения данных: графическое изображение сложно интерпретировать как строгое описание конфигурации. Поэтому в качестве основы решения выбрано структурированное представление данных, а диаграмма рассматривается только как производное отображение модели. Такой подход позволяет отделить логическое описание сети от способа его визуализации.
|
|
|
|
Третья подзадача связана с разработкой табличного способа задания конфигурации. Табличная форма удобна тем, что позволяет явно фиксировать элементы сети и их атрибуты, редактировать отдельные значения и проверять заполненность полей. При этом она допускает частично заданные конфигурации: часть параметров может быть указана сразу, а часть оставлена пустой для последующего уточнения. Для уменьшения неоднозначности данные должны быть разнесены по сущностям предметной области: отдельно описываются узлы, интерфейсы и связи.
|
|
|
|
Четвёртой подзадачей является построение внутренней модели данных. Табличное представление удобно для ввода, но для дальнейшей обработки требуется программная структура, в которой связи между объектами выражены явно. Поэтому данные таблиц должны преобразовываться во внутреннее представление, например в набор классов Python, соответствующих основным сущностям конфигурации. Такая модель служит центральным представлением, из которого могут формироваться другие виды результата.
|
|
|
|
Пятой подзадачей является разработка механизмов преобразования модели. Минимально необходимыми преобразованиями являются импорт данных из табличного описания во внутреннюю модель, экспорт в формализованный файл конфигурации и построение диаграммы топологии. YAML-файл в этом случае используется как читаемое структурированное описание, пригодное для дальнейшей обработки, а Graphviz может применяться для генерации визуального представления сети на основе уже построенной модели.
|
|
|
|
Таким образом, решение строится не вокруг ручного рисования диаграммы, а вокруг формальной модели сетевой конфигурации. Табличное представление используется как способ ввода и редактирования, внутренняя модель — как основа обработки данных, а YAML и диаграмма — как производные формы представления результата. Такой подход позволяет обеспечить редактируемость, воспроизводимость и возможность дальнейшего применения описания при подготовке лабораторных стендов из виртуальных машин. |