□劉座銘 高長宇 夏善磊 趙 昕
目前,隨著國內(nèi)高校、科研等單位科技投入的逐年提高,科研項目在數(shù)量和質(zhì)量上都取得了可喜的成績。隨著科技項目數(shù)量越來越多,科研管理工作難度越來越大。科技管理部門、項目負責(zé)人及參與人員在科技工作中都面臨著項目進程管理重復(fù)性繁瑣工作、科技信息關(guān)聯(lián)度低、數(shù)據(jù)之間利用價值低等情況。在一定程度上制約著科技項目信息管理的正規(guī)化、精細化發(fā)展[1~3]。
實現(xiàn)科研項目的精細化、過程化管理,就必須借助現(xiàn)代化的、先進的信息管理工具,建立規(guī)范化、現(xiàn)代化的信息管理系統(tǒng)就是必然趨勢。通過本文設(shè)計的實現(xiàn),不僅能為相關(guān)單位科研信息管理平臺提供一個安全可靠的技術(shù)平臺,而且還能為一些企業(yè)科研的長遠謀劃和宏觀調(diào)控提供充分的科學(xué)理論依據(jù),有利于相關(guān)單位企業(yè)的科學(xué)技術(shù)協(xié)調(diào)發(fā)展;有利于人才培養(yǎng)以及成果轉(zhuǎn)化取得新進展,推動科研-生產(chǎn)-咨詢一體化協(xié)調(diào)發(fā)展[4~6]。
但是由于一些單位科研管理系統(tǒng)除了本單位使用外,還有可能讓下級部門或相關(guān)合作單位使用,但是由于一部分單位存在保密性的要求,可能無法使用互聯(lián)網(wǎng)進行科研相關(guān)信息管理;另外在使用的過程中可能存在科研相關(guān)信息輸入項的變化等情況。這些情況要求科研相關(guān)信息平臺應(yīng)該具備數(shù)據(jù)庫的靈活配置和擴展,就需要能夠?qū)崿F(xiàn)異構(gòu)數(shù)據(jù)庫的效果。如何集成和整合這些異構(gòu)數(shù)據(jù)庫,實現(xiàn)數(shù)據(jù)間的交換和共享,逐步成為當前科研相關(guān)信息管理平臺建設(shè)的迫切需求。本文從上述實際情況處理,提出了科研項目及業(yè)績管理系統(tǒng)中的異構(gòu)數(shù)據(jù)庫系統(tǒng)的設(shè)計和集成。通過該系統(tǒng)的異構(gòu)數(shù)據(jù)庫系統(tǒng)應(yīng)用,為后續(xù)類似管理系統(tǒng)的異構(gòu)數(shù)據(jù)庫系統(tǒng)應(yīng)用提供了范例。
(一)設(shè)計目標。建立異構(gòu)數(shù)據(jù)庫集成系統(tǒng),一直是國內(nèi)外數(shù)據(jù)庫領(lǐng)域中討論、研究的熱點話題,曾有幾家大型的數(shù)據(jù)庫廠商提出了各自的方案[7~9],但都是以主流數(shù)據(jù)庫產(chǎn)品同構(gòu)復(fù)制的基礎(chǔ)上提出的。因為有很多不同種類的信息源,所以針對異構(gòu)數(shù)據(jù)庫集成系統(tǒng)而言,它不僅要能夠集成信息,還應(yīng)完成信息間的互操作,并為用戶提供各種方式的查詢和搜索服務(wù)。如何解決異種信息源的集成問題[10~11],關(guān)鍵是數(shù)據(jù)庫集成的智能管理。普通用戶的需求是屏蔽掉各種層次異構(gòu)特性的程序,因為他們不必了解各物理數(shù)據(jù)庫系統(tǒng)的分布,不必掌握各物理數(shù)據(jù)庫的組成結(jié)構(gòu),也不必自己去進行數(shù)據(jù)轉(zhuǎn)換和結(jié)果匯總,想要得到一個綜合結(jié)果,只需要通過一個簡便的全局查詢就可以得到,這就是異構(gòu)數(shù)據(jù)庫的主要研究內(nèi)容。這種聯(lián)合使用技術(shù)既與各種數(shù)據(jù)庫間有著緊密的聯(lián)系,同時在新的研究領(lǐng)域中,又別于已有的數(shù)據(jù)庫。本文在深入了解異構(gòu)數(shù)據(jù)庫集成的相關(guān)理論、中間件技術(shù)以及XML技術(shù)的基礎(chǔ)上,以中間件的技術(shù)思想為基礎(chǔ),對異構(gòu)數(shù)據(jù)庫的查詢方式和方法進行了抽象,并專門為使用數(shù)據(jù)庫的用戶提供了一個通用的接口,從而實現(xiàn)了這部分軟件的復(fù)用,提高了數(shù)據(jù)庫開發(fā)的效率。
(二)系統(tǒng)架構(gòu)設(shè)計。本文為了簡化科研項目及業(yè)績管理系統(tǒng)處理異構(gòu)數(shù)據(jù)庫,引入中間件系統(tǒng)。根據(jù)中間件系統(tǒng)的特點以及異構(gòu)數(shù)據(jù)庫集成的應(yīng)用需求,本文將中間件系統(tǒng)設(shè)計為三層,分別為數(shù)據(jù)庫控制及數(shù)據(jù)采集層、數(shù)據(jù)處理層和應(yīng)用層。如圖1所示。其中數(shù)據(jù)庫控制及數(shù)據(jù)采集層的功能主要是連接不同數(shù)據(jù)庫,對數(shù)據(jù)庫進行命令控制,讀寫數(shù)據(jù)庫數(shù)據(jù)等。數(shù)據(jù)處理層主要接受數(shù)據(jù)庫控制及數(shù)據(jù)采集層傳遞過來的數(shù)據(jù),對數(shù)據(jù)進行條件查詢和格式轉(zhuǎn)換,將處理后的數(shù)據(jù)傳遞給下一層。應(yīng)用層主要是接受數(shù)據(jù)處理層傳輸過來的數(shù)據(jù),通過API接口提交給應(yīng)用系統(tǒng);同時應(yīng)用層也接受應(yīng)用系統(tǒng)的控制命令,通過消息機制傳遞給控制層進行數(shù)據(jù)庫操作和數(shù)據(jù)的讀寫。

