《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > Aglets中的設計模式分析研究

Aglets中的設計模式分析研究

2009-08-20
作者:胡 濤 王汝傳

  摘? 要:移動代理系統Aglets的應用體系結構、類結構及應用設計進行了討論。

  關鍵詞: 移動代理? Aglets系統? 設計模式

?

  隨著Internet用戶的急劇增加,人們對網絡技術和網絡應用給予了更多的關注。傳統的分布式計算模式因其靈活性差、系統擴充和升級代價較高而無法適應新的分布式計算要求。新技術的發展和應用需要新的具有革命性進步的計算模式,而基于移動代理的計算模式便是這樣一種很有前途的計算模式。移動代理可被看作是傳統通信機制的一種擴展。由于移動代理模式的特殊優勢是能明確控制代碼在何處運行,因此特別適用于諸如萬維網這樣的動態異構網絡環境。移動代理擁有很多優點,如減少網絡流量、增加客戶機和服務器的異步性、便于負載均衡和容錯、支持移動客戶和服務定制等。它在通信網絡管理、智能網領域、Internet上的智能信息檢索以及分布計算領域有著廣泛的應用前景。

  Aglet是由IBM日本公司用純JAVA開發的移動Agent技術,它提供了Aglet Workbench平臺,供人們開發和實施移動Agent系統。Agent是一個較為成功的移動代理系統,它主要提供了一個簡單而全面的移動代理編程模型,為代理間提供了動態和有效的通信機制,并提供了一套詳細而簡易的安全機制。簡單地說,Aglet就是具有Agent行為的Applet對象。

  設計模式面向對象設計的復用。研究設計模式的目的就是為了使人們更加簡單、方便地復用成功的設計和體系結構。具體地講,一個設計模式包括模式的名稱、問題范圍、解決方案和效果,它主要應用于基于OO的設計。目前已知的設計模式包括3類23個模式。

  Aglets是一個面向對象的系統,它擁有一個比較明晰的類體系結構和一套完整的對象應用解決方案。研究Aglets的設計模式有助于人們更加充分地認識移動代理系統從理論走向應用所需要解決的問題,有利于對Aglets系統的充分應用,也有利于認識到Aglets的不足之處,為發展出更好的移動代理應用體系結構打下基礎。

1? Aglets系統簡介

1.1 Aglets的應用體系結構

  Aglets的體系結構如圖1所示。Aglet的執行分為若干階段。首先當一個正在執行的Aglet要到達遠端時,它會對Aglet Runtime層發出請求;接著Aglet Rumtime層把Aglet的狀態信息與代碼轉化為序列化的字節數組。這時如果請求成功,系統會將字節數組傳送至ATCI(Agent Transport and Communication Interface)層處理。此層提供可以使用ATP(Agent Transfer Protocol)的接口,這里ATP為一個簡單的應用層協議,如圖2所示。系統將字節數組附上相關的系統信息(如系統名稱及Aglet的ID等)后以位流的方式通過網絡傳送至遠端機器。遠端機器利用ATCI層提供的ATP接口接收傳來的字節數組及系統信息;然后Aglet Runtime層對字節數組進行反序列化操作,得到Aglet的狀態信息和代碼;最后Aglet在遠端繼續加載執行。

?

  Aglets系統通過提供一個上下文環境(Context)來管理Aglet的基本行為。Aglets的生命周期行為包括創建(Create)、復制(Clone)、分派(Dispatch)、召回(Retract)、暫停(Deactive)、喚醒(Active)及清除(Dispose)等。圖3為Aglets的生命周期行為圖。

            

?

  Aglet之間的通信可以通過消息實現,如圖4所示。基于安全的考慮,Aglet不能直接訪問,必須通過一級Proxy對象實現。并且這樣做還可以使Aglet位置透明。也就是說,如果Aglet想與遠端Aglet通信,則只需要在本地環境中生成遠端Aglet的代理(Proxy)對象,并不需要知道對方的位置和處理網絡通信等。

