Перейти к содержанию

Описание общей архитектуры приложения#

Приложение построено по 3х звенной модели

Клиент - Сервер приложений - Сервер БД

Взаимодействие клиентской и серверной части приложения осуществляется на основе веб-протоколов (http(s), webSocket и др.). Каждый веб-сервис определяет свой набор публичных программных интерфейсов (API) в виде путей относительно адреса приложения, по которым клиент может обращаться к нему. Например, /api/v1.0/service/ - путь для обращения к веб-сервису service. Обращение к веб-сервисам чаще всего происходит с помощью http-запросов.

Клиент#

Клиентская часть представляет собой браузерное html5-приложение на основе различных библиотек и пакетов, написанное на языке javascript.

Сервер приложений.#

Сервер приложений имеет микросервисную архитектуру и может быть адаптирован для запуска в облаке

Серверная архитектура

На подробной схеме представлены веб-сервисы приложения Lexema. Веб-сервисы представляют собой самостоятельные приложения на базе экосистемы Node.js и фреймворка Koa. Каждый веб-сервис реализует строго определённый функционал и не зависит от реализации других веб-сервисов. Исходя из выполняемой ими функции, веб-сервисы могут обращаться к другим веб-сервисам приложения Lexema и к различным используемым технологиям. Например, к хранилищу Redis или к хранилищу данных.

В блоке каждого сервиса перечислены их API в виде типа запроса и адреса, по которому этот запрос прослушивается сервисом. Большими стрелками указано взаимодействие между сервисами с помощью сервисной шины.

Обязательные веб-сервисы :

  • entrypoint - Точка входа для клиентов
  • config - Сервис конфигурации
  • logic - Сервис логики
  • gate - Сервис входа (аутентификации)
  • radio - Сервис взаимодействия реального времени
  • lock - Сервис пессимистического блокировщика
  • data - Сервис доступа к данным и процедурам хранимым в БД
  • RabbitMQ - Сервер RabbitMQ служит шиной обмена данными между веб-сервисами. Сервисы используют его механизмы (сообщения и очереди сообщений) для оповещения друг друга.
  • Redis -Для хранения различной системной информации используется высокоскоростное хранилище данных Redis

Опциональные веб-сервисы :

  • post - Сервис электронной почты и смс сообщений
  • jsreport - Сервис jsreport предназначен для работы с отчетами jsreport.
  • preview - Сервис превью предназначен для конвертации файлов в файлы в формате pdf, которые можно просматривать в контроле FilePreview.
  • lexema-dss - Сервис для работы с ОЭП выпускаемыми клиентом

Сервер БД#

В качестве сервера баз данных используется MS SQL или PostgreSQL