Перевод АБС RS-Bank v.6 на отечественный стек технологий

Операционная система

СУБД

Офисный пакет

Сервер приложений

Axiom JDK

В декабре 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.
Для разработки импортозамещенного решения были выбраны следующие российские продукты:
- ОС Astra Linux под Wine
- СУБД Postgres Pro
- Офисный пакет Р7‑Офис
- Сервер приложений Libercat
- Axiom JDK
Основные этапы проекта
1. Адаптация системы для возможности работы в ОС Linux
Учитывая сжатые сроки, перевести ядро АБС на нативный Linux, даже частями, в рамках данного проекта оказалось невозможно. Поэтому было принято решение использовать зарегистрированное в Реестре российского ПО Wine@Etersoft, позволяющее запустить приложения Windows в операционных системах семейства Linux.
В рамках этой задачи команда проекта столкнулась с некоторыми сложностями, например, в Wine не реализована функция LogonUser для запуска процесса от имени определенного пользователя. Для этого было необходимо переделать алгоритм запуска процессов.
Также оказалось, что при запуске приложений в Wine требуется больше памяти из‑за способа загрузки некоторых DLL. В Wine все DLL загружаются как частные, а в Windows системные DLL являются разделяемыми. Из‑за этого частный набор памяти процесса в Windows ниже.
2. Формирование и печать отчетных форм в офисных пакетах
В текущей версии продукта на зарубежном стеке технология формирования отчетных форм предполагала использование ActiveX‑объектов Excel и Word. Для его замены был выбран инструмент Apache POI, который позволил формировать документы без привлечения Excel и Word. При этом был изменен способ открытия сформированного файла. Вместо прямого запуска Excel или Word идет вызов функции ShellExecute, и операционная система стартует приложение, ассоциированное с файлами такого типа. Несмотря на то, что система работает в Wine, для отображения отчетов временно используется офисный пакет для Linux.
3. Адаптация системы для возможности работы с СУБД PostgreSQL
RS‑Bank v.6 взаимодействует с Oracle через ODBC‑драйвер, что позволяет избежать изменений в механизмах работы с базой данных. Для работы с PostgreSQL также используются функции API ODBC, однако это лишь немного упростило работу.
Основная сложность состояла в том, что в прикладных местах, где происходит выполнение SQL‑запросов, текст запроса мог быть как в ANSI‑формате, так и в формате, специфичном для Oracle. Для решения этой задачи был разработан конвертер, который, в случае необходимости, во время выполнения SQL‑запроса преобразовывает его в формат, понятный PostgreSQL.
После доработок некоторые SQL‑запросы автоматически заработали на PostgreSQL, другие требовали изменений для правильной обработки. Часть запросов, около 20%, была переписана вручную в связи с ограничениями конвертера.
Другими важными этапами проекта стали адаптация функциональности пунктов меню на Postgres Pro, доработка инсталлятора и апгрейдера АБС, доработка сервера приложений, терминала, а также доработки JEE‑приложения, криптографии, взаимодействия с HASP, инструмента построения отчетов.
Тестирование системы
- Функциональное тестирование всех подсистем АБС на Astra Linux, Postgres Pro и Р7‑Офис
- Автоматизированное тестирование всех подсистем АБС на Astra Linux и Postgres Pro
- Функциональное тестирование работы терминала и сервера приложения на Astra Linux
- Функциональное тестирование обратной совместимости всех подсистем АБС на Microsoft Windows и Oracle
- Автоматизированное тестирование обратной совместимости всех подсистем АБС на Microsoft Windows и Oracle
- Функционально тестирование обратной совместимости работы терминала и сервера приложения на Microsoft Windows
Поэтапная конвертация кода приводила к проблемам в тестировании: уже исправленные ошибки иногда возникали снова и требовали многократных проверок. Качественно провести все необходимые работы в срок помогло применение автотестов, а также плотное командное взаимодействие.
В настоящее время выполняется нагрузочное тестирование всех подсистем АБС на Oracle и на Postgres Pro, а также сравнение получившихся результатов с эталонными показателями. Результаты нагрузочного тестирования будут предоставлены в начале июня.

Михаил Мальцев
Руководитель проекта по миграции RS‑Bank v.6 на отечественный стек
Командная работа
Значительную роль в успешной реализации проекта сыграл управленческий фактор. Часть задействованных сотрудников обладали многолетней экспертизой, другая 一 пришла в компанию под задачи проекта. За короткое время удалось не только собрать команду мотивированных и компетентных специалистов, но также выстроить процессы обучения и распределения задач, что позволяло двигаться в соответствии с графиком проекта и завершить работы в срок.
12455 чел./дней
Занял проект по миграции RS‑Bank
67 человек
В активной команде проекта
Рассказывает:

Михаил Мальцев
руководитель проекта по миграции RS‑Bank v.6 на отечественный стек
Состав работ:
Мультиплатформенная автоматизированная банковская система на российском технологическом стеке. Работает на СУБД Postgres Pro.
Подробнее об услуге
Консультация по RS‑Bank v.6
Узнать подробнее о продукте или заказать бесплатную демонстрацию системы вы можете на странице продукта
На страницу RS‑Bank v.6