Константин Ващенков, XSQUARE: Мигрируем с Oracle APEX без нервов
18 сентября 2025 года российская компания XSQUARE представила платформу XSQUARE 6.0, о которой мы рассказывали ранее, а также первую версию конвертера из Oracle APEX в XSQUARE. Инструмент автоматизирует перенос типовых APEX‑приложений и уже применяется на реальных проектах. Мы поговорили с техническим директором компании Константином Ващенковым о том, зачем рынку в его текущей стадии развития такой конвертер понадобился, какое покрытие он дает и как организован процесс миграции.
Ващенков
Константин, с чего начался проект? Почему было принято решение о разработке конвертера APEX → XSQUARE?
Константин Ващенков: Начиная с периода 2022–2023 годов заказчики все чаще приходили с запросом на миграцию с APEX на XSQUARE. К концу 2024 — началу 2025 этот запрос стал практически обязательным «первым вопросом» в деловых коммуникациях с заказчиками. Роль триггера сыграл проект одной из крупнейших финансовых организаций России с инсталляцией ~2400 страниц — даже конвертер с базовой функциональностью значительно разгружал разработчиков.
Насколько широко применяется Oracle APEX у заказчиков сегодня?
Константин Ващенков: Oracle APEX входит в стандартную поставку Oracle DB начиная с 10-й версии, поэтому он широко распространен среди пользователей Oracle в различных отраслях экономики.
О каких масштабах приложений идет речь в связи с новым конвертером? Что ему по силам?
Константин Ващенков: Наш конвертер справится с любыми масштабами, от небольших приложений на десяток страниц до гигантских решений для крупных корпораций. Максимум, который мы видели в одной инсталляции, составлял около 2300 страниц (pages).
Какой процент автоматизации дает конвертер?
Константин Ващенков: Согласно нашим внутренним тестам и пилотным проектам, мы можем говорить об автоматизации от 70% до 95% функциональности, в зависимости от того, как написано исходное приложение и какие компоненты в нем использованы. Мы покрываем стандартные и наиболее популярные регионы и элементы APEX: формы, отчеты, гриды, текстовые/числовые айтемы, Lists of Values, списки, процессы, валидации и многое другое. Устаревшие компоненты намеренно не поддерживаем.
Что не конвертируется и не мигрирует автоматически?
Константин Ващенков: Можно говорить о трех вещах, которые не переносятся автоматически. Во-первых, это пользовательский JavaScript в APEX. Его нужно переписывать вручную. В XSQUARE есть свой аналог JS-слоя, однако отсутствует автоматический конвертер. Также не автоматизирован перенос механизмов аутентификации/авторизации (слой ИБ). Наконец, не получится перенести индивидуальные CSS-кастомизации. Также мы не конвертируем устаревшие компоненты вроде Popup и Shuttle.
Сколько времени занимает перенос? Есть ориентиры?
Константин Ващенков: Типовое приложение на 15–20 страниц один разработчик переносит за 1 день. Приведу конкретный пример. Система по взысканию дебиторской задолженности в ЖКХ, это один из наших самых сложных кейсов, переносилась примерно 4–5 дней, также одним разработчиком. Если остаемся на Oracle DB и меняем только APEX на XSQUARE, проект на ~230 страниц будет полностью обработан в течение 3–5 дней.
А если вместе с APEX нужно уйти и с Oracle DB на PostgreSQL?
Константин Ващенков: Сам конвертер переводит только слой APEX. Перенос данных и логики из Oracle DB в PostgreSQL выполняется специальными инструментами — например, с помощью Oracle2PG или через привлечение LLM‑подходов. После этого вы подключаете XSQUARE к уже мигрировавшей базе.
Что представляет собой сам процесс миграции, если рассмотреть его пошагово?
Константин Ващенков: Мы сделали консольную утилиту A2X (Apex2XSQUARE). На вход она принимает Connection String к Oracle APEX, идентификатор приложения и имя выходного файла; далее сканирует приложение (страницы, регионы, элементы, кнопки, процессы, валидации, списки) и генерирует скрипт для «метабазы» XSQUARE. Скрипт разворачивается, и вы получаете приложение с перенесенными страницами, глобальными списками и параметрами. Иногда отдельные компоненты стоит слегка подправить, в таком случае речь идет, скорее, о «косметических» изменениях.
Можно ли с ее помощью заранее оценить трудоемкость и объем?
Константин Ващенков: Да, утилита дает статистику по страницам, элементам, процессам и пр., что позволяет быстро прикинуть размер проекта и определить план работ.
Насколько похоже выглядит приложение после миграции для конечного пользователя?
Константин Ващенков: Практически «один в один». Для пользователя это воспринимается как обновленная версия APEX, а интерфейс зачастую выглядит свежее благодаря теме XSQUARE.
Какие доступы нужны, где запускается конвертер?
Константин Ващенков: Утилита ставится отдельно и запускается в вашем контуре. Для ее работы нужен доступ к Oracle и схеме APEX_PUBLIC_USER. На выходе получается дамп-приложение, которое «накатывается» в XSQUARE. С ним удобно работать в dev‑окружениях.
Если смотреть шире, какую роль конвертер APEX → XSQUARE играет в общей архитектуре XSQUARE 6.0?
Константин Ващенков: Инструмент является частью нашей общей стратегии по замещению Oracle-наследия. Он встроен в экосистему XSQUARE 6.0 и работает в связке с поддержкой Oracle Database на уровне ядра. То есть мы не просто «переносим» интерфейсы APEX, а создаем инфраструктуру, в которой старые корпоративные системы, построенные на Oracle Forms или ранних версиях APEX, получают новую жизнь через современный интерфейс, поддержку multi-data source и возможность поэтапного перехода на PostgreSQL.
Конвертер можно рассматривать как стартовую точку более глубокого перехода?
Константин Ващенков: Именно так. Для многих заказчиков это первый шаг. Инструмент позволяет быстро поднять существующее приложение в новом окружении без боли и долгих переписываний. Но ключевая ценность в том, что дальше появляется архитектурная свобода. Заказчик может оставаться на Oracle, может комбинировать Oracle и PostgreSQL, а может полностью перейти на открытое ПО. Конвертер лишь открывает дверь в эту экосистему.
Как это выглядит с технической стороны?
Константин Ващенков: За счет концепции multi-data source XSQUARE одновременно работает с несколькими базами: Oracle, PostgreSQL и другими. Мы заложили в ядро возможность подключать разные СУБД к одному приложению, распределяя нагрузку и сохраняя целостность данных. В результате компания может, например, мигрировать интерфейс с APEX на XSQUARE, не трогая Oracle DB, а позже постепенно переносить данные в PostgreSQL. Это не классический «перевод», а плавная трансформация без остановки бизнеса и без стресса для команд.
Можно ли сказать, что речь идет о постепенной миграции, а не о «жестком» переходе за один раз?
Константин Ващенков: Да. Мы со старта строили XSQUARE 6.0 как инструмент эволюции, а не революции. В реальной жизни крупные системы, разработанные на Oracle Forms или APEX, содержат десятки тысяч строк кода и критическую бизнес-логику, которую невозможно просто взять и переписать. Поэтому подход «поэтапной миграции» выглядит гораздо разумнее: сначала вы переносите интерфейс, затем постепенно выводите модули из Oracle в PostgreSQL. Причем все это время система продолжает работать в смешанном режиме.
Как планируется далее развивать конвертер?
Константин Ващенков: Поддержка недостающих опций в конвертере APEX → XSQUARE добавляется по запросам в рамках текущих проектов. Параллельно мы ведем R&D-работы для конвертера Oracle Forms → XSQUARE, в связи с чем приглашаем компании с релевантным опытом и реальными кейсами присоединяться к этой работе через учебные центры или напрямую к XSQUARE.
Мы будем фокусироваться на совершенствовании платформы XSQUARE в целом. Вместе с ее шестой версией мы выпустили новую среду разработки XRAD 6.0. В ней полностью переработан интерфейс и добавлены инструменты, которые позволяют работать в несколько раз быстрее. Чтобы создать форму или отчет, достаточно перетащить компонент на экран. XRAD генерирует структуру, связывает ее с данными и сразу показывает результат. Разработчик видит, как будет выглядеть страница, не покидая среды.
В XSQUARE 6.0 появилась поддержка Git. Для чего она нужна?
Константин Ващенков: Это шаг к полноценной промышленной разработке. Теперь контроль версий встроен прямо в ядро платформы: можно сохранять страницы в интерпретируемом формате, откатывать изменения и вести историю коммитов. Это удобно как для одиночных разработчиков, так и для команд с налаженным CI/CD. Код, интерфейсы и метаданные остаются синхронизированы внутри одной среды.
То есть система подходит не только для миграции, но и для дальнейшего развития решений?
Константин Ващенков: Конечно. Мы исходили из того, что большинство заказчиков не просто переносят старые приложения, а хотят развивать их дальше: добавлять новые модули, отчеты, интеграции. Поэтому XRAD 6.0 это не просто IDE, а полноценная визуальная среда проектирования с системой пререндера и иерархической навигацией по элементам. Можно копировать блоки между страницами, менять структуру интерфейса, редактировать элементы прямо на странице, видеть итог в реальном времени.
На каких условиях можно получить конвертер?
Константин Ващенков: В 2025 году он предоставляется бесплатно: с 1 ноября конвертер доступен в учебных центрах в рамках курса по обучению нашей платформе, с 1 декабря — у партнеров XSQUARE
Есть ли конкурирующие продукты на российском рынке?
Константин Ващенков: Фактически нет.
Ранее вы часто говорили о независимости своей платформы. Что вы вкладываете в это понятие?
Константин Ващенков: Мы сознательно уходим от сторонних проприетарных библиотек и компонентов, пишем все на C++ и Go, чтобы контролировать архитектуру и производительность. Это позволяет нам не зависеть от лицензий, санкций или внешних обновлений. И еще один важный момент: 30% нового функционала XSQUARE 6.0 появилось по запросам пользователей. Мы развиваем платформу вместе с сообществом, и это, по сути, тоже форма технологической независимости.


