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

Ситуация

Компания «СКБ ЛАБ» занимается полным циклом освоения, разработки, внедрения перспективных банковских технологий и является дочерней компанией ПАО "СКБ-банк", СКБ-банк входит в ТОП-100 банков России, головной офис расположен в Екатеринбурге. Весной 2017 года перед компанией была поставлена задача по выбору платформ с открытым исходным кодом и подготовке на базе этих платформ унифицированного решения, позволяющего осуществлять массовую конвейерную обработку продуктовых заявок с возможностью внесения изменений в маршруты обработки «на лету», без изменений в программном коде и без остановки конвейера. В качестве базовых платформ решения были определены:

Решение

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

В описываемом программном решении основой конвейерной обработки выступает промышленное ядро системы автоматизированного исполнения бизнес-процессов CAMUNDA BPM. При этом в ядре BPM производится только хранение шаблонов бизнес-процессов и запуск экземпляров процессов на исполнение. Логика вызова внешних сервисов, число которых постоянно растет, реализована на уровне Camel-адаптеров. Связующим элементом между ядром BPM и Camel-адаптерами выступает конвейерный движок, выполненный в виде Java-приложения на платформе CUBA. Именно в нем реализованы: настраиваемая логика хранения реквизитного состава маршрутизируемых объектов (заявок), настраиваемая логика параметров реализуемых продуктов, логика вызова внешних сервисов и прочие прикладные модули. Реализованная конвейерная платформа позволяет подключать новые сервисы настройками, по мере готовности технических модулей в интеграционном слое.

Ядро конвейерной обработки обладает следующей базовой функциональностью:

  • Каталог продуктов логически объединяет описание параметров конкретного банковского продукта (например, программы кредитования), параметров бизнес-процесса (ссылку на идентификатор шаблона в ядре BPM и набор базовых переменных процесса), описание параметров системы хранения (анкетные и финансовые данные по сопровождаемой сделке).
  • Понятие «маршрутизируемый объект», которое является логической основой для всех взаимодействий в системе. В процессе конвейерной обработки каждый экземпляр маршрутизируемого объекта порождает связанный экземпляр процесса в ядре BPM и опрашивает его состояние (этап и параметры обработки) вплоть до завершения маршрута, описанного в шаблоне бизнес-процесса. При этом жизненный цикл экземпляра маршрутизируемого объекта значительно «шире» соответствующего цикла связанного экземпляра в ядре BPM. Для маршрутизируемого объекта определен фиксированный набор статусов, покрывающих технические этапы взаимодействия с ядром BPM и слоем Camel-адаптеров.
  • Система хранения параметров призвана обеспечить унифицированное, иерархически структурированное хранение значений переменных/параметров конкретной предметной области. Например, параметр «Заявка» является базовым параметром по отношению к параметрам «Участники сделки» и «Условия сделки». А параметр «Физическое лицо» является базовым параметром для «Адреса проживания», «Контактной информации», «Сведений о доходах», «Кредитной истории» и т.д. Уровень вложенности параметров и количество реквизитов на параметре не ограничены и полностью регулируются настройками.
  • Каталог внешних сервисов. В логике исполнения маршрутов бизнес-процессов для конкретной прикладной области требуется реализовать разный набор и разную последовательность вызова внешних сервисов. Каталог внешних сервисов хранит описание состава и структуры массивов входных и выходных переменных в разрезе конкретного сервиса. А через сочетание значений тегов конкретного элемента маршрута ядро BPM сообщает о том, вызов какого конкретно сервиса необходимо провести на текущем этапе, и ожидает результатов в виде присвоения новых значений переменным процесса.
  • Система мониторинга визуализирует процесс конвейерной обработки, позволяя оперативно «спуститься вглубь», до уровня конкретной переменой процесса, принимающей конкретное значение на конкретном этапе обработки.

Результат

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

  • стабильность работы,
  • производительность,
  • способность к горизонтальному масштабированию, и поддержку требований информационной безопасности.
При этом открытость системы и полный доступ к исходным кодам обеспечивают оперативное внесение изменений и возможность дальнейшего развития. С вводом комплекса в промышленную эксплуатацию не только сократилось время рассмотрения кредитных заявок, но и значительно снизился уровень постоянных затрат (лицензионные отчисления, стоимость поддержки, затраты вычислительных ресурсов). Кроме того, появилась возможность применять конвейерный подход к процессам реализации банковских продуктов и услуг практически любого типа.