1.2 Aglets的主要類結構

  在Aglets的編程模型中,涉及到的主要類有:com.ibm.aglet.Aglet、com.ibm.aglet.AgletProxy、com.ibm.aglet.AgletContext、com.ibm.aglet.Message、com.ibm.aglet.FutureReply。下面分別予以介紹。

  (1)com.ibm.aglet.Aglet。這是一個抽象類,用于控制代理的生命周期行為。它定義了代理的基本行為方式,例如發送、創建等。所有在Aglets中生存的代理都必須從這個抽象類中繼承。此外,Aglet類也用于訪問與Aglet相關的一些屬性。例如,可以通過Aglet.getAgletInfor()調用得到并訪問一個AgletInfor對象,并訪問與Aglet相關的一些靜態屬性和動態屬性。

  (2)Com.ibm.aglet.AgletProxy。在Aglet系統里,這個類是處理Aglet類的一般方法。出于安全方面的考慮,許多Aglet類的方法或者屬性是不能直接訪問的。如果要與這個Aglet通信,則必須通過一個AgletProxy對象來實現。AgletProxy相當于Aglet的一個外殼(參看圖4)。當調用產生的時候,AgletProxy對象會通過SecurityManager決定是否允許這次調用。這樣還能使得Aglet的位置透明。

  AgletProxy對象可以通過下列幾種方式獲取:

  ①調用AgletContext.getAgletProxies()獲取多個AgletProxy對象;

  ②通過AgletID作為參數調用取得相關的AgletProxy對象;

??? ③將AgletProxy對象作為參數通過消息傳送;

??? ④將AgletProxy作為參數將對象傳送至ContexProperty。

  (3)com.ibm.aglet.AgletContext。這個對象用于將Aglet所處的環境映射到一個訪問接口中,供Aglet訪問。每個Aglet對象都可以通過getAgletContext()方法訪問到該對象,并通過它調用一些系統功能,可以將它看做一個系統環境接口。

  (4)com.ibm.aglet.Message。所有的Aglet通信都通過構造Message對象來實現。Message對象可以傳送字符串和對象消息。Aglet之間可以通過Proxy對象發送消息,或者通過下面要介紹的FutureReply對象發送異步消息。消息接收方通過Aglet.handleMessage(Message msg)來處理消息。

  (5)Com.ibm.aglet.FutureReply。這是一個接口,是用于傳送異步消息并不阻塞當前執行線程的一種消息傳送方式。它通過調用Proxy對象的sendAsyncMessage(Message msg)返回。

1.3 Aglets應用設計框架

  Aglets提供了一個Aglet Workbench的可視化環境,用于建立和使用基于Aglets平臺的網絡應用系統。目前該軟件主要提供下列幾個方面的工具:

  (1)Aglets框架:提供Aglets平臺的基本功能框架。

  (2)ATP:Aglet傳輸協議。

  (3)Tazza:可視化應用所需的個性化移動Agent。

  (4)JDBC:訪問DB2數據庫。

  (5)JoDax:訪問單位的數據。

  (6)Tahiti:可視化Aglet管理界面,用于監視和控制Aglet的執行。

  (7)Fiji:通過Fiji Applet使得用戶可以在Web上監視Aglet Context,以便實現產生、分派、召回Aglet的功能。

