Details
| Title | Backend-разработка сервиса облачного рендеринга: выпускная квалификационная работа бакалавра: направление 09.03.04 «Программная инженерия» ; образовательная программа 09.03.04_01 «Технология разработки и сопровождения качественного программного продукта» = Backend-development of cloud rendering service |
|---|---|
| Creators | Бутняков Сергей Андреевич |
| Scientific adviser | Коликова Татьяна Всеволодовна |
| Organization | Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности |
| Imprint | Санкт-Петербург, 2024 |
| Collection | Выпускные квалификационные работы ; Общая коллекция |
| Subjects | Golang ; PostgreSQL ; REST API ; gRPC ; рендеринг ; облако ; rendering ; cloud |
| Document type | Bachelor graduation qualification work |
| Language | Russian |
| Level of education | Bachelor |
| Speciality code (FGOS) | 09.03.04 |
| Speciality group (FGOS) | 090000 - Информатика и вычислительная техника |
| DOI | 10.18720/SPBPU/3/2024/vr/vr24-3382 |
| Rights | Доступ по паролю из сети Интернет (чтение, печать, копирование) |
| Record key | ru\spstu\vkr\30456 |
| Record create date | 7/11/2024 |
Allowed Actions
–
Action 'Read' will be available if you login or access site from another network
Action 'Download' will be available if you login or access site from another network
| Group | Anonymous |
|---|---|
| Network | Internet |
Данная работа посвящена решению проблемы отсутствия у некоторых пользователей мощностей для приемлемой скорости обработки 3D сцен в изображении. Целью данной работы является разработка сервиса, который позволит: - Использовать вычислительные мощности удалённых устройств; - Освободить графический процессор локальной машины для других задач; В рамках работы были проанализированы уже существующие решения, и их недостатки, технические средства и технологии. По результатам анализа было принято решение реализовать сервис на микросервисной архитектуре с использованием языка Golang, баз данных PostgreSQL и Redis, а также брокера сообщений RabbitMQ. Для осуществления взаимодействия с сервисом был сформирован и реализован интерфейс внешних приложений (API). В результате выполнения работы был разработан сервис, позволяющий отдать рендеринг 3D сцен из программы Blender в облако, тем самым, не нагружая свою локальную машину и освобождая её вычислительные мощности для других задач.
This work is devoted to solving the problem of some users’ lack of capacity for acceptable speed of processing 3D scenes into images. The purpose of this work is to develop a service that will: - Utilize the computing power of remote devices; - Free up the graphics processor of the local machine for other tasks; Within the framework of the work were analyzed already existing solutions, and their shortcomings, technical means and technologies. According to the results of the analysis it was decided to realize the service on microservice architecture using Golang language, PostgreSQL and Redis databases, as well as RabbitMQ message broker. An external application interface (API) was formed and implemented to realize the interaction with the service. As a result of the work was developed a service that allows you to give the rendering of 3D scenes from the program Blender in the cloud, thereby not burdening your local machine and freeing its computing power for other tasks.
| Network | User group | Action |
|---|---|---|
| ILC SPbPU Local Network | All |
|
| Internet | Authorized users SPbPU |
|
| Internet | Anonymous |
|
- ВВЕДЕНИЕ
- Цель и постановка задачи
- ГЛАВА 1. ОБЗОР И АНАЛИЗ СУЩЕСТВУЮЩИХ РЕШЕНИЙ
- 1.1. Fox Render Farm
- 1.2. Rebus Farm
- 1.3. iRender
- 1.4. Render Street
- 1.5. Анализ рассмотренных решений
- ГЛАВА 2. ОПРЕДЕЛЕНИЕ ТРЕБОВАНИЙ К РАЗРАБАТЫВАЕМОМУ СЕРВИСУ
- 2.1. Функциональные требования
- 2.2. Нефункциональные требования
- ГЛАВА 3. ОПИСАНИЕ ПРОГРАММНОГО ИНТЕРФЕЙСА СЕРВИСА (API)
- ГЛАВА 4. ПРОЕКТИРОВАНИЕ АРХИТЕКТУРЫ СЕРВЕРНОЙ ЧАСТИ
- 4.1. Монолитная архитектура
- 4.2. Микросервисная архитектура
- 4.3. Проектирование сервиса
- 4.3.1. Микросервис авторизации
- 4.3.2. Микросервис почты
- 4.3.2. Микросервис подписок
- 4.3.3. Микросервис заказов
- 4.3.4. Микросервис создания заказов
- ГЛАВА 5. СТЕК ТЕХНОЛОГИЙ И СРЕДСТВ РАЗРАБОТКИ
- 5.1. Язык программирования
- 5.1.1. Golang
- 5.1.2. Python
- 5.1.3. Java
- 5.1.4. C++
- 5.2. Средство разработки
- 5.3. База данных
- 5.3.1. Реляционная база данных
- 5.3.1.1. Строковые РБД
- 5.3.1.2. Колоночные РБД
- 5.3.2. Документо-ориентированная база данных
- 5.3.3. In-memory key-value база данных
- 5.4. Анализ существующих решений баз данных
- 5.3.1. Реляционная база данных
- 5.5. Брокер сообщений
- 5.6. Протокол общения
- 5.1. Язык программирования
- ГЛАВА 6. РАЗРАБОТКА СЕРВЕРНОЙ ЧАСТИ
- 6.1. Внутренняя архитектура микросервисов
- 6.2. Проектирование схемы базы данных
- 6.3. Реализация авторизации
- 6.4. Написание тестов
- 6.4.1. Модульное тестирование
- 6.4.2. Интеграционное тестирование
- ГЛАВА 7. АНАЛИЗ ПОЛУЧЕННЫХ РЕЗУЛЬТАТОВ
- 7.1. Полученный API
- 7.2. Перспективы дальнейшего развития
- ЗАКЛЮЧЕНИЕ
- СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