Синхронизация данных SQL с или без VPN

Я написал приложение для Windows, которое хранит данные локально в базе данных SQL Server Express. Он используется несколькими людьми из удаленных мест, которым необходимо время от времени синхронизировать свои данные. Это требует довольно простого процесса синхронизации только нескольких таблиц, и в настоящее время я выполняю это, связывая каждую установку SQL Express с "центральным" SQL Server, используя связанный сервер. Затем я запускаю запросы к удаленным данным и добавляю / обновляю / удаляю по мере необходимости. Это работает очень хорошо.

Тем не менее, я испытываю трудности с подключением VPN, которое требуется для этого. Прежде чем начать процесс синхронизации, пользователь сначала устанавливает VPN-соединение с сервером (работает RRAS в Windows 2003). В большинстве случаев он работает хорошо, но я сталкиваюсь с множеством раздражающих проблем, таких как сбой VPN, если соединение нестабильно, часто сотовому соединению AT&T не удается установить VPN-соединение (удаленные пользователи иногда ДОЛЖНЫ использовать этот метод) и у одного пользователя есть две машины дома, и только одна может иметь VPN-соединение в данный момент времени из-за ограничений маршрутизатора. Некоторые запускают XP, другие Vista... это действительно больно, и часть VPN оказывается очень разочаровывающей для меня и пользователей.

Есть ли у меня довольно простые варианты, которые я пропускаю? Моя первая мысль - использовать веб-сервис, но для этого потребуется передать все мои данные на сервер через веб-сервис для обработки. Это не практично. Другая идея заключается в установке второго экземпляра SQL Server Express на сервере, его прослушивании на другом порту и последующем подключении напрямую, а не через VPN (я даже не уверен, что это будет работать с SQL Express.?). Я знаю, что это имеет значение для безопасности, но насколько это так? Данные не носят конфиденциальный характер и не имеют решающего значения. Есть ли лучшие варианты, которые можно сделать с минимальным объемом работы / обучения?

Заранее спасибо за любые предложения, которые вы можете иметь.

Darvis

3 ответа

Как насчет Service Broker? Вы вставили свои обновления в полезную нагрузку XML, используете SEND для загрузки изменений, сообщение активирует процедуру на вашем бэкэнде, оно помещает полезную нагрузку XML обратно в обновления таблицы. Вы можете поместить экземпляр Express в DMZ, чтобы он выполнял роль шлюза и использовал встроенную пересылку сообщений. Поскольку Service Broker может использовать сертификаты для аутентификации, VPN не требуется. Также вы решаете проблемы доступности, обновления ставятся в очередь и доставляются, когда есть возможность подключения.

http://www.stunnel.org/

Предоставляет оболочку, которая инкапсулирует сетевое соединение в шифровании SSL.

Вы можете использовать электронную почту со своими данными в качестве вложения. Вы можете обрабатывать электронные письма на своем сервере с помощью автоматического агента. Распространение обновлений другим способом может быть более сложным - ваш пользователь должен будет сохранить ваше вложение, а затем запустить локального импортера. Кроме того, временные проблемы, когда они решают это сделать, могут быть непростыми. Но это может работать лучше в зависимости от вашей пользовательской базы.

Другие вопросы по тегам