Разработка ведется на языке java
версии 10
. Приложение строится по принципу модульности для реализации которого
используются возможности jigsaw
и jlink
появившихся в java 9. Каждый модуль инкапсулирует в себе определенную часть
бизнес-процессов и таким образом расширяет общую функциональность системы.
Данный модуль является основой всей системы. Он реализует ряд базовых вещей необходимых для работы всей остальной системы. В модуле содержится библиотека контролов применяемых в системе. Реализован фасад через который эти контролы могут создаваться. Так же в данном модуле реализован контейнер управляющий выводом различных view объявленных в модулях. Еще одна задача возложенная на модуль kernel это единая точка входа для работы с сервером. То есть все запросы от модулей к серверу и все ответы сервера к модулям идут через ядро. В данном случае это обеспечивает возможность фиксации и отладки ошибок передачи данных. Так же модуль предоставляет ряд общих интерфейсов которые должны реализовать модули для создания общей конфигурации приложения.
Модуль загрузки приложения. Данный модуль является входной точкой при запуске приложения. Он предоставляет пользователю возможность установки серверов для подключения. Выводит форму авторизации пользователя и пускает пользователя к дальнейшей работе с приложением.
Вспомогательный модуль. Содержит общие для системы реализации некоторых классов. Например объект логгера для системы и объект ответов сервера.
Общение приложения с сервером строится по принципу REST. Для идентификации отдельных запросов используются токены пользователей. Данный модуль является точкой через которую проходят все запросы других модулей. Он занимается формированием необходимых заголовков для авторизации каждого запроса. Так же данный модуль реализует функционал получения токена для текущего пользователя и обновление этого токена когда он истекает.
Модуль реализует функции администрирования пользователей. Позволяет просматривать список имеющихся пользователей. А так же добавлять/удалять/редактировать информацию о пользователях.