Разработчики: | Диасофт (Diasoft) |
Дата последнего релиза: | 2015/12/12 |
Технологии: | СУБД |
Содержание |
Описание
Diasoft Database Adapter – программный транслятор, позволяющий информационным системам работать на разных СУБД. С помощью данного решения можно адаптировать приложения, созданные в расчете на использование СУБД Oracle или MS SQL, к работе с СУБД PostgreSQL без изменения их исходного кода. Diasoft Database Adapter также может применяться для отказа от использования проприетарных СУБД в пользу их свободных аналогов.
Архитектура
Diasoft Database Adapter представляет собой runtime-среду для работы приложений (DB Proxy) и утилиты для осуществления миграции (DB Migrator). Благодаря высокому проценту автоматизации выполняемых действий, время миграции существенно сокращается по сравнению с ручным переводом.
Важные преимущества применяемой в адаптере технологии:
- Возможность применять входящие в продукт компоненты независимо друг от друга. При этом DB Migrator является близким по функционалу аналогом широко известной утилиты ORA2PG, однако, в отличие от нее, позволяет переносить конструкции, содержащие логику, написанную на PL / SQL. В то же время DB proxy позволяет запускать решения, обращающиеся к функционалу СУБД Oracle, используя в качестве СУБД сервер PostgreSQL, в который из СУБД Oracle предварительно была переведена (средствами DB Migrator или иным образом) оригинальная схема данных.
- Преобразование логики, изначально написанной на PL / SQL, осуществляется с использованием глубокого синтаксического и семантического анализа текста исходного кода, что позволяет обеспечить высокое качество конвертации.
- Не требуется внесение изменений в бинарные модули исходного приложения, ориентированного на СУБД Oracle. Клиентская часть приложения в двухуровневой архитектуре или средний слой в приложении с трехуровневой архитектурой остаются неизменными. Их адаптация к работе с СУБД PostgreSQL осуществляется благодаря тому, что запросы, требующие преобразования, сохраняются в едином словаре данных адаптера. При этом каждому оригинальному запросу соответствует адаптированный к PostgreSQL запрос или Java-класс, которые могут быть подготовлены как автоматически в процессе самообучения, так и вручную, при помощи соответствующего инструментария.
Такой подход позволяет снизить сложность проекта миграции в целом, организовать все изменения в пределах одного словаря данных, а также избежать ситуации, когда изменения в одном запросе влекут за собой неизбежные изменения в других запросах, связанных с ним.
Схема работы
DB Proxy
При данном подходе используется собственная реализация протокола, по которому происходит взаимодействие между клиентом БД и СУБД Oracle в виде компонента DB Parser. Клиент подключается к DB Proxy и продолжает взаимодействие таким же образом, как и с СУБД Oracle. В результате существующее приложение продолжает работать без изменений в клиентской (для двухуровневых приложений) или средней части (для трехуровневых приложений).
Прокси выполняет следующие функции:
- проксирование аутентификации;
- проксирование SQL-запросов;
- обратное проксирование SQL-ответов.
Трансляция SQL-запросов осуществляется компонентом PL / SQL Translator по словарю или в режиме онлайн. В случае трансляции по словарю в него предварительно помещаются все используемые приложением запросы с предварительно определенными параметрами, а также соответствующие этим запросам адаптированные к PostgreSQL варианты или указание на вызов метода из уже существующего и доступного в CLASSPATH Java-класса. Текст запросов хэшируется и сохраняется в оперативной памяти. Благодаря этому поиск и замена запроса из диалекта Oracle в диалект PostgreSQL или переключение адаптера на исполнение Java-кода занимает всего несколько микросекунд.
Для наполнения словаря используется режим обучения DB Proxy, когда все проходящие через адаптер запросы записываются в базу данных адаптера, с соответствующим ему автоматически сгенерированным запросом и попыткой выделить его переменные части. После этого через отдельно созданный пользовательский интерфейс технологу предлагается произвести валидацию запросов и пометить их как верные.
При онлайн-трансляции адаптация запроса под PosgreSQL и попытка его выполнения происходит «на лету». Результат запроса и его выполнения записывается в историю для дальнейшего анализа, который проводит технолог. Использование Java-кода в этой ветви вариантов исполнения исходного запроса не предусматривается.
DB Migrator
За перенос схемы данных, самих данных и логики, ранее заключавшейся в пакетах PL / SQL программ, отвечает компонент DB Migrator. Адаптация осуществляется однократно. Ее результатом является БД под СУБД PostgreSQL, аналогичная по структуре и наполнению исходной схеме БД под управлением СУБД Oracle, а также, возможно, набор автоматически созданных и скомпилированных Java-классов.
При работе DB Migrator осуществляется:
- миграция схемы БД;
- миграция существующих данных;
- автоматизированная трансляция текстов запросов;
- автоматизированная трансляция объектов БД, таких как:
- - пакеты PL SQL;
- - функции;
- - хранимые процедуры;
- - триггеры;
- - объектные типы;
- - комплексные типы;
- - представления;
- - связанные таблицы во внешних БД;
- - ссылки на внешние базы данных;
- - таблицы;
- - индексы;
- - последовательности;
- - ограничения;
- - ключи;
- - объекты безопасности.
Также осуществляется трансляция специфичных для СУБД Oracle конструкций, таких как:
- иерархические запросы Connect By;
- Merge;
- Oracle-нотации для внешних JOIN (+);
- курсоры;
- подпроцедуры.
При этом элементы PL / SQL программ, для воссоздания логики которых недостаточно средств, имеющихся в СУБД PostgreSQL, транслируются в Java-код, работающий с СУБД PostgreSQL через JDBC и отправляющий в СУБД относительно простые запросы. DB Proxy в процессе своей работы может предусматривать вызов данного кода для выполнения очередного запроса.
Примеры миграции
БОСС Кадровик (MS SQL – PostgreSQL)
Современная полнофункциональная система управления персоналом автоматически переведена на СУБД PostgreSQL за 1 месяц.
Крупная SCADA-система для нефтегазовых компаний (Oracle – PostgreSQL)
Система контроля и управления в реальном времени газовыми и нефтяными трубопроводными сетями любого масштаба и сложности. Поддержка до 250 000 объектов мониторинга, резервирование данных в реальном времени, мгновенное переключение на резервные серверы. Стоимость адаптации 990 000 рублей.
Информационная система для энергетиков (Oracle – PostgreSQL)
Работа приложения связана с передачей в реальном времени большого числа данных между несколькими серверами. Система успешно переведена за 18 рабочих дней.
Крупная BI-система (Oracle – PostgreSQL)
BI-система от компании-конкурента была переведена на PostgreSQL без потерь в производительности. Для этой системы проект стоил 7 500 000 рублей и он уже доказал свою экономическую эффективность.
FLEXTERA BI (Oracle – PostgreSQL)
После успешного перевода системы на PostgreSQL производительность оставалась сравнимой. Однако когда был включен PGStorm, производительность целого ряда функций многократно возросла по сравнению с классическим PostgreSQL.
Системы специального назначения (MS SQL – PostgreSQL)
Ряд информационных систем Министерства обороны был адаптирован к отечественному ПО с использованием технологий «Диасофт Платформа».
Система электронного документооборота (Oracle – PostgreSQL)
СЭД сегодня является неотъемлемой частью многих крупных предприятий. Одновременный переход с Windows на Linux и с Oracle на PostgreSQL не только оказался экономически эффективен, но и позволил предложить рынку по-настоящему импортонезависимое отечественное решение без всяких оговорок и неудобств.
История развития
2017
Интеграция в Скала-СР
11 апреля 2017 года компании IBS InterLab и «Диасофт Платформа» объявили о начале интеграции Diasoft Database Adapter в машину баз данных Скала-СР / Postgres Pro. Компании полагают, это позволит СУБД Postgres Pro упрочить свои позиции на рынке.
Применение технологии Diasoft Database Adapter для комплекса Скала-СР / Postgres Pro поможет заказчикам в сжатые сроки перенести информационные системы, в том числе работающие на Oracle Database и Microsoft SQL Server, в высоконадежную инфраструктуру под управлением СУБД Postgres Pro с наименьшими изменениями в конфигурациях и коде исходных систем.
Интеграция Diasoft Database Adapter в комплексы Скала-СР / Postgres Pro расширит возможности применения кластерных машин от IBS в широком ряде информационных систем, в которых PostgreSQL в качестве СУБД не применялась. Отметим, что использование Diasoft Database Adapter позволяет сделать процесс миграции с одной СУБД на другую полностью автоматическим.
Diasoft Database Adapter — программный транслятор, позволяющий информационным системам работать, в том числе с СУБД Postgres Pro, вне зависимости от того, под какую СУБД они были созданы.
Скала-СР / Postgres Pro – это предконфигурированное отказоустойчивое и горизонтально масштабируемое решение, которое позволяет крупным и средним организациям существенно сократить издержки на закупку лицензий СУБД и избежать приобретения вычислительных узлов и систем хранения данных высокой ценовой категории.
Высокоскоростное соединение и технология прямого доступа к оперативной памяти удаленных узлов, примененные в Скале-СР / Postgres Pro, позволяют выстраивать кластерные конфигурации с большим количеством узлов-реплик или узлов мультимастера.
283
Подрядчики-лидеры по количеству проектов
SAP CIS (САП СНГ) (38)
Softline (Софтлайн) (35)
РДТЕХ (33)
BeringPro (БерингПойнт) ранее BearingPoint Russia (28)
ФОРС - Центр разработки (25)
Другие (734)
Сапиенс солюшнс (Sapiens solutions) (7)
Navicon (Навикон) (3)
BeringPro (БерингПойнт) ранее BearingPoint Russia (3)
IFellow (АйФэлл) (2)
Инфосистемы Джет (2)
Другие (35)
Nexign (Нэксайн) ранее Петер-Сервис (1)
Синимекс (Cinimex) (1)
R-Style Softlab (Эр-Стайл Софтлаб) (1)
Форсайт (1)
VK (ранее Mail.ru Group) (1)
Другие (20)
Распределение вендоров по количеству проектов внедрений (систем, проектов) с учётом партнёров
Oracle (44, 179)
SAP SE (6, 178)
Microsoft (23, 142)
PostgreSQL Global Development Group (14, 126)
Постгрес профессиональный (ППГ, Postgres Professional) (6, 40)
Другие (265, 245)
Microsoft (3, 11)
SAP SE (3, 11)
PostgreSQL Global Development Group (3, 10)
Oracle (2, 4)
Постгрес профессиональный (ППГ, Postgres Professional) (2, 3)
Другие (10, 13)
PostgreSQL Global Development Group (4, 9)
Постгрес профессиональный (ППГ, Postgres Professional) (2, 6)
VK Tech (ранее VK Цифровые технологии, ВК Цифровые технологии и Mail.ru Цифровые технологии) (2, 3)
Arenadata (Аренадата Софтвер) (3, 2)
Oracle (2, 2)
Другие (9, 9)
PostgreSQL Global Development Group (3, 13)
Постгрес профессиональный (ППГ, Postgres Professional) (1, 6)
Arenadata (Аренадата Софтвер) (3, 5)
Apache Software Foundation (ASF) (3, 4)
Тантор Лабс (Tantor Labs) (2, 3)
Другие (8, 10)
PostgreSQL Global Development Group (4, 11)
Arenadata (Аренадата Софтвер) (3, 7)
VMware (2, 7)
Постгрес профессиональный (ППГ, Postgres Professional) (2, 5)
Диасофт (Diasoft) (1, 3)
Другие (6, 7)
Распределение базовых систем по количеству проектов, включая партнерские решения (проекты, партнерские проекты)
Oracle Database - 143 (106, 37)
Microsoft SQL Server - 135 (104, 31)
PostgreSQL СУБД - 126 (80, 46)
SAP NetWeaver Business Warehouse (SAP BW/4HANA) - 103 (103, 0)
SAP HANA (High Performance Analytic Appliance) - 76 (72, 4)
Другие 74
Microsoft SQL Server - 10 (9, 1)
PostgreSQL СУБД - 10 (7, 3)
SAP NetWeaver Business Warehouse (SAP BW/4HANA) - 8 (8, 0)
SAP HANA (High Performance Analytic Appliance) - 3 (3, 0)
Oracle Database - 3 (3, 0)
Другие 6
PostgreSQL СУБД - 9 (2, 7)
Tarantool Платформа in‑memory вычислений - 3 (2, 1)
Oracle Database - 3 (2, 1)
VMware Tanzu Greenplum - 2 (0, 2)
Firebird (database server) - 1 (0, 1)
Другие -6
PostgreSQL СУБД - 13 (4, 9)
VMware Tanzu Greenplum - 3 (0, 3)
Apache Hadoop - 2 (1, 1)
ClickHouse - система управления базами данных (СУБД) - 2 (2, 0)
Apache Kafka - 2 (2, 0)
Другие -8
PostgreSQL СУБД - 11 (5, 6)
VMware Tanzu Greenplum - 6 (0, 6)
Diasoft Digital Q.Database - 3 (3, 0)
ClickHouse - система управления базами данных (СУБД) - 2 (0, 2)
СберТех: Platform V Pangolin - 2 (2, 0)
Другие -12