2013-05-08 2 views
6

Я понимаю, что это обсуждаемая тема, но все предложения, которые я вижу, связаны с прямым доступом к SQL Server, который в нашем случае не идеален.Лучший способ синхронизации удаленной базы данных SQL Server с локальной базой данных SQL Server Compact?

Наш сценарий - это удаленная база данных SQL Server с (скажем) 100 таблицами. Мы разрабатываем легкое настольное приложение, которое будет использовать базу данных SQL Server Compact и периодически синхронизировать подмножество (скажем) 20 таблиц с удаленным сервером.

Я хотел бы иметь контроль над тем, как происходит репликация, потому что скорость является серьезной проблемой для нас, поскольку удаленный сервер находится в 1000 милях от нас.

Также мне не нужно синхронизировать все записи в каждой таблице - только те, которые относятся к каждому пользователю.

Мне очень нравится объект SQL Merge, однако он требует подключения клиента к удаленному SQL Server. В настоящее время это невозможно, и мы думали о взаимодействии с удаленным сервером через веб-службу, доступную через наше приложение или какой-либо другой метод.

Любые предложения приветствуются.

UPDATE

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

ответ

1

Тот факт, что вы используете компактный db для клиента, накладывает на вас довольно серьезные ограничения на доступные параметры в этом сценарии.

Учитывая ограничения и требования к производительности, которые вы желаете, вы можете рассмотреть возможность использования конечной точки http-службы, основанной на обслуживании, для синхронизации требуемых таблиц. Если ваша архитектура позволяет это сделать, асинхронно будет значительно повысить производительность, но опять же, это может оказаться даже небезопасным в зависимости от вашей архитектуры.

Что-то еще, чтобы рассмотреть использование веб-сокетов, а не стандартных HTTP-соединений для веб-службы, как упомянуто выше. Таким образом, вы могли бы синхронизировать клиентов в режиме реального времени, поскольку веб-сокеты - это настоящие полностью двусторонние соединения в реальном времени. Основная проблема заключается в том, что вы должны либо обеспечить, чтобы все клиенты были совместимы с веб-сокетами, либо обеспечили возврат к эмуляции соединения с веб-сервером с помощью платформы эмуляции для клиентов, которые не соответствуют параметрам.

Не уверен, что это помогает.

0

Можете ли вы использовать рамки MS Sync?

Практически разработан для вашего сценария AFAIK.

Быстрый Google превратили этот учебник вверх ...

http://social.technet.microsoft.com/wiki/contents/articles/2190.tutorial-synchronizing-sql-server-and-sql-server-compact-sync-framework.aspx

+0

Может ли MS Synch Framework использоваться через HTTP? Я думал, что нужна прямая ссылка на обе базы данных? – cusimar9

+0

Я считаю, что в соответствии с ответом здесь: http://stackoverflow.com/questions/503832/sync-framework-can-you-sync-over-http – nakchak

Смежные вопросы