У меня есть ситуация, когда одна система Oracle является мастером данных для двух отдельных систем CRM (PeopleSoft и Siebel). Система Oracle отправляет сообщения CRUD в BizTalk для получения данных о клиентах, данных о запасах, информации о продуктах и ценах на продукты. BizTalk форматирует и пересылает сообщения в интерфейсы веб-служб PeopelSoft и Siebel для выполнения действий. После первоначальной синхронизации данных текущая операция создала ситуацию, когда данные в удаленных системах Siebel и PeopleSoft неточны, несмотря на успешную доставку данных (это еще один разговор о том, что эти системы имеют в виду, когда возвращают «Успех»). ' для BizTalk).
Что делают другие подобные реализации для согласования системных данных в этом подходе, ориентированном на распределенные службы? Делают ли они периодический дамп со всех систем для сравнения? Существуют ли какие-либо другие методы или методологии для обнаружения неудачных обновлений и обеспечения синхронизации?
Ваши мысли и опыт ценятся. Спасибо!
Дополнительная информация
Так почему же системы не синхронизированы? Всякий раз, когда целевая система подтверждает BizTalk, что она получила сообщение, это означает многое. Иногда HTTP 200 означает, что я получил его, поместил в промежуточную таблицу и через некоторое время зафиксирую. Иногда это удается, иногда нет из-за различных проблем с данными. Иногда HTTP 200 означает... да, я получил и передал данные. При использовании HTTP могут возникнуть проблемы с доставкой заказа. Все эти проблемы могли быть решены с помощью тщательного архитектурного планирования. Этого не было сделано. Отметки времени обновления/создания отсутствуют, чтобы не допустить, чтобы неупорядоченная доставка наступала на данные. Отсутствует полное двустороннее подтверждение приема данных из систем назначения. Все это приводит к тому, что вещи выходят из строя.