2?Aglets設計行為方式分析

  首先討論在Aglet系統里中的行為方式(Behaviour Pattern)。

  在Aglet系統中主要有3類行為方式:遷移方式、任務實現方式和交互方式。

  (1)遷移方式

  遷移是移動代理移動性體現的方式。在Aglets中它主要處理移動代理移動時產生的各種問題,如路由和通信質量。Aglets中有3種方式:

  ①Itinerary:負責到達目的地的路由,它維護著所有目的地的列表,定義路由策略,并能處理諸如目的地不存在等異常情況。

  ②Forwarding:提供發送所有的或者特定的代理到遠端機器的機制。

  ③Ticket:負責管理服務質量和權限等問題。

  (2)任務實現方式

  任務實現主要是把任務分解給不同的Agent去執行。Aglets中有2種方式:

  ①Master-Slave:一種基本的任務實現方式。允許主代理把任務委派給從代理,從代理移動到指定的目的地,從而完成任務。

  ②Plan:用工作流的方式進行策劃,讓多個任務順序或并行地在多個代理上執行。

  (3)交互方式

  Aglets中有5種提供Agent之間的交流通信的方式。

  ①Meeting:提供一種方式讓二個或者多個Agent在指定的機器上運行和交互。從Agent的編程模型來看,Agent被派到會議地點的計算機與相關Agent進行交互。

  ②Locker:存儲遷移暫時不需要的數據,以節省帶寬。

  ③Messenger:用一個信使Agent在需要交互的Agent之間進行通信。

  ④Facilitator:通過公共通信設施進行詢問通信。

  ⑤Organized Group:提供有效的機制,組合不同的Agent到一個通信網絡中。這種通信機制使得一個任務可以劃分給多個移動Agent實施。

  Aglets中的應用主要在上述的行為方式下完成。上述的行為方式也決定了Aglets的類體系中的設計模式。Aglets的每一個行為方式所代表的類都是由一個或者多個模式設計而成的。例如:在AgletContext類中就體現了Singleton模式。

3?移動代理系統的設計模式

  幾乎所有面向對象的系統結構中,都會用到已知的模式或是已知模式的組合。下面介紹Aglets應用設計中幾種主要的模式。

  (1)Aglets對象結構中的模式

  Aglets中類的設定都能體現出一定的設計模式。下面是幾個明顯的模式應用的實例。

  ①Proxy模式:出于安全等因素的考慮,在Aglets中不能直接訪問Aglet對象,必須通過AgletProxy訪問,同時還使得Aglet的位置透明。這種模式被稱為Proxy的構造模式。

  ②Mediator模式:在Aglets中,各個Aglet之間的通信通過Message對象來實現。對于Message的實現和處理被封裝在Aglet的實現中。這種模式使通信顯得松散,實際上是一種Mediator模式的應用實例。

  ③Singleton模式:Aglets中的AgletContext對象是一個全局的對象,封裝了系統功能。這樣的對象只能有一個全局實例,因此在Aglets中通過系統內部的一次實例化完成。這是一個Singleton模式的應用。

????④Bridge模式:FutureReply接口用來處理異步傳送的消息。它應用了一個Bridge的模式,這個模式使得FutureReply的接口和實現無關。

  (2)Aglets的行為方式中的模式

???? Aglets的行為方式都是多個模式的組合。下面分析Aglets中幾個具有代表意義的行為方式和結構方式中使用的模式。

  ①遷移方式:這里可以將遷移方式理解為Aglet對象中對Aglet平臺的一種遍歷。因此在這個設計中,Aglets實際上應用了Visitor模式。

  ②任務實現方式:通過Aglet實現任務,也就是Aglet功能的體現。Aglet的主-從任務方式體現在類結構中。這里的結構模式是一種Bridge模式,這種結構方式使得從代理可以不受主代理的限制,獨立地實現和替換。Plan的行為模式是一種Command模式,它構造一個任務列表。

  ③交互方式:主要是Message方式,應用了Mediator模式。這種模式使得對象之間形成松耦合關系。其他一些交互方式或多或少都是在Message基礎上實現的。

  (3)應用模式改進設計

  脫離應用而單純地描述模式會陷入一種誤區。實際上是否應用設計模式是根據設計對象的要求來定的,并且在設計的過程中逐漸加入模式的應用。在應用設計模式時,必須盡量根據現有的模式進行應用,而不是去發現新的模式。事實上發現新的模式在現有情況下是非常困難的。

  Aglets的設計總體來說是十分成功的。由于種種原因,本文并沒有對Aglets的設計模式作完整的分析。通過分析Aglets的主要設計模式可以得出這樣的結論:盡管是移動代理的系統,也仍然是在一個OO環境中的設計應用。因此,需要利用基于OO的設計方法來進行有關基于移動代理平臺的應用系統。從這一點來看,通過應用設計模式來改進應用框架體系設計顯得非常重要。

