杜月云++邢文凱
摘 要:本文針對異構(gòu)環(huán)境下在線考試系統(tǒng)的集成提出的一種解決方案,在不影響原系統(tǒng)的基礎(chǔ)上,構(gòu)建一個集成平臺,實現(xiàn)異構(gòu)數(shù)據(jù)庫到XML格式文件的轉(zhuǎn)換,使得異構(gòu)環(huán)境下的在線考試系統(tǒng)可以共享數(shù)據(jù)。重點論述集成異構(gòu)在線考試系統(tǒng)設(shè)計與實現(xiàn):異構(gòu)數(shù)據(jù)源集成的需求、系統(tǒng)功能模塊設(shè)計、XML數(shù)據(jù)集成設(shè)計。包括包裝器、查詢處理模塊、結(jié)構(gòu)處理模塊的設(shè)計,實現(xiàn)由不同數(shù)據(jù)庫到XML格式數(shù)據(jù)的轉(zhuǎn)換集成,實現(xiàn)了在線考試信息系統(tǒng)中異構(gòu)數(shù)據(jù)的共享。
關(guān)鍵詞:集成;異構(gòu)數(shù)據(jù)源;在線考試系統(tǒng)
中圖分類號:TP311.52 文獻標(biāo)識碼:A
1 引言(Introduction)
目前,我們已經(jīng)進入了大數(shù)據(jù)時代,大數(shù)據(jù)的典型特征就是海量的信息資源和復(fù)雜的異構(gòu)信息資源。高校作為先進技術(shù)的開創(chuàng)者,一直走在信息化發(fā)展的前列。但是伴隨著信息化的發(fā)展和教育改革的不斷深化,傳統(tǒng)的考試形式很難滿足高校發(fā)展的需求,于是形形色色的在線考試系統(tǒng)如雨后春筍般涌現(xiàn)。但是由于前期缺乏統(tǒng)一的規(guī)劃,導(dǎo)致在線考試系統(tǒng)存在結(jié)構(gòu)異化、相互之間不能兼容,嚴(yán)重影響了在線考試系統(tǒng)的發(fā)展。如何集成異構(gòu)的在線考試系統(tǒng),提高在線考試系統(tǒng)的效率成為高校需要迫切解決的關(guān)鍵問題之一。
2 異構(gòu)數(shù)據(jù)集成技術(shù)[1,2](Heterogeneous data
integration technology)
隨著對數(shù)據(jù)集成技術(shù)的日趨成熟,現(xiàn)在既可以實現(xiàn)數(shù)據(jù)庫中結(jié)構(gòu)化數(shù)據(jù)的集成,也能夠處理文本文件等非結(jié)構(gòu)化的數(shù)據(jù);不僅能夠集成文本類型的常見數(shù)據(jù),也可以集成圖片、聲音、動畫、視頻等多媒體形式的數(shù)據(jù);經(jīng)過數(shù)據(jù)集成的數(shù)據(jù)都具有完整性、一致性和集成性三大特征。隨著XML等新技術(shù)的發(fā)展,異構(gòu)數(shù)據(jù)源集成技術(shù)的發(fā)展也從未停歇。
中間件模式通過中間件進行異構(gòu)數(shù)據(jù)源的集成,它無需變動原有系統(tǒng)中的信息管理和存儲方法。該模式下中間件類似于一個服務(wù)接口,它位于異構(gòu)數(shù)據(jù)源和信息管理系統(tǒng)之間。對于異構(gòu)數(shù)據(jù)中間件可以協(xié)調(diào)他們之間的關(guān)系,使異構(gòu)數(shù)據(jù)庫中的數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)的數(shù)據(jù)進行數(shù)據(jù)交換;對于各個信息管理系統(tǒng)的用戶中間件能夠提供一個統(tǒng)一的訪問接口供用戶使用。其體系結(jié)構(gòu)如圖1所示。
集成(Mediation)模式是中間件體系結(jié)構(gòu)的核心[3]。采用該模式我們能夠?qū)悩?gòu)數(shù)據(jù)源的各種數(shù)據(jù)信息通過專用的封裝器進行相互轉(zhuǎn)換,轉(zhuǎn)換后的數(shù)據(jù)具有統(tǒng)一的格式,可以實現(xiàn)數(shù)據(jù)交換和資源共享。用戶在該模式下可以實現(xiàn)跨異構(gòu)數(shù)據(jù)源的信息查詢功能,其實現(xiàn)過程大致如下:首先系統(tǒng)將用戶的請求自動轉(zhuǎn)換成標(biāo)準(zhǔn)的格式,再將這些標(biāo)準(zhǔn)的格式找到對應(yīng)的封裝器,利用封裝器將其轉(zhuǎn)化為其對應(yīng)的數(shù)據(jù)源能夠識別的查詢語句,數(shù)據(jù)源經(jīng)過相應(yīng)的查詢處理后,將查詢結(jié)果交給包裝器進行提取,最后通過集成處理后將最終結(jié)果反饋給發(fā)出查詢請求的用戶,普通用戶查詢時非常方便,幾乎感覺不到使用的是異構(gòu)數(shù)據(jù)源。
3 系統(tǒng)的設(shè)計與實現(xiàn) (System design and implementation)
3.1 異構(gòu)數(shù)據(jù)源集成的需求
目前,高校自建了很多形式各樣的在線考試系統(tǒng),在為高校考試信息化改革做出巨大貢獻的同時也存在很多問題,如各系統(tǒng)使用的數(shù)據(jù)庫多種多樣,版本也各不相同,導(dǎo)致相互之間難以兼容,給高校考務(wù)工作帶來了很多不便,為了提高考務(wù)管理的效率,必須對異構(gòu)的數(shù)據(jù)進行集成。主要體現(xiàn)在幾個方面:形成考試系統(tǒng)全局視圖;統(tǒng)一的查詢模式;實現(xiàn)關(guān)聯(lián)查詢;保持原有數(shù)據(jù)庫獨立和完整;實現(xiàn)跨系統(tǒng)的集成查詢。
3.2 系統(tǒng)功能模塊設(shè)計
本課題針對高校目前存在的體系結(jié)構(gòu)異化的在線考試系統(tǒng)進行集成,首先要對目前正在使用的在線考試系統(tǒng)進行分析,發(fā)現(xiàn)很多是學(xué)院教師結(jié)合自己的技術(shù)和在線考試的需求自行開發(fā),前期并沒有進行深入的功能模塊劃分和UML建模,這就加大了數(shù)據(jù)集成的難度。為了更好的進行數(shù)據(jù)集成,我們對所有的在線考試系統(tǒng)進行分析,系統(tǒng)主要有學(xué)生、教師和系統(tǒng)管理員三類用戶,按照功能具體可以分為題庫管理、試卷管理、成績管理、用戶管理等11個功能模塊。
3.3 XML數(shù)據(jù)集成設(shè)計
首先,為所有異構(gòu)數(shù)據(jù)源設(shè)計自己特有的包裝器,它可以對異構(gòu)數(shù)據(jù)進行處理轉(zhuǎn)化為能夠被識別的統(tǒng)一格式數(shù)據(jù),并通過XML形式進行數(shù)據(jù)訪問。查詢處理器主要完成數(shù)據(jù)庫中最常用的查詢操作,比如查詢學(xué)生的成績。本文設(shè)計的查詢處理器能夠?qū)Σ樵冞M行分解,將子查詢根據(jù)實際情況發(fā)放到各個異構(gòu)數(shù)據(jù)庫中。結(jié)果處理模塊能夠把查詢處理器得到的查詢結(jié)果進行XML轉(zhuǎn)換,并將相關(guān)內(nèi)容進行合并處理為一個標(biāo)準(zhǔn)化的XML文檔,即是將查詢結(jié)果以XML形式返回給相應(yīng)的應(yīng)用軟件。
(1)包裝器
包裝器(Wrapper)處于邏輯層的最底層,它負(fù)責(zé)直接抽取數(shù)據(jù)源中的數(shù)據(jù),是XML進行數(shù)據(jù)集成的必要組件。一般情況下,所有數(shù)據(jù)源都需有一個與之對應(yīng)的包裝器負(fù)責(zé)數(shù)據(jù)的提取工作。不管數(shù)據(jù)源是那種結(jié)構(gòu)化的關(guān)系型數(shù)據(jù)庫,還是非結(jié)構(gòu)化的文本數(shù)據(jù)都要有一個包裝器使用XML將其進行包裝,在包裝過程中不能影響原有數(shù)據(jù)源狀態(tài),使得包裝器和數(shù)據(jù)源直接一直保持相互映射的關(guān)系。經(jīng)過包裝處理后的XML信息一般不能用于查詢條件復(fù)雜苛刻的數(shù)據(jù),只能進行一系列簡單的選擇。如果必須進行詳細的信息查詢,需要XML和Xquery協(xié)同構(gòu)建一個針對數(shù)據(jù)源能夠識別的SQL查詢語句,然后使用該語句進行查詢,當(dāng)查詢完成后需要將結(jié)果轉(zhuǎn)換為標(biāo)準(zhǔn)的XML數(shù)據(jù)模型供其他模塊使用。
包裝器還需要解決各種類型數(shù)據(jù)源與局部視圖之間的雙向映射。文中將使用XSL對用戶視圖定義,也就是用XML來解釋集成數(shù)據(jù),用XML Schema表示集成模式中數(shù)據(jù)源間的映射。由相應(yīng)的包裝器把各數(shù)據(jù)源的本地視圖就全都溶入到全局視圖了。期間,為了方便對XML文檔進行定位和解析,包裝器將數(shù)據(jù)源中的數(shù)據(jù)轉(zhuǎn)換為DOM對象[4]。
關(guān)系數(shù)據(jù)到XML文檔的映射規(guī)則:列映射為屬性,表映射為元素[5]。屬性標(biāo)記及元素標(biāo)記都是自定義的,在Schema文件中都存放相關(guān)的描述,用來表示從關(guān)系表中所獲取的字段信息[6]。同時經(jīng)過使用屬性標(biāo)記和元素標(biāo)記,從而使得XML的文檔內(nèi)容具備了可識別性。
(2)查詢分配器設(shè)計
集成異構(gòu)數(shù)據(jù)源的統(tǒng)一查詢系統(tǒng)能夠極大方便用戶對總體視圖進行查詢,但要在后臺完成對相應(yīng)物理數(shù)據(jù)源的查詢還需要高效的查詢分析器來完成[7]。查詢分析器要能夠?qū)⒉樵兗皶r、高效并精準(zhǔn)的發(fā)送給物理數(shù)據(jù)源。高校在線考試系統(tǒng)異構(gòu)數(shù)據(jù)源的數(shù)據(jù)集成會產(chǎn)生海量的數(shù)據(jù),并且有很多數(shù)據(jù)直接來源于實際數(shù)據(jù)庫,需要進行數(shù)據(jù)處理的量還會進一步增長?;谝陨锨闆r,我們需要盡早進行權(quán)限的識別,以減少取出數(shù)據(jù)后再判斷產(chǎn)生的大量冗余數(shù)據(jù),影響系統(tǒng)運行效率。
(3)查詢轉(zhuǎn)換器設(shè)計
查詢分配器分配到數(shù)據(jù)源的查詢采用的是統(tǒng)一的XML格式,而底層的數(shù)據(jù)源一般無法直接識別需要將其用SQL語句表示出來,這項工作由查詢轉(zhuǎn)換器負(fù)責(zé)完成。查詢轉(zhuǎn)換器的工作和包裝器工作正好相反,其重點在于如何將XML文檔信息轉(zhuǎn)化為SQL語句。本文設(shè)計的轉(zhuǎn)換器能夠?qū)ML文檔中的相關(guān)查詢請求信息提取出來,并且結(jié)合底層數(shù)據(jù)源生成對應(yīng)的SQL語句。
(4)結(jié)果集成器的設(shè)計
查詢返回的信息不能被客戶端的瀏覽器直接識別,因此,需要我們對返回的查詢結(jié)果進行處理,使其轉(zhuǎn)化為瀏覽器能夠處理的標(biāo)準(zhǔn)數(shù)據(jù),這一過程的實現(xiàn)需要結(jié)果集成器來完成。集成異構(gòu)數(shù)據(jù)源的在線考試系統(tǒng)要求能夠?qū)崿F(xiàn)通用查詢,并反饋全局?jǐn)?shù)據(jù),這就涉及到針對某一個數(shù)據(jù)源的局部模式和對應(yīng)整個系統(tǒng)的全局模式進行集成轉(zhuǎn)化,這個過程我們分三個過程來完成,首先進行局部模式的比較,充分認(rèn)識局部模式的異同。其次進行局部模式的調(diào)整,確保系統(tǒng)中模式的統(tǒng)一。最后進行局部模式的集成,從而實現(xiàn)全局模式[8]。
(5)結(jié)果轉(zhuǎn)換器設(shè)計
結(jié)果轉(zhuǎn)換器的作用是轉(zhuǎn)換異構(gòu)數(shù)據(jù)源提供的子查詢結(jié)果為XML格式,把結(jié)果數(shù)據(jù)提供給結(jié)果集成器。結(jié)果數(shù)據(jù)模式轉(zhuǎn)換為XML Schema是設(shè)計結(jié)果轉(zhuǎn)換器過程中重點要解決的問題。只有成功的構(gòu)造了的XML Schema,每個子查詢的結(jié)果以及含義才能無誤地提交給結(jié)果集成器,從而確保結(jié)果數(shù)據(jù)集成的順利完成。
結(jié)果數(shù)據(jù)模式轉(zhuǎn)換成為XML Schema的算法是這樣定義的:可以認(rèn)為異構(gòu)數(shù)據(jù)源中的查詢結(jié)果體現(xiàn)為表的形式,結(jié)果表的第一行的每一列指定本列查詢的結(jié)果字段,結(jié)果表的第二行以下的數(shù)據(jù)指定每一個查詢字段所取的值。
4 結(jié)論(Conclusion)
本文通過研究傳統(tǒng)的異構(gòu)數(shù)據(jù)源集成技術(shù),以及XML技術(shù),設(shè)計了一種基于XML的異構(gòu)數(shù)據(jù)庫集成的方案。通過中間件技術(shù)建立XML數(shù)據(jù)集成中間件,并通過中間件來完成對異構(gòu)數(shù)據(jù)源的查詢、訪問及結(jié)果合成。針對高校在線考試系統(tǒng)中普遍存在異構(gòu)數(shù)據(jù)源集成問題進行研究,提出了針對這些異構(gòu)數(shù)據(jù)做的集成方案,提出了系統(tǒng)中XML數(shù)據(jù)集成的設(shè)計方法,包括包裝器、查詢處理模塊、結(jié)構(gòu)處理模塊的設(shè)計,實現(xiàn)由不同數(shù)據(jù)庫到XML格式數(shù)據(jù)的轉(zhuǎn)換集成,解決在線考試信息系統(tǒng)中異構(gòu)數(shù)據(jù)共享的問題。
參考文獻(References)
[1] Knowledge-Based Wrapper Generation by Using XML.H.Seo,J.Yang,J.Choi.IJCAI-2001 Workshop on Adaptive Text Extraction and Mining(ATEM2001),2001.
[2] VODAK Kernel Data Model.H.Duchene,M.Kaul,Turau.Proceedings of the 6'0 International Conference on Data Engineering,1999.
[3] 于帆,王振鐸,王振輝.基于XML異構(gòu)數(shù)據(jù)庫集成中間件的設(shè)計與實現(xiàn)[J].計算機應(yīng)用研究,2007(09):185-188.
[4] 王星,江志農(nóng).基于XML的中間件技術(shù)在故障診斷數(shù)據(jù)集成中的應(yīng)用[J].機械制造與自動化,2008(05):112-114;122.
[5] 閔道輝.基于XML的異構(gòu)數(shù)據(jù)源集成研究與應(yīng)用[D].西南石油大學(xué),2006.
[6] 周運,牟占生,徐久成.基于XML虛擬數(shù)據(jù)庫的異構(gòu)數(shù)據(jù)源集成模型研究[J].計算機技術(shù)與發(fā)展,2008(04):84-91.
[7] 洪筱菡.基于XML的數(shù)據(jù)集成中間件研究[D].河海大學(xué),2003.
[8] 歐玉平.基于XML的機關(guān)辦公信息系統(tǒng)異構(gòu)數(shù)據(jù)庫集成設(shè)計與實現(xiàn)[D].電子科技大學(xué),2012.
作者簡介:
杜月云(1975-),女,學(xué)士,副教授.研究領(lǐng)域:計算機軟件教學(xué)與研究.
邢文凱(1973-),男,碩士,副教授.研究領(lǐng)域:計算機軟件教學(xué)與研究.