0

因此,我们正在构建一个本地(在客户站点)托管的自定义销售点系统,没有什么特别之处。它都是 .NET、C# 和 SQL Server。

其中一项要求是系统也允许通过互联网接收订单。出于各种原因(连接可靠性/速度、备份、稳定性、维护等),门户网站将由一些标准的网络托管公司在场外托管。

产品详细信息在本地数据库中,因此我们需要以某种方式将外部网站数据库与此数据同步。显然它必须是安全的,而且带宽不能太重。

我们提出了一个解决方案,可以最大限度地减少本地数据库对外界的暴露:

  • Web 应用程序无法从本地应用程序访问任何内容。
  • 移动数据的唯一方法是通过从本地应用程序发送到 Web 应用程序的推送。
  • Web 应用程序唯一能做的就是向本地数据库发送通知,告知已收到新订单。然后,本地应用程序将连接到外部应用程序并提取订单详细信息。

所以我们正在考虑这样的设计,使用网络服务,并在网络应用程序上定义基本操作,如 addProduct(id, blah blah blah)

但是我们必须编写例程来保持同步,比如如果从本地应用程序中删除了一个产品,但外部应用程序暂时不可用,等等......

这是一种合理的方法,还是有更好的方法?

4

3 回答 3

1

这是 SOA 似乎适用于我的一个案例。我会考虑使用 WCF 从 POS 应用程序中公开某些功能。这至少有以下几点:

  • 您可以重复使用 POS 系统的功能,而不是在网站上复制部分功能
  • 使用例如 MSMQ 绑定,您可以在断开连接的情况下运行
  • WCF 具有出色的安全机制、事务支持等...

这样,您最终会为 POS 系统增加价值,而不是在 POS 和网站之间进行一次性耦合。

要了解有关 WCF 的更多信息,我可以推荐Juval Lowy 的Programming WCF services

于 2009-01-18T23:39:55.213 回答
0

不是直接回答您的问题...我会尝试在两个站点之间建立一个 VPN 隧道,如果不能,请尝试使用 SSH 隧道?

除了安全性很好之外,根据我的经验,一旦有 VPN 就可以打开更多选项,因为以前考虑的事情太不安全了。

于 2009-01-18T23:29:08.747 回答
0

@olle 这看起来很有希望。一个问题是黑白在线门户和本地应用程序的连接不可靠。但是,我们仍然希望在链接断开时能够接受订单。所以,我想我们将在 webapp 中使用 WCF 从服务器读取数据,并将其缓存在本地表中。Web 应用程序将通过中间层请求数据,如果 WCF 调用在短时间内没有返回,该层会从缓存的表中提供内容。如果它确实返回成功,缓存将被擦除并替换为结果。听起来像一个计划?

于 2009-01-21T23:34:08.717 回答