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