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