Система конвейерной обработки заявок на предоставление банковских продуктов и услуг
Ситуация
«СКБ ЛАБ» — дочерняя компания ПАО «СКБ-Банк», которая занимается разработкой и внедрением новых банковских технологий и сервисов. «СКБ-банк» входит в ТОП-100 банков России, головной офис расположен в Екатеринбурге.
Весной 2017 года перед компанией была поставлена задача по выбору платформ с открытым исходным кодом и подготовке на базе них унифицированного решения для массовой конвейерной обработки заявок на услуги банка. Ключевым требованием к решению была возможность внесения изменений в маршруты обработки заявок «на лету», без изменения программного кода и остановки конвейера.
В качестве базовых платформ были выбраны Camunda BPM, Apache ServiceMIX, CUBA Platform (сейчас Jmix) и CUBA Studio (сейчас Jmix Studio).
Решение
Платформа CUBA дала возможность максимально быстро реализовать основную функциональность и пользовательский интерфейс.
При этом платформа хорошо зарекомендовала себя как по возможностям горизонтального масштабирования, так и с позиций информационной безопасности. В кратчайшие сроки были выполнены требования по аутентификации через LDAP, защите трафика, настройке ролевой модели, предполагающей раздельный доступ к прикладным данным, к прикладным настройкам и к интерфейсам администрирования.
В описываемом программном решении основой конвейерной обработки выступает промышленное ядро системы автоматизированного исполнения бизнес-процессов Camunda BPM. При этом в ядре BPM производится только хранение шаблонов бизнес-процессов и запуск экземпляров процессов на исполнение. Логика вызова внешних сервисов, число которых постоянно растет, реализована на уровне Camel-адаптеров.
Связующим элементом между ядром BPM и Camel-адаптерами выступает конвейерный движок, выполненный в виде Java-приложения на платформе CUBA. Именно в нем реализованы настраиваемая логика хранения реквизитного состава маршрутизируемых объектов (заявок), настраиваемая логика параметров реализуемых продуктов, логика вызова внешних сервисов и прочие прикладные модули. Реализованная конвейерная платформа позволяет подключать новые сервисы настройками, по мере готовности технических модулей в интеграционном слое.
Особенности созданного решения:
- Каталог продуктов логически объединяет описание параметров конкретного банковского продукта (например, программы кредитования), параметров бизнес-процесса (ссылку на идентификатор шаблона в ядре BPM и набор базовых переменных процесса), параметров системы хранения (анкетные и финансовые данные по сопровождаемой сделке).
- Понятие «маршрутизируемый объект» является логической основой для всех взаимодействий в системе. В процессе конвейерной обработки каждый экземпляр маршрутизируемого объекта порождает связанный экземпляр процесса в ядре BPM и запрашивает его состояние (этап и параметры обработки) вплоть до завершения маршрута, описанного в шаблоне бизнес-процесса. При этом жизненный цикл экземпляра маршрутизируемого объекта значительно шире соответствующего цикла связанного экземпляра в ядре BPM. Для маршрутизируемого объекта определен фиксированный набор статусов, покрывающих технические этапы взаимодействия с ядром BPM и слоем Camel-адаптеров.
- Система хранения параметров призвана обеспечить унифицированное, иерархически структурированное хранение значений переменных/параметров конкретной предметной области. Например, параметр «Заявка» является базовым параметром по отношению к параметрам «Участники сделки» и «Условия сделки». А параметр «Физическое лицо» является базовым параметром для «Адреса проживания», «Контактной информации», «Сведений о доходах», «Кредитной истории» и т.д. Уровень вложенности параметров и количество реквизитов на параметре не ограничены и полностью регулируются настройками.
- Каталог внешних сервисов. В логике исполнения маршрутов бизнес-процессов для конкретной прикладной области требуется реализовать разный набор и разную последовательность вызова внешних сервисов. Каталог внешних сервисов хранит описание состава и структуры массивов входных и выходных переменных в разрезе конкретного сервиса. А через сочетание значений тегов конкретного элемента маршрута ядро BPM сообщает о том, вызов какого конкретно сервиса необходимо провести на текущем этапе, и ожидает результатов в виде присвоения новых значений переменным процесса.
- Система мониторинга визуализирует процесс конвейерной обработки, позволяя оперативно «спуститься вглубь», до уровня конкретной переменой процесса, принимающей конкретное значение на конкретном этапе обработки.
Результат
Осенью 2017 года решение было запущено в промышленную эксплуатацию, была начата конвейерная обработка по всем кредитным заявкам физических лиц, являющихся держателями зарплатных карт банковской группы.
Было подтверждено на практике, что программное решение, выполненное на базе платформ с открытым исходным кодом, удовлетворяет требованиям банка по всем ключевых ключевым показателям, включая:
- Стабильность работы,
- Производительность,
- Способность к горизонтальному масштабированию и соответствие требованиям информационной безопасности.
При этом открытость системы и полный доступ к исходным кодам обеспечивают оперативное внесение изменений и возможность дальнейшего развития. С вводом комплекса в промышленную эксплуатацию не только сократилось время рассмотрения кредитных заявок, но и значительно снизился уровень постоянных затрат (лицензионные отчисления, стоимость поддержки, затраты вычислительных ресурсов). Кроме того, появилась возможность применять конвейерный подход к процессам реализации банковских продуктов и услуг практически любого типа.