基于Multi-Agent 的高校校園一卡通系統(tǒng)集成研究
文章出處:http://botanicstilllife.com 作者:姚敏,郭慶 人氣: 發(fā)表時間:2011年11月15日
0 引言
隨著信息技術(shù)的高速發(fā)展,目前高校的信息化程度也在逐漸提升。為了提升核心競爭力,高校掀起了一場“數(shù)字化校園系統(tǒng)建設(shè)”(Digital Campus)的熱潮。
在數(shù)字化校園建設(shè)中,“校園一卡通”作為基礎(chǔ)工程,為數(shù)字化校園提供了全面的數(shù)據(jù)采集平臺。目前高校校園一卡通中存在多個不同時期的各種信息系統(tǒng),存在著異構(gòu)數(shù)據(jù)庫,需要整合二級管理部門的“信息孤島”[1],解決異構(gòu)的集成問題。本文主要研究各個應(yīng)用支撐系統(tǒng)的數(shù)據(jù)庫異構(gòu)問題,并引入Mutil-Agent 技術(shù),提出一種基于Mutil-Agent 的高校校園一卡通集成方案。
1 Mutil-Agent 技術(shù)
Mutil-Agent(MA)技術(shù)主要是研究多個Agent 之間如何相互協(xié)作、相互支持以完成系統(tǒng)共同目標(biāo)的問題,其成果可應(yīng)用于物理分布或邏輯上具有分布性特點(diǎn)的應(yīng)用領(lǐng)域。多智能Agent 系統(tǒng)(Mutil-Agent System,MAS)是指由多個可執(zhí)行網(wǎng)絡(luò)計(jì)算Agent 組成的集合。MAS 的協(xié)作求解問題的能力超過單個Agent,這是MAS 產(chǎn)生的最直接的原因。它能夠模擬人類社會團(tuán)體、大型組織機(jī)構(gòu)的群體工作,可用它解決復(fù)雜問題[2]。
對MAS的研究主要涉及以下六個方面的內(nèi)容:
⑴ 功能控制范圍。單個Agent 的功能控制范圍可以是全局,也可以是局部。
⑵ 集成系統(tǒng)的操作手段。系統(tǒng)可以通過局部功能、局部接口、應(yīng)用或問題參數(shù)訪問單個Agent。
⑶ 系統(tǒng)控制位置。包括中心或分布的。
⑷ 系統(tǒng)集成機(jī)制。包括功能、語言、表示方法、應(yīng)用或問題。
⑸ Agent 組成。包括同構(gòu)、異構(gòu)的。
⑹ 系統(tǒng)Agent 類型。包括人、機(jī)器、人和機(jī)器的混合。MAS 的研究歷史最早可以追溯到80 年代中期的Actors 模型,隨后Davis 和Smith 提出了合同網(wǎng)協(xié)議。合同網(wǎng)協(xié)議至今仍被認(rèn)為是關(guān)于通信、MAS 研究的重要成果,主要內(nèi)容包括:MAS 理論、Multi-Agent 協(xié)商和Multi-Agent 規(guī)劃等。其他比較熱門的研究是,MAS 在Internet 上的應(yīng)用、移動Agent 系統(tǒng)、電子商務(wù)、基于經(jīng)濟(jì)學(xué)或市場學(xué)的MAS等。
2 高校一卡通系統(tǒng)結(jié)構(gòu)及存在問題
2.1 高校一卡通系統(tǒng)結(jié)構(gòu)
校園一卡通是一個全新的理念,作為學(xué)校數(shù)字化校園的基礎(chǔ)建設(shè),在提升學(xué)校信息化建設(shè)和核心競爭力中起著舉足輕重的作用。按照業(yè)務(wù)功能的需要,校園一卡通平臺系統(tǒng)一般由支付交易系統(tǒng)、身份識別系統(tǒng)、應(yīng)用系統(tǒng)接口、綜合應(yīng)用系統(tǒng)四大功能系統(tǒng)組成。其結(jié)構(gòu)圖如圖1所示。
系統(tǒng)的核心是數(shù)據(jù)資源的集成共享,統(tǒng)一的數(shù)據(jù)平臺的目標(biāo)是為了整個信息系統(tǒng)提供一個穩(wěn)定、集成、可靠的環(huán)境,保證系統(tǒng)中各個業(yè)務(wù)系統(tǒng)可以充分集成并保持一致。利用共享數(shù)據(jù)庫平臺,可集成各個不同時期建立的業(yè)務(wù)子系統(tǒng),實(shí)現(xiàn)整個校園管理的規(guī)范化、系統(tǒng)化、一體化。
2.2 存在問題
在高校校園一卡通系統(tǒng)中,學(xué)校很多部門在管理方面已經(jīng)應(yīng)用了一些專業(yè)生產(chǎn)廠家所開發(fā)的較為成熟的應(yīng)用管理系統(tǒng),如:控水控電系統(tǒng)、圖書借約系統(tǒng)、網(wǎng)上查詢系統(tǒng)、OA 系統(tǒng)等。他們采用的開發(fā)平臺各不相同。因此,目前各種類型的數(shù)據(jù)庫系統(tǒng)同時并存,有Foxpro、Access 等桌面型數(shù)據(jù)庫管理系統(tǒng),也有SQL Server、Oracle、Sybase 之類的大中型數(shù)據(jù)庫系統(tǒng)。
同時,隨著Web 技術(shù)的發(fā)展,又出現(xiàn)了許多新的數(shù)據(jù)形式(如文本、音頻、圖像、動畫、視頻數(shù)據(jù)等),這些異構(gòu)數(shù)據(jù),制約了各部門間的信息傳輸和互用。
學(xué)校本部與分校及銀行在操作系統(tǒng)、數(shù)據(jù)庫和網(wǎng)絡(luò)上的異構(gòu)性,高校內(nèi)部各種形式的信息系統(tǒng),所形成的一個個分散的“信息孤島”[1],使得數(shù)據(jù)無法共享和及時更新,給單位的規(guī)范管理造成了一定困難。
為了解決數(shù)據(jù)異構(gòu)問題,保護(hù)學(xué)校各部門的前期投資,促進(jìn)學(xué)校與銀行的相互協(xié)作,實(shí)現(xiàn)學(xué)校、商戶同銀行之間的信息交換,建立一個分布異構(gòu)環(huán)境下的異構(gòu)數(shù)據(jù)庫集成系統(tǒng)是十分必要的。
3 基于Mutil-Agent 的一卡通集成系統(tǒng)
為了解決高校各種業(yè)務(wù)系統(tǒng)中數(shù)據(jù)庫和操作系統(tǒng)平臺的異構(gòu)性、系統(tǒng)接口不統(tǒng)一、技術(shù)標(biāo)準(zhǔn)定義不一致、開發(fā)商不同等等問題,我們在一卡通系統(tǒng)中引入多Agent 技術(shù),即引入ManagentAgent 和各個業(yè)務(wù)子系統(tǒng)Agent,如OA Agent、圖書借約Agent、控水控電Agent 和網(wǎng)上查詢Agent 等來解決校園一卡通中各子系統(tǒng)間互相通信與協(xié)作,以便達(dá)到異構(gòu)數(shù)據(jù)庫的集成和透明共享,實(shí)現(xiàn)分布、異構(gòu)的校園一卡通子系統(tǒng)間的信息共享、功能共享、互通信和互操作。圖2 為基于Mutil-AgentAgent 的校園一卡通集成系統(tǒng)模型。
Client Agent 由Web Client 組成,是用戶和系統(tǒng)交流的接口,它接收用戶的操作和請求并返回執(zhí)行結(jié)果,并為用戶提供服務(wù),負(fù)責(zé)向Managent Agent 提交用戶信息和服務(wù)請求。用戶只需要提出相應(yīng)的要求或者作出一系列選擇,Client Agent 就能將用戶請求轉(zhuǎn)換成Agent 能識別的命令。
Managent Agent 是整個模型的核心,它接收Client Agent的請求任務(wù),轉(zhuǎn)換請求格式,并分解成相應(yīng)的子業(yè)務(wù),發(fā)送給各個子業(yè)務(wù)Agent,如OA Agent、Lib Agent、Inquiry Agent 等。接收各子業(yè)務(wù)Agent 發(fā)來的處理結(jié)果,并對其進(jìn)行整合后返回給Client Agent。
元數(shù)據(jù)字典:包括各局部數(shù)據(jù)庫的模式信息、集成系統(tǒng)的全局視圖信息以及異構(gòu)模式的轉(zhuǎn)換規(guī)則等。這些元數(shù)據(jù)主要用于記錄整個數(shù)據(jù)庫系統(tǒng)的全局資源、局部資源和關(guān)系資源,是數(shù)據(jù)庫中數(shù)據(jù)的描述。元數(shù)據(jù)在需求分析階段定義,需要在設(shè)計(jì)過程中不斷修改、實(shí)施、完善。元數(shù)據(jù)字典位于管理Agent所在的同一機(jī)器上,這樣對于全局?jǐn)?shù)據(jù)庫的訪問只需訪問本機(jī)的數(shù)據(jù)庫。對于局部數(shù)據(jù)的訪問,相應(yīng)的信息通過JDBC 從全局?jǐn)?shù)據(jù)字典提取,再由Managent Agent 執(zhí)行。
各子業(yè)務(wù)Agent:對應(yīng)于各子系統(tǒng)的數(shù)據(jù)庫服務(wù)器。它接收和解釋來自Managent Agent 的請求,檢驗(yàn)其合法性以及權(quán)限;將服務(wù)通過標(biāo)準(zhǔn)接口JDBC 傳送給數(shù)據(jù)源執(zhí)行;取得查詢結(jié)果后,將其組織成規(guī)范的XML 格式文件傳送給ManagentAgent。
4 基于Mutil-Agent 的集成通信機(jī)制設(shè)計(jì)
校園一卡通集成系統(tǒng)模型中一個業(yè)務(wù)的執(zhí)行往往需要多個功能Agent 的交互協(xié)作。因而實(shí)現(xiàn)Agent 之間通信和協(xié)作,是保障校園一卡通系統(tǒng)高效、穩(wěn)定運(yùn)行的關(guān)鍵。完成協(xié)作,就需要通信。為了讓每個Agent 都能理解通信的內(nèi)容并作出相應(yīng)的反應(yīng),就需要為它們定義共同的通信機(jī)制。本文選擇KQML(Knowledge Query and Manipuliation Language)[3]作為開發(fā)語言,它提供了一套標(biāo)準(zhǔn)的Agent 通信原語,定義了一組Agent 之間傳遞信息的標(biāo)準(zhǔn)語法和動作,而且KQML 通信語言支持多種類型的消息通信,能夠完成控制系統(tǒng)中的一般信息交換、功能交互與知識共享。KQML 分為三個層次:內(nèi)容層、消息層和通訊層[4],如圖3 所示。
層間交互通過Inform,Request,Offer,Accept,Refuse,Command等類型的消息來實(shí)現(xiàn)。KQML 是一種較為成熟的Agent 通訊語言和通訊協(xié)議,但由于專業(yè)領(lǐng)域的封閉性和相應(yīng)軟件的不足,還遠(yuǎn)遠(yuǎn)不能滿足當(dāng)今Internet 發(fā)展的需求。XML 是一種可擴(kuò)展語言,是一種跨平臺的數(shù)據(jù)交換規(guī)范,已經(jīng)成為被廣泛接受的數(shù)據(jù)編碼和數(shù)據(jù)處理標(biāo)準(zhǔn)。它最重要的特征是,被標(biāo)記的各個數(shù)據(jù)是保持其含義的,因此極大地提高了系統(tǒng)間交換數(shù)據(jù)的可能性。鑒于XML語言的可擴(kuò)展性、平臺獨(dú)立性、靈活性、自描述性和簡明性[5],本文采用XML對KQML進(jìn)行封裝。
用XML來封裝KQML語言的統(tǒng)一格式如下:
<?xml version=”1.0”ecoding=”UTF-8”?>
<message>
<ID>消息的編號</ID>
<sender>消息發(fā)送方</sender>
<receiver>消息接收方</receiver>
<type>消息類型</type>
<content>消息的內(nèi)容</content>
</message>
Agent 采用KQML 通信的時候,其消息可劃分為兩個層面,通信原語和通信內(nèi)容層。這兩個層面是相對獨(dú)立的。如果采用KQML 來進(jìn)行Agent 通信,可用XML 來封裝KQML 通信原語消息,同時也可用XML 來表示通信內(nèi)容。我們將給出一個KQML 的DTD 設(shè)計(jì),通信內(nèi)容則由用戶負(fù)責(zé)設(shè)計(jì)其DTD。這種做法的優(yōu)點(diǎn)是[6-7]:
⑴ 可增強(qiáng)不同種類的Agent 之間的通信能力;
⑵ 可降低通信的復(fù)雜度,使某些棘手的通信得以進(jìn)行;
⑶ 不依賴于特定網(wǎng)絡(luò)通信協(xié)議;
⑷ 有利于Agent 技術(shù)融入萬維網(wǎng)環(huán)境;
⑸ 有利于Agent 尋址、安全性以及標(biāo)準(zhǔn)詞匯集的定義和共享;
⑹ 有利于Agent 協(xié)調(diào)和合作;
⑺ 有利于增強(qiáng)Multi-agent 系統(tǒng)的靈活性和可擴(kuò)充性。
圖4為基于XML的Agent 通信框架:
XML Wrapper
KQML
request
Ontology
A
Ontology
B
KB
XML Wrapper
KQML
result
Ontology
A
Ontology
B
KB
Background
Knowledge
Base
該框架的通信流程為:
設(shè)Agent A 就某問題向Agent B 詢問。Agent A 根據(jù)自己的知識庫經(jīng)過計(jì)算或推理,利用合適的標(biāo)準(zhǔn)詞匯集生成相應(yīng)的請求,將它嵌入KQML 的內(nèi)容層,使用XML 包裝器生成XML文檔,最后通過通信服務(wù)向B 傳送。Agent B 收到該文檔后,使用XML 解析器從中分離出KQML 消息,利用自己的知識庫進(jìn)行計(jì)算、推理和詮釋,并選用相應(yīng)的標(biāo)準(zhǔn)詞匯集生成反饋信息;接著,將其轉(zhuǎn)換成XML 文檔;最后也通過通信服務(wù)向A 傳回XML文檔。
下面給出KQML消息的DTD定義。
<!—filename:performative.dtd-->
<!ENTITY%commadntype“ask-if|ask-all|ask-one|re-ask|streamall|
eos|tell|untell|deny|suggest|insert|uminsert|delete-one|
delete-all|undelete|achieve|unachieved|advertise|unadvertised|
subscribe|error|sorry|standby|ready|next|rest|discard|register|
unregister|forward|broadcast|transport-address|broker-one|
broker-all|recommend-one|recruit-one|recruit-all”>
<!ELEMENT performative(name,sender*,receiver*,in-reply-to?,
reply-with,language,ontology,from?,to?,content)>
<!ELEMENT name(% commandtype)>
<!ELEMENT sender (Agent-id)>
<!ELEMENT receiver (Agent-id)>
<!ELEMENT in-reply-to (#PCDATA)>
<!ELEMENT reply-with (#PCDATA)>
<!ELEMENT content (#PCDATA)>
<!ELEMENT language (#PCDATA)>
<!ELEMENT ontology (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT Agent-id(name,address?)>
<!ELEMENT name(#PCDATA)>
<!ATLIST name id ID #IMPLIED)
<!ELEMENT address EMPTY>
這里給出一個數(shù)據(jù)庫查詢的實(shí)例。假設(shè)用戶執(zhí)行的語句如下所示:
SQLConnect(dsn,dsn_len,uid,uid-len,pwd,pwd_len)解析:
假設(shè)定義的數(shù)據(jù)庫連接語句原型為SQLConnect(DSN,UID,Len(UID),PWD,Len(PWD)),其中DSN 是數(shù)據(jù)源名,UID為用戶的ID,PWD 為用戶密碼,其余加Len()的表明為字符串的長度。
文檔(Client Agent 向Managenent Agent 發(fā)送的文檔)
<!—ask-if.xml-->
<?xml version=“1.0” encoding=“UTF-8”standalone=“no”?>
<!DOCTYPE performative SYSTEM“performative.dtd”>
<!ELEMENT content sqlconnect>
<!ELEMENT sqlconnect(dsn,dsn-len,uid,uid_len,pwd,pwd-len)>
<!ElEMENT dsn (#PCDATA)>
<!ATTLIST dsn_len (#PCDATA)>
<!ATTLIST dsn_len inquire(yes|no)no>
<!ElEMENT uid (#PCDATA)>
<!ATTLIST uid inquire(yes|no)yes>
<!ElEMENT uid_len (#PCDATA)>
<!ATTLIST uid_len inquire(yes|no)no>
<!ELEMENT pwd (#PCDATA)>
<!ATTLIST pwd inquire(yes|no)yes>
<!ELEMENT pwd (#PCDATA)>
<!ATTLIST pwd inquire(yes|no)yes>
<performative>
<name> ask-if </name>
<sender>
<Agent -id>
<name>Client Agent</name>
</Agent -id>
<content>
<dsn>dsn</dsn>
<dsn_len>dns_len</dsn_len>
<uid>uid</uid>
<uid_len>uid_len</uid_len>
<pwd>pwd</pwd>
<pwd_len>pwd_len</pwd_len>
</content>
</sender>
<receiver>
<Agent-id>
<name> Menagement Agent</name>
</Agent-id>
</receiver>
<in-reply-to/>
<reply-with>No.1</reply-with>
<content/>
<language>XML</language>
<ontology>Travel</ontology>
</performative>
5 結(jié)束語
將Mutil-Agent 用于高校校園一卡通系統(tǒng),較好地解決了異構(gòu)數(shù)據(jù)庫系統(tǒng)之間的通信與協(xié)作問題,使系統(tǒng)更具有智能性和自學(xué)習(xí)功能。XML 具有的平臺獨(dú)立性、很好的擴(kuò)展性和自描述性,能夠?qū)崿F(xiàn)異構(gòu)數(shù)據(jù)庫數(shù)據(jù)的透明互訪和共享。所以通過XML 封裝KQML 消息,能夠有效地解決異構(gòu)數(shù)據(jù)庫系統(tǒng)的通信和協(xié)作問題。