圖1 中間件架構(gòu)圖
(三)核心功能模塊實現(xiàn)。
1.數(shù)據(jù)庫控制及數(shù)據(jù)采集層。數(shù)據(jù)庫控制及數(shù)據(jù)采集層主要作用是連接不同的數(shù)據(jù)庫,利用標準接口屏蔽不同數(shù)據(jù)庫的差異性,調(diào)用數(shù)據(jù)庫數(shù)據(jù),執(zhí)行數(shù)據(jù)庫命令,并將其查閱出的數(shù)據(jù)傳遞到數(shù)據(jù)處理層進下一步處理。這一層具備以下功能。
(1)自動檢測和連接數(shù)據(jù)庫。中間件系統(tǒng)要集成不同數(shù)據(jù)庫,屏蔽其差異性,需要能夠自動檢測到數(shù)據(jù)庫,并正確連接數(shù)據(jù)庫,才能進一步操作數(shù)據(jù)庫,從而對數(shù)據(jù)庫的數(shù)據(jù)進行查詢和處理。為了完成上述設(shè)計目標可以采用如下自動檢測連接設(shè)備的實現(xiàn)步驟:
①Step1。應(yīng)該提供一個不同數(shù)據(jù)庫的管理模塊,通過該模塊可以在系統(tǒng)中集中注冊常見類型的數(shù)據(jù)庫。注冊信息包括:讀寫數(shù)據(jù)庫連接參數(shù)、數(shù)據(jù)庫用戶信息、數(shù)據(jù)庫地址等。
②Step2。利用程序自動掃描數(shù)據(jù)庫,檢測數(shù)據(jù)庫是否連接到中間件系統(tǒng),如果連接到中間件系統(tǒng),則自動按照注冊的數(shù)據(jù)庫參數(shù)連接數(shù)據(jù)庫,如果連接成功,則返回連接成功的消息給中間件系統(tǒng)的數(shù)據(jù)處理層,如果連接失敗則返回數(shù)據(jù)庫連接失敗的信息。
③Step3。如果接受到連接成功的反饋,則進入數(shù)據(jù)讀取和數(shù)據(jù)庫命令執(zhí)行階段,進行系統(tǒng)所需數(shù)據(jù)庫查詢和操作。
(2)統(tǒng)一數(shù)據(jù)讀寫接口。由于不同的數(shù)據(jù)庫具有一定差異性,不僅僅是連接參數(shù)的差異,也包括數(shù)據(jù)格式的不同,為了提供數(shù)據(jù)處理層能夠統(tǒng)一數(shù)據(jù)格式,中間件系統(tǒng)應(yīng)該采用統(tǒng)一的數(shù)據(jù)讀寫接口,在連接設(shè)備成功后,通過統(tǒng)一的數(shù)據(jù)讀寫接口為數(shù)據(jù)處理層提供數(shù)據(jù)。
2.數(shù)據(jù)處理層。當數(shù)據(jù)庫控制及數(shù)據(jù)采集層將數(shù)據(jù)傳遞給數(shù)據(jù)處理層,這里的數(shù)據(jù)屬于原始數(shù)據(jù),需要在數(shù)據(jù)出路層進行一些封裝,便于應(yīng)用層進行數(shù)據(jù)的操作。
(1)數(shù)據(jù)搜索查詢。在數(shù)據(jù)處理,應(yīng)該利用應(yīng)用層的消息參數(shù),得到應(yīng)用層所需查詢條件,在數(shù)據(jù)庫控制及數(shù)據(jù)采集層將數(shù)據(jù)傳遞過來后,對數(shù)據(jù)進行條件查詢,縮小數(shù)據(jù)范圍。
(2)數(shù)據(jù)格式處理。由于系統(tǒng)所需要數(shù)據(jù)和數(shù)據(jù)庫數(shù)據(jù)在格式上有一定的差異性,在數(shù)據(jù)處理層應(yīng)該針對數(shù)據(jù)格式進行轉(zhuǎn)換。一方面是應(yīng)用層反饋過來的數(shù)據(jù),將其轉(zhuǎn)換數(shù)據(jù)庫適用的數(shù)據(jù)格式,傳遞給數(shù)據(jù)庫控制及數(shù)據(jù)采集層,保存到數(shù)據(jù)庫中;另一方面是將數(shù)據(jù)庫控制及數(shù)據(jù)采集層傳遞過來數(shù)據(jù)進行查詢縮小范圍之后,將數(shù)據(jù)格式轉(zhuǎn)換為應(yīng)用層所需的格式,傳遞到應(yīng)用層。
3.應(yīng)用層。應(yīng)用層在接受到數(shù)據(jù)處理層處理的數(shù)據(jù)后,經(jīng)過標準接口傳遞到應(yīng)用系統(tǒng)中,供應(yīng)用系統(tǒng)使用,應(yīng)用層主要包括以下功能。
(1)數(shù)據(jù)消息處理模塊。該模塊的主要功能是將接受數(shù)據(jù),通過消息機制通知應(yīng)用系統(tǒng),應(yīng)用系統(tǒng)收到通知后,利用標準接口接收數(shù)據(jù)。
(2)命令消息處理模塊。該模塊的主要功能是應(yīng)用系統(tǒng)通過消息接口通知應(yīng)用層,進行數(shù)據(jù)庫的操作命令,例如連接數(shù)據(jù)庫、查詢數(shù)據(jù)表、插入和更新數(shù)據(jù)等,消息到應(yīng)用層后,應(yīng)用層通過消息機制通知.數(shù)據(jù)庫控制及數(shù)據(jù)采集層,由.數(shù)據(jù)庫控制及數(shù)據(jù)采集層進行數(shù)據(jù)庫的命令執(zhí)行。
(四)消息機制實現(xiàn)。消息是中間件系統(tǒng)進行數(shù)據(jù)庫控制、數(shù)據(jù)查詢和處理的核心機制,中間件系統(tǒng)一般采用面向消息的形式來構(gòu)建;因此需要設(shè)計中間件系統(tǒng)的消息處理機制。
消息處理模塊一般包括消息編碼、消息解碼和消息通信三個部分。消息編碼和解碼一般來說將傳遞內(nèi)容,形成層次性對象,利用外部文件或者內(nèi)存數(shù)據(jù)序列來存儲,編碼和解碼實際上就是存儲和解析的過程。很多文獻都有相關(guān)介紹,在這里本文就不多作說明,本文在此主要說明一下消息通信的處理過程。一般來說,消息通信的流程如下。
1.Step1:監(jiān)聽。當中間件系統(tǒng)啟動后,系統(tǒng)會自動運行配置文件,然后根據(jù)配置內(nèi)容信息,設(shè)定連接的參數(shù),并在特定端口進行監(jiān)聽,等待應(yīng)用系統(tǒng)發(fā)來的請求;
2.Step2:連接的建立。在監(jiān)聽過程中,在中間件系統(tǒng)收到應(yīng)用系統(tǒng)的請求后,如果兩者間的連接數(shù)沒有達到最大限度,那么就開辟一個任務(wù)線程來處理該請求,開始消息交換。

