Вы находитесь на странице: 1из 2

Распределенный серверная платформа/приложение для бизнесс индустрии

Для чего создаётся:


- Для полноценного серверного решения (по сути серверный движок) в рамках игрового
бизнеса в Российской Федерации.
- При желании, продукт можно доработать определив новые модули для создания
дополнительного функционала необходимого заказчику
- Как продукт импортозамещения на рынке РФ, позволяющий применять серверные решения
в рамках поставленных задач от бизнеса (для начала - для игровой индустрии)

Характеристики:
- Написан на языке программирования Java
= Легко поддерживается
= Обратно совместимая (пока нет обратной совместимости, потому-что пока не
проработан устойчивый API интерфейс)
- Кроссплатформенный (может использоваться везде где есть Java)
= Windows OS
= Linux OS
= Mac OS
= При желании можно запустить на Java ME даже на Nokia ;) правда памяти не
хватит оперативной

Какие задачи решает (на примере игровой-бизнесс индустрии, примеры компаний:


mail.ru/innova.systems/wargaming):
1. Задачи серверной инфраструктуры в рамках игрвоого бизнеса
- Архитектура серверной части представляет из себя thread-safety решение
- Архитектура состоит из нескольких модулей, каждый модуль выполняет свою
роль (решает определённые задачи):
1. Прослойка для работы с БД (orm, валидация сущностей, автоматическая
кодогенерация репозиториев и т.д.)
2. Система миграций базы данных своя - fin-ex evolution (это её
название)
- Был написан для поддержки хранения нескольких схем в рамках
одной базы данных
3. Сетевое ядро основанное на netty легко расширяемое по принципу
цепочек обработки
- Имеет сериализацию и десериализацию в объектной форме - сетевых
пакетов
- Обработка данных пакетов по шаблону (pattern) команда (command)
4. ECS (entity-component-system) у игровых объектво для написания
игрвоой логики
5. Система прототипов для игровых объектов
6. Кластеризация посредством redis
7. Система инжектирования (inject) бинов (beans)
8. Событийная шина (локальная и распределённая)
9. (Пока не релаизовано - в процессе, самое главное "убер фича)
позволяющая накапливать огромные онлайны клиентов (игроков)) Асинхронная обработка
обновления игровых объектов во время тика, по средством разбиения мира на
динамические chunks (область/регион) в древовидной структуре (небалансном), где
разделителем выступает - радиус видимости от одного игрового объекта до другого
10. Математическая-геометрическая бибилотека (для работы с двухмерным и
трёхмерным пространством)

TODO (планируется добавить):


1. Модуль физического движка (поддержка реальных физических вычеслени
со стороны сервера) для того, чтобы реплецировать их клиентам, для достижения
одинаковго состояния у клиентов.
2. Сервер атворизации (авторизационный сервер) включает в себя:
- Первичный модул ьавторизации (логин-пароль)
- Вторичная авторизация полная поддержка TOTP (Time-based One-
time Password Algorithm)
- Работа с emails (отправка)
Возможно будет работать ещё и поддержка шаблонизации писем
3. Реле server (ещё не написан но в будущем он будет), удерживает 1
коннект, а реле распределяет куда направить конкретного клиента вашей компании (он
же игрок) куда коннектить.
4. AI (искусственный интеллект) server.
5. Container Server (с поддержкой транзакционности ПОЛНОЙ)
6. Web Panel для мониторинга всего кластера
Комментарий от разработчиков: Возможно вынесем туда и управление
нодами (узлы, которые могут быть как на одном сервере, так и на нескольких), в
каком состоянии и т.д.

TODO в далёком будущем:


6. Lobby server (где клиенты вашей компании могут находится, что-то
обсуждать кооперироваться друг с другом, пока ожидают чего либо в зависимости от
компании, например поиска комнаты для игры (если говорим о игровой индустрии))
7. Voice server (для кооперирования клирентов вашей компании между
собой - голосом аля скайп)
8. Chat server (для кооперирования клирентов вашей компании между собой
- посредством текста в чате аля месенджер)

Как работает:
1. Устанавливается на серверную машину (в зависимости от требований компании, можно
на несколько машин и т.д.)
2. Разработчики пишут connect часть на своём клиенте (какой выберет ваша компания,
опять же, если речь о игровой индустрии и бизнесе)
3. Запускают server, запускают client
4. Получает работоспособный продукт для дальнейшей продажи (в данном примере
имеется ввиду игроки - они же покупатели client)
5. Мы, самое главное - предоставляем свою техническую поддержку (исходный код
нашего решения и документацию)
6. Profit!!!!

Заметки:
1. Для компаний есть возможность приобрести продукт в целях research и local-
testing (исходный код для НЕ комерческого использования открыт)
2. При необходимости, модули можно расширить под нужды клиента и написать его
хотелки используя эту сетефую инфраструктуру

ГЛАВНОЕ, кроме базы данных PostgreSQL оно не поддерживает другие.


Причина - полное импортозамещение т.к. postgreSQL totaly free и полностью открыт
исходный код и разработан как раз для целей импортозамещения

Вам также может понравиться