李傳良
(山東絲綢紡織職業(yè)學(xué)院,山東 淄博 255300)
隨著 Internet的普及,XML作為新興的標(biāo)識(shí)語言,得到Web的廣泛應(yīng)用,并逐步成為 Internet存儲(chǔ)交換數(shù)據(jù)的一種常用機(jī)制。由于計(jì)算機(jī)技術(shù)應(yīng)用的發(fā)展,各行業(yè)領(lǐng)域的信息量呈爆漲,其中含有很多公共有效的數(shù)據(jù)庫資源,每個(gè)領(lǐng)域中的數(shù)據(jù)資源分散在各地的多個(gè)數(shù)據(jù)庫中,采用不同平臺(tái),缺少整體布局和統(tǒng)一管理,形成“信息孤島”,造成大量業(yè)務(wù)邏輯類似但形式分散且彼此缺少信息交互。為實(shí)現(xiàn)各部門之間的協(xié)調(diào)工作、數(shù)據(jù)和數(shù)據(jù)之間的關(guān)聯(lián)不易丟失,就必須解決在各個(gè)環(huán)節(jié)之間普遍存在的數(shù)據(jù)交互和部門協(xié)同的問題。XML的出現(xiàn)為異構(gòu)數(shù)據(jù)源的交換帶來了新思路和新技術(shù)。
XML(可擴(kuò)展標(biāo)記語言)作為數(shù)據(jù)交換和網(wǎng)絡(luò)計(jì)算的基礎(chǔ),已成為網(wǎng)絡(luò)上通用的語言。通過具有平臺(tái)無關(guān)性的 XML來表達(dá)知識(shí)、傳遞數(shù)據(jù),可以跨越平臺(tái)、設(shè)備和空間。同時(shí),XML具有如下優(yōu)點(diǎn):①簡便的數(shù)據(jù)交換:數(shù)據(jù)和標(biāo)記均以可配置的文本格式保存。②定制標(biāo)志語言:基于 XML進(jìn)行擴(kuò)展,可以定制自己的標(biāo)志語言。③自描述數(shù)據(jù)。④結(jié)構(gòu)化和綜合性的數(shù)據(jù):使用者不僅可以指定數(shù)據(jù),還可以指定數(shù)據(jù)結(jié)構(gòu),并可以將不同的元素組合成其他的元素。
這些優(yōu)點(diǎn)推動(dòng) XML在各個(gè)領(lǐng)域和行業(yè)迅速得到推廣和應(yīng)用。XML技術(shù)有效地解決了領(lǐng)域數(shù)據(jù)的交換問題,有力地推動(dòng)了領(lǐng)域信息化的進(jìn)程,但是在實(shí)際的工程領(lǐng)域,如CIMS、GIS中有時(shí)會(huì)帶來效率問題。因?yàn)?XML文件的完整性和領(lǐng)域數(shù)據(jù)的特殊性,在傳輸 XML格式數(shù)據(jù)時(shí)可能伴隨著大量“無用數(shù)據(jù)”的傳輸。這往往不僅影響傳輸效率,而且會(huì)浪費(fèi)許多資源。因?yàn)樾薷牡臄?shù)據(jù)量占整體數(shù)據(jù)量的比例往往很低,所以造成大量未修改數(shù)據(jù)的重復(fù)傳輸。這是工程領(lǐng)域利用 XML文件數(shù)據(jù)交換存在的普遍問題。特別是當(dāng)文件較大、用戶操作頻繁且需要同步更新大量用戶時(shí),這種問題就十分突出,甚至?xí)绊懴到y(tǒng)的實(shí)用性。
本文所提出的優(yōu)化技術(shù)的核心思想是以領(lǐng)域數(shù)據(jù)模型規(guī)范為基礎(chǔ),充分利用領(lǐng)域數(shù)據(jù)的邏輯關(guān)聯(lián),實(shí)現(xiàn)更靈活的 XML數(shù)據(jù)傳輸。①當(dāng)用戶請(qǐng)求訪問 XML文檔時(shí)首先將文檔解析為DOM(Document Object Mode1)樹。②根據(jù)文檔的 DTD(Document Type Definition)及存放文檔授權(quán)信息的XAS(XML Access Sheets)標(biāo)記DOM樹,給文檔中的每個(gè)節(jié)點(diǎn)都設(shè)置授權(quán)符號(hào)(“+”允許訪問,“-”禁止訪問)。③將DOM樹中所有授權(quán)符號(hào)為“-”的節(jié)點(diǎn)移除,將剩下的節(jié)點(diǎn)轉(zhuǎn)化為 XML格式返回給用戶。④移除某些節(jié)點(diǎn)而形成的新的文檔可能不符合原來的DTD。通過將DTD中所有的元素和屬性都設(shè)置為可選的來解決該問題,此過程稱為loosening DTD。用戶只能看到他有權(quán)訪問的那部分文檔,這樣就確保了數(shù)據(jù)的保密性。
在模型中仍然采用 XML作為用戶的數(shù)據(jù)交互格式標(biāo)準(zhǔn),這樣可以充分利用XML的易用性和通用性。當(dāng)用戶修改XML數(shù)據(jù)并需要傳送到其他節(jié)點(diǎn)以保持一致性時(shí),不直接傳送整個(gè)XML數(shù)據(jù)文件,而是首先參考領(lǐng)域知識(shí)和XML規(guī)范,以數(shù)據(jù)邏輯關(guān)聯(lián)為依據(jù),將 XML數(shù)據(jù)文件分解成粒度更小的數(shù)據(jù)對(duì)象集合。然后確定修改的影響范圍,將數(shù)據(jù)對(duì)象分為已變更數(shù)據(jù)對(duì)象隊(duì)列和未變更數(shù)據(jù)對(duì)象隊(duì)列。最后向其他網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)送已變更數(shù)據(jù)對(duì)象隊(duì)列。其他節(jié)點(diǎn)在接收已變更數(shù)據(jù)對(duì)象隊(duì)列后,替換原始數(shù)據(jù)對(duì)象集合中的相應(yīng)部分。再將更新后的數(shù)據(jù)對(duì)象集合成為XML文件,并展示給用戶。
分解 XML數(shù)據(jù)文件,是優(yōu)化的關(guān)鍵。合理的分解方法應(yīng)在分解方式和分解粒度兩個(gè)方面綜合考慮。分解方式以行業(yè)數(shù)據(jù)模型標(biāo)準(zhǔn)提供的XML Schema或DTD文檔為基礎(chǔ)。將關(guān)聯(lián)緊密、容易同時(shí)修改的內(nèi)容分解在同一個(gè)數(shù)據(jù)對(duì)象內(nèi),可以盡可能地減小已變更數(shù)據(jù)對(duì)象隊(duì)列的數(shù)量和體積。分解粒度應(yīng)綜合考慮具體的數(shù)據(jù)使用模式、數(shù)據(jù)修改量等多種因素。粒度不宜過小或過大。太大,失去優(yōu)化意義,太小也會(huì)影響優(yōu)化效果。
無論使用何種分解方法將XML文件映射為數(shù)據(jù)對(duì)象集合,都需要輔助信息記錄數(shù)據(jù)對(duì)象之間的邏輯關(guān)聯(lián),以便接收方正確地更新本地原始數(shù)據(jù)對(duì)象。采用多叉樹描述數(shù)據(jù)對(duì)象關(guān)聯(lián),樹上每一個(gè)節(jié)點(diǎn)代表一個(gè)數(shù)據(jù)對(duì)象。每個(gè)節(jié)點(diǎn)內(nèi)的關(guān)聯(lián)描述信息包括數(shù)據(jù)對(duì)象I、數(shù)據(jù)對(duì)象在多叉樹中的路徑path、包含子對(duì)象的個(gè)數(shù)childnum、指向子對(duì)象的指針child以及映射為父元素的屬性名transelement(適用于中粒度劃分法)。
基于上述模型提出如下傳輸優(yōu)化算法:①計(jì)算 XML數(shù)據(jù)文件的數(shù)據(jù)有效比。如果數(shù)據(jù)有效比較高,則直接傳輸整個(gè)數(shù)據(jù)文件。②選擇 XML數(shù)據(jù)文件劃分法。③根據(jù)所選劃分法的規(guī)則,把 XML數(shù)據(jù)文件分解為一組已變更數(shù)據(jù)對(duì)象和一組未變更數(shù)據(jù)對(duì)象。④計(jì)算關(guān)聯(lián)描述信息多叉樹。⑤將已變更數(shù)據(jù)對(duì)象隊(duì)列和關(guān)聯(lián)描述信息多叉樹發(fā)送到接收端。⑥接收端根據(jù)關(guān)聯(lián)描述信息,使用已變更數(shù)據(jù)對(duì)象更新原始數(shù)據(jù)對(duì)象集合。⑦接收端根據(jù)關(guān)聯(lián)描述信息和更新后的數(shù)據(jù)對(duì)象集。
XML格式數(shù)據(jù)傳輸優(yōu)化技術(shù)在各行業(yè)領(lǐng)域中得到了廣泛應(yīng)用,該思想有助于降低一致性維護(hù)時(shí)大體積 XML數(shù)據(jù)文件的傳輸量,提高訪問速度和效率。依托 XML數(shù)據(jù)訪問與傳遞模型,依據(jù)XML規(guī)范將XML數(shù)據(jù)文件分解為一組邏輯相關(guān)的數(shù)據(jù)對(duì)象進(jìn)行傳輸,減少無用數(shù)據(jù)的傳輸量,從而提高系統(tǒng)的數(shù)據(jù)服務(wù)速度,是一種簡單、實(shí)用的優(yōu)化技術(shù)。
1 李斕、何永忠、馮登國.面向XML文檔的細(xì)粒度強(qiáng)制訪問控制模型[J].軟件學(xué)報(bào),2004(10):1528~1537