馮 鋒,徐 琪
FENG Feng1,2, XU Qi1
(1. 東華大學 旭日管理學院,上海 200051;2. 寧夏大學 數學計算機學院,銀川 750021)
隨著社會信息化進程的加快和各種無線接入技術的迅速發展,移動網絡得到突飛猛進的發展。同時,利用移動網絡開展電子商務業務正在萌芽。電子商務的本質在于降低信息成本,其中包括銷售成本、采購成本等方面,它對傳統經濟的沖擊,在于改變和縮短了傳統的產業鏈,重塑了其交易規則和程序。電子商務只有建立在信息的獲取和發布都能夠及時、準確和全面的基礎上,才能得到廣泛地應用。但是目前的移動網絡帶寬小,延遲大,網絡丟包現象嚴重[1]。如何在惡劣的網絡環境中實時、準確地開展業務,是一個亟待解決的關鍵問題。
本文在闡述協作信息系統的基礎上,給出了基于移動Agent的協作信息中間件的設計與實現,然后利用它開發掌上電腦等移動終端上的高效、輕型移動商務系統μMCommerce,并實現系統仿真和測試。
協作信息技術的研究可以追溯到分布式數據庫技術、計算機協同工作等技術的研究。協作信息技術的核心目標是研究如何利用現有通信/計算機技術所提供的巨大潛力,將地理上分布的、在各個獨自領域內工作的各個信息系統有機地結合起來,進而提供更為全面、準確和及時的信息服務。協作信息系統既要代表著下一代信息管理系統的發展方向,同時也要為人們目前面臨的信息爆炸所帶來的負面影響提供根本的解決途徑。
對協作計算的大量深入分析的結果表明,盡管面對的領域不同,解決的問題迥異,但是卻存在許多共同的設計要素,這些要素是設計任何一個支持協作系統都必須解決的問題,歸納如下:
1)互操作性。異質環境下的計算實體進行集成的問題;
2)協作性。參加協作的各方如何共享信息和交換信息;各協作方并行工作時如何保證系統的性能;
3)安全性。如何保證信息交換的安全性;
4)變化管理。能夠實時地進行變化檢測;
5)信息服務。數據挖掘、信息代理、知識共享。
進一步對這些問題進行歸納,使我們認識到這些問題的本質是“如何安全有效地在各異質協作方之間共享信息”的問題。這一結論促使我們對協作信息共享技術進行了深入研究。研究表明,將這一協同計算中必不可少的設計要素提取出來,用中間件的方式加以實現,既有理論指導意義,又有方便實踐的價值。我們將這種中間件稱為面向協作信息系統的中間件,采用中間件的方式實現,具有一系列的優越性:
1)可以大大簡化上層協作支持系統的設計難度,使設計者得以將精力集中于所要進行的協作工作本身;
2)便于實現系統的擴展和結構的動態變化,使將來可以動態地增加、擴展服務,而不必重新修改整個系統;
3)系統具有更大的靈活性,異質系統之間的協作變得較為容易;
4)易于開發,即允許開發者在企業范圍內定位、訪問、操縱和移動數據,免除花大力氣去關注甚至研究企業信息系統和網絡本身,縮短了二次開發周期,同時可以很方便地開發新的應用。
在開放式移動網絡環境中進行分布式信息系統設計,有關各方如何共享彼此的信息是一個非常重要的問題。在設計這樣的信息系統時,由于要考慮不同信息源的集成、安全性、網絡帶寬、信息的組織(數據庫的設計)的要求,同時系統還必須有效地適應各信息源的動態變化,使得設計工作極具挑戰性。面對這樣的應用要求,傳統的Client/Server計算模式難以勝任,而移動Agent中間件才是解決這一挑戰性難題的有效途徑,也代表著目前技術的發展趨勢[2]。
Agent的研究起源于人工智能領域。Agent是指模擬人類行為和關系、具有一定智能并能夠自主運行和提供相應服務的程序。與現在流行的軟件實體(如對象、構件)相比較,Agent的粒度更大,智能化程度更高。隨著網絡技術的發展,可以讓Agent在網絡中移動并執行,完成某些功能,這就是移動Agent的思想。移動Agent技術通過將服務請求Agent動態地移到服務器端執行,使得此Agent較少依賴網絡傳輸這一中間環節而直接面對要訪問的服務器資源,從而避免了大量數據的網絡傳送,降低了系統對網絡帶寬的依賴。移動Agent不需要統一的調度,由用戶創建的Agent可以異步地在不同節點上運行,待任務完成后再將結果傳送給用戶。為了完成某項任務,用戶可以創建多個Agent,同時在一個或若干個節點上運行,形成并行求解的能力。此外它還具有自治性和智能路由等特性[3]。
移動Agent技術突破了傳統的分布計算模式的制約,對處于復雜網絡環境下的大規模的協作信息系統建設具有重要的意義,所以我們在中間件設計中引入了移動Agent的思想和相關技術。各Agent代表著參加交互的各方,同時通過Agent之間的協商,開放移動網絡系統環境中各異質實體間差異被屏蔽,且具有語意上的一致性。通過各Agent之間的協作,可以將分布的信息資源融合為一個有機的整體,從而為信息集成提供有效解決辦法,而且移動Agent具有高性能,比較適合移動網絡環境。
2.1.1 Agent實體
一個Agent實體實際上是一個可移動Java對象。在到達一個網絡主機后,它自主地啟動線程執行任務,并且能夠對接收到的消息作出快速反應。
2.1.2 Agent代理(Proxy)
Agent代理是Agent實體的代表,它相當于Agent實體的外殼,避免了外界直接訪問Agent實體。同時,它可以為Agent實體提供位置透明性。
2.1.3 移動Agent上下文環境(Context)
移動Agent上下文環境就是Agent實體的工作場所,它是一個靜止的對象,提供對于運行于其中的Agent的管理,同時提供安全性保護。一臺主機可以同時運行多個服務器程序,每一個服務器程序又可以容納多個Context。每個Context都有自己的名字,可以通過其所在主機的地址和它的名字確定其所在位置。
2.1.4 Agent消息(Message)
Agent消息是用于在Agent之間進行交互的一種對象。它可以按同步或異步兩種方式傳遞。通過消息,Agent之間可以相互合作和交換信息。
2.1.5 Agent標記符(Identifier)
每一個Agent都有一個標記符與之綁定,它負責在整個Agent實體的生命周期中全局唯一地標志該Agent。
以上元素,在移動Agent中間件系統中都以Java類或接口的形式存在。
以下是移動Agent中間件系統的基本操作,即用于對Agent的生命周期進行管理的最小功能集。
2.2.1 Agent創建(Creation)
在移動Agent上下文環境中創建Agent實體,這個新建的Agent實體將被分配到一個Agent標記符,在完成初始化工作后便開始運行。
2.2.2 派遣(Dispatching)
負責把Agent實體從當前移動Agent上下文環境中移出,送入到目的上下文環境中的過程。Agent實體將在新的上下文環境中重新運行。
2.2.3 銷毀(Disposal)
銷毀將會終止一個Agent實體運行,并從當前移動Agent上下文環境中移除。
該中間件系統的核心為實時推模塊,當然為了保證系統完整性,還有狀態模塊、用戶管理、系統維護和系統幫助等模塊。
如圖1所示,服務方初始化Agent執行環境后,創建服務Agent并且偵聽客戶請求,將接收到的客戶請求內容規范化為Agent所能理解的Agent通信語言,然后把貨物信息數據實時推送給客戶;如果任務完成,服務方就地銷毀Agent,釋放其資源。

