- •Введение
- •1 ТЕХНИЧЕСКИЙ ПРОЕКТ
- •1.1 Обзор предметной области
- •1.2 Выбор типа базы данных
- •1.3 Выбор средств разработки для создания приложения
- •2 ОЦЕНКА РИСКОВ
- •2.1 Оценка рисков для построения информационной системы
- •2.2 Меры по предотвращению возможных рисков
- •3.1 Информационная модель
- •3.2 Функциональная модель
- •3 ПРОЕКТИРОВАНИЕ
- •3.3 Структурная модель
- •4 РЕАЛИЗАЦИЯ
- •4.1 Базы данных
- •4.2 Резервное копирование данных
- •4.3 Серверная часть
- •4.4 Клиентская часть
- •5 ТЕСТИРОВАНИЕ ИНФОРМАЦИОННОЙ СИСТЕМЫ
- •5.1 План тестирования
- •5.2 Тестирование
- •Заключение
- •Список использованных источников
4 РЕАЛИЗАЦИЯ
Для реализации онлайн-кинотеатра «Кируан» была выбрана трёхуровневая клиент-серверная архитектура. Это классическая схема, в
которой приложение делится на три самостоятельных уровня: представления,
приложения и данных. Такое разделение позволяет развивать каждый уровень отдельно от остальных. Например, можно обновить интерфейс плеера или изменить способ хранения видеофайлов, не переписывая всю систему целиком.
Первый уровень – уровень представления. Это веб-приложение, которое работает в браузере пользователя. Оно отвечает за интерфейс: отображает каталог фильмов, страницу фильма с выбором аудиодорожки и субтитров,
форму оплаты подписки, ли. Уровень представления не хранит данные локально и не имеет прямого доступа к базе. Он только запрашивает информацию у сервера (какие фильмы доступны, активна ли подписка) и
отправляет туда действия пользователя (поиск, покупка подписки, выбор озвучки).
Второй уровень – уровень приложения. Это серверная часть, которая принимает запросы от клиента, проверяет авторизацию, а также определяет,
имеет ли пользователь право на просмотр контента (роль гостя, подписчика или администратора). Здесь происходит обработка платежей, управление подписками, ведение логики поиска, формирование списка доступных аудиодорожек и субтитров, а также администрирование каталога. Сервер является единственной точкой входа в систему: клиент обращается только к нему, а прямой доступ к базе данных извне закрыт.
Третий уровень – уровень данных. Здесь располагается реляционная база данных, в которой хранится вся информация: о пользователях (логины,
хэши паролей, роли), о подписках (даты начала и окончания, статус), о
фильмах (название, описание, год, путь к видеофайлу), об аудиодорожках и субтитрах (язык, путь к файлу).
28
В онлайн-кинотеатре клиент отправляет на сервер синхронные HTTP-
запросы при переходе по ссылкам или отправке форм. Сервер проверяет сессию пользователя, при необходимости обращается к базе данных,
выполняет бизнес-логику и возвращает полностью сформированную HTML-
страницу.
4.1Базы данных
Всоответствии со спроектированной в нотации IDEF1x
информационной моделью (пункт 3.1), в СУБД Microsoft SQL Server была реализована физическая схема базы данных онлайн-кинотеатра «Кируан». Для каждой сущности на диаграмме, была построена одноименная таблица,
атрибутам заданы соответствующие им типы данных, определены первичные
(PRIMARY KEY) и внешние ключи (FOREIGN KEY) (рисунки 4.1 – 4.5).
Рисунок 4.1 – Созданная таблица «Users»
29
Рисунок 4.2 – Созданная таблица «Subscriptions»
Рисунок 4.3 – Созданная таблица «Movies»
Рисунок 4.4 – Созданная таблица «Audio_tracks» 30
Рисунок 4.5 – Созданная таблица «Subtitles»
4.2 Резервное копирование данных
Для реализации механизма резервного копирования базы данных онлайн-кинотеатра был разработан скрипт на языке bash. Скрипт предназначен для автоматического создания резервной копии БД Microsoft SQL Server,
работающей в контейнере Docker.
В начале своей работы скрипт проверяет, запущен ли контейнер с базой данных, и определяет его идентификатор. Если контейнер не работает,
выполнение прерывается с соответствующим сообщением. Далее скрипт создаёт локальную директорию для хранения резервных копий, если она ещё не существует. Затем внутри контейнера создаётся служебная папка, в которую будет помещён файл бекапа.
Скрипт автоматически определяет путь к утилите sqlcmd внутри контейнера и запускает команду BACKUP DATABASE с параметрами INIT (перезапись существующего файла), COMPRESSION (сжатие) и CHECKSUM (контроль целостности). Имя резервной копии формируется из имени базы данных и временной метки, что позволяет сохранять историю бекапов.
Готовый файл с расширением .bak сохраняется сначала в контейнере, а затем оказывается в локальной папке backups на хост-машине.
31
