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