В декабре 2022 года в R‑Style Softlab стартовал масштабный проект по переводу одного из ключевых продуктов компании 一 автоматизированной банковской системы (АБС) на импортозамещенный стек. АБС представляет собой набор модулей для реализации различных направлений деятельности банка: обслуживания клиентов, работы с ценными бумагами и финансовыми инструментами, кредитования и работы с депозитами, выпуска отчетности и других.
Перед командой стояли следующие задачи: подобрать для каждого зарубежного продукта наиболее подходящий аналог из Реестра российского ПО, выполнить доработки системы для возможности работы с выбранными программными продуктами, протестировать и отладить работу системы. К августу 2023 года был подготовлен прототип, а также конвертер базы данных с Oracle на Postgres Pro. В конце марта 2024 года система вышла в тираж. Подробнее о проекте ー в нашем материале.
Федеральный закон «О безопасности критической информационной инфраструктуры Российской Федерации» от 26.07.2017 №187‑ФЗ предписывает переход на импортонезависимые автоматизированные банковские системы (АБС) до 1 января 2025 года системно значимых кредитных организаций в России.
С одной стороны, учитывая высокую долю банков среди клиентов компании, решение о разработке было необходимым. С другой ー процесс перехода кредитной организации может занимать от полугода до нескольких лет, поэтому одним из важных требований к будущей системе была возможность поэтапного перехода, чтобы обеспечить непрерывную работу банка и плавную замену ПО и оборудования на российские. Например, возможность заменить только операционную систему на серверах приложений или рабочих станциях пользователей или заменить используемую СУБД.
Еще одним аргументом в пользу разработки импортозамещенного решения был запрос со стороны банков. По словам экспертов, для банка проект собственной разработки АБС на российском стеке с нуля занял бы 3‑5 лет и потребовал более 1,5 млрд рублей.
Программная часть, на которой строится работа АБС, включает операционную систему, СУБД, офисный пакет, сервер приложений, а также комплект средств разработки. До 2023 года конфигурация строилась на продуктах MS Windows, Oracle, MS Office, сервере приложений Apache Tomcat и Oracle JDK.
Для разработки импортозамещенного решения были выбраны следующие российские продукты:
Учитывая сжатые сроки, перевести ядро АБС на нативный Linux, даже частями, в рамках данного проекта оказалось невозможно. Поэтому было принято решение использовать зарегистрированное в Реестре российского ПО Wine@Etersoft, позволяющее запустить приложения Windows в операционных системах семейства Linux.
В рамках этой задачи команда проекта столкнулась с некоторыми сложностями, например, в Wine не реализована функция LogonUser для запуска процесса от имени определенного пользователя. Для этого было необходимо переделать алгоритм запуска процессов.
Также оказалось, что при запуске приложений в Wine требуется больше памяти из‑за способа загрузки некоторых DLL. В Wine все DLL загружаются как частные, а в Windows системные DLL являются разделяемыми. Из‑за этого частный набор памяти процесса в Windows ниже.
В текущей версии продукта на зарубежном стеке технология формирования отчетных форм предполагала использование ActiveX‑объектов Excel и Word. Для его замены был выбран инструмент Apache POI, который позволил формировать документы без привлечения Excel и Word. При этом был изменен способ открытия сформированного файла. Вместо прямого запуска Excel или Word идет вызов функции ShellExecute, и операционная система стартует приложение, ассоциированное с файлами такого типа. Несмотря на то, что система работает в Wine, для отображения отчетов временно используется офисный пакет для Linux.
RS‑Bank v.6 взаимодействует с Oracle через ODBC‑драйвер, что позволяет избежать изменений в механизмах работы с базой данных. Для работы с PostgreSQL также используются функции API ODBC, однако это лишь немного упростило работу.
Основная сложность состояла в том, что в прикладных местах, где происходит выполнение SQL‑запросов, текст запроса мог быть как в ANSI‑формате, так и в формате, специфичном для Oracle. Для решения этой задачи был разработан конвертер, который, в случае необходимости, во время выполнения SQL‑запроса преобразовывает его в формат, понятный PostgreSQL.
После доработок некоторые SQL‑запросы автоматически заработали на PostgreSQL, другие требовали изменений для правильной обработки. Часть запросов, около 20%, была переписана вручную в связи с ограничениями конвертера.
Другими важными этапами проекта стали адаптация функциональности пунктов меню на Postgres Pro, доработка инсталлятора и апгрейдера АБС, доработка сервера приложений, терминала, а также доработки JEE‑приложения, криптографии, взаимодействия с HASP, инструмента построения отчетов.
Поэтапная конвертация кода приводила к проблемам в тестировании: уже исправленные ошибки иногда возникали снова и требовали многократных проверок. Качественно провести все необходимые работы в срок помогло применение автотестов, а также плотное командное взаимодействие.
В настоящее время выполняется нагрузочное тестирование всех подсистем АБС на Oracle и на Postgres Pro, а также сравнение получившихся результатов с эталонными показателями. Результаты нагрузочного тестирования будут предоставлены в начале июня.
Михаил Мальцев
Руководитель проекта по миграции RS‑Bank v.6 на отечественный стек
Значительную роль в успешной реализации проекта сыграл управленческий фактор. Часть задействованных сотрудников обладали многолетней экспертизой, другая 一 пришла в компанию под задачи проекта. За короткое время удалось не только собрать команду мотивированных и компетентных специалистов, но также выстроить процессы обучения и распределения задач, что позволяло двигаться в соответствии с графиком проекта и завершить работы в срок.
Занял проект по миграции RS‑Bank
В активной команде проекта
Михаил Мальцев
руководитель проекта по миграции RS‑Bank v.6 на отечественный стек
Мультиплатформенная автоматизированная банковская система на российском технологическом стеке. Работает на СУБД Postgres Pro.
Подробнее об услугеУзнать подробнее о продукте или заказать бесплатную демонстрацию системы вы можете на странице продукта
На страницу RS‑Bank v.6