Я работаю над проектом POS. Пользователь требует, чтобы это приложение могло работать как в режиме онлайн, так и в автономном режиме, что означает, что им нужна локальная база данных. Я решаю использовать репликацию SQL Server между каждым магазином и головным офисом. В каждом магазине необходимо установить SQL Server Express, а в головном офисе уже есть SQL Server Enterprise Edition. Репликация будет выполняться каждые 30 минут по расписанию, и я выбираю Merge Replication, потому что данные могут меняться как в магазине, так и в головном офисе.Какое оптимальное решение для POS-приложения?
Когда я занимаюсь POC, я нашел, что это решение работает неправильно, иногда работа - ошибка, и мне нужно повторно инициализировать ее. Это решение также занимает очень много времени, что явно неприемлемо для пользователя.
Я хочу знать, есть ли какие-либо решения лучше, чем то, что я сейчас делаю?
Update 1:
Ограничения системы являются
- Почти сделок может произойти в как магазин и головной офис.
- Некоторые транзакции должны работать в режиме реального времени, если, скажем, после того, как пользователь сохранит данные в своем местном магазине, данные должны также обновиться в головном офисе. (Если они сейчас в сети)
- Пользователь может работать даже в своем магазине, отключен от базы данных головного офиса.
- Наша оценка объема данных не более 2000 строк в день.
- Windows 2003 - ОС сервера в головном офисе, а Windows XP - ОС всех клиентов.
Update 2:
- В настоящее время они около 15 клиентов, но это число будет расти в довольно медленном темпе.
- Размер данных составляет от 100 до 200 строк на репликацию, я думаю, что он может составлять не более 5 МБ.
- Клиент подключается к серверу по линии аренды; 128 кбит/с.
Я в ситуации, что репликация занимает очень много времени (около 55 минут, пока у нас всего 5 минут или около того), и почти раз мне нужно повторно инициализировать работу, чтобы снова начать репликацию, если я не повторно инициализировать работу, она не может реплицироваться вообще. В моем POC я обнаружил, что для повторной инициализации всегда требуется очень много времени, а количество времени не зависит от количества данных. Кстати, повторная инициализация - это только решение, я считаю, что это работает для моей проблемы.
Как и выше, я делаю вывод, что репликация может не подходит для моей проблемы, и я думаю, что это может имеет еще лучшее решение, которое может служить то, что мне нужно в Update 1:
Вы не даете достаточно подробностей - вы не сообщаете нам никаких ограничений, которые у вас есть для системы, количества ожидаемых данных, мощности и ОС центрального сервера и POS-систем ... Я могу продолжать ... – Oded
@Oded Я добавил информацию, как вы предлагаете, сообщите мне, если этого недостаточно. – Anonymous
Еще вопросы ... сколько клиентов? Какой размер данных? Какая связь между клиентом и сервером при подключении? – Oded