Переход к распределенной БД в разных филиалах
От: Dmdv  
Дата: 27.08.09 08:57
Оценка:
Прошу подсказки.

Есть приложение, 3-звенка, работающее в корпоративной сети.
Теперь есть необходимость в работе этого приложения не в локальной сети компании,
а в разных филиалах с минимальными изменениями сервера приложений.
В клиентских приложениях будут проводиться изменения.
Все изменения в одном городе должны быть видны клиентским приложениям в другом городе.

Есть такое вариант установки: установка в каждом филиале своей локальной БД,
а синхронизацию серверов организовать описанным ниже способом.

Теоретически, есть два варианта:

1. Linked servers (в этом случае есть всего одна база)
2. Replication (в этом случае каждый клиент имеет локальную копию БД)

В первом варианте есть много трудностей:
1. Как создать подключение к linked server в connection string ?
2. Проблемы с безопасностью, поскольку подключать головной сервер придется по IP,
а на стороне сервера делать дырку для подключения из сети.
3. Сильное падение производительности.

Второй вариант кажется более адекватным:

1. Создать главный публикующий сервер
2. Все остальные сервера приложений будут являться подписчиками и одновременно публикующими серверами.
3. Изменения приходят на главный сервер и дальше публикуются на остальные копии БД в филиалах.

Буду признателен, если кто поделится опытом, с этим я ни разу не сталкивался.

Какие есть паттерны и общепринятые практики в решении этого вопроса?

Если реализовать 2 вариант, то какие сценарии лучше всего применить
по синхронизации серверов клиентских приложений: время, разрешение конфликтов и прочее?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.