圖1 中間件實時推算法流程
在系統的具體實現中,為了滿足平臺無關性、安全性、面向對象特性和多線程特性,可采用純Java技術:采用Java的JDBC數據庫技術,來完成對不同數據源的透明、高效操作;采用基于Java的移動Agent技術來實現有關Agent的移動性要求;Agent之間的通信,采用與KQML(Knowledge Query and Manipulation Language)語言兼容的語意表達形式[4]。
輕型移動商務系統μMCommerce建立在上述中間件基礎上,它由供應子系統、購貨需求子系統、移動Agent中間件子系統(也稱移動代理中間件子系統)和系統配置子系統有機構成,它們的關系如圖2所示。

圖2 輕型移動商務系統μMCommerce系統結構
移動用戶利用該子系統登記貨物信息。該子系統在PocketPC/手機上提供客戶端界面,讓用戶輸入用戶名以及用戶密碼,并傳送到服務端。服務端的安全Servlet對用戶名和密碼進行驗證。如果通過驗證,客戶端就進入貨物供應界面;反之則返回驗證失敗信息,用戶仍停留在用戶驗證界面上。當客戶端進入貨物供應界面以后,就可以通過后臺的貨物供應Servlet進行貨物供應的操作,操作結束的數據又通過互操作中間件模塊把數據傳遞到數據庫服務器,由數據庫服務器進行后臺數據處理,由此完成貨物供應子系統的整個數據流程。
實現貨物供應子系統時,采用了SUN J2ME技術來設計界面和進行網絡傳輸,為了保證高安全性,采用了輕型高效安全產品——Bouncycastle的Lcrypto。
該子系統及相應的移動代理中間件子系統,負責接收和運行服務器派遣來的移動代理程序,實時地收集供應的貨物信息。貨物需求子系統的數據流程與貨物供應子系統的數據流程對稱,當發現有符合要求的新的供應貨物后,服務端將通過移動代理立即將貨物信息返回給客戶端。
實現貨物需求子系統時,采用了聯想5100(Strong ARM芯片,WinCE操作系統),PJava;為了實現數據實時保存,采用了PJava里Java.Io.File函數。
該子系統負責移動代理系統環境和移動代理程序的管理,它是整個系統的神經網絡,是移動環境下的通信邏輯載體。通過它,服務器利用實時推算法推送數據給PocketPC顯示;同時它還具有一定的消息機制,即使PocketPC關機,數據也不會丟失,一旦PocketPC重新開機,會立即收到消息系統保存的數據。
移動代理中間件子系統含有三種Agent環境:移動Agent環境Grasshopper、移動Agent環境SMI和智能Agent環境JADE。同時含有移動Agent互操作中間件[5]、移動Agent和智能Agent互操作中間件。以讓SMI產生的移動Agent可以移動到Grasshopper環境,然后再以FIPA消息發送給JADE,由JADE完成數據庫的寫入。
系統配置子系統負責對系統有關參數進行配置,系統管理員在PocketPC/手機上的系統設置界面里進行參數設置,然后通過智能Agent模塊傳輸到服務器,并由服務器將配制參數寫入數據庫。
實現系統配置子系統時,采用了小型智能Agent平臺——LEAP,配置請求信息以FIPA規范的原語格式在PocketPC/手機與服務器之間傳遞。

