Создание распределенной информационной системы в соответствии с вариантом
-
3 неделя: Выбрать тему-вариант, определить команду и сформировать ТЗ. В ТЗ должны быть четко указаны требования к каждому из участников.
-
8 неделя: макет figma (ссылку на figma добавить в ТЗ), диаграммы, swagger
-
12 неделя: полный комплект документов (ТЗ, РПЗ, ПМИ, РП, РСА)
-
14-15 неделя: защита, презентация по диаграммам, демонстрация приложения, ответы на вопросы
Документация
ТЗ
- каждый оформляет пункты и разделы по своей частиРПЗ
- каждый оформляет пункты и разделы по своей частиРуководство пользователя
(РП) оформляет Прикладной уровень: описание интерфейса и руководство по работе с приложениемРуководство Системного Администратора
(РСА) - каждый оформляет пункты и разделы по своей части: системные требования, инструкция по развертыванию системы (ссылки на репозиторий), для каких компонентов что потребуетсяПрограмма и методичка испытаний
(ПМИ) - каждый оформляет пункты по своей части: тестирование функционала приложения в таблице последовательно по пунктам (функция из ТЗ, действие, результаты и маленький скриншот). Должны быть протестированы все пункты ТЗ.- GitHub - каждый оформляет по своей части
- Swagger - каждый делает файлы по своему сервису
- Диаграммы последовательности - каждый оформляет по своей части, с кем взаимодействует и подробнее ваша часть
- Диаграмма развертывания - общая у всех
- Макет figma - Прикладной уровень
- Введение (актуальность с цифрами и датами, цель, назначение, нефункциональные требования, задачи)
- Описание сервиса транспортного уровня с диаграммой последовательности и диаграммой развертывания
- Описание сервиса канального уровня с диаграммой последовательности
- Описание прикладного уровня с диаграммой последовательности и скриншотами интерфейса
- Заключение: по пунктам решенные задачи и достигнутые результаты
- Список литературы. На каждый источник должна быть ссылка в тексте РПЗ
- 4 приложения: ТЗ, ПМИ, РП, РСА. У каждого приложения свой титульный лист
- Необходимо распечатать ТЗ полностью, а также титульный лист и задание курсовой. 1 экз на команду
- Титульные листы к РПЗ здесь
- ГОСТ (1.5 интервал, 1.25 см отступ, 14 пт и тд). Шрифт на рисунках должен быть такой же как в тексте.
- Все заголовки в курсовой должны быть с новой страницы через разрыв
- Параграфы должны быть минимум 300 слов
- Схемы не должны дублироваться в приложениях, если используются в РПЗ. Выносите в приложения очень большие диаграммы, которые не помещаются в РПЗ.
Примеры документации 2024 года
- Проверка оформления через Контроль ВКР testVKR через vpn
- Проверка на плагиат через antiplagiat
- Сначала сказать тему и цель работы, задачи каждого исполнителя.
- Далее каждый отвечает по своей части. Упор на сетевое взаимодействие: кто какие компоненты реализовал, какие протоколы использовал.
- Необходимо по каждой части объяснить: про Циклический код/код Хемминга (что это такое, для чего применяется), про протокол WebSocket (отличия от HTTP, преимущества и недостатки), про congestion control TCP и Kafka
- Быть готовым объяснить вашу работу на диаграмме последовательности или по коду вашего сервиса.
- Демонстрация выполняется на 3 компьютерах, объединненых в одну локальную сеть
- В демонстрации показать вкладку Network или консоль вашего сервиса. Вызывать методы вашего сервиса через
postman
/insomnia
.
- Что такое канал? Что такое прикладной уровень? Почему они так называются.
- Какого размер кадр? Какое максимальное количество ошибок в кадре можно исправить?
- Что такое сеть, что такое нагрузка?
- Модель OSI
Необходимо разработать систему обмена текстовыми сообщениями/файлами в реальном времени, состояющую из трех уровней: прикладной, транспортный и канальный. Каждый из уровней реализуется отдельным веб-сервисом.
Интерфейс реализован на React + Redux Toolkit + Axios + MUI, дизайн должен копировать сайт российской компании. Он представляет собой окно чата с возможностью ввода текстового сообщения или отправки файла. При подключении необходимо ввести имя пользователя (открытие WebSocket соединения), которое будет передаваться с каждым сообщением. При обновлении страницы история чата не сохраняется. С помощью кнопки выйти можно отчистить чат и логин (закрытие WebSocket соединения), чтобы потом сменить пользователя. Если сообщение пришло с признаком ошибки - текст/файл не отображается, а в чате отображается значок ошибки.
Для метода Send
формирует json сообщение с указанием отправителя, времени отправки и полезной нагрузки - текста или файла. При получении нового сообщения методом Receive
- json с указанием отправителя, времени отправки, признака ошибки и полезной нагрузки.
- Прикладной уровень WebSocket по шагам
- Мастер-класс WebSocket по шагам
- Методические указания по верстке и дизайну Figma. Инструкция по Figma MUI
- Обучающее видео по WebSocket, LongPolling, event sourcing
Текстовые сообщения или файлы разбиваются на сегменты по X байт и отправляются отдельными сегментами на канальный уровень.
При получении сегменты помещаются в очередь, раз в N секунд собираются в единое сообщение и передаются на прикладной уровень. Если часть из сегментов не была принята (1-3 цикла не было новых сегментов по этому сообщению), то на прикладной уровень итоговое сообщение передается с признаком ошибки.
Каждый пакет-сегмент представляет собой полезную нагрузку, времени отправки (как id сообщения), общую длину сообщения (количество сегментов), номер данного сегмента в сообщении.
- Транспортный уровень Kafka+Docker в Golang
- Мастер-класс Kafka Golang
- Пример работы с очередями Kafka в Python
- Ролик про межсервисное взаимодействие и очереди
Данный уровень эмитирует взаимодействие с удаленным сетевым узлом через канал с помехами. Для этого используется один из четырех вариантов кодирования передаваемых сообщений. Полученный от транспортного уровня json сегмента кодируется в битовый формат соответствующим кодом, вносятся ошибки и затем декодируется для последующей отправки обратно на транспортный уровень. Ошибка вносится в 1 случайный бит сегмента.
Сервис должен вносить ошибку с вероятностью P в передаваемую информацию и терять сообщения с вероятностью R. При декодировании либо пакет с ошибкой теряется, либо передается обратно на транспортный после исправления.
Пример: от транспортного уровня пришел сегмент 1000 бит, на канальном они кодируются [7,4] в кадр 1750 бит, в которые вносится ошибка, затем они снова декодируются в 1000 бит и передаются обратно на транспортный уровень в виде сегмента.
Отправка текста. Передаваемую информацию защитить передаваемую информацию циклическим [7,4]-кодом. Длина сегмента (X) 100 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 10%, вероятность потери кадра (R) 2%.
Отправка текста. Передаваемую информацию защитить передаваемую информацию циклическим [15,11]-кодом. Длина сегмента (X) 100 байт, период сборки сегментов (N) 1 секунд, вероятность ошибки (P) 10%, вероятность потери кадра (R) 2%.
Отправка текста. Передаваемую информацию защитить передаваемую информацию [7,4]-кодом Хэмминга. Длина сегмента (X) 200 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 10%, вероятность потери кадра (R) 2%.
Отправка текста. Передаваемую информацию защитить передаваемую информацию [15,11]-кодом Хэмминга. Длина сегмента (X) 200 байт, период сборки сегментов (N) 1 секунд, вероятность ошибки (P) 10%, вероятность потери кадра (R) 2%.
Отправка файла. Передаваемую информацию защитить передаваемую информацию циклическим [7,4]-кодом. Длина сегмента (X) 1000 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 11%, вероятность потери кадра (R) 2%.
Отправка файла. Передаваемую информацию защитить передаваемую информацию циклическим [15,11]-кодом. Длина сегмента (X) 2000 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 11%, вероятность потери кадра (R) 2%.
Отправка файла. Передаваемую информацию защитить передаваемую информацию [7,4]-кодом Хэмминга. Длина сегмента (X) 1000 байт, период сборки сегментов (N) 1 секунд, вероятность ошибки (P) 11%, вероятность потери кадра (R) 2%.
Отправка файла. Передаваемую информацию защитить передаваемую информацию [15,11]-кодом Хэмминга. Длина сегмента (X) 2000 байт, период сборки сегментов (N) 1 секунд, вероятность ошибки (P) 11%, вероятность потери кадра (R) 2%.
Отправка текста. Передаваемую информацию защитить передаваемую информацию циклическим [7,4]-кодом. Длина сегмента (X) 100 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 11%, вероятность потери кадра (R) 1%.
Отправка текста. Передаваемую информацию защитить передаваемую информацию циклическим [15,11]-кодом. Длина сегмента (X) 100 байт, период сборки сегментов (N) 1 секунд, вероятность ошибки (P) 9%, вероятность потери кадра (R) 1%.
Отправка текста. Передаваемую информацию защитить передаваемую информацию [7,4]-кодом Хэмминга. Длина сегмента (X) 150 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 8%, вероятность потери кадра (R) 1%.
Отправка текста. Передаваемую информацию защитить передаваемую информацию [15,11]-кодом Хэмминга. Длина сегмента (X) 100 байт, период сборки сегментов (N) 3 секунд, вероятность ошибки (P) 7%, вероятность потери кадра (R) 1%.
Отправка файла. Передаваемую информацию защитить передаваемую информацию циклическим [7,4]-кодом. Длина сегмента (X) 1000 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 11%, вероятность потери кадра (R) 1.4%.
Отправка файла. Передаваемую информацию защитить передаваемую информацию циклическим [15,11]-кодом. Длина сегмента (X) 1500 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 11%, вероятность потери кадра (R) 1.3%.
Отправка файла. Передаваемую информацию защитить передаваемую информацию [7,4]-кодом Хэмминга. Длина сегмента (X) 1800 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 11%, вероятность потери кадра (R) 1.2%.
Отправка файла. Передаваемую информацию защитить передаваемую информацию [15,11]-кодом Хэмминга. Длина сегмента (X) 1200 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 11%, вероятность потери кадра (R) 1.2%.
Отправка текста. Передаваемую информацию защитить передаваемую информацию циклическим [7,4]-кодом. Длина сегмента (X) 120 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 10%, вероятность потери кадра (R) 1.5%.
Отправка текста. Передаваемую информацию защитить передаваемую информацию циклическим [15,11]-кодом. Длина сегмента (X) 130 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 10%, вероятность потери кадра (R) 1.6%.
Отправка текста. Передаваемую информацию защитить передаваемую информацию [7,4]-кодом Хэмминга. Длина сегмента (X) 140 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 10%, вероятность потери кадра (R) 1.7%.
Отправка текста. Передаваемую информацию защитить передаваемую информацию [15,11]-кодом Хэмминга. Длина сегмента (X) 150 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 10%, вероятность потери кадра (R) 1.8%.
Отправка файла. Передаваемую информацию защитить передаваемую информацию циклическим [7,4]-кодом. Длина сегмента (X) 1200 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 11%, вероятность потери кадра (R) 2%.
Отправка файла. Передаваемую информацию защитить передаваемую информацию циклическим [15,11]-кодом. Длина сегмента (X) 1000 байт, период сборки сегментов (N) 1 секунд, вероятность ошибки (P) 11%, вероятность потери кадра (R) 2%.
Отправка файла. Передаваемую информацию защитить передаваемую информацию [7,4]-кодом Хэмминга. Длина сегмента (X) 1000 байт, период сборки сегментов (N) 1 секунд, вероятность ошибки (P) 12%, вероятность потери кадра (R) 1%.
Отправка файла. Передаваемую информацию защитить передаваемую информацию [15,11]-кодом Хэмминга. Длина сегмента (X) 1400 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 9%, вероятность потери кадра (R) 1%.
Отправка текста. Передаваемую информацию защитить передаваемую информацию циклическим [7,4]-кодом. Длина сегмента (X) 100 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 10%, вероятность потери кадра (R) 2%.
Отправка текста. Передаваемую информацию защитить передаваемую информацию циклическим [15,11]-кодом. Длина сегмента (X) 130 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 11%, вероятность потери кадра (R) 1%.
Отправка текста. Передаваемую информацию защитить передаваемую информацию [7,4]-кодом Хэмминга. Длина сегмента (X) 100 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 10%, вероятность потери кадра (R) 2%.
Отправка текста. Передаваемую информацию защитить передаваемую информацию [15,11]-кодом Хэмминга. Длина сегмента (X) 110 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 11%, вероятность потери кадра (R) 1%.
Отправка файла. Передаваемую информацию защитить передаваемую информацию циклическим [7,4]-кодом. Длина сегмента (X) 2000 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 9%, вероятность потери кадра (R) 2%.
Отправка файла. Передаваемую информацию защитить передаваемую информацию циклическим [15,11]-кодом. Длина сегмента (X) 2500 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 11%, вероятность потери кадра (R) 1%.
Отправка файла. Передаваемую информацию защитить передаваемую информацию [7,4]-кодом Хэмминга. Длина сегмента (X) 2300 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 11%, вероятность потери кадра (R) 1%.
Отправка файла. Передаваемую информацию защитить передаваемую информацию [15,11]-кодом Хэмминга. Длина сегмента (X) 2400 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 8%, вероятность потери кадра (R) 2%.
Отправка текста. Передаваемую информацию защитить передаваемую информацию циклическим [7,4]-кодом. Длина сегмента (X) 140 байт, период сборки сегментов (N) 1 секунд, вероятность ошибки (P) 10%, вероятность потери кадра (R) 2%.
Отправка текста. Передаваемую информацию защитить передаваемую информацию циклическим [15,11]-кодом. Длина сегмента (X) 130 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 11%, вероятность потери кадра (R) 2%.
Отправка текста. Передаваемую информацию защитить передаваемую информацию [7,4]-кодом Хэмминга. Длина сегмента (X) 120 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 8%, вероятность потери кадра (R) 2%.
Отправка текста. Передаваемую информацию защитить передаваемую информацию [15,11]-кодом Хэмминга. Длина сегмента (X) 100 байт, период сборки сегментов (N) 1 секунд, вероятность ошибки (P) 10%, вероятность потери кадра (R) 2%.
Отправка файла. Передаваемую информацию защитить передаваемую информацию циклическим [7,4]-кодом. Длина сегмента (X) 1000 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 11%, вероятность потери кадра (R) 3%.
Отправка файла. Передаваемую информацию защитить передаваемую информацию циклическим [15,11]-кодом. Длина сегмента (X) 3400 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 11%, вероятность потери кадра (R) 3%.
Отправка файла. Передаваемую информацию защитить передаваемую информацию [7,4]-кодом Хэмминга. Длина сегмента (X) 3200 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 11%, вероятность потери кадра (R) 3%.
Отправка файла. Передаваемую информацию защитить передаваемую информацию [15,11]-кодом Хэмминга. Длина сегмента (X) 3000 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 11%, вероятность потери кадра (R) 2%.
Отправка текста. Передаваемую информацию защитить передаваемую информацию циклическим [7,4]-кодом. Длина сегмента (X) 320 байт, период сборки сегментов (N) 1 секунд, вероятность ошибки (P) 10%, вероятность потери кадра (R) 2%.
Отправка текста. Передаваемую информацию защитить передаваемую информацию циклическим [15,11]-кодом. Длина сегмента (X) 100 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 10%, вероятность потери кадра (R) 3%.
Отправка текста. Передаваемую информацию защитить передаваемую информацию [7,4]-кодом Хэмминга. Длина сегмента (X) 300 байт, период сборки сегментов (N) 1 секунд, вероятность ошибки (P) 10%, вероятность потери кадра (R) 2%.
Отправка текста. Передаваемую информацию защитить передаваемую информацию [15,11]-кодом Хэмминга. Длина сегмента (X) 120 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 10%, вероятность потери кадра (R) 3%.
Отправка файла. Передаваемую информацию защитить передаваемую информацию циклическим [7,4]-кодом. Длина сегмента (X) 1500 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 11%, вероятность потери кадра (R) 2.5%.
Отправка файла. Передаваемую информацию защитить передаваемую информацию циклическим [15,11]-кодом. Длина сегмента (X) 1600 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 11%, вероятность потери кадра (R) 2.3%.
Отправка файла. Передаваемую информацию защитить передаваемую информацию [7,4]-кодом Хэмминга. Длина сегмента (X) 1700 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 11%, вероятность потери кадра (R) 2.2%.
Отправка файла. Передаваемую информацию защитить передаваемую информацию [15,11]-кодом Хэмминга. Длина сегмента (X) 1800 байт, период сборки сегментов (N) 2 секунд, вероятность ошибки (P) 11%, вероятность потери кадра (R) 2.4%.
-
Модель: создание модуля для операционной системы ROS для реализации протокола передачи по WebSocket команд по управлению роботом
- Поэтапный пример табличного редактора через WebSocket
- Пример мессенджера через WebSocket
- Пример реализации фронтенда.