Способы интеграции баз данных в SOA/ESB?

Ситуация. В некоторых банках используется старая устаревшая АБС (автоматическая банковская система).

Банк хочет:

  1. уведомлять старую устаревшую CRM-систему об изменениях в учетной записи клиента (операция публикации).
  2. проверка ПИН-кодов карт клиентов (операция Запрос/Ответ) - в синхронном режиме.

ABS реализована в очень старых частных технологиях с вызовами StoredProcedures. Итак, я могу подключиться к этой системе только через базу данных.

Какие способы интеграции приложений Java/.Net (ESB) со старой/устаревшей системой баз данных вы знаете?

Операция записи/публикации

Сервер БД любого поставщика:

  1. Сканировать таблицы на наличие новых записей - слишком низкая скорость.
  2. Триггер (если они поддерживаются), который обрабатывает обновления SQL, вставляет и записывает информацию о событии в некоторую таблицу. И прослушиватель приложения должен проверять эту таблицу на наличие событий.
  3. Сервер Oracle: PL/SQL TRIGGERS + Oracle AQ. И слушатель для JMS.

Операция чтения

  1. Просто записывать результат в таблицы АБС - опасно.

  2. ...

Как уведомить устаревшую систему баз данных об ответах в синхронном режиме??? Как реализовать запись/чтение в синхронном режиме???

Опять же, какие способы интеграции приложений Java/.Net (ESB) со старой/устаревшей системой баз данных вы знаете?


person Alexander Pavlenko    schedule 08.10.2008    source источник


Ответы (3)


Многие поставщики рекламируют DataServices. Я думаю, что наибольшая ценность этих продуктов заключается в интеграции различных источников данных.

Я бы подумал о создании простого «приложения», которое предоставляет эти данные как услугу.

person svrist    schedule 11.10.2008

Это зависит от многих факторов; особенно пропускная способность чтения/записи и чувствительность базы данных к производительности.

Базы данных, как правило, являются довольно чувствительными вещами и часто очень уязвимы для доступа общего назначения из произвольных других систем, когда они точно настроены для производственного использования в конкретной системе; так часто люди реплицируют базу данных в другую подчиненную базу данных только для чтения, которую затем можно использовать для выполнения интеграционных работ, запросов и т. д.

Затем вы можете использовать триггеры/опрос/JMS на основе всего, что вам нужно, не затрагивая исходную базу данных.

В зависимости от используемой технологии репликации базы данных; затем вы можете часто устанавливать триггеры в базу данных реплики (которая может позволить время от времени немного отставать от мастера) - чтобы минимизировать влияние на производственную базу данных.

person James Strachan    schedule 08.10.2008

Я могу предложить вам использовать Mule в качестве ESB в вашем банке (см. также http://www.mulesource.org/display/MULE/Home).

Это позволяет вам напрямую общаться с базой данных (уровень jdbc, который должен быть в порядке с хранимыми процедурами, а также с уровнем таблиц/представлений). У меня есть положительный опыт интеграции базовой банковской системы (уровень базы данных, Oracle) с автономным приложением (уровень веб-сервисов).

Честно говоря, я не получил всех ваших вопросов (вы можете задать мне напрямую по-русски, если хотите), но IMO Mule - это ваш путь - он может использовать JMS, JDBC, файловый уровень и многие другие и обрабатывать синхронные и асинхронные события как хорошо (см. также http://www.mulesource.org/display/MULE2USER/Available+Transports).

С уважением.

P.S. Чтобы быть более понятным для англоязычной аудитории, я могу предложить вам использовать более стандартный термин corebanking system вместо ABS (что означает то же самое в странах xUSSR).

person FoxyBOA    schedule 01.11.2008