Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проект / Лабы_Итог_Финал.docx
Скачиваний:
0
Добавлен:
12.03.2026
Размер:
3.87 Mб
Скачать

5. Серверная часть системы

5.1. Основные компоненты

API Gateway - единая точка входа

Request Validator - проверка и парсинг запросов

Priority Router - маршрутизация по очередям

Task Scheduler - планировщик заданий

Worker Pool - пул обработчиков

Business Logic Layer - ядро приложения

Database Layer - работа с данными

Response Builder - формирование ответов

5.2. Ролевая модель и запросы

Роли пользователей:

Гость (Guest) - неавторизованный пользователь

Пользователь (User) - зарегистрированный внешний пользователь

Модератор (Moderator) - внутренний пользователь с ограниченными правами

Администратор (Admin) - внутренний пользователь с полными правами

Система (System) - автоматические системные задачи

Группы запросов по ролям:

Группа A: Базовые запросы (для всех)

  • A1: Получение главной страницы

  • A2: Получение информации о системе

Группа B: Аутентификация (Гость → Пользователь)

  • B1: Регистрация нового аккаунта

  • B2: Вход в систему (аутентификация)

  • B3: Выход из системы

  • B4: Восстановление пароля

Группа C: Работа с контентом (Пользователь)

C1: Загрузка изображений

  • C1.1: Валидация файла

  • C1.2: Сохранение на диск

  • C1.3: Запись метаданных в БД

C2: Управление изображениями

  • C2.1: Просмотр списка своих изображений

  • C2.2: Удаление изображения

  • C2.3: Редактирование описания

C3: Публичный доступ

  • C3.1: Просмотр чужих публичных профилей

  • C3.2: Поиск пользователей

  • C3.3: Просмотр публичных галерей

Группа D: Администрирование (Модератор/Администратор)

D1: Просмотр статистики системы

D2: Управление пользователями

  • D2.1: Блокировка пользователя

  • D2.2: Разблокировка пользователя

  • D2.3: Просмотр активности пользователя

D3: Модерация контента

  • D3.1: Просмотр загруженного контента

  • D3.2: Удаление недопустимого контента

  • D3.3: Жалобы от пользователей

Группа E: Системные операции (Система/Администратор)

  • E1: Резервное копирование данных

  • E2: Очистка временных файлов

  • E3: Мониторинг производительности

  • E4: Проверка целостности системы

5.3. Приоритетная система очередей

Уровни приоритетов:

Приоритет 1 - системный:

  • Запросы от системных процессов

  • Критические операции (резервное копирование)

  • Макс. время обработки: 60 секунд

Приоритет 2 – Административный:

  • Запросы администраторов

  • Операции модерации

  • Макс. время обработки: 10 секунд

Приоритет 3 – Загрузка контента:

  • Загрузка файлов пользователями

  • Макс. время обработки: 5 секунд

Приоритет 4 – Просмотр контента:

  • Просмотр изображений

  • Поиск пользователей

  • Макс. время обработки: 3 секунд

Приоритет 5 – Аутентификация:

  • Регистрация, вход, выход

  • Макс. время обработки: 2 секунд

Правила определения приоритета:

Если user_role = "system" → Приоритет 1

Если user_role = "admin" → Приоритет 2

Если action = "upload_image" → Приоритет 3

Если action содержит "view" или "search" → Приоритет 4

Во всех остальных случаях → Приоритет 5

5.4. Обработка запросов

Ниже представлена блок-схема обработки запросов (рисунок 5-6).

Рисунок 5 – Обработка запросов

Рисунок 6 – Обработка запросов

Алгоритм работы планировщика:

Цикл обработки запросов

1. Проверить количество свободных воркеров

2. Если есть свободные воркеры:

2.1. Проверить Очередь 1 (системные)

2.2. Если не пуста: взять первый запрос → отдать воркеру

2.3. Иначе: проверить Очередь 2 (админские)

2.4. Если не пуста: взять первый запрос → отдать воркеру

2.5. Иначе: проверить Очередь 3 (загрузка)

2.6. Если не пуста: взять первый запрос → отдать воркеру

2.7. Иначе: проверить Очередь 4 (просмотр)

2.8. Если не пуста: взять первый запрос → отдать воркеру

2.9. Иначе: проверить Очередь 5 (аутентификация)

2.10. Если не пуста: взять первый запрос → отдать воркеру

3. Если все очереди пусты: ждать 100мс → повторить с шага 1