行政院國家科學委員會專題研究計畫 成果報告
以 XML 網路服務技術架構行動代理人平台之研究
計畫類別: 個別型計畫
計畫編號: NSC93-2213-E-011-047-
執行期間: 93 年 08 月 01 日至 94 年 07 月 31 日 執行單位: 國立臺灣科技大學電子工程系
計畫主持人: 楊鍵樵
報告類型: 精簡報告
處理方式: 本計畫可公開查詢
中 華 民 國 94 年 10 月 12 日
行政院國家科學委員會專題研究計畫成果報告
以 XML 網路服務技術架構行動代理人平台之研究 計畫編號:93-2213-E-011-047
執行期限:93 年 8 月 1 日至 94 年 7 月 31 日
主持人:楊鍵樵 國立台灣科技大學電子工程系 教授 Email:[email protected]
中文摘要
在本計劃中,我們以透過建構行動代 理人平台(Mobile Agent Platform, MAP)的 原型(prototype)的方式,研究 MAP 如何在 今日的複雜的 Internet 中,提供具有一致性 的網路通訊環境,使得行動代理人(Mobile Agent, MA)能夠不受阻礙地於網路漫遊。
為了提高 MA 在 Internet 上的漫遊能力,我 們 整 合 了 多 種 分 散 式 物 件 傳 送 機 制 (Socket、CORBA、SOAP),設計並實作一 個 具 有 自 我 調 適 能 力 (self-adaptability) 的 MAP,再以 UDDI 與 WSDL 來幫助 MAP 了解網路中的異質傳輸協定,使得 MA 於 漫遊網路時不需處理各站之間不同的傳送 機制。此外,由於我們納入了 SOAP 作為 MAP 的基本傳送機制,使得 MA 移動可不 受網路防火牆 (firewall) 的限制,大幅提高 MA 的漫遊能力,解決了一般的 MA 系統 無法跨越防火牆的問題。
關鍵詞:行動代理人、網路傳輸、XML 技 術。
Abstract
In this project, we construct a prototype for mobile agent platform (MAP) to study how the MAP can provide a consistent network communication environment under today’s complex Internet so that the mobile agent (MA) can roam over the network without interferences. To improve the capability of roaming Internet, we integrate multiple distributed object transportation mechanisms, (Socket, CORBA, and SOAP) in the design and implementation of a MAP with self-adaptability. Additionally, we use UDDI and WSDL to help MAP to figure out the heterogeneous communication protocols so that the roaming MA can pay no attention
to the different communication mechanisms between MAPs. Because we adopt SOAP in the MAP’s basic transportation mechanism, the movement for MA is not limited by the network firewall and thus greatly improves the mobility of MA and therefore solves the problems that the common MA systems cannot bypass the firewall.
Keywords: Mobile agent, network transportation, XML technology.
1. 簡介
所 謂 的 行 動 代 理 人 (Mobile Agent, MA),屬於代理人技術的一種。一般的代 理人,泛指在接受使用者的要求後,會依 照固定流程去處理使用者的要求,而 MA 與一般的代理人技術相較,更具備了自主 性(autonomous)與移動性(mobility),
因此,MA 在處理要求時,可隨時考量當 時實際執行的環境狀況,來自行決定其移 動方式與行為模式。
然而 MA 必須在特殊的工作環境中工 作,那就是 MAP,也就是說 MAP 提供並 決定了 MA 的移動能力。就目前 Internet 複雜的環境考量,提供單一傳輸機制的 MAP 並無法有效滿足 MA 的行動需求。另 外,防火牆所形成的阻礙也使得 MA 無法 有效地在網際網路中漫遊。因此,MAP 如 何提供一套彈性的傳輸機制,使得 MA 能 夠不受網際網路各種複雜的物件傳輸機制 限制,並進而使用各種不同的網路傳輸協 定進行漫遊,使其得以跨越技術上的藩 籬,通過防火牆的阻隔,是本計畫的核心 課題。我們主要研究的方向在於:
一、 跨越多樣化的分散式物件計算模型 分散式系統發展至今,各種分散式物件 計算模型及相關的傳輸技術不斷地被 提出,並各自得到了一定的支持。如 COM (Component Object Model) 及 CORBA (Common Object Request Broker Architecture) 、 微 軟 的 DCOM (Distributed COM)、Java 的 RMI (Remote Method Invocation) 及 IIOP (Internet Inter-ORB Protocol)等。這意味著 MAP 必須能夠使用多種的分散式物件傳輸 技術,才能使 MA 在 Internet 活動時能 夠將因通訊技術不同所造成的障礙降 至最低,且更能有效地擴大行動的自由 度。
二、 MAP 自我調適的傳輸機制
為了 MA 能夠順利的在 Internet 中漫 遊,MAP 除了要能夠與 MA 溝通了解 其所欲前往的目的地,它也必須要能夠 了 解 並 使 用 下 一 站 所 接 受 的 傳 輸 機 制,以順利進行 MA 的傳輸。例如:透 過 UDDI 進行網路傳輸模式的查詢及使 用方式、網路服務的尋找及提供、經由 XML Parser 針對 XML 網站資訊進行的 擷取及交換等。因此,一套通用的溝通 語言機制對於 MA 系統是十分重要的。
三、 克服 Internet 通訊上的阻礙
為了因應 Internet 上層出不窮的網路攻 擊事件,各網路層級使用單位無不絞盡 腦汁,以期許網路安全的問題能夠被有 效處理。其中網路防火牆的架設可以算 是最常見的方式。防火牆的架設雖然加 強了網路安全的防護措施,卻也限制了 MA 的活動範圍,如何讓 MA 能夠通過 層層網路安全關卡,有效地到達目的 地,亦是本研究的重點。
2. 結果與討論
在本計畫中我們設計完成了 MA 移動 模式、傳輸機制及自我調適傳輸機制等三 個子系統,分別概述如下:
MA 移動子系統中分別以物件解析、處 理類別碼、物件傳輸機制的管理及重組並 啟動物件等四個模組處理 MA 在網路上的 移動模式。
物件解析模組,主要目的是確認 MA 在移動前,能夠將所有必備的資源有系統 地被分析拆解完成,其中以資源剖析演算 法及剖析物件內部程式碼演算法組成。剖 析資源演算法主要目的在於處理所有與 MA 具有相關連性的資源。剖析物件內部 程式碼演算法則是針對 MA 中的細部資源 以遞迴方式進行分析。將所有經由宣告的 資源,配合剖析相關資源演算法,進行資 料的剖析,並分辨出使用者定義資源與系 統資源。
處理類別碼模組則是針對已載入的資 源,透過 hash table 的方式來記錄,主要可 供其它 MA 提取相關資源,並有效提高存取 速度。儲存內容可分為名稱、儲存空間大 小及資源碼三個部份,主要的使用時機包 括物件解析、物件傳送與接收等。
物件傳輸機制的設計主要著眼點以網 路透通性(Network Transparency)的概念為 主,使 MA 的設計者,不需要特別針對所 欲前往的各個 MAP,進行傳輸機制的設 定,所有傳輸機制的選擇與使用,皆透過 MAP 中的傳輸機制模組決定。
物件重組及啟動模組是幫助 MAP 將已 接收的 MA 相關資源,存入 hash table,由 系統的 class loader 讀取類別碼並載入系統
在傳輸機制中,我們完成了 Socket, CORBA 及 SOAP 三種網路物件傳輸機制 分別在 MA 傳送及接收模組的設計及實作,
並以 UML 的循序圖(Sequence Diagram)加 以說明。
在自我調適機制中,我們使用 UDDI 及 WSDL 技術設計並完成平台溝通機制,
其中包含了服務查詢模組及傳輸查詢模 組。MA 在出發前,透過服務查詢模組,
對 UDDI 伺服器進行查詢,將所查到的資
料,回傳給服務查詢模組查詢目的地的傳 輸機制,與相關提供服務的細節,做為 MAP 傳輸 MA 的依據。
最後我們以本計畫研究的 MAP 原型系 統,設計一套 MA 網路應用系統用來驗證 系統本身的傳輸能力,透過實際生活上的 例子-『利用 MA 查詢機票價格』,測試 MA 在多種網路傳輸機制下的活動能力。
我們在此測試環境中的網路主機各自安裝 不同的傳輸機制(Socket, CORBA, SOAP) 並架設防火牆(WinXP 使用內建防火牆、
Win2000 Server 使用 ISS BlackIce 防火 牆)。在走訪過程中,我們規劃以單一 MA 完成多點拜訪。測試結果顯示在異質性傳 輸機制下運行的 MAP 原型系統的確能夠不 受傳輸機制的限制,在網路中漫遊無阻。
3. 結論
本論文的研究重心,主要在於設計並實 作 MAP 於異質性網路傳輸機制的原型,使 我 們 的 MAP 能 夠 分 別 利 用 Socket 、 CORBA、SOAP 的傳輸方式,完成 MA 的 移動,並以 Web Service 來整合多種異質 性傳輸機制,MA 所有的傳輸過程,皆由 MAP 經由 UDDI 及 WSDL 所提供之服務進 行自主控制,使得系統設計者不需要另外 費心處理各種異質性物件傳輸機制,不僅 大幅降低 MA 系統的複雜度,也提高了 MA 在網際網路上的漫遊能力。
在未來研究方向,除了增加其它的傳輸 機制,如 Java RMI 及 Microsoft 的 DCOM 外,還可考慮加強 MAP 的傳輸效能,使其 可依據網路狀況,選擇將 MA 資源一次傳 送完畢或分次分批傳送。
4. 參考文獻
1. Java API for XML Processing (JAXP), http://java.sun.com/xml/jaxp/index.jsp.
2. Object Management Group, "CORBA Services: Common Object Services Specification, July 1997,"
ftp://ftp.omg.org/pub/docs/formal/97-07-
04.pdf.
3. Object Management Group, "The Common Object Request Broker:
Architecture and Specification, 2.2ed”
1998.
4. CORBA,
http://blog.csdn.net/gigix/archive/2002/0 4/09/2310.aspx.
5. CORBA Object Model, http://www.cogs.susx.ac.uk/users/ianw/t each/dist-sys/ds-node95.html.
6. CORBA Architecture, http://www.henningweb.de/Studium/Wif /Wif.htm.
7. Simple Object Access Protocol (SOAP), http://www.ccl.itri.org.tw/products/transf er/internet_soft/techinfo/SOAP.htm.
8. "Simple Object Access Protocol (SOAP) 1.1," W3C Note 08 May 2000, http://www.w3.org/TR/SOAP.
9. Remote Procedure Call (RPC), http://www.cis.nctu.edu.tw/~is83053/Ne tProg/Problem7.html.
10. Lange, B. D.; Oshima, M.,
“Programming and Deploying Java Mobile Agents with Aglets,” Addison- Wesley, 1998.
11. ObjectSpace Ltd, “Web Services and Voyager,”
http://www.recursionsw.com/Voyager/2 004-09-24-Web%20Services%20and%2 0Voyager.pdf.
12. ObjectSpace Ltd, “Ease of Development,”http://www.recursionsw.c om/Voyager/Ease_of_Development.pdf/
13. ObjectSpace Ltd, “High Level Overview,”http://www.recursionsw.com/
Voyager/Voyager_High_Level_Overvie w.pdf.
14. ObjectSpace Inc., “ObjectSpace Voyager Technical Overview,” ObjectSpace, Inc., 1997.
15. ObjectSpace Ltd. "Voyager ORB 3.3
Developer Guide,"
http://www.objectspace.com/products/vo yager/.
16. ObjectSpace Ltd, “Voyager® User Guide,”
http://www.recursionsw.com/Voyager/V oyager_User_Guide.pdf.
17. Java Architecture for XML Binding
(JAXB), http://java.sun.com/xml/jaxb/.
18. SOAP with Attachments API for Java (SAAJ),
http://java.sun.com/xml/saaj/index.jsp.
19. Java API for XML Registries (JAXR), http://java.sun.com/xml/jaxr/index.jsp.