2009-12-30 80 views
0

我有一些企業數據庫存儲由一些豐富的應用程序和一個擁有自己的數據庫存儲的網站使用。企業數據存儲和外部網站數據存儲之間的數據同步

企業應用程序使用本地數據和其中一些數據(如訂單,價格等)必須與網站數據存儲「同步」。

另一方面,互聯網客戶可以編輯他們的配置文件,這些配置文件也必須「同步」到企業數據存儲區。

基本上我需要這種架構:

Web網頁=>網站數據庫< => ||互聯網|| < =>企業數據庫< =豐富的應用程序

回答

0

挑選您的泊松。合併複製可能是最容易部署的。 Service Broker是性能最高的,但需要一個陡峭的學習曲線。 Synch Framework並不適用,除非您計劃在客戶端上部署數據集(移動設備)。

+0

合併複製是否通過互聯網與單獨的網站協同工作?任何Web服務實現可能或僅將SQL Server直接指向Sql Server? – 2009-12-30 21:49:34

+0

合併複製通過互聯網工作。但是由於複製使用Transact-SQL語句來應用這些更改,這意味着兩臺服務器的T-SQL端口必須在Internet上打開,這是一個嚴重的安全問題,即使經過適當的強化。 WS服務在這個討論中沒有地位。 – 2009-12-30 21:58:09

0

您可以執行從Web站點數據庫(WSDB)到企業數據庫(EDB)的拉或推,反之亦然。這取決於你對什麼類型的延遲感到滿意。如果你想近乎實時的同步,只需一個推。否則,EBD可以每隔一小時左右通過Web服務方法或REST調用從WSDB中提取(反之亦然)。

推例子:

  1. 客戶更新配置文件並按下 「提交」 按鈕。
  2. WebSite在EDB上調用Web服務方法PushCustomerInfo(params)。

拉〔實施例: 每小時EBD調用Web服務方法的getCustomerInfo返回上WSDB一個Customer對象。

+0

謝謝,但我需要防止EDB不可用(如臨時互聯網鏈接失敗)。所以也許還有一個「排隊」系統。我不能假定EDB總是可用,所以通過Web服務直接推送不起作用。 – 2009-12-30 22:18:16

+0

有你。你會想要使用消息。不知道如何通過互聯網與.Net做到這一點。如果是Intranet,我會說MSMQ或WCF。 – LWoodyiii 2009-12-30 22:52:35

+0

實際上,查看 http://msdn.microsoft.com/en-us/magazine/cc163920.aspx) 和 David Platt在MSDN®雜誌2003年12月刊中的文章(MSMQ and .NET:Send MSMQ Messages通過HTTP和SOAP安全地跨網絡) – LWoodyiii 2009-12-30 22:56:10