Миграция информационной системы АО «ФГК» с Oracle Apex на Jmix
Компания
«Федеральная грузовая компания» (ФГК) — один из крупнейших в России грузовых железнодорожных операторов. Компания предоставляет клиентам подвижной состав, оказывает транспортно-экспедиционные услуги.
Центральный офис ФГК находится в Екатеринбурге, помимо этого в структуру компании входит 14 филиалов и агентств транспортного обслуживания, а также представительство в Москве. Общий вагонный парк Компании (на 01.07.2024) составляет 133,5 тыс. единиц подвижного состава. Помимо традиционных перевозок вагонами ФГК развивает новые сегменты рынка, включая контрейлерные и скоростные контейнерные перевозки, а также перевозки грузов при помощи фитинговых платформ.
Компания осуществляет погрузку на 67% всех ж/д станций на территории Российской Федерации. Основная масса перевозимых АО «ФГК» грузов предназначена для нужд топливно-энергетического комплекса и ЖКХ, строительной, металлургической, сельскохозяйственной и других ключевых отраслей экономики страны.
Ситуация
ФГК столкнулась с необходимостью миграции с Oracle по многим причинам. Перед командой стояли следующие задачи:
- Перенос всех модулей приложения на новую платформу
- Замена базы данных
- Улучшение пользовательского опыта
- Обновление технического долга
Почему именно Jmix
При создании корпоративных информационных систем ФГК долгое время использовала платформу Oracle APEX. Она была выбрана из-за наличия готовых интерфейсных компонентов, интеграции с базами данных, удобства администрирования и поддержки. Однако проблема заключалась в жесткой зависимости от одного вендора и поддерживаемой СУБД. Из-за этого было решено провести импортозамещение платформы для разработки.
Для разработки новой системы управления заказами и планами перевозок была выбрана платформа Jmix. Причины выбора:
- Имеющиеся в Jmix готовые визуальные компоненты и контроллеры упрощают процесс разработки, что особенно важно при ограниченном количестве разработчиков в команде.
- Фокус на решении функциональных задач, который обеспечивает возможность разработки системы полностью в соответствии с требованиями ФГК.
- Обеспечение технологического суверенитета за счет Open Source решения,
- Возможность перейти от монолитного pl/sql на язык Java, независимые автономные приложения, микросервисные подходы, Open Source решения.
Учитывая прошлый положительный опыт работы с платформой CUBA (предшественник Jmix), выбор Jmix также казался очевидным.
Решение
В проекте участвовали три разработчика на Jmix, три специалиста по базам данных, три аналитика и один тимлид. Приложение было разбито на крупные модули, определены приоритеты, и начался параллельный перенос базы данных и программной логики.
Jmix позволил генерировать JPA на основе существующих структур данных, использовать визуальные инструменты для работы с интерфейсами и быстро создавать хендлеры. Основным вызовом стало привыкание к новой парадигме мышления и типизации в Jmix. Также требовалось сохранить привычную для пользователей функциональность, что не всегда удавалось реализовать в точности, как в Oracle. Работа с большими таблицами данных потребовала нестандартных решений — использовались кастомные JS-компоненты и создавались интерфейсы, аналогичные Oracle.
Используемые аддоны Jmix:
- LDAP
- Data Tools
- Pivot Tables
- Reports
- Русский перевод
Результат
На данный момент проект завершен на 70%, и его полное завершение ожидается ко второму кварталу следующего года.
Применение Jmix значительно ускорило разработку благодаря встроенным инструментам и визуальным редакторам. Процессы стали более оптимизированными, бизнес-логика — более четкой. Положительный опыт миграции будет использован для замещения других приложений компании.
ФГК планирует дальнейшее использование Jmix для миграции других приложений и внедрение новых функций для улучшения пользовательского опыта и оптимизации процессов.
Переход с Oracle на Jmix в рамках цифровой трансформации и импортозамещения позволил ФГК обновить технический долг, улучшить функциональность системы и получить ценный опыт для дальнейших миграций и оптимизации процессов.