鄭祥云 張 娟
摘要:在分析市政基礎(chǔ)設(shè)施數(shù)據(jù)的特點(diǎn)和數(shù)據(jù)同步技術(shù)的基礎(chǔ)上,提出了一種基于工作庫和中間件的數(shù)據(jù)同步模型,在設(shè)計(jì)該同步模型時(shí),考慮數(shù)據(jù)同步中安全、效率、通用、靈活等多方面因素,以解決市政行業(yè)級與市政級數(shù)據(jù)同步更新問題。
關(guān)鍵詞:數(shù)據(jù)同步;中間件;工作庫;XML
中圖分類號:F294
文獻(xiàn)標(biāo)識碼:A
文章編號:1672-3198(2009)09-0249-02
1市政管理信息集成系統(tǒng)同步相關(guān)業(yè)務(wù)分析
政府綜合管理部門沒有能力對各類數(shù)據(jù)實(shí)施動態(tài)更新,更新只能由權(quán)屬單位來做,而各權(quán)屬單位在地域上一般是分散的,所以需要采用分布式數(shù)據(jù)庫技術(shù),將各個(gè)市政行業(yè)數(shù)據(jù)庫的變化動態(tài)反映到集成的綜合數(shù)據(jù)庫服務(wù)器之中。市政信息分布式一體化動態(tài)管理概念模型。如圖1所示:
對市政同步相關(guān)業(yè)務(wù)分析主要集中在數(shù)據(jù)的類別、流動方向、數(shù)據(jù)量和流動特點(diǎn)等幾個(gè)方面。市政管理信息集成系統(tǒng)中需要同步的數(shù)據(jù)主要有市政基礎(chǔ)設(shè)施數(shù)據(jù)和業(yè)務(wù)數(shù)據(jù)兩類。這兩類數(shù)據(jù)的特點(diǎn)是頻繁、大量、耗時(shí)和集中。數(shù)據(jù)由各行業(yè)數(shù)據(jù)經(jīng)過篩選、過濾綜合后向綜合管理級同步。因此數(shù)據(jù)同步方案必須符合以下幾點(diǎn)要求;保證海量空間數(shù)據(jù)同步的高效性;保證數(shù)據(jù)同步安全性;數(shù)據(jù)同步方案應(yīng)具有較強(qiáng)的容錯性;保證異構(gòu)環(huán)境下的數(shù)據(jù)同步。
2解決方案構(gòu)想和設(shè)計(jì)
基于工作庫和中間件的數(shù)據(jù)同步模型的總體設(shè)計(jì)思路可以概括為:首先對同步參數(shù)進(jìn)行分類,針對不同類別的參數(shù),設(shè)計(jì)不同的工作表,共同構(gòu)成同步工作庫。然后,結(jié)合工作庫進(jìn)行數(shù)據(jù)同步中間件的設(shè)計(jì),把數(shù)據(jù)同步過程抽象為數(shù)據(jù)訪問、數(shù)據(jù)捕獲、數(shù)據(jù)傳輸、數(shù)據(jù)轉(zhuǎn)換和安全驗(yàn)證等環(huán)節(jié),分別對各個(gè)環(huán)節(jié)進(jìn)行設(shè)計(jì),然后進(jìn)行一定程度的集成形成數(shù)據(jù)同步集成中間件?;诠ぷ鲙旌椭虚g件的數(shù)據(jù)同步的總體模型如圖1所示:
3同步工作庫
同步工作庫是完成同步工作參數(shù)的集合,為數(shù)據(jù)同步做準(zhǔn)備工作,是數(shù)據(jù)同步的基礎(chǔ)。數(shù)據(jù)同步參數(shù)大致可以分為兩類:一類是數(shù)據(jù)同步過程中進(jìn)行數(shù)據(jù)過濾和篩選的一些“條件”,例如:同步表過濾、屬性字段篩選等;另一類是用于同步的配置信息。如:同步方式、數(shù)據(jù)庫連接、網(wǎng)絡(luò)連接、同步功能選擇等;具體說包括以下內(nèi)容:
(1)同步過濾。由于行業(yè)級所管理的數(shù)據(jù)與市政級所管理的存在很大差異,一般前者更詳盡,后者則是前者在城市規(guī)劃意義上的綜合。因此,在行業(yè)級與市政級進(jìn)行數(shù)據(jù)同步時(shí)會遇到兩個(gè)問題:其一是行業(yè)級有些數(shù)據(jù)表參與數(shù)據(jù)同步,而有些表與同步無關(guān);其二是參與同步的表中也存在有些字段需要同步,而有些字段不需要同步。對于這兩個(gè)問題,如果要對海量的空間數(shù)據(jù)進(jìn)行數(shù)據(jù)同步且沒有進(jìn)行同步數(shù)據(jù)過濾和篩選,則會大大降低數(shù)據(jù)同步的效率。因此,在進(jìn)行數(shù)據(jù)同步時(shí),必須對行業(yè)級同步表進(jìn)行過濾,對同步表中同步字段進(jìn)行篩選,通過拼接過濾串把不需要同步的數(shù)據(jù)屏蔽掉,從而減少數(shù)據(jù)同步量,提高數(shù)據(jù)同步效率。
(2)命名映射。在行業(yè)級與市政級進(jìn)行數(shù)據(jù)同步時(shí),可能會遇到命名沖突的問題,即存在屬性字段名稱不一致的情況。針對這種情況,需要對源表S與目標(biāo)表T中存在命名沖突的屬性建立映射關(guān)系,建立命名沖突映射表。
(3)類型映射。在行業(yè)級與市政級進(jìn)行數(shù)據(jù)同步時(shí),可能會遇到數(shù)據(jù)類型異構(gòu)的問題。這種異構(gòu)主要表現(xiàn)在兩個(gè)方面:一方面是指行業(yè)級與市政級存在屬性字段類型不一致的情況;另一方面是指源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫選擇不同的數(shù)據(jù)庫系統(tǒng)導(dǎo)致的數(shù)據(jù)類型的不一致(精度差異和語義差異)。針對這個(gè)問題,需要預(yù)先設(shè)置存在差異
的數(shù)據(jù)類型的對應(yīng)關(guān)系,建立數(shù)據(jù)類型映射表,進(jìn)行數(shù)據(jù)類型的轉(zhuǎn)換。
(4)數(shù)據(jù)庫連接參數(shù)。數(shù)據(jù)庫連接參數(shù)是指在進(jìn)行數(shù)據(jù)庫訪問時(shí)連接源數(shù)據(jù)庫或目標(biāo)數(shù)據(jù)庫的連接信息。數(shù)據(jù)庫連接參數(shù)一般有DBMS類型、數(shù)據(jù)庫服務(wù)器名、數(shù)據(jù)庫名、用戶名和用戶密碼等。
(5)數(shù)據(jù)同步基本參數(shù)。主要包括同步功能選擇信息和同步工作基本配置信息。例如同步方式的選擇(影子表法、時(shí)間戳法、控制表法);同步頻率,指兩次同步的時(shí)間間隔;同步時(shí)間,指最近一次數(shù)據(jù)同步時(shí)間;同步優(yōu)先級,指當(dāng)多個(gè)數(shù)據(jù)庫同時(shí)與中心數(shù)據(jù)庫同步時(shí),根據(jù)同步優(yōu)先級排列同步秩序;是否進(jìn)行加密以及加密或簽名的元素等等。4數(shù)據(jù)同步集成中間件
該部分采用多層架構(gòu)Web Service體系結(jié)構(gòu),并在一定程度上實(shí)現(xiàn)Web Service集成。從內(nèi)部實(shí)現(xiàn)來看,本中間件設(shè)計(jì)是以Web Services的方式對外提供交互,以Web應(yīng)用客戶端和其它應(yīng)用程序客戶端從不同的平臺,不同的軟件開發(fā)環(huán)境調(diào)用該集成中間件的Web Services接口,從而獲得來自不同數(shù)據(jù)源的數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)的透明訪問。這部分結(jié)合同步工作庫完成數(shù)據(jù)同步的主要工作,是數(shù)據(jù)同步核心部分。具體包括數(shù)據(jù)庫訪問、變化數(shù)據(jù)抽取、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)傳輸、安全驗(yàn)證等五個(gè)小模塊。
4.1數(shù)據(jù)庫訪問模塊
該模塊主要是提供一種對數(shù)據(jù)庫簡單、高效的訪問方式。該模塊使Web服務(wù)與Data Access Application Block相結(jié)合,通過保存在工作庫中的數(shù)據(jù)庫名稱、服務(wù)器名稱、服務(wù)器類型、連接數(shù)據(jù)庫用戶名和連接數(shù)據(jù)庫密碼等信息建立與源數(shù)據(jù)庫的連接。Data Access Application Block對于不同類型的數(shù)據(jù)庫提供了編程上的透明性,可以屏蔽數(shù)據(jù)庫類型的差異。即無論對什么樣的數(shù)據(jù)庫進(jìn)行編程都采用同樣的數(shù)據(jù)訪問方式,并且它搭建了邏輯數(shù)據(jù)庫與物理數(shù)據(jù)庫間的橋梁,降低了改變物理數(shù)據(jù)目標(biāo)的難度。因此,我們在編程時(shí)根本不需要知道是在對哪一類數(shù)據(jù)庫進(jìn)行編程,這個(gè)數(shù)據(jù)庫放在什么地方。
4.2數(shù)據(jù)獲取模塊
數(shù)據(jù)捕獲即提取行業(yè)級數(shù)據(jù)庫中要進(jìn)行同步的數(shù)據(jù)。數(shù)據(jù)捕獲的方法有多種,如:觸發(fā)器法、日志法、API法、影子表法、控制表法、時(shí)間戳法和快照法等。不同的數(shù)據(jù)捕獲方法都有其相應(yīng)的優(yōu)缺點(diǎn),依據(jù)系統(tǒng)特色去選擇相應(yīng)的捕獲方法至關(guān)重要。因此,該模塊在設(shè)計(jì)時(shí),考慮整個(gè)模型的通用性和靈活性,使用Web服務(wù)對以上提到的各種方法進(jìn)行封裝。而系統(tǒng)具體使用哪一種方法,可以通過工作庫中同步基本參數(shù)的配置進(jìn)行選擇。而每種方法的輔助機(jī)制則在工作庫配置完成后智能生成,例如:工作庫中數(shù)據(jù)捕獲選擇為時(shí)間戳法。則需要自動生成時(shí)間戳字段、刪除表、更新表,以及相應(yīng)的觸發(fā)器等輔助機(jī)制。
4.3數(shù)據(jù)轉(zhuǎn)換模塊
XML作為一種標(biāo)準(zhǔn)數(shù)據(jù)交換格式,主要用于異構(gòu)環(huán)境下的數(shù)據(jù)交換。以及在網(wǎng)絡(luò)上傳輸大量的結(jié)構(gòu)化數(shù)據(jù)。該模塊利用XML作為異構(gòu)數(shù)據(jù)交換的載體,完成異構(gòu)數(shù)據(jù)轉(zhuǎn)換工作。主要包括以下兩個(gè)部分:
(1)關(guān)系數(shù)據(jù)到XML文檔的映射。關(guān)系數(shù)據(jù)到XML文檔的映射包括兩個(gè)部分:一部分是XML Schema,就是
XML的描述語言部分,XMLSehema能定義XML文檔的結(jié)構(gòu)、內(nèi)容和語義,Xml Schema文檔生成后將放置到目標(biāo)服務(wù)器,做為預(yù)置XML文檔格式約束以便對XML數(shù)據(jù)文檔進(jìn)行有效性驗(yàn)證;另一部分是包含數(shù)據(jù)捕獲模塊獲取的具體數(shù)據(jù)的XML數(shù)據(jù)文檔。
(2)XML文檔到關(guān)系數(shù)據(jù)庫的映射。
是關(guān)系數(shù)據(jù)到XML映射的逆過程,即將XML文檔中內(nèi)容反映到目標(biāo)數(shù)據(jù)庫中。具體包括以下方面:結(jié)合工作庫中的類型映射表,提取需要數(shù)據(jù)類型轉(zhuǎn)換的字段,選擇相應(yīng)的類型轉(zhuǎn)換方法進(jìn)行類型轉(zhuǎn)換;結(jié)合工作庫中命名沖突映射表,進(jìn)行字段命名轉(zhuǎn)換,最后,動態(tài)生成sQL語句,實(shí)現(xiàn)XML數(shù)據(jù)文檔到數(shù)據(jù)庫的轉(zhuǎn)換。
4.4數(shù)據(jù)傳輸模塊
數(shù)據(jù)傳輸模塊分為數(shù)據(jù)發(fā)送和數(shù)據(jù)接收兩個(gè)部分。分別部署在市政級服務(wù)器和行業(yè)級服務(wù)器上,發(fā)送部分負(fù)責(zé)把源數(shù)據(jù)庫中提取的變化數(shù)據(jù)生成的XML數(shù)據(jù)文檔交給發(fā)送模塊進(jìn)行網(wǎng)絡(luò)傳輸,穿過安全網(wǎng)發(fā)送到數(shù)據(jù)接收端;接收端接收XML數(shù)據(jù)文檔,放置XML文件庫,并返回接收成功信號。
數(shù)據(jù)傳輸步驟如下:
(1)數(shù)據(jù)中心向接收端發(fā)送同步請求。即向接收端發(fā)送一個(gè)同步源的數(shù)據(jù)庫ID號。
(2)接收端通過同步源數(shù)據(jù)庫ID號檢索工作庫SourD-BConInfo表,提取同步源數(shù)據(jù)庫相關(guān)信息。
(3)接收端依據(jù)步驟2提取的信息向不同的發(fā)送端發(fā)送請求信息。
(4)發(fā)送端接收到發(fā)送請求后開始向接收端發(fā)送數(shù)據(jù)。即發(fā)送經(jīng)過變化數(shù)據(jù)抽取、加密過的XML數(shù)據(jù)文檔。
(5)接收端將接收到XML文檔置于XML文件庫,檢索工作庫BaseConfiglnfo表(是否有加密)進(jìn)行相應(yīng)的處理,并向發(fā)送端發(fā)送接收狀態(tài)信息。如XML文檔驗(yàn)證失敗,則向發(fā)送端發(fā)送失敗消息,發(fā)送端將重新進(jìn)行數(shù)據(jù)的發(fā)送;如XML數(shù)據(jù)文檔成功通過驗(yàn)證,則向發(fā)送端發(fā)送成功信息,整個(gè)傳輸過程結(jié)束;數(shù)據(jù)傳輸過程如圖3。
4.5安全驗(yàn)證模塊
安全驗(yàn)證模塊的功能是保證同步數(shù)據(jù)的完整性和安全性。具體說包括兩個(gè)部分;一是XML文檔的加密與解密。通過對一些加密算法的研究,綜合對稱加密算法與非對稱加密算法的優(yōu)缺點(diǎn),本文同時(shí)選擇了AES對稱加密算法和RAS非對稱加密算法。首先用AES對稱加密算法對XML數(shù)據(jù)加密。然后使用RAS非對稱加密算法對前面使用的AES對稱加密算法的密鑰加密。以達(dá)到在速度和安全性方面的優(yōu)化組合。二是XML文檔有效性驗(yàn)證。XML文檔有效性驗(yàn)證包括定義的文檔模式符合XML Schema的語法和模式是可以被實(shí)例化的,可以作為XML實(shí)例文檔數(shù)據(jù)有效性驗(yàn)證標(biāo)準(zhǔn)兩個(gè)方面。對文檔進(jìn)行有效性驗(yàn)證不僅可以保證同步數(shù)據(jù)的準(zhǔn)確性,也可處理如網(wǎng)絡(luò)狀況差或突然斷電引起數(shù)據(jù)傳輸?shù)牟煌暾浴?/p>