4? 結束語

  設計一個復雜系統時,設計模式非常重要。它可使設計者避免在同一類問題處理時耗費大量的精力去進行重復的思考。移動代理系統的特點決定了它是一個負責的多對象系統。在這樣的系統中,如何設計類和對象的結構、行為、創建等是非常重要的。在設計移動代理應用體現框架的時候,合理地分析和應用設計模式對于系統的整體性能和設計成本等都具有重要意義。

Aglets是一個較為成功的移動代理系統。分析Aglets的設計模式,理解移動代理的設計和應用都具有重要意義。在未來的工作中,清楚地知道選擇策略和設計的關系尤為重要。因此,需要繼續研究移動代理系統中的設計模式。

?

參考文獻

1? 張云勇.移動Agent及其應用.北京:清華大學出版社,2002

2? Gamma E,Helm R,Johnson R et al.設計模式:可復用面向對象軟件的基礎.北京:機械工業出版社,2000

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲国产婷婷| 亚洲午夜久久久| 亚洲人成网站777色婷婷| 国产精品久久久久三级| 欧美大片在线观看| 欧美一区午夜精品| 亚洲精品1区| 午夜精品视频网站| 亚洲网友自拍| 亚洲美女区一区| 亚洲国产另类久久久精品极度| 国产亚洲精品综合一区91| 欧美色精品天天在线观看视频 | 国产亚洲一本大道中文在线| 欧美视频在线免费看| 欧美国产日韩亚洲一区| 免费不卡中文字幕视频| 久久久久综合网| 欧美制服第一页| 亚洲欧美资源在线| 亚洲一区在线视频| 亚洲国产精品一区制服丝袜| 久久五月激情| 午夜精品久久久久久久| 亚洲一本视频| 亚洲一区二区三区四区五区黄| 亚洲九九爱视频| 亚洲日本欧美日韩高观看| 亚洲国产小视频在线观看| 亚洲一区二区视频在线观看| 一区二区三区欧美在线| 一区二区三区高清不卡| 在线视频精品一| 一区二区三区精品国产| 99re6这里只有精品视频在线观看| 激情视频一区| 伊人男人综合视频网| 永久91嫩草亚洲精品人人| 狠狠色狠狠色综合| 一区二区三区在线免费播放| 国产欧美三级| 国产综合精品| 在线观看不卡av| 亚洲日本视频| 一本色道久久综合亚洲精品小说| 99精品欧美一区| 一区二区三区精品国产| 亚洲免费一在线| 欧美影院久久久| 亚洲大片av| 亚洲精品中文在线| 亚洲影院一区| 久久er精品视频| 玖玖国产精品视频| 欧美国产一区视频在线观看| 欧美日本在线看| 欧美三级日本三级少妇99| 欧美日韩国产首页在线观看| 国产精品v一区二区三区 | 欧美精品国产一区| 欧美视频中文字幕在线| 国产精品资源| 在线观看欧美| 日韩亚洲成人av在线| 亚洲一区www| 亚洲电影在线| 中文久久乱码一区二区| 欧美亚洲一区三区| 久久阴道视频| 欧美日韩一区二区在线观看视频| 国产精品亚洲人在线观看| 国产主播一区| 亚洲另类视频| 亚洲欧美精品| 最新成人av在线| 亚洲综合另类| 久久综合久久综合这里只有精品| 欧美精品一区在线观看| 欧美三级在线播放| 国产综合色一区二区三区| 亚洲欧洲一区二区三区| 亚洲欧美一区在线| 亚洲人成亚洲人成在线观看| 亚洲一区二区三区高清 | 亚洲国产美国国产综合一区二区| 99精品视频免费在线观看| 亚洲一区图片| 99国产麻豆精品| 久久国产精品网站| 欧美理论电影在线观看| 国产视频欧美视频| 亚洲免费久久| 久久riav二区三区| 亚洲欧美影院| 欧美精品99| 好看的日韩视频| 一区二区毛片| 亚洲另类自拍| 亚洲国产日本| 性欧美xxxx大乳国产app| 欧美高清在线一区二区| 国产喷白浆一区二区三区| 91久久嫩草影院一区二区| 欧美一区二区精美| 亚洲视屏一区| 久久免费黄色| 欧美区视频在线观看| 精品成人国产| 午夜精品福利在线观看| 亚洲视屏在线播放| 欧美69wwwcom| 国产一区在线视频| 亚洲专区欧美专区| 亚洲午夜激情| 欧美激情精品久久久久久蜜臀| 韩曰欧美视频免费观看| 亚洲综合视频网| 日韩一级片网址| 欧美在线亚洲一区| 欧美视频免费在线观看| 亚洲欧洲一区二区天堂久久| 亚洲丰满在线| 久久精品国产一区二区三区免费看| 欧美私人网站| 亚洲精品美女在线观看播放| 亚洲欧洲综合另类| 老司机一区二区| 国产欧美精品日韩精品| 日韩亚洲欧美成人一区| 亚洲精品欧美极品| 麻豆国产精品一区二区三区| 国产欧美日韩在线| 亚洲男人天堂2024| 亚洲免费人成在线视频观看| 欧美日韩在线不卡| 亚洲人成网站在线播| 久久精品一区二区三区四区 | 一区二区三区福利| 日韩亚洲一区二区| 欧美精品色网| 亚洲巨乳在线| 99视频在线观看一区三区| 欧美精品一区二区三区一线天视频| 亚洲电影免费观看高清| 亚洲乱码国产乱码精品精可以看| 欧美大片免费久久精品三p| 亚洲久久一区| 欧美永久精品| 亚洲国产精品视频| 亚洲一区二区在线| 国产自产2019最新不卡| 亚洲精品色图| 国产精品久久久久秋霞鲁丝| 欧美一区高清| 欧美国产国产综合| 亚洲网站啪啪| 蜜臀av性久久久久蜜臀aⅴ| 日韩一级免费| 久久久久国产一区二区三区| 亚洲激情在线观看| 欧美一级大片在线免费观看| 亚洲成人在线观看视频| 亚洲午夜精品久久久久久app| 国产日韩亚洲| 亚洲每日更新| 国产欧美一区二区三区国产幕精品| 亚洲国产成人精品视频| 欧美日韩国产一区二区三区| 午夜欧美精品| 欧美日韩国产片| 先锋影音网一区二区| 欧美黄色日本| 欧美一级二区| 欧美日韩国产欧| 久久国产精品亚洲va麻豆| 欧美三级日本三级少妇99| 亚洲成色精品| 国产精品久久久久久亚洲毛片| 亚洲国产欧美一区二区三区久久| 国产精品高清免费在线观看| 亚洲国产美女| 国产欧美一区二区精品秋霞影院| 日韩一级在线| 国内一区二区三区| 亚洲欧美日韩国产成人精品影院| 在线播放日韩| 久久动漫亚洲| 夜夜夜久久久| 欧美不卡一区| 欧美亚洲在线视频| 国产精品草草| 99精品视频免费| 伊人婷婷欧美激情| 久久av红桃一区二区小说| 一区二区av在线| 欧美黄色影院| 91久久综合亚洲鲁鲁五月天| 国内自拍一区| 欧美一区综合| 亚洲一级在线观看|