- •«Московский технический университет связи и информатики»
- •Документация на разработку мультимедийной информационной системы «ImageHub»
- •1. Описание предметной области
- •2. Требования к системе
- •2.1. Требования к структуре и функционированию системы
- •2.2. Функциональные требования
- •2.3. Нефункциональные требования
- •База данных
- •3.1. Архитектура бизнес-процесса получения контента
- •3.2. Процедура авторизации
- •4. База данных
- •4.1. Сущности мультимедийной информационной системы
- •4.2. Атрибуты сущностей
- •4.3. Приведение таблицы к первой нормальной форме
- •4.4. Приведение таблицы ко второй нормальной форме
- •4.5. Приведение таблицы к третьей нормальной форме
- •4.6. Примеры запросов
- •5. Серверная часть системы
- •5.1. Основные компоненты
- •5.2. Ролевая модель и запросы
- •5.3. Приоритетная система очередей
- •5.4. Обработка запросов
- •5.5. Расчет максимальной нагрузки
- •5.6. Механизмы обработки ошибок
- •6. Пользовательский интерфейс
- •7. Результат работы
База данных
База данных используется для хранения структурированных данных:
информация о пользователях;
учетные записи и данные авторизации;
метаданные изображений (название, описание, теги, категории);
связи между пользователями и изображениями;
ссылки (URL) на медиафайлы.
Object Storage
Объектное хранилище используется для хранения бинарных данных:
изображений;
мультимедийных файлов.
Object Storage оптимизировано для хранения и масштабируемой обработки больших файлов и используется для хранения самих изображений.
3.1. Архитектура бизнес-процесса получения контента
Запрос контента от клиента
Пользователь использует веб-приложение или мобильное приложение для запроса определённого контента (например, ленты изображений или результатов поиска). Клиент отправляет HTTP-запрос на сервер бизнес-логики.
Обработка запроса на сервере бизнес-логики
Сервер бизнес-логики принимает запрос от клиента и выполняет:
проверку подлинности пользователя;
проверку прав доступа;
обработку бизнес-правил.
После успешной обработки сервер бизнес-логики формирует запрос к базе данных для получения метаданных изображений.
Запрос метаданных к базе данных
Сервер бизнес-логики отправляет SQL-запрос в базу данных для получения информации о запрашиваемом контенте, включая:
идентификаторы изображений;
описания, теги, категории;
информацию об авторе;
путь или URL к медиафайлу в файловом или объектном хранилище.
База данных выполняет запрос и возвращает результат серверу бизнес-логики.
Ответ клиенту с метаданными
Сервер бизнес-логики формирует HTTP-ответ и передаёт клиенту метаданные изображений в формате JSON, включая URL или путь к медиафайлам.
На данном этапе медиафайлы не передаются, клиент получает только описание контента и ссылки на изображения.
Запрос медиафайла от клиента
После получения URL изображения клиент отправляет прямой HTTP-запрос на сервер хранения файлов, через сервер бизнес-логики.
Клиент отправляет запрос серверу бизнес-логики.
Сервер бизнес-логики запрашивает файл из файлового / объектного хранилища.
Полученный медиафайл сервер передаёт клиенту.
Отображение медиафайла пользователю
Клиент получает медиафайл (изображение) по HTTP-ответу и отображает его в пользовательском интерфейсе приложения.
3.2. Процедура авторизации
В системе используется ролевая модель управления доступом. Права пользователя определяются его ролью, которая назначается при регистрации или администрировании системы.
Авторизация осуществляется после успешной аутентификации пользователя (ввод логина и пароля или иного способа подтверждения личности). После авторизации сервер бизнес-логики определяет роль пользователя и предоставляет доступ только к разрешённым функциям системы. В таблице 6 представлены роли и их права.
Таблица 6 - Роли и права доступа
Роль |
Описание |
Основные права |
Незарегистрированный пользователь |
Пользователь без учетной записи |
Просмотр публичного контента, поиск изображений |
Зарегистрированный пользователь |
Пользователь с учетной записью |
Публикация изображений, лайки, комментарии, избранное |
Привилегированный пользователь |
Пользователь с расширенными возможностями |
Приоритетная публикация, доступ к расширенной статистике |
Заблокированный пользователь |
Пользователь с ограниченным доступом |
Просмотр контента без возможности взаимодействия |
Модератор |
Контроль пользовательского контента |
Модерация изображений, комментариев, блокировка пользователей |
Аналитик |
Анализ активности системы |
Просмотр статистики, отчетов и аналитических данных |
Разработчик |
Поддержка и развитие системы |
Доступ к логам, тестовым данным, API |
Тестировщик |
Проверка качества системы |
Доступ к тестовой среде, создание тестовых аккаунтов |
Техническая поддержка БД |
Обслуживание базы данных |
Мониторинг БД, резервное копирование, восстановление |
Администратор данных |
Ввод и корректировка данных |
Добавление и редактирование справочной информации |
Администратор |
Управление системой |
Управление пользователями, ролями и настройками |
Суперадминистратор (админ админа) |
Полный контроль |
Назначение администраторов, управление всеми правами |
Ниже представлено описание ролей:
1. Незарегистрированный пользователь
Пользователь, не прошедший процедуру регистрации. Имеет доступ только к просмотру общедоступного контента и использованию функций поиска без возможности взаимодействия с системой.
2. Зарегистрированный пользователь
Пользователь, прошедший регистрацию и авторизацию в системе. Может публиковать изображения, добавлять их в избранное, оставлять комментарии и взаимодействовать с контентом других пользователей.
3. Привилегированный пользователь
Расширенная версия зарегистрированного пользователя. Имеет дополнительные возможности, такие как приоритетная публикация контента, доступ к расширенной статистике и повышенные лимиты на загрузку изображений.
4. Заблокированный пользователь
Пользователь, доступ которого ограничен администратором или модератором. Может просматривать контент, но лишён возможности публиковать, комментировать и взаимодействовать с системой.
5. Модератор
Пользователь с правами контроля пользовательского контента. Может проверять и удалять изображения и комментарии, блокировать пользователей, а также рассматривать жалобы.
6. Аналитик
Роль, предназначенная для анализа работы системы. Имеет доступ к статистике посещений, активности пользователей и аналитическим отчётам без возможности изменения данных.
7. Разработчик
Пользователь, участвующий в разработке и сопровождении системы. Имеет доступ к логам, технической информации и API системы, но не управляет пользовательскими данными.
8. Тестировщик
Пользователь, отвечающий за проверку корректности работы системы. Имеет доступ к тестовой среде, может создавать тестовые данные и выявлять ошибки.
9. Техническая поддержка базы данных
Роль, отвечающая за техническое обслуживание базы данных. Имеет доступ к резервному копированию, восстановлению данных и мониторингу производительности БД без вмешательства в бизнес-логику.
10. Администратор данных
Роль, ответственная за ввод, обновление и корректировку справочной информации и контента системы. Не имеет прав на управление пользователями или системными настройками.
11. Администратор
Пользователь с расширенными правами управления системой. Может управлять пользователями, назначать роли, изменять настройки и контролировать работу системы.
12. Суперадминистратор (администратор администратора)
Высшая роль в системе. Имеет полный доступ ко всем функциям системы, включая назначение администраторов, управление ролями и конфигурацией системы.
Использование ролевой модели доступа позволяет:
обеспечить безопасность данных;
ограничить доступ к критическим функциям;
упростить администрирование системы;
повысить надежность и масштабируемость архитектуры.
