mybpm!
Скачать в формате: PDF pdf DOCX word

Схема работы платформы MyBPM

(Далее номера в круглых скобках обозначают индексы на картинке выше)

Основной алгоритм внесения изменений на платформе

Если нужно изменить данные на платформе, то срабатывает следующая последовательность:

  1. Платформа делает изменение в MongoDB.

  2. Если это удалось,

  3. То записывается данное изменение в Kafka.

  4. Дальше срабатывают все Kafka-Consumer-ы, которые отслеживают это изменение, и синхронизируют другие компоненты системы.

Желательно Kafka-Consumer-ы выносить на отдельные сервера, как показано на рисунке под пунктом (7).

Описание работы платформы MyBPM

Пользователь (1) открывает браузер (2) и указывает адрес Web-компонента (3) платформы MyBPM. Браузер загружает HTML и JS с Web-компонента и запускает работу клиентской программы на языке JavaScript, который собран с помощью библиотеки Angular от корпорации Google.

Web-компонент (3) не содержит в себе никакого состояния (Stateless) и поэтому можно запустить несколько его инстанций на случай если одна не будет справляться с нагрузкой.

Пользователь (1) видит интерфейс в браузере (2) и начинает работать с системой. Чтобы система смогла получить данные, клиентская часть (3) вызывает Rest-запросы к компоненту API (4) по Web API, который предоставляет компонент API как показано на рисунке выше.

Компонент API (4) - это приложение на языке Java с использованием библиотеки Spring Boot, которое предоставляет различные сервисы для окружающих компонентов (от сюда название API).

Компонент API (4) не содержит в себе никакого состояния (Stateless) поэтому можно запустить несколько его инстанций, на случай если одна не справляется с нагрузкой.

Так как компонент API (4) не содержит в себе состояние, то ему необходимы базы данных, где это состояние будет храниться. К компоненту API (4) необходимо подключить пять типов баз данных: MongoDB, Kafka, ElasticSearch, Zookeeper, PostgreSQL.

С платформой работают внешние сторонние системы (6) для этого на платформе предусмотрен внешний API (5).