Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа / Курсовая ТИМП.pdf
Скачиваний:
0
Добавлен:
08.08.2026
Размер:
6 Мб
Скачать

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

Соседние файлы в папке Курсовая работа