Разработчики: | Диасофт (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-кода занимает всего несколько микросекунд.Унифицированные коммуникации в России: как развиваются отечественные решения и кто лидирует на этом рынке. Обзор TAdviser
Для наполнения словаря используется режим обучения 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
Подрядчики-лидеры по количеству проектов
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
Распределение вендоров по количеству проектов внедрений (систем, проектов) с учётом партнёров
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
Распределение систем по количеству проектов, не включая партнерские решения
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)