因此,我们正在构建一个本地(在客户站点)托管的自定义销售点系统,没有什么特别之处。它都是 .NET、C# 和 SQL Server。
其中一项要求是系统也允许通过互联网接收订单。出于各种原因(连接可靠性/速度、备份、稳定性、维护等),门户网站将由一些标准的网络托管公司在场外托管。
产品详细信息在本地数据库中,因此我们需要以某种方式将外部网站数据库与此数据同步。显然它必须是安全的,而且带宽不能太重。
我们提出了一个解决方案,可以最大限度地减少本地数据库对外界的暴露:
- Web 应用程序无法从本地应用程序访问任何内容。
- 移动数据的唯一方法是通过从本地应用程序发送到 Web 应用程序的推送。
- Web 应用程序唯一能做的就是向本地数据库发送通知,告知已收到新订单。然后,本地应用程序将连接到外部应用程序并提取订单详细信息。
所以我们正在考虑这样的设计,使用网络服务,并在网络应用程序上定义基本操作,如 addProduct(id, blah blah blah)
但是我们必须编写例程来保持同步,比如如果从本地应用程序中删除了一个产品,但外部应用程序暂时不可用,等等......
这是一种合理的方法,还是有更好的方法?