圖2 消息通信流程
3.Step3:握手。為了雙方建立消息通道后,確保消息交換能夠順序進行,也是為了保障安全性,需要遵循一定的規(guī)范,因為在實際消息傳輸之前,需要進行握手操作。第一,連接請求方,給接收方發(fā)送握手信息,并表明它的身份,其中包括它的期望消息規(guī)范格式;第二,接收方獲取握手請求信息后,驗證其身份,并針對提交的消息格式和規(guī)范,對自己掌握信息進行檢查,如果符合對方要求,則響應(yīng)握手請求;如果不符合對方要求,則反饋握手失敗信息。第三,請求方得到接收方的響應(yīng),如果握手成功,則進行后續(xù)的命令、回復(fù)消息的傳輸;否則關(guān)閉連接請求。
4.Step4:收發(fā)消息。如果握手成功,則雙方開始進行命令消息傳輸,消息傳輸包括收取和發(fā)送。中間件系統(tǒng)消息通信的流程如圖2所示。
本文針對科研項目及業(yè)績管理系統(tǒng)針對構(gòu)建異構(gòu)數(shù)據(jù)庫的需求,采用中間件系統(tǒng),從而實現(xiàn)了異構(gòu)數(shù)據(jù)庫的集成應(yīng)用設(shè)計,同時提出了中間件體系結(jié)構(gòu),并詳細講解了中間件系統(tǒng)的功能和實現(xiàn);最后設(shè)計了中間件系統(tǒng)的消息通信流程。通過科研項目及業(yè)績管理系統(tǒng)中的異構(gòu)數(shù)據(jù)庫中間件系統(tǒng)的設(shè)計,該中間件系統(tǒng)可以簡化科研項目及業(yè)績管理系統(tǒng)對異構(gòu)數(shù)據(jù)庫技術(shù)的集成復(fù)雜性,使得異構(gòu)數(shù)據(jù)庫數(shù)據(jù)在科研項目及業(yè)績管理容易使用,方便管理,而且具有一定的擴展性。該中間件系統(tǒng)也可以應(yīng)用于其他應(yīng)用系統(tǒng),來實現(xiàn)異構(gòu)數(shù)據(jù)庫技術(shù)的集成。