• 沒有找到結果。

行動代理者的定義

第三章 網際網路智慧型代理系統

3.2.3 行動代理者的定義

要瞭解什麼是 Mobile Agent,首先得知道 Agent 的定義。Agent 和一般程式有何不同?這問題在學者間已持續辯論了好幾年,基本 上我們可以把它下個較寬鬆的定義為:「由人類指定工作內容與作業 限制,代替人類進行所指定工作的軟體程式」。Agent 依照其環境的 本質可分為三種[Clements & Papaioannou&Edwards,1997]:

1. 目的導向型(Goal Oriented):Agents 的行為並非只是單純地對環 境的刺激產生反應而已,尚有其本身的任務與目的。

2. 溝通型(Communicative):可和其他 Agents 互相溝通的 Agents。

3. 移 動 型 ( Mobile ): 可 以 從 一 台 主 機 移 動 到 另 一 台 主 機 上 的 Agents。

而 Mobile Agent 其實便是一種具有移動能力的 Agent 物件或程 式。

更詳細一點來說,Mobile Agent 可以如下解釋:

Mobile Agent = Mobile Code + Agent

Agent:

代理者程式,通常能接受使用者的命令,根據命令去執行大量 的工作; 或者其本身具有 Autonomous(自發性),透過程式的人工 智慧(AI)或決策樹在執行時期(Runtime)自行判斷應執行的程序。

Mobile Code:

行動碼是一種能讓執行中的程式由其所處的執行空間中遷移至 另一執行空間中執行(行程遷移技術),一般實際上多運用於產生 能在執行時期遊走於網際網路中的程式。

JAVA Mobile Agent 技術並非 JAVA 的標準套件,而是由一些團 體自行開發的,但是基本上這是一個以遠端方法呼叫 ( Remote Method Invocation,RMI)為基礎的系統,當 RMI 的技術,搭配上物 件串列化的機制,Mobile Agent 的系統就逐漸被展現出來。

24

Mobile Agent 當然不可能任意的遊走於何一台主機中,所有要支 援 Mobile Agent 的主機上皆必需先建構出一個 Mobile Agent Runtime Environment(通常是利用執行一個 JAVA Application 來產生),當基 礎的環境建置好了之後,系統中運行的 Agent 即能執各類動作,而 各 Runtime Environment 間利用物件序列化(Serialization)來達成程式 碼實體(Code Instance)的遷移,利用類似 RMI 的機制來形成遠端 參考(Remote Reference)以利實現遠端控制。

在元件化的設計理念之下,DCOM/COBRA/JAVA RMI 等架 構,皆實現了讓一程式的各元件能夠分散在數個系統中運行,讓程 式的各個 元件能在其最適當的主機中執行,而 Mobile Agent System 進一步的擴展此一概念,讓程式中的各元件不再被限制在一固定的 主機之中,換句話說 DCOM/COBRA/RMI 的系統架構是一種靜態 架構,而 Mobile Agent System 則是一種能在執行時期作適時決策或 轉變的動態架構,在此一特性下,系統將更容易實現負載平衡及容 錯等機制。

以下是對 Mobile Agent 更嚴謹的定義:

Mobile Agent 並不侷限於只能在開始執行的系統上動作,最主要 的特性就是它可以經由網路將其本身轉移到另一個不同的系統上去 繼續動作。這種移動的能力使得 Mobile Agent 能夠與目的地系統上 的物件相互溝通,然後在相同的主機上使用這些物件,或是作為網 路上的遠端物件[Lange & Oshima,1998]。

由上述定義可知,Mobile Agent 的運用前提是網路環境,它可以 在四通八達的網路空間中漫游,移動到存放有 Mobile Agent 所需要 之資料的主機上,就近進行處理的工作。工作告一段落之後,Mobile

Agent 帶著其程式碼與已處理過的資料移動到下一台主機上,如此持 續到所有工作完成,回到其原來出發的機器為止。

圖 3-1 大略描述了 Mobile Agent 的行為模式:

圖 3-1 Mobile Agent 的行為模式

相關文件