摘 要:依據(jù)移動計算環(huán)境自身所呈現(xiàn)出來的特性,能夠明顯的發(fā)展以往傳統(tǒng)的客戶服務(wù)模型在當前環(huán)境中已經(jīng)無法充分地滿足各方面需求,人們在進行活動的過程中對于體系結(jié)構(gòu)更加靈活提出了需求。近幾年來,在對Agent進行的相關(guān)研究已經(jīng)引起了人們的廣泛關(guān)注,并且開始將Agent直接引入到現(xiàn)代化的移動計算領(lǐng)域之中,尤其是在移動數(shù)據(jù)庫之中。目前,針對Agent開展的研究多種多樣,有的側(cè)重于人工智能,有的則偏重應(yīng)用系統(tǒng)實現(xiàn)。本文主要分析Agent技術(shù)在移動數(shù)據(jù)庫系統(tǒng)中的應(yīng)用。
關(guān)鍵詞:Agent技術(shù);移動數(shù)據(jù)庫;系統(tǒng)
中圖分類號:TP393.08
Agent技術(shù)早在90年便已經(jīng)成為了一個極為熱門的研究課題,甚至被稱之為軟件領(lǐng)域的突破,之所以有著如此重要性,就是由于該技術(shù)在當前網(wǎng)絡(luò)分布計算這一體系之中,應(yīng)用范圍不斷地擴大。首先,Agent技術(shù)能夠切實有效地解決分布式應(yīng)用問題之中所呈現(xiàn)出來的問題;其次,Agent技術(shù)能夠極為精確地對部分計算提供更加科學合理的概念模型。下文主要針對Agent技術(shù)在移動數(shù)據(jù)庫系統(tǒng)中的應(yīng)用研究進行了全面詳細的分析。
1 Agent技術(shù)的特點
Agent實際上是一個主動的程序?qū)嶓w,它由某個源計算機產(chǎn)生后,就脫離了該計算機的控制而自行執(zhí)行下去。它可以在網(wǎng)絡(luò)中漫游,逐個訪問各個相關(guān)的服務(wù)器,也可以和其他Agent交互協(xié)作,直到完成用戶賦予它的任務(wù)。因此,Agent模型是對傳統(tǒng)的客戶機和服務(wù)器模型的擴充,它在客戶機和服務(wù)器之間加入了一個新的層次——Agent,如圖1所示。
圖1 Agent計算模型
Agent技術(shù)的特點:(1)可以大幅減少無線通信網(wǎng)絡(luò)上的通信流量。(2)Agent可以駐留在高速固定網(wǎng)絡(luò)中,代表移動用戶檢索各個數(shù)據(jù)庫。(3)Agent支持移動客戶機的斷接操作。(4)允許移動計算機透明地訪問各種復(fù)雜的信息服務(wù)器,而不必預(yù)先了解該服務(wù)器的能力和訪問方式。(5)Agent能夠自行結(jié)合客戶機和服務(wù)器的知識,并在服務(wù)器上進行推理,確定自己的下一步工作。(6)移動用戶可以定制服務(wù)器上的Agent,使之為自己提供個人化的服務(wù)。Agent可以有許多分類方法。例如,按照Agent的工作類型劃分,有客戶Agent、應(yīng)用Agent、服務(wù)器Agent等;按照移動方式劃分,有靜止Agent、可遷移Agent等;按照完成一個任務(wù)所涉及到的Agent數(shù)劃分,有單Agent、多Agent等。
2 基于Agent的移動數(shù)據(jù)庫模型
與分布系統(tǒng)一樣,移動計算系統(tǒng)中存在許多異構(gòu)的自治數(shù)據(jù)庫系統(tǒng)。與傳統(tǒng)的多數(shù)據(jù)庫系統(tǒng)不同,其結(jié)構(gòu)如圖2(a)所示,基于Agent的移動數(shù)據(jù)庫系統(tǒng)沒有一個全局的事務(wù)管理器。例如圖2(b),為了能夠切實有效的提升其中的互動操作性能,就必須要為每一個數(shù)據(jù)庫系統(tǒng)建立起一組預(yù)定的操作模式,這一操作模式也被稱之為原語的數(shù)據(jù)庫手法。在實際應(yīng)用程序的過程中,主要是利用提交應(yīng)用到Agent的方式來達到數(shù)據(jù)庫訪問的目的。同時,如果說僅僅只有一個應(yīng)用Agent,那么在實際操作的過程中,也就只能夠調(diào)用數(shù)據(jù)庫之中事先預(yù)定義完成的原語數(shù)據(jù),從而來對各個數(shù)據(jù)庫系統(tǒng)進行訪問。
圖2 數(shù)據(jù)庫系統(tǒng)模型
(a) 傳統(tǒng)的多數(shù)據(jù)庫系統(tǒng); (b) 基于Agent的系統(tǒng)。
Agent與分布式進程一樣,是一個任務(wù)執(zhí)行的抽象模型。系統(tǒng)中多個Agent并發(fā)執(zhí)行,訪問一個或多個數(shù)據(jù)庫系統(tǒng)。每個Agent由支持內(nèi)部并行性的高級分布式編程語言編寫而成。
我們舉一個基于Agent的使用實例,Mary是一名保險代理人,在去會見一名有望簽約的客戶的途中,通過她的筆記本電腦創(chuàng)建了一個應(yīng)用Agent,用來檢查該用戶的信用記錄。即使在Mary關(guān)閉筆記本以節(jié)約電能的情況下,這個應(yīng)用Agent仍然繼續(xù)運行。在完成任務(wù)的過程中,這個應(yīng)用Agent可能要和其他應(yīng)用Agent通信、協(xié)作,例如保險公司的應(yīng)用Agent。
—般來說,Agent是一個主動對象(D,M,SD,P),其中D是指一組本地數(shù)據(jù),M是一組方法,SD是這些方法之間的一組結(jié)構(gòu)依賴關(guān)系,P則是一組中斷點和重定位(Reloca-tion Point)。Agent的一個方法可以是:(1)一個原語數(shù)據(jù)庫方法或是一個原始應(yīng)用方法,分別對應(yīng)于訪問數(shù)據(jù)庫或者其他Agent的數(shù)據(jù)。(2)訪問Agent本地數(shù)據(jù)(私有數(shù)據(jù))的本地方法。(3)本地方法與原語方法的組合。
基于Agent的模型具有以下特點:(1)因為一個Agent可能訪問多個異構(gòu)的、自治的和分布的數(shù)據(jù)庫系統(tǒng),所以基于Agent的系統(tǒng)與多數(shù)據(jù)庫系統(tǒng)有一定的相似性。例如:1)從本質(zhì)上來說Agent系統(tǒng)本身是呈現(xiàn)出來是分布狀,在其自身的系統(tǒng)之中,并沒有相應(yīng)的全局事務(wù)管理器以及Agent數(shù)據(jù)庫中心,這主要是由于Agent系統(tǒng)自身存在的過程中,其計算機環(huán)境是完全發(fā)展、開放的;2)在實際進行創(chuàng)建的過程中,如果說一個Agent無法達到分解成為本地方法以及原語方法實際執(zhí)行過程中的序列,那么其自身在實際執(zhí)行的過程中,也就僅僅只能夠依據(jù)上一個動作所呈現(xiàn)出來的結(jié)果,有針對性的來動態(tài)確認;3)數(shù)據(jù)庫Agent自身所提供的各項接口事實上本身就是一個組的原語方式,其自身在實際運行的過程中,不單單是簡單的讀寫操作行為。(2)Agent必須與其他的Agent相互通信和協(xié)作,因此Agent不能像一個隔離事務(wù)那樣執(zhí)行。此外,由于Agent運行行為的復(fù)雜性,基于Agent的系統(tǒng)必須具有先進的流程控制能力。(3)每個Agent都是在自己的本地數(shù)據(jù)上下文環(huán)境中運行的。
3 Agent的控制流程
每個應(yīng)用Agent包含一組方法和若干控制流程規(guī)范。Agent的控制流程規(guī)范包括以下3個部分。
3.1 結(jié)構(gòu)依賴關(guān)系
結(jié)構(gòu)依賴關(guān)系描述在Agent運行期間內(nèi),各個方法的可控執(zhí)行狀態(tài)之間必須滿足交序依賴關(guān)系。以原語方法為例,它的可控狀態(tài)包括發(fā)出(開始狀態(tài))和結(jié)束(提交或夭折狀態(tài))。在實際執(zhí)行期間,一個原語方法的執(zhí)行狀態(tài)要受到相應(yīng)數(shù)據(jù)庫Agent或其他協(xié)同Agent的控制。某些數(shù)據(jù)庫Agent還可能支持預(yù)備提交狀態(tài),它表示一個原語方法已經(jīng)執(zhí)行完畢,即將把它的結(jié)果永久化,這可以使Agent更好地控制原語方法的執(zhí)行。
Agent可以描述3種結(jié)構(gòu)依賴關(guān)系:(1)觸發(fā)器。當某個方法M1進入狀態(tài)s1時,方法M2必須進入狀態(tài)s2。(2)順序依賴。只有在方法M1進入狀態(tài)s1之后,方法M2才能進入狀態(tài)s2;或者是,一旦方法M1進入了狀態(tài)s1,方法線就不能進入狀態(tài)s2。(3)實時依賴。當某個實時事件發(fā)生時,方法M1必須開始執(zhí)行或是執(zhí)行完畢。
3.2 Agent的協(xié)同
這主要是由于和以往傳統(tǒng)ACID事務(wù)的處理形式有著極大的差異性,其中在多個Agent并發(fā)執(zhí)行的過程中并沒有完全進行隔離,而這種協(xié)同處理的關(guān)系從運行的理論上來說,其本身可以直接使用高級事務(wù)模型之中所包含的大量概念來進行闡述,例如在Agent技術(shù)中的中斷點。Agent A技術(shù)自身的中斷點可以直接使用一個三元組化來進行表示,也就是(Bs,Be{(Ai,Mj)}),在這其中{(Ai,Mj)}本身所包含的是(Agent方法)正確的全部集合,而在其中的Bs,Be則是A之中所存在的方法控制狀態(tài),同時,還必須要保證{(Ai,Mj)}之中的所有成員都能夠在Bs以及Be兩種不同可控狀態(tài)之下來進行運轉(zhuǎn)。
3.3 重定位
Agent本身在運行的過程中也極有可能是直接在網(wǎng)絡(luò)之中來進行移動,所以,利用Agent的模型,便能夠達到對Agent進行重定位的目的。在移動數(shù)據(jù)庫體系之中,實際上移動客戶機的位置也會在這一過程中持續(xù)不斷地發(fā)生變化,這直接使得移動客戶機本身和提供服務(wù)的服務(wù)器之間所存在的網(wǎng)絡(luò)距離在持續(xù)不斷的發(fā)生著變化;在這期間,Agent能夠直接依靠移動客戶機本身位置所發(fā)生的變化,來對網(wǎng)絡(luò)之中所存在的距離進行定位,最大限度地降低通信過程中的開銷,減少聯(lián)通所需要消耗的時間;此外,Agent技術(shù)之中所具有的重定位功能還能夠極為有效地確保服務(wù)器之間所存在的負載平衡性。
4 Agent的并發(fā)控制與恢復(fù)問題
在Agent的并發(fā)管理機制之中,首先一個要求就是要對其中的兩種正確性進行維護:也就是數(shù)據(jù)正確性、結(jié)構(gòu)正確性。結(jié)構(gòu)正確性本身主要是依據(jù)Agent之中所存在的控制規(guī)范、流程來針對Agent技術(shù)之中所存在的結(jié)構(gòu)性進行屬性維護。有許多因素可能影響并發(fā)控制的難度,例如:(1)自治數(shù)據(jù)庫系統(tǒng)可能不完全接受數(shù)據(jù)庫Agent的控制。(2)多個數(shù)據(jù)庫之間可能存在相互約束關(guān)系。而且,不同Agent的本地數(shù)據(jù)之間、Agent本地數(shù)據(jù)與數(shù)據(jù)庫之間也都可能存在相互約束關(guān)系。(3)Agent之間只能保持部分的隔離性(協(xié)同的需要)。為了能夠切實有效地對數(shù)據(jù)庫自身的規(guī)模進行限制,那么便可以在進行新數(shù)據(jù)項增添的過程中,將以往不需要的舊版本直接刪除掉。假如,某一個系統(tǒng)之中某個以往的舊版本處理方式已經(jīng)夭折,并且在該舊版本的后方還存在一個已經(jīng)提交完成的新版本,這也就可以在這一過程中直接將舊版本刪除掉。
5 結(jié)束語
綜上所述,Agent技術(shù)能夠在移動數(shù)據(jù)庫系統(tǒng)之中起到極其重要的作用,但是在實際應(yīng)用的過程中,務(wù)必要針對其中所涉及到的幾個關(guān)鍵環(huán)節(jié)加以重視,最大限度地避免應(yīng)用方式錯誤,影響到實際應(yīng)用的效果。在現(xiàn)代的計算領(lǐng)域中不斷加強新型技術(shù)的研發(fā)有助于推動各個行業(yè)的快速發(fā)展,先進的技術(shù)是現(xiàn)代社會發(fā)展的動力,我們在計算機領(lǐng)域取得的成果可以延伸到社會發(fā)展的多個方面,為我國的社會整體發(fā)展提供了強有力的保障,Agent技術(shù)的誕生和推廣就是很好的例證。
參考文獻:
[1]魏爽.基于移動Agent的Web分布式聚類挖掘算法的研究[D].華中師范大學,2011.
[2]徐小龍,王汝傳.基于智能Agent技術(shù)構(gòu)建移動數(shù)據(jù)庫系統(tǒng)模型的研究與實現(xiàn)[J].計算機工程與應(yīng)用,2003(36).
[3]何春風.基于Agent的移動數(shù)據(jù)庫關(guān)鍵技術(shù)研究[D].電子科技大學,2011.
[4]李榮鑫.嵌入式移動數(shù)據(jù)庫與Agent技術(shù)[J].單片機與嵌入式系統(tǒng)應(yīng)用,2004(12).
[5]陳松.移動Agent綜述[J].計算機科學,2002(07).
作者簡介:陳霄(1980-),女,廣東紫金人,博士生,講師。
作者單位:廣東青年職業(yè)學院,廣州 510507