移動代理系統
出自 MBA智库百科(https://wiki.mbalib.com/)
移動代理系統(Mobile Agent System,MAS)
目錄 |
什麼是移動代理系統[1]
移動代理系統是能夠創建、解釋、執行、遷移和結束移動代理的平臺。移動代理系統由一系列移動代理平臺和在這些平臺上活動的移動代理組成。
移動代理系統結構[2]
移動代理系統由移動代理和移動代理服務設施(或稱移動代理伺服器)兩部分組成。移動代理服務設施基於代理傳輸協議實現代理在主機間的轉移,併為其分配執行環境和服務介面,代理在服務設施中執行,通過代理通信語言ACL相互通信並訪問服務設施提供的服務。
如圖1所示,移動代理體繫結構可定義為以下相互關聯的模塊:安全代理、環境交互模塊、任務求解模塊、知識庫、內部狀態集、約束條件和路由策略。體繫結構的最外層為安全代理,它是代理與外界環境通信的中介,執行代理的安全策略,阻止外界環境對代理的非法訪問。代理通過環境交互模塊感知外部環境並作用於外部環境。環境交互模塊實現ACL語義,保證使用相同ACL的代理和服務設施之間的正確通信和協調,而通信內容的語義與ACL無關。代理的任務求解模塊包括代理的運行模塊及代理任務相關的推理方法和規則。知識庫是代理所感知的世界和自身模型,並保存在移動過程中獲取的知識和任務求解結構。內部狀態集是代理執行過程中的當前狀態,它影響代理的任務求解過程,同時代理的任務求解又作用於內部狀態。約束條件是代理創建者為保證代理的行為和性能所作出的約束,如返回時間、站點停留時間及任務完成程度等,一般只有創建者擁有對約束條件的修改許可權。路由策略決定代理的移動路徑,路由策略可能是靜態的服務設施列表(適用於簡單、明確的任務求解過程),或者是基於規則的動態路由滿足複雜和非確定性任務的求解。而服務設施提供移動代理的基本服務(包括創建、傳輸、執行等),移動代理的移動和任務求解能力很大程度上決定於服務設施所提供的服務。一般來講,服務設施應包括以下的基本服務。
·生命周期服務:實現代理的創建、移動、持久化存儲和執行環境分配。
·事件服務:包括代理傳輸協議和代理通信協議,實現代理間的事件傳遞。
·目錄服務:提供定位代理的信息,形成路由選擇。
·安全服務:提供安全的代理執行環境。
·應用服務:是任務相關的服務,在生命周期服務的基礎上提供面向特定任務的服務介面。
移動代理系統的技術難點[3]
實現移動代理系統主要面臨以下技術難點:
(1)剋服計算環境的異構。移動代理很可能要在不同的計算環境中自主地執行,因此必須首先解決移動代理的跨平臺問題。
(2)實現代理的自主移動。代理的自主移動應解決以下三個問題:
·代理的移動規程——包括代理移動的觸發,目的地指定,代理重新執行人口指定等;
·代理的通信模型;
·代理的遷移方式——移動代理在運行的過程中可能會因為本身的需要或意外事件而暫停運行,需遷移到另外的站點上並繼續執行等。
(3)保證移動代理的安全性。安全性涉及三個方面:
·移動代理自身的安全保護;
·移動代理之間通信的安全保護;
·站點的安全保護。
移動代理的安全性是急需解決又較難解決的問題之一,直接影響到移動代理系統的實用性。
(4)提供靈活方便的移動代理環境。移動代理系統用戶的需求千變萬化,對應的移動代理也極其不同,因而用戶必須可以根據自己的需要來開發合適的移動代理。為用戶提供一種方便的移動代理編程語言及相應的開發環境是移動代理系統所要解決的問題。
移動代理系統的實現技術[4]
①編程語言。移動代理是跨平臺操作的,應該具備跨平臺一致性,能夠在異構平臺的節點上進行工作,具備處理複雜邏輯的功能,而且還應該具有通信介面及與其他代理協作的功能,這些功能的實現對移動代理的編程語言提出了多方面的要求,其中最基本的要求有:
·支持移動,具備特定的語法結構來執行轉移語義,如確定移動代理所要攜帶的代碼等。
·高性能,能快速、高效的運行,使服務設施以最小的代價提供語言執行環境。
·支持異構性,平臺獨立,具有跨平臺一致性語義。
·安全性好,使用該語言編寫的移動代理不易受到惡意攻擊。
MAS的編程語言可以是編譯型語言,也可以是解釋型語言。解釋型語言除了具有與機器無關的特點之外,還具有兩個優點:一是延遲綁定,即程式可以攜帶本地不存在的函數和類;二是明確限定了訪問的資源,有利於解決安全問題。考慮到對移動代理編程語言的上述要求,目前幾乎所有的MAS都採用解釋語言,如Java,Telescript等。
②移動。移動是移動代理的關鍵技術,根據移動代理攜帶的內容,移動方式可以分為強移動和弱移動。強移動的內容除了代碼之外,還有代碼的執行環境,所以它要求在代理移動前必須獲取整個代理的狀態(包括數據狀態和執行狀態),當代理到達目的地後,其狀態被系統自動釋放,程式將繼續從斷點處向下執行。強移動中,代理的傳輸過程是透明的,不需要程式員關心,但要俘獲和傳輸代理的全部狀態,實現複雜而且通信量大。弱移動的內容只包括代碼和數據狀態,在特定的入口處重新啟動代理的運行。弱移動實現比較簡單,通信量有限,執行效率高,但是它改變了移動後的執行語義,要求程式員必須熟悉整個傳輸過程。實際上,移動代理的移動是由程式員決定的,並不需要傳送執行點的狀態信息,所以大部分的MAS都採用弱移動方式。所有基於)ava的系統都是弱移動系統。
通常,MAS還提供一種簡單的代理移動方式:代理克隆或派遣,代理本身並不移動,而是在異地複製一個新的代理。
③通信。MAS可以採用的通信手段有很多,如消息傳遞、RPC、匿名通信等。根據通信對象的不同,移動代理的通信方式有:
·MA/MAE通信。這是一種多對一的通信方式,是典型的Client/Server應用,通信的目的在於獲取MAE服務。
·MA/MA通信。這是一種一對一的通信方式,通信雙發的地位是平等的。為了完成特定任務,MAS必須提供同步和非同步通信機制。
·組通信(又稱匿名通信)。前兩種通信方式的前提必須是通信雙方首先互相確認對方的身份,但是在組通信方式下,同一組的代理在通信前不必確認對方身份,只要確定對方所在的組即可。這是一種一對多的通信方式。
④命名和定位。移動代理作為實體,它的名字(ID)必須是全局惟一的。代理的名字是完全透明的,但是考慮到系統中不同代理命名的惟一性,通常在代理的名字中包含有地址信息,如代理的名字可以由兩部分構成:局部地址信息(常為主機節點地址+埠號)、本地名字或ID號。
移動代理在網路中移動時,為了便於代理管理者對其進行跟蹤、控制和管理,需要某種機制對移動代理進行定位。定位的方法主要有三種:
·廣播查詢法,向系統中的所有節點廣播查詢信息,由符合條件的代理髮出響應信息。
·當代理移動時,生成一個靜態的路徑代理,它記錄移動代理將要移動的目的地,定位時只要根據該記錄逐節點查找即可。
·提供名字服務,代理一旦創建,就在名字伺服器中註冊自己的名字和當前位置,代理移動時要在名字伺服器上更新自己的位置信息,定位時只需查詢名字伺服器即可。
⑤容錯。移動代理在網上漫游,以非同步的方式和用戶交互,移動代理可能會因為網路連接中斷或目的主機暫時離線而丟失,駐留在系統中的代理會因系統崩潰而死亡,為此必須提供容錯手段,確保代理完成任務。移動代理在移動和執行任務過程中可能出錯的主要有以下環節。
·傳輸過程。由於網路的不穩定或誤碼率高會導致傳輸錯誤,網路線路的中斷還會導致MA崩潰。
·MA的服務環境。由於不同電腦的容錯性可能不同,MA在移動過程中可能會因主機的惡意破壞、主機長時間停機、系統死機或掉電等導致失效或崩潰。
·MA自身代碼。由於設計或實現上的缺陷也可能會導致MA突然崩潰。
MA在網路節點間移動和執行的過程是典型的串列過程,使整個過程鏈的容錯性能等於其中最弱的節點的容錯性能,這就需要在整個過程中的所有環節採取有效的故障預測、防範和故障後的恢復措施,容錯的基本方法就是採用非易失備份,即冗餘技術。目前在MAS中採用的冗餘措施主要有;
·任務求解的冗餘。創建多個MA求解相同的任務,最後根據所有或部分的求解結果以及任務的性質決定最終結果。
·集中式冗餘。將某個主機作為冗餘伺服器,保存MA原始備份並跟蹤MA的任務求解過程。若MA失敗,則通過重發原始備份來提供故障恢復。
·分散式冗餘。將MA容錯性的責任分佈到網路中的多個固定節點上。
⑥安全性。安全是移動代理系統中最重要的問題,解決不好將限制移動代理在電子商務中的廣泛應用。
Management Accounting Systems...