Синхронизация объектов данных из разных приложений - PullRequest
1 голос
/ 16 марта 2009

Я ищу отзывы о наилучшем подходе к задаче, с которой мне поставили задачу. Существуют две системы с собственными базами данных, в которых хранятся очень похожие бизнес-объекты.

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

Является ли это тем, что BizTalk или аналогичный продукт может обрабатывать после начальной конфигурации / процесса сопоставления? Кроме того, является ли Biztalk потенциально излишним и есть ли другие методы, которые я мог бы использовать для достижения этой цели?

Спасибо

Брайан.

Ответы [ 4 ]

1 голос
/ 16 марта 2009

Зависит от размера "систем" (таблиц?) Для синхронизации.

EAI - это общее приложение для этого. Соединение двух систем, которые не могут взаимодействовать друг с другом, эффективное сопоставление одного бизнес-объекта другому, создание карты для перевода одной в другую. Но такие инструменты (например, webMethods для примера) являются инструментами предпринимательства, если вам нужно только синхронизировать две таблицы из двух систем, EAI явно будет излишним.

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

Затем вам нужен триггер (или два, если вы хотите синхронизировать оба пути), чтобы определить, когда произошло изменение, используйте карту для преобразования данных, которые ваш триггер получает в общий объект (с операцией, выполняемой на другом конце) .

И, наконец, вам нужен «модуль обновления», который будет принимать определенный бизнес-объект и выполнять правильные операции в базе данных (вставка / обновление / удаление)

EAI предоставляет соединители для запуска рабочего процесса и обновления базы данных. Вам все равно нужно будет определить некоторые отображения определенным образом в зависимости от используемого EAI. EAI намного мощнее, чем просто синхронизация двух таблиц. Разъемы имеют различный тип и могут взаимодействовать с различными системными (проприетарными), различными базами данных, простым форматом (xml, текст) или конкретными протоколами (ftp, веб-сервисы и т. Д.) EAI также обеспечивает эффективную фиксацию любой модификации в конце.

Надеюсь, это поможет.

1 голос
/ 22 марта 2009

Sql Server Integration Services может быть подходящим кандидатом для решения проблемы (может подключаться к другим БД и источникам данных, которые использует Sql Server). SSIS является частью всех установок Sql Server (за исключением Express).

0 голосов
/ 24 марта 2009

BizTalk является и будет идеальным решением для такого рода проблем.

Что может делать BizTalk? 1. Определите схему, которая представляет общую бизнес-сущность, это, по сути, все поля, которые должны быть синхронизированы между несколькими таблицами базы данных.

  1. Определите поток связи (оркестровки) и конечные точки (веб-сервисы), т. Е. Какое обновление вызывает какие изменения!

  2. Использование карт для сопоставления общей бизнес-сущности с необходимыми конкретными элементами данных по базам данных. Обратите внимание, что biztalk имеет встроенные адаптеры для ускорения процесса разработки.

  3. При проектировании должно быть потрачено достаточно времени, и для этой системы результаты будут потрясающими.

В целях разработки смотрите мои статьи (google ключевые слова: Biztalk + Karamchetti)

0 голосов
/ 16 марта 2009

Существует швейцарская компания Sowatec, под названием " datariver " (там, где я работал несколько лет назад. Хотя я не был связан с этим продуктом; просто, вы знаете). Он предназначен для передачи данных из источников в стоки (как река).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...