如何在两个系统之间同步数据?

时间:2016-10-12 10:07:02

标签: .net web-services architecture azureservicebus

我有两个应用程序:

  1. ASP.NET MVC电子商务网站
  2. VB6应用程序管理产品,仓库,客户,供应商,订单和发票。它被实体店使用。
  3. 现在,这两者非常强烈耦合。

    使用数据库的操作:

    • 有一项任务在网站上定期运行,并检查VB6应用程序的数据库是否有任何产品变更(主要是价格和库存)。如果存在任何差异,则使用VB6应用程序中的信息更新网站的数据库;
    • 还有类似的任务,用于同步订单状态和可用的礼品卡优惠券。

    使用.NET的VB6对象的操作:

    • 当在网站上下订单时,它也会保存在VB6应用程序中。
    • 当产品由网站管理员(名称,描述,父类别等)更新时,它也会在VB6应用程序中更新。
    • 当客户更新其个人信息时,也会保存在VB6应用程序中。
    • 当客户在网站上注册时,网站会询问VB6应用程序客户是否有会员卡并获得奖励积分。

    我开始将Web API用于最近开发的奖励积分功能。当订单在VB6应用程序中开票时,客户获得/失去奖励积分,并通过Web API发送到网站。

    还有其他需要同步的操作,目前还没有:

    • 订单更改(添加/删除产品,折扣,运费,产品数量变更等)
    • 设置更改(增值税值,奖励积分值,折扣值等)

    问题是:以更松散耦合的方式在这些应用程序之间同步数据的更好方法是什么? REST服务与服务总线的优点/缺点是什么?

1 个答案:

答案 0 :(得分:1)

听起来您正在使用WebAPI走上良好的道路。从两个应用程序中提取持久性和域层,将它们推送到集中式WebAPI调用意味着您可以单独更改任一应用程序,并且从数据角度来看它们始终是同步的。

在REST API之上添加服务总线可以让您获得更多的解耦,并允许许多其他生产者/消费者模式插入自己。它实际上与您尝试解决的问题完全分开,只需为数据持久性添加WebAPI层将使您的生活更美好。