有一種程式,只在一部電腦上執行,且不會將執行結果傳給其他電腦,PC上大部分的程式都是屬於這種;有一種程式,只在一部電腦上執行,且會將執行結果傳給其他電腦,伺服器上的許多程式,都是屬於這一種;有一種程式,會從伺服器電腦上跑到客戶端電腦上執行,而執行完也就結束了,ActiveX、Java Applet都是屬於這一種。最後,還有一種個體戶程式,網路走透透,到處打工,甚至還會彼此幫忙,以完成一件艱鉅的工作,這種程式就是Mobile Agent(行動代理人程式)。

Mobile Agent是你在網路上的分身
Mobile Agent是一種電腦程式,是某個人在網路世界的代理。它知道主人是誰,知道主人的喜好,藉由和主人溝通的機會來學習。主人可以把工作交給Agent, 為了有效率地完成工作,Agent會親自前往提供資料或服務的地方,必要時還會造訪更多地點。當結果備妥之後,Agent會透過各種Email、Web Site、呼叫器、手機…等管道讓主人知道結果。

Mobile Agent會親自前往資料所在地,進行處理,處理完後,再帶著資料回來。由於Mobile Agent的程式都很小,所以Mobile Agent的移動,並不會耗費太多網路頻寬,而且反而可以減少許多網路資源的耗費,因為不需要在網路上傳送大量未經處裡的資料。

我是從前年開始,才比較深入地接觸Mobile Agent的,有機會和幾個國內這方面的幾個高手和教授開會,學了一些東西,也開始對Mobile Agent感興趣。去年年底Morgan Kaufmann出版的《Mobile Agents》一書,補足了我許多這方面的不足。這是第一本針對通用Mobile Agent主題的專書。其他的書不是只用部分的篇幅討論Mobile Agent,就是只討論特定的Mobile Agent平臺(例如Aglet)。對Mobile Agent感興趣的讀者,可能也會想閱讀Multi-Agent、Intelligent Agent為主題的書。

《Mobile Agents》共有十章。第一章到第二章介紹Mobile Agent的基本概念,並對其他相關或類似的技術做了比較。第三章到第五章分別描述Mobile Agent的三個重要的議題:遷移、溝通、安全。第六章到第八章介紹作者自己所實作的一個Mobility Model,名為Kalong。第九與第十兩章介紹作者自己所實作的一個Mobile Agent平臺,名為Tracy。

兼顧理論與實務
本書理論和實務的篇幅各佔一半,各約200頁。第一章到第五章是理論的部分,第六章到第十章是實務的部分。只想瞭解Mobile Agent技術,不打算實作Mobile Agent的讀者,可以只閱讀前五章。想實作Mobile Agent技術的讀者,應該一併閱讀第六章到第十章。

在第三章,作者根據EBNF(Extended Backus-Naur Form)定義了MoL(Mobility Language),用來描述Mobile Agent的平臺,並從三種不同的角度(使用者、Agent、網路)來描述Mobile Agent平臺。第四章討論Agent之間的溝通機制。要和某Agent溝通必須先找到該Agent,而Agent又會在網路上到處移動,所以衍生出一些有趣的問題。第五章討論安全,這是相當重要的主題。Agent程式可以到處移動,就必需確保底下的平臺做好足夠的安全防衛,免得惡意的Agent進行破壞。

本書第六章到第八章是Kalong Mobility Model,其中,第六章是規格,第七章是實作,第八章是評估。第九章介紹Tracy的安裝與執行,第十章介紹如何在Tracy撰寫自己的Mobile Agent。

Mobile Agent必須跨平臺
本書兩位作者是澳洲和德國兩所大學的研究員與教授,他們的研究主題都是Mobile Agent,發表過相當多這方面的論文,也帶領團隊實際開發出Kalong Mobility Model以及Tracy。由於Mobile Agent程式必須在不同的電腦上執行,所以目前世界上大部分的Mobile Agent幾乎都是用Java實作的,本書的Kalong以及Tracy也不例外,從第七章開始到處都看得到Java的程式碼。

隨著.NET也開始實現跨平臺,國內已經有廠商和學術單位在.NET上面實踐完成Mobile Agent平臺。可能在明年就會正式公開釋出。

《作者簡介》蔡學鏞
清華大學資訊工程碩士,曾任華碩集團軟體工程師、元智大學資訊系講師,現為寰震科技技術經理、美商歐萊禮出版社顧問、臺灣微軟特約的專欄作家。
蔡學鏞曾擔任數個研討會講師(包括 JavaTwo、TechEd、資策會)。參與設計清華大學 Java VOD 系統,該系統並獲得第一屆 Java Cup 比賽校園組冠軍。參與設計 Java To .NET Migration,成為美國微軟十大成功案例之一。
蔡先生著譯有數本 Java 書籍,並在臺灣和中國的雜誌開闢技術專欄,專長的語言為 C#、REBOL、Java、C/C++。他的電子郵件信箱 xy.cai@msa.hinet.net

熱門新聞

Advertisement