Дипломна работа

Архитектурни шаблони за производителност и надеждност в Serverless / Microservices платформа за онлайн игри | Защитена на: 01/01/1900

Проектирането и създаването на уебсайтове и платформи за онлайн игри е нелека задача, с която трябва да се справят програмистите, сблъскали се с уеб технологиите. Опитни или не, разработчиците са изправени пред два важни въпроса: „Надеждна ли е системата?“ и „Ще работи ли достатъчно бързо, за да удовлетвори потребителските нужди за бързодействие?“ Съществуващите монолитни архитектури, при които системата се управлява и внедрява като една черна кутия, са непосилни да се справят с пиковото натоварване в определени времеви интервали. Стремежът да изградят надеждни системи поражда търсенето и създаването на различни гъвкави архитектури, които да преодолеят органиченията на тези системи.
С течение на времето се появява идеята за разделяне на монолитните архитектури на малки части, които си взаимодействат. Така се формира и прилага шаблона за микроуслугите (Microservices). Той дефинира разпределяне на системата на множество малки взаимодействащи си услуги, но усложнява процеса по комуникация между тях. Прехвърлянето на информация помежду им също е сложен процес, който резултира в синхронна комуникация и забавяне на отговора на потребителските заявки. От друга страна, микроуслугите често се внедряват в отделни изчислителни инстанции, за да са независими помежду си, но като страничен ефект се наблюдават увеличени разходи за инфраструктурна поддържка.
С цел намаляване на изразходените средства, когато системите са неактивни, се появяват Serverless услугите. При тях грижата и управлението на инфраструктурата се поема от доставчиците на облачни услуги, за да се облекчи работата на разработчиците. Поради факта, че са нова технология, все още рядко се използват в реални системи и по-често обслужват малки части от тях.
В дипломната работа се описва дефинирането и прилагането на архитектурен шаблон за създаване на Serverless / Microservices платформа за онлайн игри под формата на въпросници. Разработчиците на платформи от този тип се грижат за едни и същи ключови характеристики като надеждност, наличност, сигурност и бързодействие, без значение от конкретиката на платформата за игра. Затова основният фокус на труда е изследването на спецификите на онлайн софтуера и откриването на добри практики за цялостното му изграждане.
В дипломната работа се разглеждат съществуващите системи за онлайн игри-въпросници като се описват техните функционални характеристики. На тяхна база се осъществява анализ на важните функционалности за този тип игри. Част от тях се обособяват като архитектурни драйвери при проектирането и реализирането на
платформата за онлайн игри. Прави се кратък анализ на съществуващите технологии, за да се изберат подходящите средства за създаването ѝ.
Същинската част от изследването се предхожда от описанието на концептуалния модел на реализацията. В детайли са изложени функционалните и качествените изисквания към нея. Всички те ще станат основа за проектирането ѝ. Дефинирането на нефункционалните изисквания позволява да се предложи и опише архитектурен шаблон, който да ги удовлетворява. Той съчетава в себе си предимствата на водещите технологии и изпитаните архитектурни стилове. Идеята на шаблона е създаването на микроуслуги (Microservices), които са внедрени в облачното пространство като Serverless системи, за да предостави надеждна игрова среда за потребителите. Разпределянето на функционалностите на системата по различни виртуални сървъри, допринася за по-качественото обслужване на играещите. Поддръжката на сървърите се делегира на специализираните доставчици на облачни услуги, за да се избегне нуждата от човешка намеса при работата на крайната система.
В дипломната работа се описва също и процеса по проектиране и реализация на отделните микроуслуги, съставящи платформата за онлайн игри-въпросници. Отделя се специално внимание и върху проектирането на хранилищата за данните заради прякото им влияние върху бързодействието на системата. За да се верифицира изграденото програмно решение, се извършва и описва тестване на отделните подсистеми и връзките помежду им с помощта на специализирани средства.

Scroll to Top