【问题标题】:Data Synchronization between Enterprise DataStore and External WebSite DataStoreEnterprise DataStore 和 External WebSite DataStore 之间的数据同步
【发布时间】:2010-06-17 17:00:06
【问题描述】:

我有一个由一些丰富的应用程序使用的企业数据库存储和一个拥有自己的数据库存储的网站。

企业应用程序使用本地数据,其中一些数据(如订单、价格...)必须“同步”到网站数据存储区。

另一方面,互联网客户可以编辑他们的个人资料,这些资料也必须“同步”到企业数据存储中。

基本上我需要这种架构:

网站 => 网站数据库 ||互联网 || 企业数据库

【问题讨论】:

    标签: c# .net architecture


    【解决方案1】:

    选择你的泊松。合并复制可能是最容易部署的。 Service Broker 是性能最高的,但需要陡峭的学习曲线。同步框架并不是很合适,除非您也计划在客户端(移动设备)上部署数据集。

    【讨论】:

    • 合并复制是否可以通过 Internet 与单独的站点一起使用?任何可能的 Web 服务实现或仅将 SQL Server 定向到 Sql Server ?
    • 合并复制工作在互联网上。但由于复制使用 Transact-SQL 语句来应用更改,这意味着两台服务器的 T-SQL 端口必须在 Internet 上开放,这是一个严重的安全问题,即使经过适当的加固也是如此。 WS 服务在此讨论中没有位置。
    【解决方案2】:

    您可以从网站数据库 (WSDB) 拉取或推送到企业数据库 (EDB),反之亦然。这取决于您对哪种类型的延迟感到满意。如果您想要近乎实时的同步,请使用推送。否则,EBD 可以每隔一小时左右通过 Web 服务方法或 REST 调用从 WSDB 中提取数据(反之亦然)。

    推送示例:

    1. 客户更新个人资料并按下“提交”按钮。
    2. WebSite 在 EDB 上调用 Web 服务方法 PushCustomerInfo(params)。

    拉例: 每小时 EBD 调用 Web 服务方法 GetCustomerInfo,该方法在 WSDB 上返回一个 Customer 对象。

    【讨论】:

    • 谢谢,但我需要防止 EDB 不可用(例如临时 Internet 链接失败)。所以也许还有一个“排队”系统。我不能假设 EDB 总是可用的,所以通过网络服务直接推送是行不通的。
    • 知道了。然后你会想要使用消息传递。不知道如何通过 Internet 使用 .Net 执行此操作。如果是 Intranet,我会说 MSMQ 或 WCF。
    • 实际上,请查看 msdn.microsoft.com/en-us/magazine/cc163920.aspx) 和 David Platt 在 2003 年 12 月号 MSDN® 杂志上的文章(MSMQ 和 .NET:使用 HTTP 和 SOAP 在 Internet 上安全地发送 MSMQ 消息)
    猜你喜欢
    • 2016-06-18
    • 2022-12-06
    • 2014-07-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多