表1 貨物需求子系統增量測試結果
與現有系統的對接涉及到不同操作系統平臺及數據庫系統的互連,測試表明該系統可以方便、有效地從現有系統中提取所需信息,且不會增加原系統的負荷。各子系統安裝、配置及其運行簡便易行。既可在事中安裝,又可事后安裝。
為對系統進行全面測試,采用了以下三種測試方法。
主要對系統所提供的各種功能分別進行測試,結果基本達到了設計目標,系統安全性也通過了測試。
為了測試移動中間件性能,測試了貨物需求子系統在20條記錄、40條記錄和80條記錄下返回所有貨物信息平均所需時間,如表1所示。
測試網絡含電信撥號環境、二代半移動網絡GPRS和第二代移動網絡GSM。具體分別為:普通的有線撥號(利用掌上電腦上的Modem卡連電話線,最大理論帶寬為56kbps),GPRS移動分組接入(利用掌上電腦上的GRPS模塊,無線連接移動夢網,最大理論帶寬為13.4kbps)和GSM接入(利用掌上電腦紅外端口配合外置紅外手機,以無線方式撥入移動網,最大理論帶寬為9.6kbps)。由表1得知,隨著帶寬的減小,移動中間件逐漸顯示出其高性能。

圖3 系統性能比較圖
如圖3所示,實驗結果表明,基于移動Agent中間件的商務系統有著比普通網絡計算結構高效的性能,而且隨著網絡帶寬的惡化,系統基本性能無明顯變化,而普通網絡計算結構則有大幅下降。同時也看到,隨著記錄數的動態增加,系統并發機制發揮了良好的性能,具有良好的可動態擴展能力;而普通網絡計算結構隨著記錄數的增加,其計算時間會成指數級增長。
主要目的是測試在網絡環境中,多個用戶同時對系統不同服務進行訪問時,系統能否有效提供服務。實驗結果表明即使在低帶寬情況下,系統仍穩定可靠。
移動Agent不同于基于過程的RPC(如OSF/DCE中的),也不同于面向對象的對象引用(如OMG/CORBA,OLE/DCOM和Java/RMI中的),其獨特的對象傳遞思想和卓越的特性給開放系統帶來了巨大的革新。目前國內技術界大多從人工智能的角度來研究Agent,所以很難實用化;本文從分布處理的角度對其作深入研究,為移動Agent的實用化作出了一些有益的探索。一個基于移動Agent的高效、輕型移動實時商務系統的實踐,對移動Agent實用化有著重要的理論和現實意義。
[1]馮鋒,徐琪.基于神經網絡模式的遺傳算法在CRM的數據挖掘優化研究[J].黑龍江大學自然科學學報,2010,27(6):796-799.
[2]Danny B Larlge,Mitsum Oshima.Seven Good Reasons for Mobile Agents.Communication Of the ACM,2006,42(3):88-89.
[3]Feng Feng,Hou ShengYu,Xu Qi.The Research of the Zig-Bee and RFID Fusion Technology in the Coal Mine Safety[C],2010 IEEE 3th International Conference on Information Management,Innovation Managemet and Industrial Engineering.2010 IEEE,32-36.
[4]Y Labrou,T Fmin.Y.Peng.Agent Communication Language:The Current Landscape.IEEE Intelligent Systems,1999,(3,4):45-52.
[5]張云勇,劉錦德,郭維娜.基于ACL的移動Agent/智能Agent互操作插件[J].電子科技大學學報,2007,30(4):407-413.