синхронизировать портал онлайн-заказов с локальной базой данных - PullRequest
0 голосов
/ 19 января 2009

Таким образом, мы создаем локальную (на сайте клиентов) систему пользовательских точек продаж, ничего особенного. Это все .NET, C # и SQL Server.

Одним из требований является то, что система позволяет принимать заказы также через Интернет. По разным причинам (надежность / скорость соединения, резервное копирование, стабильность, обслуживание и т. Д.) Веб-портал будет размещен за пределами сайта с какой-либо стандартной компанией, предоставляющей услуги веб-хостинга.

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

Мы придумали решение, которое минимизирует воздействие локальной БД на внешний мир:

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

Итак, мы думали о таком дизайне, используя веб-сервисы и просто определяя основные действия в веб-приложении, такие как addProduct (id, бла-бла-бла)

Но затем мы должны написать подпрограммы для синхронизации данных, например, если продукт удален из локального приложения, но внешнее приложение временно недоступно и т. Д., И т. Д. *

Это разумный подход или есть лучший способ?

Ответы [ 3 ]

1 голос
/ 19 января 2009

Это тот случай, когда SOA кажется мне подходящим. Я хотел бы разоблачить некоторые функции приложения POS с использованием WCF. Это имеет по крайней мере следующее:

  • вы можете повторно использовать функциональность системы POS вместо дублирования ее частей на веб-сайте
  • Используя, например, привязку MSMQ, вы можете работать в автономных ситуациях
  • WCF имеет отличные механизмы безопасности, поддержку транзакций и т. Д. *

таким образом, в конечном итоге вы добавите в POS-систему большую часть стоимости, а не будете выполнять одноразовую связь между POS-сайтом и веб-сайтом.

Чтобы узнать больше о WCF, я могу порекомендовать Программирование служб WCF от Juval Lowy

0 голосов
/ 22 января 2009

@ олл Это выглядит многообещающе. Одна проблема заключается в том, что соединение ч / б онлайн-портала и локального приложения ненадежно. Однако мы все еще хотим принимать заказы, когда ссылка не работает. Итак, я думаю, что мы собираемся использовать WCF в веб-приложении для чтения данных с сервера и кэширования их в локальных таблицах. Веб-приложение будет запрашивать данные через промежуточный уровень, который обслуживает контент из кэшированных таблиц, если вызов WCF не возвращается в течение короткого времени. Если он вернется успешно, кэш будет удален и заменен результатами. Звучит как план?

0 голосов
/ 19 января 2009

Не совсем ответ на ваш вопрос напрямую ... Я бы попытался установить VPN-туннель между двумя сайтами, а если вы не можете, попробуйте использовать SSH-туннель?

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...