《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 多數(shù)據(jù)中心的數(shù)據(jù)同步模型研究與設(shè)計(jì)
多數(shù)據(jù)中心的數(shù)據(jù)同步模型研究與設(shè)計(jì)
來源:微型機(jī)與應(yīng)用2013年第12期
張青鳳1,張鳳琴2,王 磊2
(1.運(yùn)城學(xué)院 公共計(jì)算機(jī)教學(xué)部,山西 運(yùn)城044000; 2.空軍工程大學(xué) 信息與導(dǎo)航學(xué)院,陜西
摘要: 鑒于目前數(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ù)同步問題提供一種新方法。
Abstract:
Key words :

摘  要: 鑒于目前數(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ù)來解決數(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ù)尋址的問題;綁定說明服務(wù)所能理解的通信協(xié)議,它實(shí)現(xiàn)了通信的所有細(xì)節(jié),包括網(wǎng)絡(luò)傳輸、消息編碼,以及為實(shí)現(xiàn)某種功能對(duì)消息進(jìn)行的相應(yīng)處理,WCF中具有一系列的系統(tǒng)定義綁定;契約說明服務(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ù)庫和大量遠(yuǎn)程數(shù)據(jù)庫之間的數(shù)據(jù)傳輸和不同類型數(shù)據(jù)庫之間的數(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ù)庫、數(shù)據(jù)庫服務(wù)器和同步服務(wù)器組成。每個(gè)結(jié)點(diǎn)的數(shù)據(jù)可以是ADO.NET支持的不同廠商的數(shù)據(jù)庫,如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)傳送來的文件后,目標(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ù)庫同步技術(shù)已落后于多數(shù)據(jù)中心數(shù)據(jù)同步的要求,數(shù)據(jù)同步技術(shù)的開發(fā)研究尚不成熟,無法滿足企業(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ù)庫數(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ù)庫同步系統(tǒng)的研究與應(yīng)用[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(24):5278-5281.
[4] 楊佳,何丕雁.分布式實(shí)時(shí)數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)同步通信研究[J].廣東通信技術(shù),2008(4):73-79.
[5] 丁鯤,嚴(yán)浩.分布式數(shù)據(jù)庫數(shù)據(jù)同步技術(shù)研究[J].海軍工程大學(xué)學(xué)報(bào),2004,16(5):100-104.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。