Цель: Разработка симулятора сетей, серверов и клиентов для прототипирования распределённого Интернета Вещей.
ПО должно обеспечивать следующую функциональность:
- Конфигурирование абстрактных сетей и связей между ними
- Граф узлов сетей, связями между узлами сетей и конечными узлами (Клиент, Сервер, Приложение), подключенноые к узлу сетей
- Каждый узел сети имеет связь с 1..N соседними узлами сетей
- Узел может отправлять данные в зависимости от адресата и маршрута к нему
- Предусмотреть пропускную способность узлов сети, отказы при перегрузке
- Механизм нахождения маршрута отправки сообщений
- Иметь подключённые к сетям конечные узлы:
- Серверы -- (принимает данные от Клиентов, отпрвляет ответы в зависимости от протокола)
- Клиенты -- (подключаются к Серверу и отправляют данные)
- Приложения -- узел, содержащий несколько лкиентов и/или серворов
- Мониторинг прохождения сообщений
- Расчёт тиков (абстрактный счётчик затраченного времени на передачу данных) в зависимости от типа узлов
- Анализ прохождения сообщений
- Механизм аналитики выполнения симуляции
- Расчёт тиков
- Расчёт времени выполнения в зависимости от типа узлов
- Аналитика пропускной способности, отказов и т.д.
- Реализация абстракции протокола MQTT (Все 14 команд)
- Механизм сценариев
- Возможность выполнения сценария состоящего из нескольких действий
- Каждый сценарий имеет глобальный контекст, доступный всем действиям
- Каждое действие может выполняться в несколько итераций, иметь лимит по таймауту, иметь задержку перед выполнением
- Возможность конфигурирования каждого шага
- Механизм генерации диаграм UML (PlantUML)
- Диаграмма связей (топологии) сети
- Диаграмма последовательности (на каждую передачу сообщений)
- Необходим для удобства визуализации