Архитектура

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/7a981f93-5912-4206-86f8-ba38600bb1a5/image1.png

Общее описание решения

  1. Описание процессов (маршрутов и алгоритмов) хранится в BPM Camunda. Это решение с открытым исходным кодом, экспертиза для работы с которым широко представлена на рынке труда и среди подрядных организаций. Позволяет использовать графический интерфейс для просмотра и ограниченного редактирования процессов.
  2. Пользовательский интерфейс для выполнения шагов процессов будет разработан отдельно, что позволит обеспечить оптимальный пользовательский опыт. Также такой подход гарантирует соблюдение требования брендбука или иных требований к дизайну продуктов компании.
  3. Сервис логики реализует исполнение процессов, выполняя роль оркестратора всех участвующих в выполнении конкретного шага систем. Также хранит состояние выполненных шагов, всю необходимую сопутствующую информацию и справочники.
  4. Интеграционные сервисы выполняют роль адаптеров между системой и внешним миром. Такой подход позволяет поддерживать работоспособность интеграций при изменении внешних систем или подключать новые внешние системы с минимальными изменениями в целевой системе.
  5. Keycloak интегрирован с ЕСУИД (или с Active Directory, это следует решить на этапе детализации проекта). Выполняет задачу сервера авторизации Oauth 2.0, что позволяет эффективно использовать преимущества микросервисного подхода. Авторизует пользователей на основе данных ЕСУИД.

Особенности предложенного подхода

  1. Оптимизация расходов на решение. Разработка выполняется только в той части, где она необходима:
    1. Описание процессов
    2. Логика выполнения процессов и сохранение состояния выполненных шагов
    3. Интеграционные адаптеры
    4. Пользовательский интерфейс

В той части, где возможно использовать готовые решения с доказанным уровнем надежности и функциональности, используются:

  1. BPM Camunda. Хранение и базовое администрирование процессов.
  2. Keycloak. Надежное и безопасное решение задачи авторизации и аутентификации.
  3. Выдача полномочий пользователям может быть выполнена средствами ЕСУИД (назначением групп доступ в AD). Такой подход снижает расходы на разработку (мы не создаем собственную реализацию ролевой модели) и эксплуатацию (процесс управления полномочиями остается стандартным).
  4. Добавление и редактирование процессов может быть выполнено после ввода решения в эксплуатацию любым Java разработчиком со знанием Camunda. Таким образом, для заказчика снижены риски, связанные с привязкой к какому-либо уникальному технологическому решению с единственным доступным исполнителем на рынке.
  5. Архитектура решения остается открытой для расширения как в части внутренних компонентов, так и в части новых интеграций.