Реферат 2
ВВЕДЕНИЕ 8
1 Определение и фиксация требований 10
1.1 Функциональные требования 10
1.2 Нефункциональные требования 13
1.3 Модель предметной области 14
2 Инструменты разработки серверной части 23
2.1 Язык программирования 23
2.2 База данных 23
2.3 Flyway: управление миграциями баз данных 23
2.4 Hibernate 24
3 Архитектура проекта 25
3.1 Модель данных 26
3.1.1 Сущность 26
3.1.2 Объект передачи данных 27
3.2 Репозиторий 27
3.3 Сервисный слой 28
3.4 Контроллер 29
3.5 Обработка исключений 29
3.6 Сборка 29
3.7 Спецификация запросов 30
4 Реализация серверной части 31
4.1 Схема базы данных 31
4.2 Компонент управления пользователями 31
4.3 Компонент управления контентом 40
4.4 Компонент управления комментариями 49
4.5 Компонент управления загрузкой файлов 52
4.6 Компонент обработки ошибок 53
4.7 Интеграция с сервисом “Brightcove” 54
4.8 Интеграция с сервисами “Amazon” 54
5 Модульные тесты 55
ЗАКЛЮЧЕНИЕ 56
ЛИТЕРАТУРА 57
Приложение А. Акт о внедрении 58
Актуальность работы связана с идеей разработать образовательную платформу, направлением которой является предоставление пользователям видео-курсов. Для реализации системы необходимо подобрать такие технологии, которые позволят в будущем выдерживать большие нагрузки, а также она должна быть расширяема.
Цель диссертационной работы - проектирование и разработка серверной части веб-приложения The Nest.
Для достижения цели необходимо решить следующие задачи:
• выполнить анализ предметной области;
• формализовать требования;
• спроектировать общую архитектуру серверной части;
• спроектировать схему базы данных;
• спроектировать и реализовать компонент управления пользователями;
• спроектировать и реализовать компонент управления контентом;
• спроектировать и реализовать компонент управления
комментариями;
• спроектировать и реализовать компонент управления загрузкой файлов;
• спроектировать и реализовать компонент обработки ошибок;
• написать модульные тесты.
Для разработки серверной части веб-приложения используется язык программирования Java, паттерн Model View Controller (MVC). Такой подход позволяет разбить код на такие слои как: слой доступа к данным, сервисный слой и контроллер, что позволит многократно повысить читаемость, масштабируемость и поддерживаемость кода. Также для упрощения создания такой структуры, на ряду с Java используется Spring Framework, в котором есть модуль Spring MVC. Так как система подразумевает автоматизацию бизнес решения описанного выше, необходимо внедрить систему безопасности, которую может предоставить модуль Spring Security. Подход к взаимодействию клиента и сервера будет осуществляться с помощью REST технологии (Representational State Transfer) - архитектурный стиль взаимодействия компонентов распределенного приложения в сети. Для того чтобы ускорить процесс интеграции серверной и клиентской части, существует библиотека (Swagger), позволяющая создавать документацию для этого, более того имеет пользовательский интерфейс для улучшения понимания работы с серверной частью.
В ходе работы получены следующие результаты:
• формализованы требования;
• спроектирована общая архитектура серверной части;
• спроектирована схема базы данных;
• спроектирован и реализован компонент управления пользователями;
• спроектирован и реализован компонент управления контентом;
• спроектирован и реализован компонент управления комментариями;
• спроектирован и реализован компонент управления загрузкой файлов;
• спроектирован и реализован компонент обработки ошибок;
• написаны модульные тесты.
Цель работы - разработка серверной части веб-приложения The Nest - достигнута.