Импортозамещенная АБС
Импортозамещенная АБС RS-Bank V.6
Мультиплатформенная автоматизированная банковская система на российском
технологическом стеке.
RS-Bank V.6
АБС на российском технологическом стеке
В декабре 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
Основные этапы проекта
01.
Адаптация системы для возможности работы в ОС Linux
Учитывая сжатые сроки, перевести ядро АБС на нативный Linux, даже частями, в рамках данного проекта оказалось невозможно. Поэтому было принято решение использовать зарегистрированное в Реестре российского ПО Wine@Etersoft, позволяющее запустить приложения Windows в операционных системах семейства Linux.
В рамках этой задачи команда проекта столкнулась с некоторыми сложностями, например, в Wine не реализована функция LogonUser для запуска процесса от имени определенного пользователя. Для этого было необходимо переделать алгоритм запуска процессов.
Также оказалось, что при запуске приложений в Wine требуется больше памяти из-за способа загрузки некоторых DLL. В Wine все DLL загружаются как частные, а в Windows системные DLL являются разделяемыми. Из-за этого частный набор памяти процесса в Windows ниже.
02.
Формирование и печать отчетных форм в офисных пакетах
В текущей версии продукта на зарубежном стеке технология формирования отчетных форм предполагала использование ActiveX-объектов Excel и Word. Для его замены был выбран инструмент Apache POI, который позволил формировать документы без привлечения Excel и Word. При этом был изменен способ способ открытия сформированного файла. Вместо прямого запуска Excel или Word идет вызов функции ShellExecute, и операционная система стартует приложение, ассоциированное с файлами такого типа. Несмотря на то, что система работает в Wine, для отображения отчетов временно используется офисный пакет для Linux.
03.
Формирование и печать отчетных форм в офисных пакетах
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, а также сравнение получившихся результатов с эталонными показателями. Результаты нагрузочного тестирования будут предоставлены в начале июня.
Командная работа
Значительную роль в успешной реализации проекта сыграл управленческий фактор. Часть задействованных сотрудников обладали многолетней экспертизой, другая 一 пришла в компанию под задачи проекта. За короткое время удалось не только собрать команду мотивированных и компетентных специалистов, но также выстроить процессы обучения и распределения задач,
что позволяло двигаться в соответствии с графиком проекта
и завершить работы в срок.
Узнать подробнее о решении и заказ консультацию по проекту можно на странице продукта.