Компонуемая бизнес-архитектура и PBC

Компонуемая бизнес-архитектура (англ. composable business architecture) — наиболее гибкий путь к расширению функциональных возможностей приложения с помощью рекомбинации отдельных блоков. Самой доступной аналогией может служить детский конструктор: соединяя отдельные детали различными способами, получаем фигуры для многих вариантов использования.

Иными словами, созданное по принципу «компонуемой бизнес-архитектуры» приложение должно состоять из отдельных блоков, которые можно реиспользовать для создания нового приложения без программирования.

Ключевые характеристики компонуемой бизнес-архитектуры:

  • модульность— оптимальный размер решения, лёгкое сопровождение, компоненты предназначены для первичной и повторной сборки решения в разных контекстах, чтобы обеспечить соответствие меняющимся бизнес-потребностям;
  • автономность— отдельные компоненты, минимум взаимозависимостей между ними;
  • оркеструемость — компоненты легко включаются в новые бизнес-процессы;
  • обнаруживаемость— компоненты сами включаются в каталог маркетплейса, легко выявляются и дают полную информацию о себе.

Приложение, состоящее из микросервисов, лишь частично соответствует принципу компонуемой архитектуры. Микросервисы можно использовать для создания нового приложения, но сделать это с небольшим объёмом кода (англ. low-code) и уж тем более совсем без программирования — не получится. Кода будет чересчур много.

Поэтому для реализации этого принципа нужны более крупные строительные блоки — Packaged Business Capabilities (PBC).

Проще говоря, большие решения для бизнеса состоят из набора PBC, а они в свою очередь — из набора микросервисов. Из этих строительных блоков бизнес и может строить большие решения.

Пример реализации компонуемой архитектуры — решения компании «Диасофт». Они называются платформами развития, состоят из наборов PBC и закрывают различные потребности бизнеса, например, работу на финансовых рынках, обслуживание корпоративных и розничных клиентов. Примеры таких платформ рассмотрим в конце курса.

PBC — это готовая, автономная бизнес-возможность, упакованная как сервис.

Бизнес — это возможности. PBC — программный компонент (мини-приложение), содержащий в себе реализацию набора этих возможностей. То есть строительный блок для создания цифрового двойника бизнеса.

PBC — это набор микросервисов, данных, методов программного интерфейса (API) и пользовательских диалогов, адаптивных или специфичных для каждого из каналов, где его планируется публиковать.

Это не просто набор, микросервисов, а бизнес-ориентированные компоненты, которые:

  • имеют чёткий бизнес-контракт
  • обеспечивают законченную функцию
  • могут использоваться в разных приложениях
  • управляются одной командой-владельцем

Как избежать дублирования?

  • Единый реестр компонентов — каталог всех доступных PBC.
  • Правила именования и версионирования — единые стандарты.
  • Ownership — каждая PBC имеет команду-владельца.
  • Архитектурный надзор — архитектурный совет утверждает новые компоненты.
  • Единые архитектурные принципы.

Архитектурные принципы — это фундаментальные правила, которые используются для принятия архитектурных решений и раскрывают способ их реализации на практике. На их основе разрабатывается структура типового приложения или, выражаясь образно, скелет приложения. Для каждого элемента структуры стандартизируется технологический стек.

Как определить правильный размер РВС?

  • PBC слишком мал, если для любого бизнес-пользователя нужны дополнительные PBC.
  • PBC слишком велик, если бизнес-пользователь использует (через API) лишь его отдельные части (микросервисы), никогда не обращаясь ко всему PBC напрямую.
  • PBC правильного размера, когда бизнес-заказчик может сразу же чётко связать его со своим бизнес-доменом на предприятии и быстро описать, чего от него ожидает.

Чем PBC отличается от классического микросервиса?

Критерий Микросервис PBC
Ориентация Техническая (например, «UserService) Бизнес-функция (например, «ManageCustomer)
Интерфейс Технический Бизнес-читаемый
Граница Техническая (например, «БД клиентов») Бизнес-домен (например, «Жизненный цикл клиента»)
Ответственность За техническую функцию За бизнес-результат
Имя CustomerDataService CustomerManagement
Понятен Разработчику Бизнес-аналитику, продукт-менеджеру

Почему недостаточно одних лишь микросервисов?

Почему «low-code платформы» не решают проблему для бизнес-пользователей?

Почему среды вроде Mendix, OutSystems, Microsoft Power Apps, где можно создавать приложения через визуальные конструкторы, без глубокого программирования, не работают в условиях хаотичной микросервисной архитектуры?

Ответ: Low-code платформы зависят от качества и понятности API.

Т.к. микросервисы имеют технические имена (UserManagementService_v2, AuthProxy), возвращают нестандартизированные данные и требуют сложной аутентификации, бизнес-пользователь не сможет их использовать.

Low-code работает только если сервисы — бизнес-читаемые, стандартизированные, документированные.

Решение — использовать комбинации таких «мини-приложений» (PBC), тогда каждое бизнес-подразделение, команда или отдельный бизнес-пользователь в рамках организации вполне сможет создавать собственные функциональные приложения с помощью композиционной платформы.