Мы загружаем транзакции продаж из наших магазинов на сервер головного офиса. В настоящее время мы используем DTS (службы преобразования данных SQL Server), но мы планируем заменить его службами Microsoft Sync для ADO.NET, поскольку это предпочтительное решение Microsoft для этого типа установки, и мы хотим следовать стандарт (который, будем надеяться, будет долгое время).
Вот детали нашей установки и то, что мы планируем. Мне нужен совет, особенно о том, подходит ли Sync Services нашему решению.
Положение
Каждый магазин имеет стороннюю систему EPOS, которая хранит продажи в базе данных Microsoft Access 2000, к которой мы можем получить доступ. Наша база данных головного офиса - SQL Server 2005, но она будет обновлена до 2008 года. Головной офис находится не на VPN со всеми хранилищами, но мы можем открыть брандмауэр для IP-адресов хранилищ, чтобы они могли отправлять данные непосредственно в SQL Сервер. Магазины всегда подключены к Интернету через ADSL, хотя они теряют связь, и мы не хотим терять данные о продажах.
Мы загружаем только транзакции из магазина - определения не нужно загружать.
Текущее решение
Мы написали службу Windows, которая работает на ПК-магазине. Этот сервис загружает пакет DTS с сервера (который содержит все детали загрузки) и запускает его в магазине - и это загрузит продажи на наш сервер.
Мы выбрали DTS, потому что он бесплатный при установке MSDE. Мы не можем использовать SSIS, потому что для этого потребуется лицензия на SQL Server в каждом магазине.
Еще одна причина, по которой мы выбрали DTS, заключается в том, что детали загрузки (т.е. какие таблицы и поля должны быть включены) хранятся на нашем головном сервере, поэтому, если нам нужно что-то изменить, мы можем сделать это централизованно и не нужно устанавливать что-либо новое магазины. Это не демонстрация, но было бы неплохо иметь эту возможность в нашем новом решении.
Потенциальное решение - службы Microsoft Sync для ADO.NET
В настоящее время мы создаем подтверждение концепции с помощью служб Microsoft Sync для ADO.NET. Идея состоит в том, чтобы поместить SQL CE (SQL Server Compact 3.5) в каждое хранилище (клиент) и синхронизировать его с базой данных главного сервера SQL Server 2005 (сервер). Мы поместим данные в базу данных SQL CE, либо (1) синхронизировав их с базой данных Access 2000, либо (2) заставив разработчиков системы EPOS записать продажи прямо в базу данных SQL CE - возможно (2). Но наша главная задача - доставить данные из хранилища на сервер головного офиса. Этот метод кажется предпочтительным решением Microsoft для иногда подключаемых систем, и именно это заставило нас серьезно взглянуть на Sync Services.
Я надеюсь, что использование этого будет означать, что большая часть работы, необходимой для загрузки продаж, будет встроена в службы синхронизации, и нам не придется заново изобретать колесо.
Потенциальное решение - загрузка на пользовательский веб-сервис
Существует также возможность загрузки транзакций продаж в пользовательский веб-сервис на нашем головном сервере, а затем в нашу базу данных SQL Server. Это означает, что нам нужно будет создать наш собственный механизм для определения того, какие строки являются новыми, а также для кэширования, когда системы отключены. Кроме того, мы можем упустить другие функции, которые будут встроены в Sync Services.
Пожалуйста, дайте мне знать, если у вас есть какой-либо совет, который поможет, особенно: «Является ли Sync сервисами правильное решение!». Проблема, которую мы пытаемся решить, кажется очень общей (загрузка продаж из магазинов), и я хотел бы решить ее с помощью общего решения.