Agent技術(shù)在校園一卡通異構(gòu)數(shù)據(jù)庫中間件中的應(yīng)用及研究
文章出處:http://m.dipdnbxp.cn 作者:姚敏 人氣: 發(fā)表時間:2011年07月19日
隨著信息網(wǎng)絡(luò)的發(fā)展,高校的信息化建設(shè)也正逐步進入軌道,作為高校數(shù)字化校園建設(shè)的重要基礎(chǔ)建設(shè)一一“校園一卡通”工程,同時也是目前高校多校區(qū)發(fā)展的需求。本文主要是針對高校一卡通信息平臺,研究各個應(yīng)用支撐系統(tǒng)之間的數(shù)據(jù)庫異構(gòu)問題,并引入Agent技術(shù),應(yīng)用于這些異構(gòu)數(shù)據(jù)庫中間件系統(tǒng)中,實現(xiàn)數(shù)據(jù)庫間信息共享和轉(zhuǎn)換。
2 相關(guān)技術(shù)簡介
2.1 Agent技術(shù)
Agent技術(shù)是在網(wǎng)絡(luò)技術(shù)和Internet發(fā)展以及決策支持系統(tǒng)(NSS)技術(shù)的基礎(chǔ)上發(fā)展起來的,具有很強的自主能動性的軟件技術(shù),早在上世紀(jì)70年代,人工智能領(lǐng)域就已經(jīng)提出了Agent的概念。它能通過網(wǎng)絡(luò)訪問異構(gòu)的資源,同時具有自主性和學(xué)習(xí)性,可以不受用戶監(jiān)控、指導(dǎo)的情況下由自己的決策機制,按照一定的規(guī)程遷移,尋找合適的計算資源、信息資源,處理或使用這些資源,代表用戶完成特定任務(wù)。
鑒于Agent在處理問題方面的自治性、社會性、反應(yīng)性,以及移動性等特點,Agent技術(shù)能有效地將分布于不同結(jié)點間的異構(gòu)數(shù)據(jù)庫集成在一起,并提供有效的數(shù)據(jù)集成和管理技術(shù)來動態(tài)支持數(shù)據(jù)的共享。
2.2中間件技術(shù)
中間件是在計算機硬件和操作系統(tǒng)之上,支持應(yīng)用軟件開發(fā)和運行的系統(tǒng)軟件,它能夠使應(yīng)用軟件相對獨立于計算機硬件和操作系統(tǒng)平臺。因此中間件是一種獨立的系統(tǒng)軟件或服務(wù)程序,它的主要作用是用來屏蔽網(wǎng)絡(luò)硬件平臺的差異性和操作系統(tǒng)與網(wǎng)絡(luò)協(xié)議的異構(gòu)性,使應(yīng)用軟件能夠比較平滑地運行于不同平臺上。同時中間件在負載平衡、連接管理和調(diào)度方面起了很大的作用。使企業(yè)級應(yīng)用的性能得到大幅提升,滿足了關(guān)鍵業(yè)務(wù)的需求。
按照IDC的分類方法,中間件可分為六類,分別是數(shù)據(jù)訪問中間件、遠程過程調(diào)用中間件、消息中間件、交易中間件、對象中間件等。其中數(shù)據(jù)訪問中間件:是為了建立數(shù)據(jù)應(yīng)用資源互操作的模式,對異構(gòu)環(huán)境下的數(shù)據(jù)庫實現(xiàn)聯(lián)接或文件系統(tǒng)實現(xiàn)聯(lián)接的中間件。
2.3 XML技術(shù)
XML(Extensible Markup Language)是一種可以對信息進行自我描述的語言。它允許定義一套符合自己需要的標(biāo)記,作為信息傳輸?shù)妮d體。標(biāo)記用于界定內(nèi)容。XML語法允許自行定義任意復(fù)雜的標(biāo)記結(jié)構(gòu)。XML使用普通的文本,而不是二進制的數(shù)據(jù)格式,因此具有跨平臺的優(yōu)點。XML的優(yōu)點主要表現(xiàn)為:規(guī)范、簡單、可擴展性、自描述性、簡明性 。
3 基于Agent的異構(gòu)數(shù)據(jù)庫中間件應(yīng)用
校園一卡通是一個全新的理念,作為學(xué)校數(shù)字化校園的基礎(chǔ)建設(shè),在提升學(xué)校信息化建設(shè)和核心競爭力中起著舉足輕重的作用。校園一卡通的建設(shè)目標(biāo)是為交叉學(xué)科建設(shè)提供學(xué)術(shù)平臺;為改善學(xué)生培養(yǎng)環(huán)境提供完整的數(shù)字化解決方案;提高學(xué)校內(nèi)部管理系統(tǒng)的效率,建成集成的校園信息系統(tǒng)。
本文是利用Agent技術(shù)的優(yōu)點,將其引入校園一卡通異構(gòu)數(shù)據(jù)庫中間件系統(tǒng)集成中,其建立的模型如圖1所示。
3.1模型各部分功能
(1)管理Agent:它響應(yīng)用戶Agent發(fā)來的用戶信息和操作請求,承擔(dān)著對外來請求進行認證并授權(quán)的責(zé)任,保證系統(tǒng)運行的安全。具體表現(xiàn)為:
①創(chuàng)建和注銷業(yè)務(wù)Agent。管理Agent根據(jù)用戶和程序?qū)ぷ髁鞒痰亩x和描述,在工作流程實例化的過程中,創(chuàng)建相應(yīng)的業(yè)務(wù)Agent。這些業(yè)務(wù)Agent的定義,如任務(wù)處理接口等,存放在Agent定義庫中,而它的初始化狀態(tài)和一些執(zhí)行參數(shù)則放在Agent狀態(tài)庫中。這樣,新創(chuàng)建的活動Agent就在管理Agent中完成了注冊,可以在以后的執(zhí)行過程中接收管理Agent的調(diào)度。
②接收用戶請求并分解任務(wù)。接收客戶端發(fā)來的服務(wù)請求,然后根據(jù)具體的服務(wù)來查詢規(guī)則庫和知識庫, 尋找合適的業(yè)務(wù)Agent來協(xié)助完成任務(wù)。處理完成任務(wù)后接收業(yè)務(wù)Agent返回的服務(wù)結(jié)果, 并將其整合返回給用戶Agent。
③對業(yè)務(wù)Agent的服務(wù)進行管理。管理Agent在收到業(yè)務(wù)Agent或者其它Agent的服務(wù)請求以后,查詢Agent定義庫中關(guān)于各個Agent的相關(guān)數(shù)據(jù),同時根據(jù)Agent狀態(tài)庫中的各個業(yè)務(wù)Agent的狀態(tài)和運行時的參數(shù),返回句柄或者拒絕,并給出拒絕原因。
(2)元數(shù)據(jù):包括各局部數(shù)據(jù)庫的模式信息、集成系統(tǒng)的全局視圖信息以及異構(gòu)模式問的轉(zhuǎn)換規(guī)則等。元數(shù)據(jù)位于管理Agent所在的同一機器上,這樣對于全局數(shù)據(jù)提取相應(yīng)的信息,再由管理Agent執(zhí)行。
(3)業(yè)務(wù)Agent:根據(jù)用戶的不同需求,提供不同的業(yè)務(wù)處理服務(wù),產(chǎn)生相應(yīng)的規(guī)則,調(diào)用不問的算法將用戶需求轉(zhuǎn)換成不同的形式.相互協(xié)作,表現(xiàn)同步。它包括接收箭理Agent發(fā)來的請求任務(wù),與各業(yè)務(wù)Agent合作通訊,傳輸數(shù)據(jù)訪問Agent返回的服務(wù)結(jié)果等。具體表現(xiàn)為:①數(shù)據(jù)傳輸管理:主要負責(zé)解釋管理Agent發(fā)來的服務(wù)請求以及將數(shù)據(jù)庫訪問Agent返回的服務(wù)結(jié)果傳輸給管理Agent。通過在流套接宇的基礎(chǔ)上一個傳輸通道來完成。 l 務(wù)Agent一股處于監(jiān)聽狀態(tài), 為了保證數(shù)據(jù)傳輸?shù)耐暾?,采用雙重確認的機制。 ② 通信管理:主要負責(zé)與其它業(yè)務(wù)Agent進行通信和協(xié)作。作為通信的中間層,屏蔽了通信的一致性和完整性,使整個系統(tǒng)在通信上有較好的擴展性和靈活性。
(4)數(shù)據(jù)訪問Agent:采用Agent技術(shù)構(gòu)建數(shù)據(jù)訪問中間件,可以根據(jù)用戶端程序的不同要求動態(tài)連接數(shù)據(jù)庫。它對應(yīng)各子系統(tǒng)的數(shù)據(jù)庫服務(wù)器,接收和解釋來自業(yè)務(wù)Agent的請求, 檢驗業(yè)務(wù)Agent的合法性及權(quán)限,將服務(wù)通過標(biāo)準(zhǔn)接口JDBC傳給數(shù)據(jù)源執(zhí)行,取得數(shù)據(jù)結(jié)果后,將其轉(zhuǎn)換成XML格式傳給業(yè)務(wù)Agent。具體表現(xiàn)為:
①系統(tǒng)檢測:該模塊主要的功能是實時地監(jiān)測數(shù)據(jù)庫系統(tǒng)的運行狀況和資源狀況。同時它還維護著一張靜態(tài)的系統(tǒng)任務(wù)表,當(dāng)某個任務(wù)觸發(fā)條件到來時(如到了某個系統(tǒng)時間),它就會自動地觸發(fā)系統(tǒng)任務(wù)表中指定的任務(wù)請求,更好地實現(xiàn)系統(tǒng)層面上的自動化。
②與數(shù)據(jù)庫的連接管理:該模塊管理中間件系統(tǒng)與數(shù)據(jù)庫之間的連接,它的功能實現(xiàn)是真正達到數(shù)據(jù)庫類型和位置對上層的應(yīng)用系統(tǒng)透明、均衡數(shù)據(jù)庫服務(wù)器負載根本之所存,使得支持異構(gòu)數(shù)據(jù)庫更加方便。這種數(shù)據(jù)庫連接方案采用在中間件環(huán)境中命名數(shù)據(jù)庫連接的方式定義可用的連接(邏輯連接),每個連接指定了(DBMS,DBName,USER,PASSWORD)。每個連接可由一個線程實現(xiàn),這些連接組成連接池,這些線程于數(shù)據(jù)庫訪問服務(wù)啟動時啟動,于服務(wù)終止時終止。這種方式有助于減少用戶程序?qū)唧w環(huán)境的依賴性。
③緩沖池管理:為了不同速率設(shè)備之間傳輸進行匹配,都會采用緩沖區(qū)的方式。采用緩沖池一是由于高性能和高可靠性的要求,二是為了提升速度:在進行數(shù)據(jù)庫操作時,會有一些經(jīng)常進行的操作,這些頻繁進行的操作如果能夠被保存下來,就可以節(jié)省很多的時間。采用的實現(xiàn)方法是根據(jù)連接管理中的一個計數(shù)器,執(zhí)行次數(shù)多的才可以進行保留。當(dāng)客戶的SOL請求到達后,先檢查緩沖區(qū)中有沒有結(jié)果的緩存,如果有就直接將結(jié)果返I魚J,如果沒有再進行相應(yīng)的處理。
④ 數(shù)據(jù)處理:將數(shù)據(jù)庫中的數(shù)據(jù)集提取出來映射成相應(yīng)的XML文檔,以便傳輸、共享和整合。
3.2工作流程
各個Agent相互配合,共同協(xié)作完成任務(wù),其處理過程如下:
(1)用戶Agent接收請求,首先判斷,是否是已定義的正確接口之一,如果不是,則直接返回用戶錯誤信息;如果是,則執(zhí)行2。
(2)調(diào)用緩沖區(qū)管理,查詢是否已經(jīng)執(zhí)行過這個請求, 如果是,則執(zhí)行5; 如果不是,則執(zhí)行3。
(3)調(diào)用連接管理,看足否有可用的物理連接,如果無,則等待;如果有,則執(zhí)行4。
(4)進行物理的連接,進行數(shù)據(jù)處理。
(5)得到的結(jié)果, 打包處理,將其傳送給用戶Agent。
其流程圖如圖2所示。
4 關(guān)鍵模塊實現(xiàn)
由于子系統(tǒng)數(shù)據(jù)庫的異構(gòu),它們的數(shù)據(jù)庫模型,或者是信息的組織形式各不相同,這樣給數(shù)據(jù)庫之問的數(shù)據(jù)交換和信息共享帶來了很多問題。本文采用的是將數(shù)據(jù)庫中的記錄集提取出來轉(zhuǎn)換成XML,文件,這樣便于數(shù)據(jù)的交換和整合以及透明訪問。
下面以查詢學(xué)生學(xué)籍管理系統(tǒng)為例,說明如何將數(shù)據(jù)庫中讀取的數(shù)據(jù)轉(zhuǎn)換成xML文件。數(shù)據(jù)庫采用的是SOLServer 2000,學(xué)生學(xué)籍管理系統(tǒng)表student表1。
5 結(jié)束語
本文在高校一卡通中針對校園一卡通中異構(gòu)數(shù)據(jù)庫的異構(gòu)問題,結(jié)合Agent的技術(shù)應(yīng)用到異構(gòu)數(shù)據(jù)庫中間件中,設(shè)計了一種基于Agent的校園一卡通異構(gòu)數(shù)據(jù)庫中間件模型,有效地解決學(xué)校與銀行以及校內(nèi)各部門之間所存在的異構(gòu)數(shù)據(jù)庫之間的關(guān)聯(lián)數(shù)據(jù)查詢和共享。