Мой клиент, поставщик финансовых услуг, установил свое программное обеспечение более чем на 500 клиентов.
Их приложение написано на C# и использует SQL Server в качестве базы данных. Они хотели бы собирать данные из баз данных всех своих клиентов, а также отправлять клиентам меньший объем данных. Есть пара требований:
Синхронизация данных осуществляется с более чем 500 клиентами с 7 немного отличающимися схемами баз данных в 7 разных версиях их программного обеспечения.
Со временем могут появиться новые версии их программного обеспечения с другими схемами, которые нельзя откладывать на ожидание обновления этого механизма синхронизации данных. По сути, синхронизация данных должна быть гибкой, чтобы поддерживать любую схему и управляться из центрального местоположения, а не привязываться к ее изменениям с выпуском своего приложения.
Должен быть написан на .Net, так как все их программное обеспечение работает в Windows.
Вместе может быть развернут специальный клиент синхронизации данных, который имеет доступ к базе данных SQL Server каждого клиента, но частое обновление клиента не гарантируется.
Существует ли уже структура (кроме Microsoft Sync Framework, которая использует триггеры в базе данных), которая поможет в разработке этой системы синхронизации данных?
Есть ли какие-нибудь хорошие книги/статьи, которые можно прочитать о многопользовательских системах или синхронизации данных, которые содержат некоторые полезные советы о том, как создать такую систему?