摘 要: 鑒于目前數據同步領域存在的不足,通過對WCF技術、數據同步技術的研究和分析,構建了一個數據同步模型。該模型能實現多個數據中心的數據高效、實時地同步,為解決分布式信息系統的數據同步問題提供一種新方法。
關鍵詞: 數據同步;WCF;增量同步
隨著信息化建設的不斷深入和擴充,不同地域的公司管理系統之間不能實現資源共享和信息互訪的問題日益突出。為了解決跨地域管理所遇到的問題,多數企業采用分布式對象技術來解決數據同步這一問題。多數據中心的數據同步是一項復雜的系統工程,在數據的同步更新中更是面臨著高效性、一致性、實時性等特殊要求[1]。本文在對WCF(Windows Communication Foundation)技術和數據同步技術進行分析與研究的基礎上,建立一種多中心數據同步、實時、高效的數據通信同步模型。
1 WCF的基本通信機制
WCF是由微軟推出的一個基于面向服務的通信框架產品,它整合了原有的分布式解決方案,提供了一種更靈活、更具操作性的解決方案[2],使軟件研發人員在WCF下的開發工作變得更加方便輕松。
WCF采用的是基于終結點(Endpoint)的通信手段,它通過暴露終結點的方式,將要實現的業務數據傳給調用程序[2]。一個終結點包含了實現通信所必需的所有信息,它由地址(Address)、綁定(Binding)和契約(Contract)三要素組成。其中地址決定了服務的位置,解決了服務尋址的問題;綁定說明服務所能理解的通信協議,它實現了通信的所有細節,包括網絡傳輸、消息編碼,以及為實現某種功能對消息進行的相應處理,WCF中具有一系列的系統定義綁定;契約說明服務提供的操作及數據交換格式。WCF框架示意圖如圖1所示。
2 數據通信同步分析
數據通信同步服務是多數據中心體制的神經網絡,信息系統通過通信服務把不同區域的數據中心聯系在一起,構建了一個數據傳輸交換的通道[3]。通信服務程序主要負責將分散在各地的數據匯總到大腦中,再將大腦的命令下發,從而實現系統內中心統一數據庫和大量遠程數據庫之間的數據傳輸和不同類型數據庫之間的數據交換。
2.1 數據通信中的主要同步數據類型
數據通信同步中涉及到的數據類型主要有基礎數據、實時數據和非實時數據,具體特點比較如表1所示。
2.2 數據通信中的同步方式
在實現數據同步的過程中,按數據源節點的流向主要分為單向同步、雙向同步。實際應用中,根據具體的需求選擇相應的數據同步類型。數據通信中同步方式比較如表2所示。
2.3 數據通信中的同步機制
針對數據通信同步的復雜性,為了增強數據通信同步的合理性,通常會采用手動機制、實時機制、定時機制[4],如表3所示。
2.4 數據通信中的同步方法
由于不同服務器上存儲的數據類型和作用不同而采用不同的同步方法,通常采用完全同步法和差異同步法,二者比較如表4所示。
3 多數據中心數據同步模型設計
3.1 數據通信系統架構
由于各數據結點在地理或者物理位置上的分散性而導致的信息孤島,在同一個信息系統中的各結點不但要維護自身存儲的數據,而且需要與其他結點保持數據一致,為使分布式信息系統解決數據管理和同步問題,建立系統結構如圖2所示。
上述系統結構借助WCF框架構建了構建N層應用程序體系結構[5],實現各數據結點的數據同步。系統結構在實現分站之間數據同步的同時,還使得各結點的數據可以相互備份,增強了數據的安全性。在該系統中每個同步結點由數據庫、數據庫服務器和同步服務器組成。每個結點的數據可以是ADO.NET支持的不同廠商的數據庫,如Microsoft SQL Server、Oracle和MySQL等。應用程序服務器上需要安裝.NET Framework 3.5,承載一個WCF服務,遠程的同步結點通過構建的服務實現數據的同步過程。
3.2 數據通信同步模型設計
通過對WCF技術的深入研究和分析,建立一個數據通信同步模型,該模型主要用于數據增量同步。在該模型中將數據同步服務細分為數據捕獲、通信建立、數據傳輸、數據更新幾個階段。數據通信同步模型如圖3所示。
(1)數據捕獲:在這個階段,對數據同步過程中的源數據結點中的數據進行監控,對數據變化信息(差異數據)進行捕獲。當某一結點數據發生變化后,對差異數據進行捕獲,生成數據變化列表。
(2)通信建立:當捕獲到數據變化信息時,向通信同步服務發出數據同步的請求,然后調用通信同步服務,為數據傳輸做好準備。
(3)數據傳輸:將捕獲到的差異數據按照要求進行相關處理后,并且按照預定的傳輸機制調用通信同步服務,將變化的數據信息傳輸至目標結點。
(4)數據更新:當目標結點獲得源結點傳送來的文件后,目標結點對接收到的數據進行逆向處理,然后應用事務處理機制將接收到的數據同步更新至本結點的對應位置,從而完成整個數據同步過程。
實現數據差異同步最關鍵的是及時捕獲變化的數據,此過程一般有兩點要求:第一,能按規則準確地捕捉到系統中的變化數據;第二,捕獲變化數據過程不能對系統造成太大的壓力而影響現有的系統功能。
目前最常用的捕捉變化數據的方法有觸發器方式、時間戳方式、全表刪除插入方式、全表對比方式、日志表方式等[5]。
數據同步問題是多數據中心的分布式信息系統經常要面臨的問題,傳統的數據庫同步技術已落后于多數據中心數據同步的要求,數據同步技術的開發研究尚不成熟,無法滿足企業的管理需求。本文通過對WCF技術和數據同步技術進行較深入的研究和分析,設計出一個多數據中心數據同步模型,有關該模型如何實現還有許多問題需要進一步探索。
參考文獻
[1] 周偉,劉豐.分布式數據庫數據同步技術研究[J].計算機與信息技術,2010(9):13-20.
[2] 劉黎志,吳云韜.應用WCF分布式框架實現移動數據同步[J].計算機應用,2011,31(12):3281-3284.
[3] 林源,陳志泊.分布式異構數據庫同步系統的研究與應用[J].計算機工程與設計,2010,31(24):5278-5281.
[4] 楊佳,何丕雁.分布式實時數據庫系統數據同步通信研究[J].廣東通信技術,2008(4):73-79.
[5] 丁鯤,嚴浩.分布式數據庫數據同步技術研究[J].海軍工程大學學報,2004,16(5):100-104.