王鑫++朱維和
摘 要:在大部分web應(yīng)用中都有XML數(shù)據(jù)交互的需求。結(jié)合XML操作性強(qiáng)、規(guī)范統(tǒng)一、跨平臺(tái)的優(yōu)點(diǎn),主要研究了如何提高XML數(shù)據(jù)交互的效率,解決由于局部修改XML數(shù)據(jù)而影響系統(tǒng)整體性能的問題,從而減少無用數(shù)據(jù)的傳輸,避免資源的浪費(fèi),提高數(shù)據(jù)更新的效率。
關(guān)鍵詞:XML;數(shù)據(jù)交互;異構(gòu)數(shù)據(jù)源;數(shù)據(jù)模型
中圖分類號(hào):TP311.13 文獻(xiàn)標(biāo)識(shí)碼:A DOI:10.15913/j.cnki.kjycx.2015.22.021
1 概述
隨著信息技術(shù)的發(fā)展,各行業(yè)的信息量呈爆炸式增長(zhǎng),每個(gè)行業(yè)中的數(shù)據(jù)資源分散在不同的數(shù)據(jù)庫中,歸屬各個(gè)企業(yè)、部門所有。這些數(shù)據(jù)資源像一個(gè)個(gè)“數(shù)據(jù)孤島”,各自有著不同的處理對(duì)象和操作方法。這就形成了大量業(yè)務(wù)邏輯類似、形式分散且彼此缺少信息交互的系統(tǒng)。為實(shí)現(xiàn)各部門之間的協(xié)調(diào)工作、數(shù)據(jù)之間的共享,就必須解決數(shù)據(jù)交互和部門協(xié)同的問題。
目前,常規(guī)的異構(gòu)數(shù)據(jù)交換方式有以下三種:①電子數(shù)據(jù)交換(EDI)方式,即EDI可以通過統(tǒng)一的格式交換企業(yè)信息,而企業(yè)之間通過專用的數(shù)據(jù)網(wǎng)絡(luò)來交換數(shù)據(jù)。但EDI也帶來了許多問題,比如格式不靈活、成本較高、安全控制困難、連接可靠性不高等。②中介層方式,即提供一個(gè)應(yīng)用程序負(fù)責(zé)專用的數(shù)據(jù)轉(zhuǎn)換,轉(zhuǎn)換程序是特定、專用、復(fù)雜的。在這種方式下,參與數(shù)據(jù)交換的各方必須嚴(yán)格遵循相同的規(guī)則,才能準(zhǔn)確地對(duì)數(shù)據(jù)進(jìn)行封裝和解析,因此,這一方式缺乏良好的復(fù)用性和擴(kuò)展性。③數(shù)據(jù)倉庫方式,即中心數(shù)據(jù)倉庫負(fù)責(zé)提取各個(gè)分布、自治的系統(tǒng)數(shù)據(jù),并對(duì)各種數(shù)據(jù)具有高度的控制權(quán)。
當(dāng)前,幾乎所有的行業(yè)都存在因數(shù)據(jù)的復(fù)雜性和分布性而影響數(shù)據(jù)使用的問題。業(yè)務(wù)數(shù)據(jù)的復(fù)雜性體現(xiàn)在內(nèi)容復(fù)雜、格式復(fù)雜、語義信息豐富、數(shù)據(jù)量龐大等方面;分布性體現(xiàn)在數(shù)據(jù)來自各地的不同數(shù)據(jù)庫中,缺少統(tǒng)一、集中的管理。數(shù)據(jù)的用戶不應(yīng)局限于數(shù)據(jù)生產(chǎn)單位,還需要滿足科研用戶、管理用戶等其他用戶的需求,而這些用戶通常都分布在各個(gè)地方。XML的出現(xiàn)為行業(yè)數(shù)據(jù)中異構(gòu)數(shù)據(jù)源的交互帶來了新思路和新技術(shù),使用XML作為中間數(shù)據(jù)的交換技術(shù),克服了傳統(tǒng)數(shù)據(jù)交換系統(tǒng)的缺點(diǎn)。其優(yōu)點(diǎn)如下:具備可擴(kuò)展性,允許各個(gè)組織、個(gè)人建立適合自己的置標(biāo)集合;具備結(jié)構(gòu)性,數(shù)據(jù)存儲(chǔ)格式不受顯示格式的制約,將資料的內(nèi)容及其表現(xiàn)形式合理地分離,從而大大提高了XML數(shù)據(jù)的可理解性、可交換性和可重用性。
2 傳統(tǒng)XML數(shù)據(jù)更新方法
XML技術(shù)雖然有效地解決了行業(yè)數(shù)據(jù)的交換問題,有力地推動(dòng)了行業(yè)信息化的進(jìn)程,但是在實(shí)際應(yīng)用中,由于XML數(shù)據(jù)的完整性和行業(yè)數(shù)據(jù)的特殊性,在傳輸XML格式的數(shù)據(jù)時(shí)可能伴隨著大量“無用數(shù)據(jù)”的傳輸。當(dāng)一個(gè)用戶在客戶端修改一份XML數(shù)據(jù)文件時(shí),需要將其上傳至服務(wù)器,并由服務(wù)器通知其他用戶作相應(yīng)的更新?,F(xiàn)有的方法往往是把XML數(shù)據(jù)文件整體傳輸,導(dǎo)致不論用戶修改多少內(nèi)容,都需要把整個(gè)文件上傳至服務(wù)器,然后再由服務(wù)器把新的數(shù)據(jù)文件傳輸至其他用戶,這勢(shì)必造成資源的浪費(fèi)。當(dāng)XML數(shù)據(jù)較小、用戶操作不頻繁、需要同步更新的用戶數(shù)量不多時(shí),這種浪費(fèi)的影響還不明顯;當(dāng)數(shù)據(jù)較大、用戶操作頻繁且需要同步更新大量用戶時(shí),這種浪費(fèi)所導(dǎo)致的性能影響就非常大,甚至?xí)绊懴到y(tǒng)的實(shí)用性。
3 XML數(shù)據(jù)更新優(yōu)化技術(shù)
在滿足業(yè)務(wù)數(shù)據(jù)模型規(guī)范的前提下,充分利用業(yè)務(wù)數(shù)據(jù)的邏輯關(guān)聯(lián),將以XML數(shù)據(jù)為基本單位的傳輸方式分解為更細(xì)粒度的單位傳輸,即將XML格式的業(yè)務(wù)數(shù)據(jù)文件按照XML規(guī)范和業(yè)務(wù)知識(shí),分解為一系列相關(guān)聯(lián)的類進(jìn)行傳輸。在對(duì)XML業(yè)務(wù)數(shù)據(jù)中的某些信息進(jìn)行修改時(shí),只要按照XML規(guī)范定位到具體的元素,并將此元素對(duì)應(yīng)的類傳輸給網(wǎng)絡(luò)中的其他結(jié)點(diǎn),在接收結(jié)點(diǎn)中把類還原成XML元素,并根據(jù)業(yè)務(wù)規(guī)范在恰當(dāng)?shù)奈恢酶戮植繑?shù)據(jù)內(nèi)容。
優(yōu)化的關(guān)鍵是數(shù)據(jù)模型的劃分。合理的分解方法不僅易于理解和實(shí)現(xiàn),還可以保證將最緊密相關(guān)的數(shù)據(jù)放在一個(gè)類中。這樣,當(dāng)用戶修改多處數(shù)據(jù)時(shí),可以保證涉及的類數(shù)最少。如果粒度劃分過粗,則可能失去優(yōu)化的機(jī)會(huì);如果粒度劃分過細(xì),極端情況下附加信息的體積可能遠(yuǎn)遠(yuǎn)超過實(shí)際信息本身的體積,造成相反的結(jié)果。因此,劃分粒度的確定取決于具體的數(shù)據(jù)使用模式、數(shù)據(jù)修改量等諸多因素。
4 優(yōu)化技術(shù)特點(diǎn)
要實(shí)現(xiàn)這種新技術(shù),關(guān)鍵是要將XML數(shù)據(jù)按照一定規(guī)則分解。這樣做,雖然在一定程度上增加了工作量,但是用戶的使用效率得到了顯著的提高,同時(shí)也減少了網(wǎng)絡(luò)傳輸數(shù)據(jù)量。具體主要表現(xiàn)在以下三方面:①減少了數(shù)據(jù)體積,提高了系統(tǒng)數(shù)據(jù)服務(wù)速度。數(shù)據(jù)普遍采用了XML格式,這些格式中的大量?jī)?nèi)容是為了說明數(shù)據(jù)結(jié)構(gòu)和類型,因此造成數(shù)據(jù)體積偏大,影響數(shù)據(jù)傳輸速度。如果數(shù)據(jù)發(fā)送方從數(shù)據(jù)中將這些有用信息提取出來,把原來一體的各種信息解包(分解)成為一系列數(shù)據(jù)類(獨(dú)立又相互關(guān)聯(lián)的數(shù)據(jù)塊),然后把這些數(shù)據(jù)類分別傳輸?shù)綌?shù)據(jù)接收方,再在數(shù)據(jù)接收方按照數(shù)據(jù)格式要求,把各個(gè)獨(dú)立的類打包(逆向還原)成為與原始數(shù)據(jù)格式一致的一體數(shù)據(jù),供用戶使用,則可以有效減少數(shù)據(jù)體積,從而提高系統(tǒng)數(shù)據(jù)服務(wù)速度。②允許局部修改,減少了網(wǎng)絡(luò)傳輸數(shù)據(jù)量,提高了傳輸數(shù)據(jù)的使用率。將格式數(shù)據(jù)解包為一組數(shù)據(jù)類,可以實(shí)現(xiàn)在底層網(wǎng)絡(luò)傳輸時(shí)只發(fā)送用戶局部修改的部分而不必每次都傳輸完整的數(shù)據(jù)文件,從而有效降低數(shù)據(jù)的網(wǎng)絡(luò)傳輸量。③提高了用戶操作數(shù)據(jù)的能力。除了數(shù)據(jù)傳輸外,還提供了數(shù)據(jù)操作功能,其中,有些功能將涉及到數(shù)據(jù)內(nèi)部信息。借助于此優(yōu)化技術(shù),系統(tǒng)將數(shù)據(jù)按照一定格式解包成為一系列獨(dú)立又相互聯(lián)系的數(shù)據(jù)類,并在這些類的基礎(chǔ)上提供數(shù)據(jù)服務(wù),這樣可以顯著增強(qiáng)服務(wù)的特色和針對(duì)性,提高用戶操作數(shù)據(jù)的能力。
參考文獻(xiàn)
[1]趙沖沖.XML格式領(lǐng)域數(shù)據(jù)傳輸?shù)膬?yōu)化技術(shù)研究[J].計(jì)算機(jī)科學(xué),2009(8).
[2]張利.XML實(shí)用技術(shù)[M].北京:清華大學(xué)出版社,1999.
〔編輯:劉曉芳〕