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