劉好斌 韓宏旺 陳宇斌
摘 要:隨著“互聯(lián)網(wǎng)+”國(guó)家戰(zhàn)略的提出,政府及公共服務(wù)部門也圍繞著這一計(jì)劃提出了服務(wù)升級(jí)的需求。如何將原有孤立、自治的管理信息系統(tǒng)進(jìn)行資源整合,實(shí)現(xiàn)信息共享是當(dāng)下的研究熱點(diǎn)。此文以高校的管理信息系統(tǒng)整合為案例,探索了一條成本小、可靠性強(qiáng)的中間件異構(gòu)數(shù)據(jù)庫(kù)方式來(lái)實(shí)現(xiàn)原有管理信息系統(tǒng)整合的道路。通過(guò)XML解析工具將各子系統(tǒng)數(shù)據(jù)庫(kù)更新的數(shù)據(jù)轉(zhuǎn)換為XML消息,再通過(guò)中間件應(yīng)用服務(wù)器提供的JMS消息服務(wù),來(lái)實(shí)現(xiàn)各子系統(tǒng)數(shù)據(jù)庫(kù)應(yīng)用程序和中央數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)用程序的消息傳遞,以達(dá)到信息同步、資源共享的目的。
關(guān)鍵詞:異構(gòu)數(shù)據(jù)庫(kù);中間件技術(shù);管理信息系統(tǒng)
0 引言
隨著“互聯(lián)網(wǎng)+”國(guó)家戰(zhàn)略的提出,如何基于互聯(lián)網(wǎng)為大眾提供方便快捷的服務(wù)已是當(dāng)下研究的一個(gè)熱門課題。
高等學(xué)校作為公共服務(wù)的重要一環(huán),辦學(xué)規(guī)模不斷擴(kuò)大,為了便于管理,高校各部門都建立了各自的管理系統(tǒng)。
對(duì)現(xiàn)有的應(yīng)用系統(tǒng)而言,各系統(tǒng)相互孤立,數(shù)據(jù)不能共享,造成了很多不必要的浪費(fèi)和重復(fù)建設(shè)[1]。
如何將這些異構(gòu)的信息系統(tǒng)整合,實(shí)現(xiàn)信息交互資源共享是當(dāng)下校園信息化建設(shè)的一個(gè)難點(diǎn)。
異構(gòu)數(shù)據(jù)庫(kù)技術(shù)的提出解決了這一難題。
1 異構(gòu)數(shù)據(jù)庫(kù)定義
異構(gòu)數(shù)據(jù)庫(kù)是將各個(gè)已經(jīng)存在的、自治的及異構(gòu)的數(shù)據(jù)庫(kù)系統(tǒng)集合在一起。異構(gòu)數(shù)據(jù)庫(kù)繼承和發(fā)展了分布式數(shù)據(jù)庫(kù)技術(shù),分布式數(shù)據(jù)庫(kù)由多個(gè)結(jié)構(gòu)相同的子數(shù)據(jù)庫(kù)組成,在物理上可以分布在各地,但實(shí)際上只有一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)為其服務(wù),提供統(tǒng)一的查詢與更新;而異構(gòu)數(shù)據(jù)庫(kù)則是以多個(gè)結(jié)構(gòu)不同、運(yùn)行獨(dú)立的數(shù)據(jù)庫(kù)系統(tǒng)為基礎(chǔ),通過(guò)統(tǒng)一的規(guī)則集成的一個(gè)分布式數(shù)據(jù)庫(kù)系統(tǒng)[2]。
簡(jiǎn)言之異構(gòu)數(shù)據(jù)庫(kù)系統(tǒng),就是通過(guò)統(tǒng)一的表示、存儲(chǔ)和管理集成存在的異構(gòu)的且獨(dú)立的數(shù)據(jù)庫(kù),使用戶感覺獲取到的數(shù)據(jù)都具有單一的模式且存儲(chǔ)在單個(gè)數(shù)據(jù)庫(kù)中。
2 異構(gòu)數(shù)據(jù)庫(kù)集成方法
一般來(lái)說(shuō),異構(gòu)數(shù)據(jù)庫(kù)集成方法主要有:數(shù)據(jù)倉(cāng)庫(kù)(Data Warehouse)及中間件方式(Middleware)。上述兩種集成方法根據(jù)數(shù)據(jù)是否在本地存儲(chǔ),又可分為實(shí)際存儲(chǔ)方式和虛擬存儲(chǔ)方式兩種。
“數(shù)據(jù)倉(cāng)庫(kù)是面向主題的、集成的、具有時(shí)間特征的、穩(wěn)定的數(shù)據(jù)集合,用以支持經(jīng)營(yíng)管理中的決策制定過(guò)程”,這一概念是W.H.Inmon在其《建立數(shù)據(jù)倉(cāng)庫(kù)》一書中提出的,它是一個(gè)能夠支持企業(yè)或組織進(jìn)行決策分析處理的數(shù)據(jù)集合,具有面向主題、集成性、穩(wěn)定性及時(shí)變性四個(gè)特征。數(shù)據(jù)倉(cāng)庫(kù)的關(guān)鍵技術(shù)包括數(shù)據(jù)的抽取、清洗、轉(zhuǎn)換、加載和維護(hù)技術(shù)。它屬于實(shí)際存儲(chǔ)方式。
數(shù)據(jù)倉(cāng)庫(kù)法是將數(shù)據(jù)通過(guò)ETL(Extract,Transform and load抽取,轉(zhuǎn)換和加載)工具定期從各個(gè)分散的數(shù)據(jù)庫(kù)中抽取出來(lái),集中存儲(chǔ)于一個(gè)存儲(chǔ)數(shù)據(jù)的倉(cāng)庫(kù),在數(shù)據(jù)進(jìn)入數(shù)據(jù)倉(cāng)庫(kù)之前必須要統(tǒng)一數(shù)據(jù)格式,如字段的同名異義、異名同義、字段長(zhǎng)度不一致等,另外需要進(jìn)行數(shù)據(jù)的整合與計(jì)算以滿足數(shù)據(jù)倉(cāng)庫(kù)的格式要求,經(jīng)過(guò)必要的清洗加工后加載到數(shù)據(jù)倉(cāng)庫(kù)中,供用戶查詢。
如上所述,數(shù)據(jù)倉(cāng)庫(kù)的體系結(jié)構(gòu)如圖1所示。
前臺(tái)數(shù)據(jù)查詢服務(wù)和后臺(tái)數(shù)據(jù)預(yù)處理服務(wù)是數(shù)據(jù)倉(cāng)庫(kù)法中主要的兩種數(shù)據(jù)服務(wù)。前臺(tái)數(shù)據(jù)查詢服務(wù)的主要功能是將各種分析應(yīng)用工具得到的可視化分析結(jié)果展現(xiàn)給最終用戶,如數(shù)據(jù)查詢結(jié)果、生成的各類報(bào)表等;后臺(tái)數(shù)據(jù)預(yù)處理服務(wù)的主要職責(zé)是實(shí)現(xiàn)數(shù)據(jù)由數(shù)據(jù)源數(shù)據(jù)到數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)的格式轉(zhuǎn)換,使數(shù)據(jù)倉(cāng)庫(kù)能夠以多維數(shù)據(jù)模型進(jìn)行主題數(shù)據(jù)存儲(chǔ)。抽取、轉(zhuǎn)換和加載是后臺(tái)數(shù)據(jù)預(yù)處理服務(wù)的三種重要數(shù)據(jù)操作。抽取是從數(shù)據(jù)源抽取所需數(shù)據(jù);轉(zhuǎn)換是對(duì)抽取出的數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換,使其與數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)格式一致;加載是將轉(zhuǎn)換后的數(shù)據(jù)記錄到數(shù)據(jù)倉(cāng)庫(kù)中。
數(shù)據(jù)倉(cāng)庫(kù)法會(huì)生成一個(gè)全新的數(shù)據(jù)庫(kù)系統(tǒng)作為數(shù)據(jù)倉(cāng)庫(kù),倉(cāng)庫(kù)所有數(shù)據(jù)都從各數(shù)據(jù)源中抽取,形成一個(gè)全局模式。用戶查詢數(shù)據(jù)時(shí),系統(tǒng)把查詢所需數(shù)據(jù)預(yù)先提取存儲(chǔ)到本地,用戶直接訪問(wèn)本地?cái)?shù)據(jù)[3]。
中間件集成解決方案是虛擬存儲(chǔ)方式,它也使用了全局?jǐn)?shù)據(jù)模式。它不僅能夠集成結(jié)構(gòu)統(tǒng)一的數(shù)據(jù)源數(shù)據(jù),還可以集成結(jié)構(gòu)不同的數(shù)據(jù)源數(shù)據(jù),如Web數(shù)據(jù)等[4]。
根據(jù)IDC對(duì)中間件的定義:中間件是一種獨(dú)立的系統(tǒng)軟件或服務(wù)程序,它位于客戶機(jī)/服務(wù)器的操作系統(tǒng)之上,管理計(jì)算資源和網(wǎng)絡(luò)通信,在底層操作系統(tǒng)包括底層通信協(xié)議和各分布式應(yīng)用軟件搭起了溝通的橋梁,從而實(shí)現(xiàn)分布式應(yīng)用軟件在不同技術(shù)平臺(tái)間的資源共享[5]。
3 中間件方式實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫(kù)
通過(guò)以上兩種集成方法的介紹,筆者認(rèn)為中間件方式是實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫(kù)最簡(jiǎn)便,代價(jià)最小的辦法。中間件是一種起連接作用的分布式軟件,處于操作系統(tǒng)(包括底層通信協(xié)議)和應(yīng)用軟件之間。其作用是屏蔽底層分布式環(huán)境的復(fù)雜性和異構(gòu)性,為不同環(huán)境下的應(yīng)用軟件建立相互通信的操作機(jī)制,使各應(yīng)用軟件可以有效地進(jìn)行數(shù)據(jù)交互與協(xié)同,從而提高軟件的易移植性、適應(yīng)性和可靠性[5]。對(duì)于異構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)集成而言,各子系統(tǒng)數(shù)據(jù)庫(kù)的結(jié)構(gòu)及運(yùn)行環(huán)境均不重要,中間件的程序接口定義了一個(gè)統(tǒng)一的數(shù)據(jù)交互接口,無(wú)論各子系統(tǒng)數(shù)據(jù)庫(kù)及其運(yùn)行環(huán)境如何更新,只要中間件對(duì)外接口定義不變,中間件程序做相應(yīng)更新,上層應(yīng)用軟件幾乎不用修改,這樣就避免了“推倒重建”的巨大代價(jià),降低了高校集成各異構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)的成本。簡(jiǎn)言之,中間件就是一個(gè)分布式軟件管理框架,通過(guò)API的形式提供一組軟件服務(wù),具有良好的可擴(kuò)展性和強(qiáng)大的通信能力[6]。
高校管理信息系統(tǒng)共享平臺(tái)系統(tǒng)結(jié)構(gòu)如圖2所示:
圖2 管理信息共享平臺(tái)系統(tǒng)構(gòu)架圖
根據(jù)對(duì)數(shù)據(jù)流程的分析,集成模型的設(shè)計(jì)構(gòu)想如圖3所示:
圖3 異構(gòu)數(shù)據(jù)庫(kù)集成系統(tǒng)總體模型結(jié)構(gòu)圖
整個(gè)系統(tǒng)可以分為五層,分別是:
①子系統(tǒng)數(shù)據(jù)庫(kù),即校內(nèi)各部門現(xiàn)有的數(shù)據(jù)庫(kù)系統(tǒng),它們可能位于不同操作系統(tǒng)平臺(tái)下且結(jié)構(gòu)各不相同,各系系統(tǒng)獨(dú)立運(yùn)行相對(duì)自治。
②客戶端層,將各子系統(tǒng)數(shù)據(jù)庫(kù)中共享的數(shù)據(jù)變化情況通過(guò)觸發(fā)器實(shí)時(shí)記錄到相應(yīng)的表格中,通過(guò)JAVA定時(shí)器定期將變化的數(shù)據(jù)從表格中提取出來(lái),并利用XML解析工具將其轉(zhuǎn)換為XML消息。JMS客戶端發(fā)送程序再將被包裝成適合JMS傳遞的XML消息(即文本消息Text Message)發(fā)送給JMS主題或隊(duì)列。因?yàn)镴MS中未定義XML消息,所以它在傳遞前還需要做轉(zhuǎn)換,通常做法是將其作為一個(gè)Text Message或一個(gè)DOM對(duì)象來(lái)對(duì)待,以此方式來(lái)實(shí)現(xiàn)XML消息的傳遞。這里所提出的模型是將XML消息轉(zhuǎn)換為Text Message進(jìn)行傳遞,因?yàn)榇朔绞絺鬟f效果最佳。
③中間件層,實(shí)現(xiàn)中央服務(wù)器端應(yīng)用程序和客戶端應(yīng)用程序的消息傳遞,該服務(wù)由應(yīng)用服務(wù)器中間件配置的JMS來(lái)實(shí)現(xiàn)。該層的功能就是維護(hù)建立的消息主題或隊(duì)列,完成消息的發(fā)送和接收任務(wù),屏蔽復(fù)雜的底層通信。它是整個(gè)模型的重要組成部分,確保了消息通信的異步性、持久性和可靠性,是各個(gè)應(yīng)用系統(tǒng)交換數(shù)據(jù)的平臺(tái)。
④中央數(shù)據(jù)庫(kù)客戶端層,該層的主要功能就是監(jiān)聽JMS服務(wù)器的消息隊(duì)列或主題是否有消息到來(lái)。中央數(shù)據(jù)庫(kù)客戶端程序一直保持監(jiān)聽狀態(tài),若有消息到來(lái),則進(jìn)行相應(yīng)的處理;若無(wú)消息則繼續(xù)監(jiān)聽。若接收到消息,則將其由文本格式轉(zhuǎn)換為XML格式,然后依據(jù)數(shù)據(jù)模式映射文件轉(zhuǎn)換成對(duì)應(yīng)于中央數(shù)據(jù)庫(kù)系統(tǒng)的XML消息,最后中央數(shù)據(jù)庫(kù)再將轉(zhuǎn)換后的XML消息通過(guò)解析工具記錄在案。
⑤中央數(shù)據(jù)庫(kù),需要共享的數(shù)據(jù)都存儲(chǔ)于此,它為數(shù)據(jù)共享提供統(tǒng)一的數(shù)據(jù)平臺(tái),是進(jìn)一步進(jìn)行數(shù)據(jù)挖掘、信息共享的基礎(chǔ)。
整個(gè)模型的業(yè)務(wù)流程是:共享數(shù)據(jù)在發(fā)生變化時(shí)被觸發(fā)器記錄在相應(yīng)的表格中;JAVA定時(shí)器定時(shí)提取表格中的變化數(shù)據(jù),利用解析工具將其轉(zhuǎn)換為XML消息;將轉(zhuǎn)換后的XML消息封裝打包成文本消息,發(fā)送到JMS服務(wù)器的主題或隊(duì)列中;監(jiān)聽該主題或隊(duì)列的服務(wù)器接收到文本消息后,則通過(guò)解析工具將其解析成XML消息;通過(guò)映射文件將得到的XML消息轉(zhuǎn)換為對(duì)應(yīng)于中央數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)的XML消息;最后再將XML消息通過(guò)解析工具還原成中央數(shù)據(jù)庫(kù)的數(shù)據(jù),以實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫(kù)的同步刷新和集成共享[7]。
4 結(jié)束語(yǔ)
隨著“互聯(lián)網(wǎng)+服務(wù)”行動(dòng)的不斷深入,政府及各公共服務(wù)部門的管理系統(tǒng)整合需求也越來(lái)越大,以最小的代價(jià)整合現(xiàn)有的異構(gòu)系統(tǒng)實(shí)現(xiàn)信息共享、資源整合、減少投資浪費(fèi)勢(shì)在必行。本文所提出的以中間件方式實(shí)現(xiàn)異構(gòu)管理系統(tǒng)整合是一個(gè)有益的嘗試。
參考文獻(xiàn):
[1]周敏.面向異構(gòu)數(shù)據(jù)的高校數(shù)據(jù)集成與交換平臺(tái)研究[J].大眾科技,2014(08):34-37.
[2]陳敏,姜大慶.基于工作流的服務(wù)集成研究[J].信息與電腦(理論版),2015(18):14-15-17.
[3]鄒盟軍,楊瑩,王建紅.分布式非結(jié)構(gòu)數(shù)據(jù)管理平臺(tái)的應(yīng)用研究[J].電力信息與通信技術(shù),2015(09):67-72.
[4]黃章偉.基于SOA和云計(jì)算的高校人事招聘系統(tǒng)的設(shè)計(jì)和研究[J].信息技術(shù)與信息化,2015(06):36-38.
[5]李楓.網(wǎng)絡(luò)環(huán)境下檔案信息資源的整合[J].赤子(上中旬),2015(21):210.
[6]胥獻(xiàn)偉.高校信息化應(yīng)用系統(tǒng)規(guī)劃建設(shè)探討——以四川文理學(xué)院為例[J].科技視界,2015(29):57-188.
[7]賈彩虹,趙文劍,鄧記才.基于XML的異構(gòu)數(shù)據(jù)集成系統(tǒng)的研究與設(shè)計(jì)[J].河南科技,2014(21):12-14.
基金項(xiàng)目:
2014年度江西省高等學(xué)校科技落地計(jì)劃項(xiàng)目:基于虛擬接入面向服務(wù)的物聯(lián)網(wǎng)中間件,No.KJLD14054,2014.01—2016.12。
作者簡(jiǎn)介:
劉好斌(1981.7-),江西于都人,南昌航空大學(xué)軟件學(xué)院助理實(shí)驗(yàn)師;
韓宏旺(1982.12-),江西余干人,南昌航空大學(xué)學(xué)工處科長(zhǎng);
陳宇斌(1977.8-),江西南昌人,南昌航空大學(xué)軟件學(xué)院講師,復(fù)旦大學(xué)博士研究生。