section 2 WIP
This commit is contained in:
+54
@@ -0,0 +1,54 @@
|
|||||||
|
# LaTeX build files
|
||||||
|
*.aux
|
||||||
|
*.bbl
|
||||||
|
*.bcf
|
||||||
|
*.blg
|
||||||
|
*.fdb_latexmk
|
||||||
|
*.fls
|
||||||
|
*.idx
|
||||||
|
*.ilg
|
||||||
|
*.ind
|
||||||
|
*.lof
|
||||||
|
*.log
|
||||||
|
*.lot
|
||||||
|
*.nav
|
||||||
|
*.out
|
||||||
|
*.run.xml
|
||||||
|
*.snm
|
||||||
|
*.synctex.gz
|
||||||
|
*.toc
|
||||||
|
*.vrb
|
||||||
|
|
||||||
|
# Beamer / minted / glossaries / nomenclature
|
||||||
|
*.acn
|
||||||
|
*.acr
|
||||||
|
*.alg
|
||||||
|
*.glg
|
||||||
|
*.glo
|
||||||
|
*.gls
|
||||||
|
*.ist
|
||||||
|
*.loa
|
||||||
|
*.lol
|
||||||
|
*.nlo
|
||||||
|
*.nls
|
||||||
|
*.pyg
|
||||||
|
_minted-*/
|
||||||
|
|
||||||
|
# Temporary files
|
||||||
|
*.tmp
|
||||||
|
*.bak
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
*~
|
||||||
|
|
||||||
|
# Editors / IDEs
|
||||||
|
.vscode/
|
||||||
|
.idea/
|
||||||
|
|
||||||
|
# OS files
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
|
||||||
|
# Keep final PDFs ignored by default.
|
||||||
|
# Remove this line if you want to commit the compiled PDF.
|
||||||
|
*.pdf
|
||||||
@@ -3,3 +3,26 @@
|
|||||||
% \todo[inline]{Здесь надо рассмотреть все существующие решения поставленной задачи, но не просто пересказать, в чем там дело, а оценить степень их соответствия тем ограничениям, которые были сформулированы в постановке задачи.}
|
% \todo[inline]{Здесь надо рассмотреть все существующие решения поставленной задачи, но не просто пересказать, в чем там дело, а оценить степень их соответствия тем ограничениям, которые были сформулированы в постановке задачи.}
|
||||||
|
|
||||||
Существующие решения, близкие к задаче описания конфигурации сети виртуальных машин, можно разделить на три группы: универсальные диаграммеры, сетевые эмуляторы и генераторы диаграмм по текстовому описанию. Их применимость целесообразно оценивать по следующим критериям: возможность изобразить структуру сети, возможность сопоставить элементам сети набор параметров, возможность интерпретировать результат как формализованное описание, пригодное для последующей обработки.
|
Существующие решения, близкие к задаче описания конфигурации сети виртуальных машин, можно разделить на три группы: универсальные диаграммеры, сетевые эмуляторы и генераторы диаграмм по текстовому описанию. Их применимость целесообразно оценивать по следующим критериям: возможность изобразить структуру сети, возможность сопоставить элементам сети набор параметров, возможность интерпретировать результат как формализованное описание, пригодное для последующей обработки.
|
||||||
|
|
||||||
|
\subsection{Универсальные диаграммеры}
|
||||||
|
|
||||||
|
К универсальным диаграммерам относятся draw.io, Lucidchart и Microsoft Visio. Такие средства позволяют строить различные виды схем, в том числе сетевые диаграммы. Например, draw.io позиционируется как онлайн-инструмент для построения блок-схем, UML-, ER- и сетевых диаграмм; Microsoft Visio также содержит шаблоны и фигуры для сетевых диаграмм; Lucidchart поддерживает технические диаграммы и визуальное моделирование систем.
|
||||||
|
|
||||||
|
Основное преимущество таких решений состоит в удобстве визуального построения схемы. Пользователь может быстро расположить элементы, провести связи между ними и получить наглядное изображение топологии. Однако для поставленной задачи этого недостаточно. Диаграмма в таких системах в первую очередь является графическим объектом: она хорошо передаёт внешний вид структуры, но не задаёт строгую модель данных сетевой конфигурации. Параметры виртуальных машин, интерфейсов, MAC-адресов, IP-адресов и сетевых сегментов могут быть добавлены только как текстовые подписи или дополнительные свойства объектов, но их последующая автоматическая интерпретация становится нетривиальной.
|
||||||
|
|
||||||
|
Следовательно, универсальные диаграммеры могут использоваться для иллюстрации результата, но не являются подходящей основой для хранения и воспроизводимого редактирования конфигурации. Они не обеспечивают требуемой проверяемости описания и плохо подходят для ситуации, когда одному элементу сети необходимо сопоставить множество формализованных атрибутов.
|
||||||
|
|
||||||
|
\subsection{Сетевые эмуляторы}
|
||||||
|
|
||||||
|
Ко второй группе относятся сетевые эмуляторы, например Cisco Packet Tracer и Huawei eNSP. Cisco Packet Tracer предназначен для обучения сетевым технологиям и позволяет моделировать работу сетей в виртуальной лабораторной среде; Huawei eNSP также описывается как симулятор устройств, применяемый для подготовки в области передачи данных.
|
||||||
|
|
||||||
|
Эти решения ближе к реальной настройке сети, чем универсальные диаграммеры: они позволяют не только нарисовать топологию, но и моделировать поведение сетевых устройств. Однако их назначение отличается от цели данной работы. Они ориентированы на эмуляцию оборудования конкретного производителя и обучение настройке сетевых устройств, а не на универсальное формализованное описание конфигурации сети виртуальных машин для лабораторных стендов.
|
||||||
|
|
||||||
|
(стоит ли писать) Кроме того, сетевые эмуляторы оказываются избыточными для рассматриваемой задачи. В работе требуется зафиксировать структуру конфигурации, известные и неизвестные параметры элементов, обеспечить редактируемость и экспорт описания. Полноценная симуляция сетевых протоколов и поведения оборудования для этого не требуется.
|
||||||
|
|
||||||
|
Также такие системы хуже подходят для независимого структурированного хранения модели, которую можно было бы использовать как источник данных для разных представлений: таблицы, диаграммы или YAML-файла.
|
||||||
|
|
||||||
|
\subsection{Генераторы диаграмм}
|
||||||
|
|
||||||
|
\subsection{Вывод}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,42 @@
|
|||||||
|
SRC_DIR := Latex
|
||||||
|
MAIN := main
|
||||||
|
BUILD_DIR := $(CURDIR)/.latexbuild
|
||||||
|
PDF := $(CURDIR)/$(MAIN).pdf
|
||||||
|
|
||||||
|
PDFLATEX := pdflatex
|
||||||
|
BIBTEX := bibtex
|
||||||
|
|
||||||
|
.PHONY: all pdf bib clean cleanall
|
||||||
|
|
||||||
|
all: pdf
|
||||||
|
|
||||||
|
pdf:
|
||||||
|
mkdir -p $(BUILD_DIR)
|
||||||
|
cd $(SRC_DIR) && \
|
||||||
|
$(PDFLATEX) -interaction=nonstopmode -halt-on-error \
|
||||||
|
-output-directory=$(BUILD_DIR) $(MAIN).tex
|
||||||
|
cd $(SRC_DIR) && \
|
||||||
|
$(PDFLATEX) -interaction=nonstopmode -halt-on-error \
|
||||||
|
-output-directory=$(BUILD_DIR) $(MAIN).tex
|
||||||
|
cp $(BUILD_DIR)/$(MAIN).pdf $(PDF)
|
||||||
|
|
||||||
|
bib:
|
||||||
|
mkdir -p $(BUILD_DIR)
|
||||||
|
cd $(SRC_DIR) && \
|
||||||
|
$(PDFLATEX) -interaction=nonstopmode -halt-on-error \
|
||||||
|
-output-directory=$(BUILD_DIR) $(MAIN).tex
|
||||||
|
cd $(BUILD_DIR) && \
|
||||||
|
$(BIBTEX) $(MAIN)
|
||||||
|
cd $(SRC_DIR) && \
|
||||||
|
$(PDFLATEX) -interaction=nonstopmode -halt-on-error \
|
||||||
|
-output-directory=$(BUILD_DIR) $(MAIN).tex
|
||||||
|
cd $(SRC_DIR) && \
|
||||||
|
$(PDFLATEX) -interaction=nonstopmode -halt-on-error \
|
||||||
|
-output-directory=$(BUILD_DIR) $(MAIN).tex
|
||||||
|
cp $(BUILD_DIR)/$(MAIN).pdf $(PDF)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -rf $(BUILD_DIR)
|
||||||
|
|
||||||
|
cleanall:
|
||||||
|
rm -rf $(BUILD_DIR) $(PDF)
|
||||||
@@ -0,0 +1,76 @@
|
|||||||
|
# План доклада курсовой работы
|
||||||
|
|
||||||
|
!!! Акцент на хранение внутри, кодом (классы Python) может быть также важно, как и табличное представление.
|
||||||
|
|
||||||
|
## Аннотация
|
||||||
|
|
||||||
|
- краткое описание темы работы;
|
||||||
|
- цель разработки диаграммера сетевой топологии
|
||||||
|
- !меняем на необходимость формализованного описания, смещаем акцент
|
||||||
|
- итоговый результат: генерация YAML для развёртывания топологии в виртуальных машинах.
|
||||||
|
- !итоговый результат: модель данных. YAML-вывод только как пример
|
||||||
|
|
||||||
|
## Оглавление
|
||||||
|
|
||||||
|
- оглавление
|
||||||
|
|
||||||
|
## Введение
|
||||||
|
|
||||||
|
- актуальность автоматизации описания и развёртывания сетевых топологий;
|
||||||
|
- проблема отсутствия удобных диаграммеров под заданные требования;
|
||||||
|
- !попытка обыграть - есть диаграммеры, но они не подходят для задания структуры
|
||||||
|
- объект, предмет, цель и задачи работы.
|
||||||
|
|
||||||
|
## Постановка задачи
|
||||||
|
|
||||||
|
- формальное описание задачи построения топологии сети
|
||||||
|
- требования к входным данным, диаграмме и выходному YAML
|
||||||
|
- !отсюда дейтсвительно важно лишь до какой степени описываем в таблице? Какие ожидания
|
||||||
|
- всякие критерии?
|
||||||
|
|
||||||
|
## Обзор
|
||||||
|
|
||||||
|
- сравнение draw.io и аналогичных ему, нам не подходят
|
||||||
|
- обзор существующих диаграммеров: D2, Graphviz, Mermaid и аналогов;
|
||||||
|
- !только как дополнение к модели
|
||||||
|
- сравнение синтаксиса, Python-реализаций и применимости к сетевой топологии;
|
||||||
|
- обзор подходов к построению схем по табличному представлению данных (ну тут просто ничего)
|
||||||
|
- вывод - либо очень сложное, но формат в любом случае не подходит
|
||||||
|
- !а особенно для легкой воспроизводимости при лабораторных/на лекциях
|
||||||
|
|
||||||
|
## Исследование и решение задачи
|
||||||
|
|
||||||
|
- выделение сущностей предметной области: узлы, интерфейсы, связи
|
||||||
|
- представление данных в виде таблицы
|
||||||
|
- !поля, что куда относится и за что отвечает, ограничения (или их отсутствие)
|
||||||
|
- !фактически это и есть разработанная модель
|
||||||
|
- приведение к 1НФ и 3НФ
|
||||||
|
- разработка модели и алгоритма преобразования таблиц в топологию yaml и диаграммы
|
||||||
|
- !здесь остаётся только диаграммы и yaml как пример применения модели.
|
||||||
|
|
||||||
|
## Практическая часть, эксперимент
|
||||||
|
|
||||||
|
- описание реализованного кода и архитектуры программы
|
||||||
|
- !первостепенно и дополнительно: табличное хранение, UML-график с внутренним хранением внутри питона
|
||||||
|
- пример входных данных и построенной топологии
|
||||||
|
- !построенная топология снова только как показательный пример, что модель можно использовать
|
||||||
|
- пример сгенерированного YAML
|
||||||
|
- примеры на реальных лабах
|
||||||
|
|
||||||
|
## Заключение
|
||||||
|
|
||||||
|
- достигнутые цели и решённые задачи
|
||||||
|
- практическая значимость
|
||||||
|
- возможные направления дальнейшего развития.
|
||||||
|
|
||||||
|
## Список литературы
|
||||||
|
|
||||||
|
- источники по сетевым топологиям, нормализации, прочая штука
|
||||||
|
- документация по всяким диаграммерам.
|
||||||
|
|
||||||
|
## Приложения
|
||||||
|
|
||||||
|
- фрагменты кода;
|
||||||
|
- примеры таблиц в 1НФ и 3НФ;
|
||||||
|
- UML-диаграмма классов в Python
|
||||||
|
- примеры диаграмм и YAML-конфигураций на основе модели;
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
Введение подвод, стоит актуализировать/постановку
|
||||||
|
|
||||||
|
Обзор существующих решений, критерий
|
||||||
|
|
||||||
|
Состав описания, что входит в состав параметров
|
||||||
|
Далее выбор представления
|
||||||
|
|
||||||
|
(Попробовали диаграммеры, получили красивый способ рисования, но многие параметры отсутствуют формализации)
|
||||||
|
|
||||||
|
Удобство = проблематичность интерпретации
|
||||||
|
|
||||||
|
Одному элементу множество атрибутов
|
||||||
|
|
||||||
|
Ну и показать диаграммеры существующие (носят иллюстративный характер), интерпретация как формализованного описания проблематична
|
||||||
|
|
||||||
|
3 критерия:
|
||||||
|
Возможность описания структуры в виде диаграммы
|
||||||
|
Возможность сопоставления атрибутов
|
||||||
|
Возможность интерпретации как формализованного описания
|
||||||
|
|
||||||
|
Редактируемый, читаемый
|
||||||
|
|
||||||
|
Вывод:
|
||||||
|
Формат диаграммы как вид не берём
|
||||||
|
|
||||||
|
Обоснование первой формы
|
||||||
|
|
||||||
|
В программной реализации как раз модель внутри питончика
|
||||||
|
|
||||||
|
Главный недостаток - не видно всего + надо выстраивать связи
|
||||||
|
|
||||||
|
Выстроить описание рабочего процесса
|
||||||
|
|
||||||
|
На чём проверялась программная реализация (тестики, примеры)
|
||||||
Reference in New Issue
Block a user