- 相關(guān)推薦
數(shù)據(jù)交換實(shí)現(xiàn)模式
數(shù)據(jù)交換實(shí)現(xiàn)模式【1】
摘 要 隨著互聯(lián)網(wǎng)的廣泛普及以及用戶(hù)計(jì)算機(jī)數(shù)量的劇增,各種數(shù)據(jù)呈現(xiàn)爆發(fā)式增長(zhǎng),其具有來(lái)源廣泛,類(lèi)型各異等特點(diǎn)。
數(shù)據(jù)交換需要提供數(shù)據(jù)載體對(duì)異構(gòu)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行數(shù)據(jù)描述。
XML和CSV作為兩種數(shù)據(jù)描述語(yǔ)言,具有各自的特點(diǎn),文章對(duì)兩者進(jìn)行介紹和比較并介紹了數(shù)據(jù)交換的實(shí)現(xiàn)模式。
關(guān)鍵詞 XML;CSV;數(shù)據(jù)交換
1 XML和CSV數(shù)據(jù)描述語(yǔ)言比較
1.1 XML語(yǔ)言描述
可擴(kuò)展置標(biāo)語(yǔ)言(eXtensible Markup Language,簡(jiǎn)稱(chēng)XML),又稱(chēng)可擴(kuò)展標(biāo)記語(yǔ)言,是一種置標(biāo)語(yǔ)言。
置標(biāo)指計(jì)算機(jī)所能理解的信息符號(hào),通過(guò)此種標(biāo)記,計(jì)算機(jī)之間可以處理包含各種信息的文章等。
如何定義這些標(biāo)記,既可以選擇國(guó)際通用的標(biāo)記語(yǔ)言,比如HTML,也可以使用像XML這樣由相關(guān)人士自由決定的標(biāo)記語(yǔ)言,這就是語(yǔ)言的可擴(kuò)展性。
XML是從標(biāo)準(zhǔn)通用置標(biāo)語(yǔ)言(SGML)中簡(jiǎn)化修改出來(lái)的。
它主要用到的有可擴(kuò)展置標(biāo)語(yǔ)言、可擴(kuò)展樣式語(yǔ)言(XSL)、XBRL和XPath等。
1.2 CSV介紹
逗號(hào)分隔型取值格式(英文全稱(chēng)為Comma Separated Values,簡(jiǎn)稱(chēng)CSV),是一種純文本格式,用來(lái)存儲(chǔ)數(shù)據(jù)。
在CSV中,每一行都對(duì)應(yīng)表中的行,數(shù)據(jù)的字段由逗號(hào)分開(kāi),每個(gè)字段都對(duì)應(yīng)一個(gè)表中的數(shù)據(jù)項(xiàng)。
由于CSV文件格式非常簡(jiǎn)單,并支持幾乎所有的電子表格和數(shù)據(jù)庫(kù)管理系統(tǒng),所以CSV文件常常被用于兩個(gè)不同的計(jì)算機(jī)程序的移動(dòng)表格數(shù)據(jù),例如關(guān)系數(shù)據(jù)庫(kù)程序和電子表格程序。
許多編程語(yǔ)言提供了庫(kù)支持CSV文件。
因此該格式廣泛應(yīng)用于數(shù)據(jù)的導(dǎo)入和導(dǎo)出。
在計(jì)算機(jī)科學(xué)方面,這種類(lèi)型的格式是所謂的“平面文件”,因?yàn)橹挥幸粋(gè)表可以存儲(chǔ)在CSV文件。
大多數(shù)系統(tǒng)都使用了一系列的表來(lái)存儲(chǔ)他們的信息,因此往往信息重復(fù)幾次,才能創(chuàng)建一個(gè)文件。
1.3 XML同CSV比較
1)應(yīng)用XML可以使用XPath,XML Schema,XSLT這些宣告性(Declarative)的技術(shù),如果用CSV就要用程序性(Procedural)的方式來(lái)達(dá)到同樣的效果。
宣告語(yǔ)句比程序語(yǔ)句更容易維護(hù),換句話說(shuō)就是CSV中無(wú)法包含屬性定義信息,所以要編寫(xiě)相應(yīng)的解釋程序,大大增加了編程量。
2)另外XML是一種描述性的跨平臺(tái)語(yǔ)言,他可以很方便的表示節(jié)點(diǎn)的含義,而CSV在這方面比較弱一些。
3)在C#或java中都有相對(duì)應(yīng)的底層X(jué)ML處理接口,可以很方便的去操作XML,而CSV則必須重新編寫(xiě)底層處理接口,這樣也大大的增加了編程量。
4)CSV文件是扁平式的文件格式,只能描述一個(gè)表的數(shù)據(jù),而XML是具有自描述能力的結(jié)構(gòu)化的文件格式,能夠描述任意多表的數(shù)據(jù),以及表之間的關(guān)系。
綜上所述,建議選用XML技術(shù)來(lái)實(shí)現(xiàn)數(shù)據(jù)交換共享。
2 數(shù)據(jù)交換的實(shí)現(xiàn)模式
2.1 面向應(yīng)用接口的交換模式
面向應(yīng)用接口的數(shù)據(jù)交換模式,即通過(guò)各個(gè)應(yīng)用接口在接口之間轉(zhuǎn)換、傳輸數(shù)據(jù)。
通過(guò)這種交換模式,開(kāi)發(fā)人員就可以將現(xiàn)有應(yīng)用捆綁在一起,實(shí)現(xiàn)對(duì)數(shù)據(jù)邏輯與信息的共享,但這種交換模式要受到接口特征以及接口功能的限制。
2.2 面向數(shù)據(jù)的交換模式
面向數(shù)據(jù)的數(shù)據(jù)交換一般是在不同系統(tǒng)的數(shù)據(jù)庫(kù)之間進(jìn)行的,通過(guò)將數(shù)據(jù)從A數(shù)據(jù)源移植到B數(shù)據(jù)源來(lái)完成數(shù)據(jù)交換。
這種交換模式可以直接在數(shù)據(jù)訪問(wèn)層作應(yīng)用系統(tǒng)開(kāi)發(fā),而不用對(duì)應(yīng)用邏輯與數(shù)據(jù)結(jié)構(gòu)作任何改變。
但是因?yàn)檫@種模式需要直接對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,程序員需要對(duì)原有數(shù)據(jù)訪問(wèn)層做大量修改,而且在修改的同時(shí)又必須保證數(shù)據(jù)的完整性,因此在通過(guò)互聯(lián)網(wǎng)進(jìn)行數(shù)據(jù)交換時(shí),由于系統(tǒng)需要詳細(xì)了解交換雙方數(shù)據(jù)庫(kù)的結(jié)構(gòu)以及實(shí)現(xiàn)方式,所以需要承擔(dān)很高的安全風(fēng)險(xiǎn),而且,對(duì)于不同的應(yīng)用,這種交換模式還需要作不同的設(shè)計(jì),因而系統(tǒng)的可重用性很差。
2.3 面向服務(wù)的中間數(shù)據(jù)交換模式
面向服務(wù)的中間數(shù)據(jù)交換模式,即在網(wǎng)絡(luò)環(huán)境中的跨平臺(tái)應(yīng)用程序之間,建立一個(gè)可供多方共享的中間數(shù)據(jù)服務(wù)層,這些服務(wù)與數(shù)據(jù)庫(kù)物理分離,數(shù)據(jù)接收方通過(guò)這些數(shù)據(jù)服務(wù)來(lái)獲取對(duì)方數(shù)據(jù)的一種模式。
面向服務(wù)的中間數(shù)據(jù)交換模式對(duì)數(shù)據(jù)接口的開(kāi)放性和安全性方面來(lái)說(shuō)都是最佳的一種模式。
數(shù)據(jù)提供方通過(guò)建立一系列的中間數(shù)據(jù)服務(wù),針對(duì)不同的第三方系統(tǒng)靈活定制不同的數(shù)據(jù)服務(wù),同時(shí)制定不同的開(kāi)放策略,靈活性很高。
數(shù)據(jù)接收方要獲取數(shù)據(jù),必須先獲得調(diào)用中間服務(wù)的許可權(quán),有了許可權(quán),就可以直接調(diào)用開(kāi)放的中間數(shù)據(jù)服務(wù)來(lái)獲取想要的數(shù)據(jù)。
中間數(shù)據(jù)服務(wù)的開(kāi)發(fā)語(yǔ)言可以有很多種,最常見(jiàn)的有基于.Net或J2EE架構(gòu)下開(kāi)發(fā)的Web Service服務(wù)。
Web服務(wù)(Web Service)是近年內(nèi)興起的另一種基于Internet的技術(shù),在近幾年受到了極大的關(guān)注。
該技術(shù)的出現(xiàn)標(biāo)志著人類(lèi)已經(jīng)邁入應(yīng)用程序開(kāi)發(fā)技術(shù)的新紀(jì)元,它使得Internet不僅是傳輸數(shù)據(jù)的平臺(tái),也變成了傳遞服務(wù)的平臺(tái)。
采用面向服務(wù)的中間數(shù)據(jù)交換模式可以實(shí)現(xiàn)互聯(lián)網(wǎng)環(huán)境下的企業(yè)應(yīng)用的松散耦合和集成,使各個(gè)應(yīng)用系統(tǒng)可以方便的集成現(xiàn)有的應(yīng)用并開(kāi)發(fā)新的應(yīng)用。
參考文獻(xiàn)
[1]馮延暉,葉毅峰.XML完全手冊(cè)[M].北京:中國(guó)電力出版社,2000.
[2]Subrahmanyam Allamaraju Cedric Buest John Davies等.J2EE編程指南[M].北京:電子工業(yè)出版社,2002.
[3]Natanya Pitts,等.XML技術(shù)內(nèi)幕[M].北京:機(jī)械工業(yè)出版社,2002.
[4]楊劍,唐慧佳,孫林夫,等.基于XML的異構(gòu)數(shù)據(jù)交換系統(tǒng)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2005,31(19):195-197.
基于XML的數(shù)據(jù)交換的研究與實(shí)現(xiàn)【2】
摘要:近年來(lái),隨著數(shù)據(jù)交換的發(fā)展,HTML因其難以擴(kuò)展、交互性差等缺陷嚴(yán)重阻礙了數(shù)據(jù)交換前進(jìn)的腳步。
而XML憑借簡(jiǎn)單、規(guī)范、平臺(tái)無(wú)關(guān)性、自描述性等優(yōu)勢(shì)在數(shù)據(jù)交換技術(shù)中得到了廣泛的應(yīng)用。
本文采用XML技術(shù)完成了一個(gè)數(shù)據(jù)交換系統(tǒng),實(shí)現(xiàn)了異構(gòu)數(shù)據(jù)的交換,達(dá)到了信息共享的目的。
關(guān)鍵詞:XML;數(shù)據(jù)交換;異構(gòu)數(shù)據(jù)
HTML作為描述Internet上信息的一種語(yǔ)言,由于簡(jiǎn)單易用,有力地促進(jìn)了Internet的發(fā)展。
但是HTML難以擴(kuò)展、交互性差、語(yǔ)義性差以及單向的超鏈接等缺點(diǎn)使其在電子數(shù)據(jù)交換、數(shù)據(jù)庫(kù)與搜索引擎等領(lǐng)域的應(yīng)用存在著障礙[1]。
為了解決這個(gè)問(wèn)題,W3協(xié)會(huì)制定了一種可擴(kuò)展標(biāo)記語(yǔ)言,即XML[2] (eXtensible Markup Language)。
XML的優(yōu)點(diǎn)使得其迅速成為一個(gè)與平臺(tái)無(wú)關(guān)、廠商無(wú)關(guān)的數(shù)據(jù)格式標(biāo)準(zhǔn)[3]。
首先,XML簡(jiǎn)單、規(guī)范,使得對(duì)XML的查詢(xún)簡(jiǎn)單;其次,XML跨平臺(tái)的特性讓它在異構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)的應(yīng)用中解決了平臺(tái)無(wú)關(guān)性;另外,XML的自描述性為描述數(shù)據(jù)庫(kù)的全局?jǐn)?shù)據(jù)字典提供了簡(jiǎn)單、快捷、高效的方法。
1 數(shù)據(jù)交換和XML技術(shù)
數(shù)據(jù)交換是指數(shù)據(jù)在不同的信息實(shí)體之間的相互發(fā)送、傳遞的過(guò)程。
實(shí)行數(shù)據(jù)交換的不同信息實(shí)體必須統(tǒng)一建立一種數(shù)據(jù)傳輸?shù)臉?biāo)準(zhǔn)格式,因此在數(shù)據(jù)交換過(guò)程中會(huì)涉及到不同數(shù)據(jù)格式之間的轉(zhuǎn)換和適配。
XML標(biāo)準(zhǔn)的出現(xiàn),使基于統(tǒng)一的規(guī)范格式的數(shù)據(jù)交換系統(tǒng)在實(shí)現(xiàn)技術(shù)上成為可能,各個(gè)應(yīng)用系統(tǒng)可以制訂底層數(shù)據(jù)交換的規(guī)范,并定制符合自己領(lǐng)域需要的配套標(biāo)簽[4]。
利用XML文檔作為中間數(shù)據(jù)源實(shí)現(xiàn)數(shù)據(jù)庫(kù)間信息的交換需要將信息從源數(shù)據(jù)庫(kù)提取出來(lái)轉(zhuǎn)移到XML文檔,然后再將信息從XML文檔轉(zhuǎn)移到目的數(shù)據(jù)庫(kù)。
2 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
2.1 系統(tǒng)結(jié)構(gòu)和流程
考慮到系統(tǒng)的整體功能,系統(tǒng)采用B/S三層架構(gòu),分別為基于Web瀏覽器的表示層、處理邏輯關(guān)系的業(yè)務(wù)層以及處理數(shù)據(jù)關(guān)系的數(shù)據(jù)層。
本系統(tǒng)采用的開(kāi)發(fā)環(huán)境和開(kāi)發(fā)工具為:Microsoft Windows Server 2008、Microsoft Visual Studio 2008、SQL Server 2005。
為了滿(mǎn)足數(shù)據(jù)交換的要求,通常數(shù)據(jù)交換系統(tǒng)包括數(shù)據(jù)發(fā)送和數(shù)據(jù)接收這兩個(gè)部分。
數(shù)據(jù)發(fā)送部分的工作主要是把需要交換的數(shù)據(jù)通過(guò)一定的方式發(fā)送出去,而數(shù)據(jù)接收部分的工作主要是把從發(fā)送端接收到的數(shù)據(jù)進(jìn)行解析并保存。
基于以上情況,本文設(shè)計(jì)的系統(tǒng)將通過(guò)以下的流程運(yùn)行:系統(tǒng)接收到發(fā)送請(qǐng)求以后,立即對(duì)數(shù)據(jù)庫(kù)執(zhí)行查詢(xún)操作,并把數(shù)據(jù)導(dǎo)入到數(shù)據(jù)處理部分。
數(shù)據(jù)在數(shù)據(jù)處理部分被封裝成XML并打包成ZIP文件,然后發(fā)送出去,再由接受端解壓ZIP文件并解析XML文件,生成數(shù)據(jù)并更新數(shù)據(jù)庫(kù),返回結(jié)果。
這個(gè)過(guò)程可由圖1表示。
2.2 數(shù)據(jù)的生成
兩個(gè)系統(tǒng)之間進(jìn)行數(shù)據(jù)交換,如果傳輸?shù)臄?shù)據(jù)非異構(gòu)數(shù)據(jù),則數(shù)據(jù)可以直接交換。
但實(shí)際情況中,大多數(shù)的數(shù)據(jù)交換都是基于異構(gòu)數(shù)據(jù)的交換,數(shù)據(jù)不能直接傳輸,必須以其他方式傳輸。
本文首先會(huì)將數(shù)據(jù)庫(kù)中的表轉(zhuǎn)換為XML文件,然后再進(jìn)行交換。
具體實(shí)現(xiàn)過(guò)程如下:當(dāng)接收到發(fā)送請(qǐng)求以后,系統(tǒng)會(huì)立即對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢(xún)操作。
判斷數(shù)據(jù)在數(shù)據(jù)庫(kù)中對(duì)應(yīng)的表之后,實(shí)例化業(yè)務(wù)層中對(duì)應(yīng)的類(lèi),調(diào)用在數(shù)據(jù)層中定義的GetList方法將所需要的數(shù)據(jù)導(dǎo)入到DataSet。
DataSet中的數(shù)據(jù)會(huì)經(jīng)由WriteXml(string fileName)方法轉(zhuǎn)換為XML文件并存入指定的文件夾。
2.3 數(shù)據(jù)的壓縮和解析
如果文件的傳輸以XML進(jìn)行,將會(huì)導(dǎo)致文件數(shù)量龐大,過(guò)程繁瑣,較容易出錯(cuò),因此系統(tǒng)會(huì)將XML文件壓縮成ZIP文件進(jìn)行傳輸。
壓縮部分的主要步驟是:首先找出需要傳輸?shù)腦ML文件,存入數(shù)組,再壓縮成ZIP文件。
該功能部分代碼如下:ArrayList al = new ArrayList();
string stSJ = DateTime.Now.ToString("yyyyMMddHHmm");
string[] stFiles = new string[al.Count];
string stFilename = this.Server.MapPath("temp/");
al.Add("D:WebSitessjjhxml" + stname + "" + stname + " " + stSJ + ".xml");
for (int ii = 0; ii < al.Count; ii++)
{stFiles[ii] = al[ii].ToString();}
zip(stFiles, stFilename, stSJ);
為了確保安全性,在ZIP文件傳輸之前系統(tǒng)用MD5對(duì)其進(jìn)行加密操作。
當(dāng)接收端接收到ZIP文件之后,首先用Unzip方法解壓,并驗(yàn)證MD5的值,與原文件中MD5值相同則驗(yàn)證通過(guò),不同則返回重傳。
得到XML文件以后,首先利用DirectoryInfo類(lèi)和FileInfo類(lèi)獲取每個(gè)XML文件,并用ReadXml方法將XML中的數(shù)據(jù)轉(zhuǎn)入DataSet。
接下來(lái)必須判斷這些數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)庫(kù)中的表,由于每個(gè)XML的文件名都事先由表名和時(shí)間定義,而時(shí)間是長(zhǎng)度為16的字符串,因此用finame.Remove(finame.Length - 16)即能獲取相應(yīng)的表名。
在存入數(shù)據(jù)庫(kù)之前,必須保證這些數(shù)據(jù)與目標(biāo)數(shù)據(jù)庫(kù)中的數(shù)據(jù)不重復(fù)。
由于每條數(shù)據(jù)的ID是唯一的,因此用判斷ID是否存在來(lái)判斷數(shù)據(jù)的重復(fù)與否。
在存入每條數(shù)據(jù)之前用方法Exists(string ID)檢測(cè)ID,如重復(fù)則更新該條數(shù)據(jù),不重復(fù)則存入數(shù)據(jù)庫(kù)。
2.4 數(shù)據(jù)交換日志
為了方便查詢(xún)和管理,在每次完成數(shù)據(jù)交換之后,系統(tǒng)都會(huì)提供相應(yīng)的數(shù)據(jù)交換日志。
該日志包含時(shí)間、是否成功以及備注,其中備注的格式為“導(dǎo)入表名為:T_BGSL。
導(dǎo)入數(shù)據(jù)總共14條,成功13條,失敗0條,重復(fù)1條”。
具體實(shí)現(xiàn)過(guò)程如下:在dataset中的數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù)之前加入try{……}catch{ intsb++;},在將每條數(shù)據(jù)庫(kù)逐一導(dǎo)入數(shù)據(jù)庫(kù)之前加入try{ …… intcs++;}catch{ intss++;}。
如果導(dǎo)入失敗,intsb的值為1,而intcs則為導(dǎo)入成功的條數(shù),intss為導(dǎo)入失敗的條數(shù)。
3 總結(jié)
本文結(jié)合實(shí)際需求,利用VS2008構(gòu)建了一個(gè)基于XML的數(shù)據(jù)交換系統(tǒng),實(shí)現(xiàn)了異構(gòu)數(shù)據(jù)庫(kù)之間的信息共享,并提供了相應(yīng)的數(shù)據(jù)交換日志。
本文的不足之處是,系統(tǒng)對(duì)數(shù)據(jù)庫(kù)中表的格式和XML文件的格式有嚴(yán)格的要求,只有格式一致才能復(fù)用。
參考文獻(xiàn):
[1]王海波,耿暉,姜吉發(fā),白碩,祝明發(fā). 基于XML的數(shù)據(jù)交換的實(shí)現(xiàn)[J]. 計(jì)算機(jī)應(yīng)用,2010.4
[2]W3C.XML[DB/OL].http://www.w3school.com.cn/xml/index.asp.2012-03-01/2011-03-012.
[3]孫冬冬,張景,懷等.基于XML,SOAP的企業(yè)應(yīng)用集成技術(shù)[J].計(jì)算機(jī)工程與應(yīng)用,2003(31):205—207.
[4]尹建璋.基于XML的應(yīng)用層數(shù)據(jù)交換技術(shù)的研究[J].計(jì)算機(jī)與現(xiàn)代化,2009,9(8).
基于ODI的數(shù)據(jù)交換平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)【3】
【摘 要】隨著高校信息化的建設(shè)的加速,信息孤島現(xiàn)象目益嚴(yán)重,構(gòu)成了一個(gè)龐大的異構(gòu)環(huán)境。
為了解決信息孤島帶來(lái)的信息屏障,就必須建立一個(gè)統(tǒng)一的情息平臺(tái)作為橋梁。
本文介紹了一種基于ODI的數(shù)據(jù)交換平臺(tái)的總體架構(gòu),然后根據(jù)總體架構(gòu)ODI的監(jiān)控進(jìn)行設(shè)計(jì),從而實(shí)現(xiàn)對(duì)數(shù)據(jù)交換過(guò)程的監(jiān)控,提高網(wǎng)絡(luò)管理員的管理效率。
【關(guān)鍵詞】信息孤島;數(shù)據(jù)交換;ODI;共享數(shù)據(jù)庫(kù)
0.引言
隨著信息化的普及,高校校園網(wǎng)上運(yùn)行的業(yè)務(wù)子系統(tǒng)日益增多,這些應(yīng)用系統(tǒng)在為學(xué)校師生提供信息服務(wù)的同時(shí),也提高了學(xué)院的管理手段和方法。
然而,這些應(yīng)用系統(tǒng)在建設(shè)初期只是根據(jù)應(yīng)用部門(mén)的實(shí)際需求而設(shè)計(jì)開(kāi)發(fā),并沒(méi)有統(tǒng)一的設(shè)計(jì)規(guī)劃,所采用的編譯環(huán)境和數(shù)據(jù)庫(kù)也不一樣,形成了一個(gè)個(gè)相對(duì)獨(dú)立的信息孤島,如何將這些網(wǎng)絡(luò)資源進(jìn)行統(tǒng)一管理,是高校網(wǎng)絡(luò)管理急切需要解決的問(wèn)題[1]。
Oracle公司的ODI數(shù)據(jù)集成工具,可以實(shí)現(xiàn)大多數(shù)異構(gòu)數(shù)據(jù)的交換,但數(shù)據(jù)交換工作均在后臺(tái)實(shí)現(xiàn),所以實(shí)現(xiàn)數(shù)據(jù)交換過(guò)程的監(jiān)控是提升數(shù)據(jù)交換管理的一個(gè)有效手段。
1.數(shù)據(jù)集成的現(xiàn)狀
就高校而言,數(shù)據(jù)集成工作還處于初級(jí)階段,往往是用戶(hù)根據(jù)需要而將一些分散的數(shù)據(jù)按照某種形式進(jìn)行一些簡(jiǎn)單集成工作,這些集成工作大多都是系統(tǒng)之間、應(yīng)用對(duì)應(yīng)用之間以及數(shù)據(jù)庫(kù)之間的某個(gè)表的映射[2],隨著高校應(yīng)用系統(tǒng)的日益增加,這些看視簡(jiǎn)單的集成關(guān)系往往沒(méi)有起到推進(jìn)作用,相反卻制約著信息化的發(fā)展。
所以,集成、整合校園內(nèi)眾多應(yīng)用系統(tǒng)內(nèi)的所有數(shù)據(jù),其中包括已有的和即將開(kāi)發(fā)的應(yīng)用系統(tǒng),使用戶(hù)能夠得到一個(gè)統(tǒng)一的應(yīng)用環(huán)境,統(tǒng)一的服務(wù)界面,這是實(shí)現(xiàn)信息化校園的一個(gè)關(guān)鍵問(wèn)題[3]。
數(shù)據(jù)交換平臺(tái)的建設(shè)是整個(gè)信息化校園建設(shè)中的重中之重,它將從整體上對(duì)信息化校園的建設(shè)工作給予規(guī)劃和指導(dǎo);在功能上完成不同系統(tǒng)之間的數(shù)據(jù)交換[4];在管理上減少管理人員的工作量,因此數(shù)據(jù)交換平臺(tái)在信息化校園建設(shè)中顯得尤為重要。
2.ODI和ODI的工作原理
2.1 ODI
ODI是Oracle公司在2006年10月收購(gòu)Sunopsis公司后,整合Sunopsis Active Integration Platform而推出的一款E-LT(Extraction- Loading Transformation)數(shù)據(jù)集成工具,與傳統(tǒng)的ETL(Extraction Transformation Loading)工具不同之處在于,ODI在實(shí)施數(shù)據(jù)交換時(shí)提供了設(shè)計(jì)方法,以便更好地實(shí)施系統(tǒng)間的無(wú)縫集成和實(shí)時(shí)集成。
2.2 ODI的工作原理
ODI可以完成對(duì)大多數(shù)異構(gòu)數(shù)據(jù)源的集成工作。
ODI提供了調(diào)用 web service的機(jī)制,同時(shí)ODI的接口也可以暴露為web service組件,從而可以和SOA環(huán)境進(jìn)行交互[5]。
ODI里有100多個(gè)KM(知識(shí)模塊),ODI把數(shù)據(jù)抽取和數(shù)據(jù)訂閱的實(shí)現(xiàn)過(guò)程詳細(xì)的記錄到KM中,KM可以使用Jython腳本語(yǔ)言和SQL語(yǔ)句編輯完成。
相對(duì)于用戶(hù)來(lái)說(shuō)更為方便,有些集成工作用戶(hù)可以直接利用KM來(lái)完成數(shù)據(jù)交換的工作,當(dāng)然KM也可由用戶(hù)單獨(dú)編輯,同時(shí)這些可熱插拔的知識(shí)模塊,增加了ODI的靈活性和可擴(kuò)展性[6]。
ODI的知識(shí)模塊主要分為幾個(gè)大類(lèi)(RKM,CKM,LKM,IKM,SKM),本項(xiàng)目主要應(yīng)用的是LKM(load KM)、IKM(Integration KM)和SKM(Service KM):
RKM:對(duì)數(shù)據(jù)源的數(shù)據(jù)結(jié)構(gòu)和目標(biāo)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)的捕捉,建立一種數(shù)據(jù)模型,形成映射關(guān)系。
CKM:對(duì)數(shù)據(jù)源進(jìn)行質(zhì)量檢查。
JKM日志記錄知識(shí)模塊,記錄表或視圖等中的新數(shù)據(jù)和更新的數(shù)據(jù)。
LKM:將數(shù)據(jù)源的數(shù)據(jù)加載到ODI系統(tǒng)庫(kù)的臨時(shí)表中。
LKM:將ODI系統(tǒng)庫(kù)臨時(shí)表中的數(shù)據(jù)加載到目標(biāo)數(shù)據(jù)庫(kù)中。
SKM:ODI和WEB服務(wù)接口。
3.系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
3.1整體設(shè)計(jì)
根據(jù)需求分析,數(shù)據(jù)交換平臺(tái)在結(jié)構(gòu)上可以分為一下幾個(gè)部分組成,其關(guān)系圖如圖1所示。
其中監(jiān)控模塊是數(shù)據(jù)交換過(guò)程的Web展示。
圖1數(shù)據(jù)交換平臺(tái)關(guān)系圖
3.2監(jiān)控管理模塊的設(shè)計(jì)
監(jiān)控管理模塊是利用ODI的系統(tǒng)庫(kù),針對(duì)數(shù)據(jù)交換平臺(tái)的管理人員開(kāi)發(fā)的管理模塊,該模塊能對(duì)數(shù)據(jù)交換平臺(tái)所交換的數(shù)據(jù)提供更直觀的展示,并且能及時(shí)、準(zhǔn)確的提供異常數(shù)據(jù),方便平臺(tái)管理員管理和維護(hù)。
該模塊根據(jù)功能可以分為:集成信息服務(wù)展示、運(yùn)行狀態(tài)監(jiān)控、異常管理、集成數(shù)據(jù)統(tǒng)計(jì)、系統(tǒng)管理等五個(gè)子模塊,系統(tǒng)總體功能結(jié)構(gòu)圖如圖2所示。
圖2監(jiān)控模塊功能圖
集成信息展示能為管理員提供,在數(shù)據(jù)集成過(guò)程中涉及的所有項(xiàng)目、子項(xiàng)目、流程等信息,包括創(chuàng)建用戶(hù)、創(chuàng)建時(shí)間以及最近修改用戶(hù)和修改時(shí)間。
集成數(shù)據(jù)統(tǒng)計(jì)將集成的所有項(xiàng)目、子項(xiàng)目、包、接口等信息以圖表的形式作出展示,用戶(hù)可以根據(jù)條件進(jìn)行查詢(xún),并能展示在集成過(guò)程中所有增量和刪除數(shù)據(jù)的比例以及集成數(shù)據(jù)數(shù)量的趨勢(shì)。
運(yùn)行監(jiān)視提供所有任務(wù)的運(yùn)行狀態(tài)和執(zhí)行時(shí)間,ODI執(zhí)行過(guò)程中把任務(wù)的執(zhí)行時(shí)間表示為一個(gè)個(gè)Agent,在后臺(tái)中用Agent控制任務(wù)的啟動(dòng)和停止。
異常管理將ODI集成過(guò)程中的經(jīng)常出現(xiàn)的拋出異常信息展示出來(lái),利用消息提醒和郵件的方式提示網(wǎng)絡(luò)管理員。
同時(shí)建立一個(gè)知識(shí)庫(kù)將這些錯(cuò)誤信息和處理辦法進(jìn)行統(tǒng)計(jì),以方便其他管理員進(jìn)行管理。
用戶(hù)管理是針對(duì)不同部門(mén)的管理員提供訪問(wèn)權(quán)限。
3.3監(jiān)控管理模塊的實(shí)現(xiàn)
為了提高開(kāi)發(fā)速度和開(kāi)發(fā)效率,提高代碼的可重用性和可維護(hù)性,降低系統(tǒng)的耦合度,系統(tǒng)采用了JSF+Spring+Hibernate +Webservice為開(kāi)發(fā)框架。
主要技術(shù)應(yīng)用關(guān)系圖如下圖3所示。
圖3主要技術(shù)應(yīng)用關(guān)系圖
ODI數(shù)據(jù)集成工具主要負(fù)責(zé)業(yè)務(wù)數(shù)據(jù)庫(kù)和共享數(shù)據(jù)庫(kù)中數(shù)據(jù)抽取和數(shù)據(jù)訂閱。
Hibernate主要完成對(duì)數(shù)據(jù)庫(kù)的操作,Hibernate通過(guò)JDBC實(shí)現(xiàn)與底層關(guān)系數(shù)據(jù)庫(kù)的交互,這里的數(shù)據(jù)庫(kù)指的是ODI系統(tǒng)庫(kù)。
Sring負(fù)責(zé)處理用戶(hù)請(qǐng)求的業(yè)務(wù)邏輯,提供業(yè)務(wù)模型組件,業(yè)務(wù)模型組件通過(guò)調(diào)用DAO(數(shù)據(jù)訪問(wèn)對(duì)象)操縱數(shù)據(jù)庫(kù),完成業(yè)務(wù)邏輯。
IOC還提供事物處理、緩沖池等容器組件,提升系統(tǒng)性能,保證數(shù)據(jù)完整性。
Web Service作為通用Web調(diào)用接口,負(fù)責(zé)客戶(hù)端與服務(wù)應(yīng)用組件的通信[7]。
4.系統(tǒng)測(cè)試
模擬一些數(shù)據(jù),將數(shù)據(jù)的抽取和數(shù)據(jù)的訂閱的過(guò)程進(jìn)行測(cè)試,把業(yè)務(wù)庫(kù)到共享庫(kù)的集成看做是數(shù)據(jù)抽取,把共享庫(kù)到業(yè)務(wù)庫(kù)的集成看做是數(shù)據(jù)訂閱,結(jié)果表明可以進(jìn)行數(shù)據(jù)交換,同時(shí)監(jiān)控平臺(tái)對(duì)數(shù)據(jù)集成的信息的抓取和對(duì)異常信息的捕獲也是準(zhǔn)確、無(wú)誤,基本實(shí)現(xiàn)了功能需求。
5.總結(jié)
數(shù)據(jù)交換平臺(tái)是信息化校園中的核心組成部分,是信息化校園中信息傳輸和交換樞紐。
通過(guò)數(shù)據(jù)交換平臺(tái)的建設(shè)將全校的數(shù)據(jù)進(jìn)行清洗、整合和統(tǒng)一存放,即完成了全校范圍內(nèi)的信息共享,為數(shù)據(jù)的查詢(xún)、分析奠定了基礎(chǔ),又保留了各業(yè)務(wù)系統(tǒng)原有數(shù)據(jù)庫(kù),保證了各業(yè)務(wù)系統(tǒng)的完整性。
【參考文獻(xiàn)】
[1]孔存金.數(shù)字化校園共享數(shù)據(jù)中心建設(shè)研究[D].北京:北京大學(xué)學(xué)位論.
[2]蔣東興,陳懷楚,郭大勇.大學(xué)資源計(jì)劃理論探討與實(shí)踐[J].教育信息化. 2005(9):4-7.
[3]王旭,蔣東興,陳懷楚.大學(xué)資源計(jì)劃的理論與發(fā)展[J].教育信息化.2005(11):14-16.
[4]肖麒.數(shù)據(jù)交換平臺(tái)技術(shù)在校園管理中的應(yīng)用[D].江蘇:浙江大學(xué)學(xué)位論文,2009.
[5]Oracle.Oracle Hyperion Data Relationship Management[EB/OL].[2011-4-28].
[6]Oracle.The Oracle Data Integrator Enterprise Edition Configuration files[P].2008.
[7]Paul M.An introduction to Web Services.BT Technology Journal,2004,(22):9-18.
【數(shù)據(jù)交換實(shí)現(xiàn)模式】相關(guān)文章:
電子政務(wù)系統(tǒng)中數(shù)據(jù)交換模式的比較10-05
跨企業(yè)協(xié)同信息管理競(jìng)爭(zhēng)力物流實(shí)現(xiàn)模式10-05
中國(guó)特色人力資源當(dāng)期實(shí)現(xiàn)價(jià)值計(jì)量模式的構(gòu)建10-08
計(jì)算機(jī)網(wǎng)絡(luò)數(shù)據(jù)交換技術(shù)論文10-09
計(jì)算機(jī)網(wǎng)絡(luò)數(shù)據(jù)交換技術(shù)的發(fā)展論文10-11