卞 克,周祖榮
青島科技大學(xué),山東 青島 266000
代理的研究起源于人工智能領(lǐng)域。代理是指模擬人類行為和關(guān)系、具有一定智能并能夠自主運(yùn)行和提供相應(yīng)服務(wù)的程序。實(shí)際上,代理就是在主機(jī)上能獨(dú)立完成一定檢測(cè)功能的軟件單元。在分布式系統(tǒng)的范疇中,代理是指分布式系統(tǒng)中的節(jié)點(diǎn)實(shí)體,一般用來進(jìn)行信息收集和節(jié)點(diǎn)控制等工作。
對(duì)于移動(dòng)Agent的定義,不同的文獻(xiàn)或應(yīng)用系統(tǒng)各不相同。MA可以定義如下:移動(dòng)Agent是具有移動(dòng)特性的智能Agent,它可以自主地在網(wǎng)絡(luò)上從一臺(tái)主機(jī)移動(dòng)到另一臺(tái)主機(jī),并代表用戶完成指定的任務(wù),如檢索、過濾和收集信息,甚至可以代表用戶進(jìn)行商業(yè)活動(dòng)。
不同的移動(dòng)Agent系統(tǒng)的體系結(jié)構(gòu)各不相同,但幾乎所有的移動(dòng)Agent系統(tǒng)都包括如下兩部分:Agent和MA環(huán)境。
MA環(huán)境(MAE)為Agent提供安全、正確的運(yùn)行環(huán)境。可以實(shí)現(xiàn)MA的移動(dòng)、執(zhí)行狀態(tài)的建立、啟動(dòng)。并可以實(shí)施MA的約束機(jī)制、容錯(cuò)策略、安全控制、通信機(jī)制。以及提供基本服務(wù)模塊,如事件服務(wù)(event service)、黃頁服務(wù)(yellow page service)、事物處理服務(wù)(transaction service)和域名服務(wù)(DNS)等。一臺(tái)主機(jī)上可以有一個(gè)或多個(gè)MAE。在通常情況下,一個(gè)MAE只位于一臺(tái)主機(jī)上,但當(dāng)主機(jī)之間是以高速、持續(xù)、穩(wěn)定可靠的網(wǎng)絡(luò)連接時(shí),一個(gè)MAE可以跨越多臺(tái)主機(jī)而不影響整個(gè)系統(tǒng)的運(yùn)行效率。
Agent可以分為移動(dòng)Agent和服務(wù)Agent。移動(dòng)Agent可以從一個(gè)MAE移動(dòng)到另一個(gè)MAE,在MAE中執(zhí)行,并通過通信機(jī)制與其他MA通信或訪問MAE提供的服務(wù)。服務(wù)Agent不具有移動(dòng)的能力,其主要功能是向本地的Agent或來訪的Agent提供服務(wù)。移動(dòng)Agent 的實(shí)現(xiàn)包括移動(dòng),通信,程序設(shè)計(jì)語言,容錯(cuò),管理,協(xié)作和安全性7個(gè)部分。
移動(dòng)Agent包括3種狀態(tài):程序狀態(tài)(program state)、數(shù)據(jù)狀態(tài)(data state)和執(zhí)行狀態(tài)(execution stale)。程序狀態(tài)指所屬Agent的實(shí)現(xiàn)代碼;數(shù)據(jù)狀態(tài)包含全局變量和Agent的屬性;執(zhí)行狀態(tài)包含局部變量值、函數(shù)參數(shù)值和線程狀態(tài)等。
Agent移動(dòng)到目標(biāo)機(jī)器后,所要完成的任務(wù)就是通信,進(jìn)行數(shù)據(jù)交換。移動(dòng)Agent系統(tǒng)可采用的通信手段很多,這里只對(duì)組通信進(jìn)行說明。組通信也稱為匿名通信。通信的雙方并不能確認(rèn)對(duì)方的身份。例如,在基于移動(dòng)Agent技術(shù)的分布式信息查詢應(yīng)用中,一組Agent被派遣到Internet的各個(gè)信息源上執(zhí)行搜索操作,在查詢的過程中,為了提高搜索的并行度,某些Agent可能又派生多個(gè)子Agent組,當(dāng)這些子Agent和其父Agent所在組中的Agent進(jìn)行通信時(shí),就是匿名通信。
Agent通信語言(ACL,Agent Communication Language)是實(shí)現(xiàn)MA與MA執(zhí)行環(huán)境、以及MA與MA之間通信的高級(jí)方式,是移動(dòng)代理通信的基礎(chǔ)。Agent的程序設(shè)計(jì)語言有4個(gè)基本要求,即支持移動(dòng)、支持異構(gòu)性、執(zhí)行效率和安全性。從這幾方面考慮,幾乎所有的移動(dòng)Agent系統(tǒng)都采用解釋型語言。
為保證移動(dòng)Agent在異質(zhì)環(huán)境中的正常運(yùn)行,還必須考慮到服務(wù)器異常、網(wǎng)絡(luò)故障、目標(biāo)主機(jī)關(guān)機(jī)、源主機(jī)長時(shí)間無響應(yīng)等異常情況的出現(xiàn)。MA在節(jié)點(diǎn)間移動(dòng)和執(zhí)行的過程是典型的串行過程,這種串行性使得整個(gè)過程鏈的容錯(cuò)性能等于其中最差的節(jié)點(diǎn)的容錯(cuò)性能,是典型的“災(zāi)難共享”,所以要在MA移動(dòng)和執(zhí)行過程的各個(gè)環(huán)節(jié)上進(jìn)行故障的預(yù)測(cè)、防范和故障后的恢復(fù)。
MA在發(fā)揮自主移動(dòng),自主通信等高度自主特性的同時(shí),還應(yīng)受到一定程度的管理。這種管理主要來自源主機(jī)。首先,源主機(jī)要對(duì)MA的行為負(fù)責(zé),使其對(duì)整個(gè)系統(tǒng)不會(huì)產(chǎn)生危害;其次,源主機(jī)還要隨時(shí)了解MA的當(dāng)前工作情況,以避免MA的迷航或過度復(fù)制,也要隨時(shí)回答MA提出的問題或協(xié)調(diào)MA的工作。目標(biāo)主機(jī)協(xié)調(diào)其與本地Agent的交互等。
雖然移動(dòng)代理具有很強(qiáng)的自主性。但移動(dòng)Agent在執(zhí)行任務(wù)的過程中經(jīng)常需要和其它實(shí)體進(jìn)行協(xié)作,最常見的協(xié)作對(duì)象是MAE中的服務(wù)Agent及其它移動(dòng)Agent。按照空間耦合和時(shí)態(tài)耦合的標(biāo)準(zhǔn)把當(dāng)前移動(dòng)Agent的協(xié)作模型分為4類:直接協(xié)作模型、基于黑板的協(xié)作模型、面向會(huì)見的協(xié)作模型和類Linda模型。
MA的移動(dòng)性會(huì)帶來很多不確定因素,要想使MA被廣泛的接受,成功地應(yīng)用于商業(yè)(如電子商務(wù)),就必須解決好MA的安全性問題。通常把移動(dòng)Agent系統(tǒng)的安全問題分為4個(gè)部分:1)保護(hù)主機(jī)免受惡意Agent的攻擊; 2)保護(hù)Agent免受惡意主機(jī)的攻擊;3)保護(hù)Agent免受其他惡意Agent的攻擊;4)保護(hù)低層傳輸網(wǎng)絡(luò)的安全。
移動(dòng)代理是90年代以來的一項(xiàng)新技術(shù),它的先進(jìn)性,在分布計(jì)算領(lǐng)域美好的應(yīng)用前景得到了許多專家的認(rèn)可。移動(dòng)代理的安全機(jī)制是移動(dòng)代理技術(shù)中非常重要的一個(gè)環(huán)節(jié),而恰恰是安全在移動(dòng)代理技術(shù)里的實(shí)現(xiàn)最為復(fù)雜,也最難實(shí)現(xiàn)。本論文只介紹了MA的大體工作流程及其理論上的安全傳輸方式。其它部分如移動(dòng),通信,應(yīng)用實(shí)例等方面都沒有涉及。而在安全所做的工作也僅僅是在有限的理論指導(dǎo)下進(jìn)行的,缺乏已經(jīng)成型的范例作為參照。