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