Реферат 2
Введение 5
1 Разработка спецификации требований 6
1.1 Анализ существующих аналогов 6
1.2 Описание особенностей реализации 7
1.3 Разработка прецедентов 7
1.4 Выводы по главе 10
2 Проектирование 11
2.1 Определение сущностей разрабатываемой системы 11
2.2 Выбор архитектуры 12
2.3 Проектирование микросервиса «API шлюз» 14
2.3.1 Разработка HTTP методов 14
2.3.2 Диаграмма последовательности 21
2.4 Проектирование микросервиса «MonopolyUsersService» 22
2.4.1 Процесс авторизации 22
2.4.2 Описание удалённых процедур 24
2.5 Проектирование микросервиса «MonopolyLobbiesService» 25
2.5.1 Описание удалённых процедур 25
2.5.2 Инициализация игровой сессии 28
2.6 Проектирование микросервиса «MonopolyGameService» 29
2.7 Проектирование структуры базы данных 32
2.8 Выводы по главе 33
3 Реализация и тестирование 34
3.1 Разработка 34
3.1.1 Разработка микросервисов «MonopolyGameService» и «API шлюз» . 34
3.1.2 Разработка микросервисов «MonopolyUsersService» и
«MonopolyLobbiesService» 36
3.2 Тестирование 37
3.3 Развёртывание 37
3.4 Выводы по главе 40
Заключение 41
Список использованных источников 42
ПРИЛОЖЕНИЕ А Правила и особенности игры 44
ПРИЛОЖЕНИЕ Б Образцы JSON структур тел HTTP запросов и ответов 56
ПРИЛОЖЕНИЕ В Proto структура «UsersMicroservice» 60
ПРИЛОЖЕНИЕ Г Proto структура «LobbiesMicroservice» 63
ПРИЛОЖЕНИЕ Д Proto структуры «GameMicroservice» и
«MonopolyGameMessages» 69
«Монополия» — одна из самых известных настольных игр, концепция которой не нуждается в представлении. Целью работы является программная клиент-серверная реализация игры по мотивам классической «Монополии», а в частности, её серверная часть. Серверная часть должна отвечать требованиям гибкости в изменении игровых условий, высокой отказоустойчивости и масштабируемости.
Решаемые задачи отражены в структуре работы:
Первая глава посвящена рассмотрению существующих аналогов в предметной области, анализу слабых и сильных сторон существующих реализаций, описанию игрового процесса. На основании этого в первой главе формируется спецификация требований к серверному приложению.
Вторая глава посвящена разработке архитектуры системы, структуры базы данных и алгоритмам обработки игровых механик.
Третья глава посвящена описанию процессов и средств разработки и тестирования, в ней так же приводится информация о сборке и развёртыванию серверной системы.
В результате проделанной работы было выполнено проектирование серверной системы для многопользовательской игры «Монополия» с использованием принципов микросервисной архитектуры и современных подходов. В процессе проектирования была разработана архитектурная схема, описаны HTTP методы, описаны способы и методы межкомпонентного взаимодействия, разработан ряд UML диаграмм.
На основании результатов проектирования была разработана серверная система, состоящая из нескольких компонент — микросервисов. Для каждого микросервиса выбраны подходящие современные средства разработки.
На фоне аналогов разработанная серверная систем, вкупе с клиентским приложением имеет ряд характерных особенностей, уникальную реализацию игрового процесса, систему игровых комнат и рейтинговых игр.
Выбранный тип архитектуры разработанного приложения позволит легко проводить дальнейшую разработку.