馮 鋒,徐 琪
FENG Feng1,2, XU Qi1
(1. 東華大學(xué) 旭日管理學(xué)院,上海 200051;2. 寧夏大學(xué) 數(shù)學(xué)計(jì)算機(jī)學(xué)院,銀川 750021)
隨著社會(huì)信息化進(jìn)程的加快和各種無(wú)線接入技術(shù)的迅速發(fā)展,移動(dòng)網(wǎng)絡(luò)得到突飛猛進(jìn)的發(fā)展。同時(shí),利用移動(dòng)網(wǎng)絡(luò)開(kāi)展電子商務(wù)業(yè)務(wù)正在萌芽。電子商務(wù)的本質(zhì)在于降低信息成本,其中包括銷(xiāo)售成本、采購(gòu)成本等方面,它對(duì)傳統(tǒng)經(jīng)濟(jì)的沖擊,在于改變和縮短了傳統(tǒng)的產(chǎn)業(yè)鏈,重塑了其交易規(guī)則和程序。電子商務(wù)只有建立在信息的獲取和發(fā)布都能夠及時(shí)、準(zhǔn)確和全面的基礎(chǔ)上,才能得到廣泛地應(yīng)用。但是目前的移動(dòng)網(wǎng)絡(luò)帶寬小,延遲大,網(wǎng)絡(luò)丟包現(xiàn)象嚴(yán)重[1]。如何在惡劣的網(wǎng)絡(luò)環(huán)境中實(shí)時(shí)、準(zhǔn)確地開(kāi)展業(yè)務(wù),是一個(gè)亟待解決的關(guān)鍵問(wèn)題。
本文在闡述協(xié)作信息系統(tǒng)的基礎(chǔ)上,給出了基于移動(dòng)Agent的協(xié)作信息中間件的設(shè)計(jì)與實(shí)現(xiàn),然后利用它開(kāi)發(fā)掌上電腦等移動(dòng)終端上的高效、輕型移動(dòng)商務(wù)系統(tǒng)μMCommerce,并實(shí)現(xiàn)系統(tǒng)仿真和測(cè)試。
協(xié)作信息技術(shù)的研究可以追溯到分布式數(shù)據(jù)庫(kù)技術(shù)、計(jì)算機(jī)協(xié)同工作等技術(shù)的研究。協(xié)作信息技術(shù)的核心目標(biāo)是研究如何利用現(xiàn)有通信/計(jì)算機(jī)技術(shù)所提供的巨大潛力,將地理上分布的、在各個(gè)獨(dú)自領(lǐng)域內(nèi)工作的各個(gè)信息系統(tǒng)有機(jī)地結(jié)合起來(lái),進(jìn)而提供更為全面、準(zhǔn)確和及時(shí)的信息服務(wù)。協(xié)作信息系統(tǒng)既要代表著下一代信息管理系統(tǒng)的發(fā)展方向,同時(shí)也要為人們目前面臨的信息爆炸所帶來(lái)的負(fù)面影響提供根本的解決途徑。
對(duì)協(xié)作計(jì)算的大量深入分析的結(jié)果表明,盡管面對(duì)的領(lǐng)域不同,解決的問(wèn)題迥異,但是卻存在許多共同的設(shè)計(jì)要素,這些要素是設(shè)計(jì)任何一個(gè)支持協(xié)作系統(tǒng)都必須解決的問(wèn)題,歸納如下:
1)互操作性。異質(zhì)環(huán)境下的計(jì)算實(shí)體進(jìn)行集成的問(wèn)題;
2)協(xié)作性。參加協(xié)作的各方如何共享信息和交換信息;各協(xié)作方并行工作時(shí)如何保證系統(tǒng)的性能;
3)安全性。如何保證信息交換的安全性;
4)變化管理。能夠?qū)崟r(shí)地進(jìn)行變化檢測(cè);
5)信息服務(wù)。數(shù)據(jù)挖掘、信息代理、知識(shí)共享。
進(jìn)一步對(duì)這些問(wèn)題進(jìn)行歸納,使我們認(rèn)識(shí)到這些問(wèn)題的本質(zhì)是“如何安全有效地在各異質(zhì)協(xié)作方之間共享信息”的問(wèn)題。這一結(jié)論促使我們對(duì)協(xié)作信息共享技術(shù)進(jìn)行了深入研究。研究表明,將這一協(xié)同計(jì)算中必不可少的設(shè)計(jì)要素提取出來(lái),用中間件的方式加以實(shí)現(xiàn),既有理論指導(dǎo)意義,又有方便實(shí)踐的價(jià)值。我們將這種中間件稱(chēng)為面向協(xié)作信息系統(tǒng)的中間件,采用中間件的方式實(shí)現(xiàn),具有一系列的優(yōu)越性:
1)可以大大簡(jiǎn)化上層協(xié)作支持系統(tǒng)的設(shè)計(jì)難度,使設(shè)計(jì)者得以將精力集中于所要進(jìn)行的協(xié)作工作本身;
2)便于實(shí)現(xiàn)系統(tǒng)的擴(kuò)展和結(jié)構(gòu)的動(dòng)態(tài)變化,使將來(lái)可以動(dòng)態(tài)地增加、擴(kuò)展服務(wù),而不必重新修改整個(gè)系統(tǒng);
3)系統(tǒng)具有更大的靈活性,異質(zhì)系統(tǒng)之間的協(xié)作變得較為容易;
4)易于開(kāi)發(fā),即允許開(kāi)發(fā)者在企業(yè)范圍內(nèi)定位、訪問(wèn)、操縱和移動(dòng)數(shù)據(jù),免除花大力氣去關(guān)注甚至研究企業(yè)信息系統(tǒng)和網(wǎng)絡(luò)本身,縮短了二次開(kāi)發(fā)周期,同時(shí)可以很方便地開(kāi)發(fā)新的應(yīng)用。
在開(kāi)放式移動(dòng)網(wǎng)絡(luò)環(huán)境中進(jìn)行分布式信息系統(tǒng)設(shè)計(jì),有關(guān)各方如何共享彼此的信息是一個(gè)非常重要的問(wèn)題。在設(shè)計(jì)這樣的信息系統(tǒng)時(shí),由于要考慮不同信息源的集成、安全性、網(wǎng)絡(luò)帶寬、信息的組織(數(shù)據(jù)庫(kù)的設(shè)計(jì))的要求,同時(shí)系統(tǒng)還必須有效地適應(yīng)各信息源的動(dòng)態(tài)變化,使得設(shè)計(jì)工作極具挑戰(zhàn)性。面對(duì)這樣的應(yīng)用要求,傳統(tǒng)的Client/Server計(jì)算模式難以勝任,而移動(dòng)Agent中間件才是解決這一挑戰(zhàn)性難題的有效途徑,也代表著目前技術(shù)的發(fā)展趨勢(shì)[2]。
Agent的研究起源于人工智能領(lǐng)域。Agent是指模擬人類(lèi)行為和關(guān)系、具有一定智能并能夠自主運(yùn)行和提供相應(yīng)服務(wù)的程序。與現(xiàn)在流行的軟件實(shí)體(如對(duì)象、構(gòu)件)相比較,Agent的粒度更大,智能化程度更高。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,可以讓Agent在網(wǎng)絡(luò)中移動(dòng)并執(zhí)行,完成某些功能,這就是移動(dòng)Agent的思想。移動(dòng)Agent技術(shù)通過(guò)將服務(wù)請(qǐng)求Agent動(dòng)態(tài)地移到服務(wù)器端執(zhí)行,使得此Agent較少依賴(lài)網(wǎng)絡(luò)傳輸這一中間環(huán)節(jié)而直接面對(duì)要訪問(wèn)的服務(wù)器資源,從而避免了大量數(shù)據(jù)的網(wǎng)絡(luò)傳送,降低了系統(tǒng)對(duì)網(wǎng)絡(luò)帶寬的依賴(lài)。移動(dòng)Agent不需要統(tǒng)一的調(diào)度,由用戶(hù)創(chuàng)建的Agent可以異步地在不同節(jié)點(diǎn)上運(yùn)行,待任務(wù)完成后再將結(jié)果傳送給用戶(hù)。為了完成某項(xiàng)任務(wù),用戶(hù)可以創(chuàng)建多個(gè)Agent,同時(shí)在一個(gè)或若干個(gè)節(jié)點(diǎn)上運(yùn)行,形成并行求解的能力。此外它還具有自治性和智能路由等特性[3]。
移動(dòng)Agent技術(shù)突破了傳統(tǒng)的分布計(jì)算模式的制約,對(duì)處于復(fù)雜網(wǎng)絡(luò)環(huán)境下的大規(guī)模的協(xié)作信息系統(tǒng)建設(shè)具有重要的意義,所以我們?cè)谥虚g件設(shè)計(jì)中引入了移動(dòng)Agent的思想和相關(guān)技術(shù)。各Agent代表著參加交互的各方,同時(shí)通過(guò)Agent之間的協(xié)商,開(kāi)放移動(dòng)網(wǎng)絡(luò)系統(tǒng)環(huán)境中各異質(zhì)實(shí)體間差異被屏蔽,且具有語(yǔ)意上的一致性。通過(guò)各Agent之間的協(xié)作,可以將分布的信息資源融合為一個(gè)有機(jī)的整體,從而為信息集成提供有效解決辦法,而且移動(dòng)Agent具有高性能,比較適合移動(dòng)網(wǎng)絡(luò)環(huán)境。
2.1.1 Agent實(shí)體
一個(gè)Agent實(shí)體實(shí)際上是一個(gè)可移動(dòng)Java對(duì)象。在到達(dá)一個(gè)網(wǎng)絡(luò)主機(jī)后,它自主地啟動(dòng)線程執(zhí)行任務(wù),并且能夠?qū)邮盏降南⒆鞒隹焖俜磻?yīng)。
2.1.2 Agent代理(Proxy)
Agent代理是Agent實(shí)體的代表,它相當(dāng)于Agent實(shí)體的外殼,避免了外界直接訪問(wèn)Agent實(shí)體。同時(shí),它可以為Agent實(shí)體提供位置透明性。
2.1.3 移動(dòng)Agent上下文環(huán)境(Context)
移動(dòng)Agent上下文環(huán)境就是Agent實(shí)體的工作場(chǎng)所,它是一個(gè)靜止的對(duì)象,提供對(duì)于運(yùn)行于其中的Agent的管理,同時(shí)提供安全性保護(hù)。一臺(tái)主機(jī)可以同時(shí)運(yùn)行多個(gè)服務(wù)器程序,每一個(gè)服務(wù)器程序又可以容納多個(gè)Context。每個(gè)Context都有自己的名字,可以通過(guò)其所在主機(jī)的地址和它的名字確定其所在位置。
2.1.4 Agent消息(Message)
Agent消息是用于在Agent之間進(jìn)行交互的一種對(duì)象。它可以按同步或異步兩種方式傳遞。通過(guò)消息,Agent之間可以相互合作和交換信息。
2.1.5 Agent標(biāo)記符(Identifier)
每一個(gè)Agent都有一個(gè)標(biāo)記符與之綁定,它負(fù)責(zé)在整個(gè)Agent實(shí)體的生命周期中全局唯一地標(biāo)志該Agent。
以上元素,在移動(dòng)Agent中間件系統(tǒng)中都以Java類(lèi)或接口的形式存在。
以下是移動(dòng)Agent中間件系統(tǒng)的基本操作,即用于對(duì)Agent的生命周期進(jìn)行管理的最小功能集。
2.2.1 Agent創(chuàng)建(Creation)
在移動(dòng)Agent上下文環(huán)境中創(chuàng)建Agent實(shí)體,這個(gè)新建的Agent實(shí)體將被分配到一個(gè)Agent標(biāo)記符,在完成初始化工作后便開(kāi)始運(yùn)行。
2.2.2 派遣(Dispatching)
負(fù)責(zé)把Agent實(shí)體從當(dāng)前移動(dòng)Agent上下文環(huán)境中移出,送入到目的上下文環(huán)境中的過(guò)程。Agent實(shí)體將在新的上下文環(huán)境中重新運(yùn)行。
2.2.3 銷(xiāo)毀(Disposal)
銷(xiāo)毀將會(huì)終止一個(gè)Agent實(shí)體運(yùn)行,并從當(dāng)前移動(dòng)Agent上下文環(huán)境中移除。
該中間件系統(tǒng)的核心為實(shí)時(shí)推模塊,當(dāng)然為了保證系統(tǒng)完整性,還有狀態(tài)模塊、用戶(hù)管理、系統(tǒng)維護(hù)和系統(tǒng)幫助等模塊。
如圖1所示,服務(wù)方初始化Agent執(zhí)行環(huán)境后,創(chuàng)建服務(wù)Agent并且偵聽(tīng)客戶(hù)請(qǐng)求,將接收到的客戶(hù)請(qǐng)求內(nèi)容規(guī)范化為Agent所能理解的Agent通信語(yǔ)言,然后把貨物信息數(shù)據(jù)實(shí)時(shí)推送給客戶(hù);如果任務(wù)完成,服務(wù)方就地銷(xiāo)毀Agent,釋放其資源。
圖1 中間件實(shí)時(shí)推算法流程
在系統(tǒng)的具體實(shí)現(xiàn)中,為了滿(mǎn)足平臺(tái)無(wú)關(guān)性、安全性、面向?qū)ο筇匦院投嗑€程特性,可采用純Java技術(shù):采用Java的JDBC數(shù)據(jù)庫(kù)技術(shù),來(lái)完成對(duì)不同數(shù)據(jù)源的透明、高效操作;采用基于Java的移動(dòng)Agent技術(shù)來(lái)實(shí)現(xiàn)有關(guān)Agent的移動(dòng)性要求;Agent之間的通信,采用與KQML(Knowledge Query and Manipulation Language)語(yǔ)言兼容的語(yǔ)意表達(dá)形式[4]。
輕型移動(dòng)商務(wù)系統(tǒng)μMCommerce建立在上述中間件基礎(chǔ)上,它由供應(yīng)子系統(tǒng)、購(gòu)貨需求子系統(tǒng)、移動(dòng)Agent中間件子系統(tǒng)(也稱(chēng)移動(dòng)代理中間件子系統(tǒng))和系統(tǒng)配置子系統(tǒng)有機(jī)構(gòu)成,它們的關(guān)系如圖2所示。
圖2 輕型移動(dòng)商務(wù)系統(tǒng)μMCommerce系統(tǒng)結(jié)構(gòu)
移動(dòng)用戶(hù)利用該子系統(tǒng)登記貨物信息。該子系統(tǒng)在PocketPC/手機(jī)上提供客戶(hù)端界面,讓用戶(hù)輸入用戶(hù)名以及用戶(hù)密碼,并傳送到服務(wù)端。服務(wù)端的安全Servlet對(duì)用戶(hù)名和密碼進(jìn)行驗(yàn)證。如果通過(guò)驗(yàn)證,客戶(hù)端就進(jìn)入貨物供應(yīng)界面;反之則返回驗(yàn)證失敗信息,用戶(hù)仍停留在用戶(hù)驗(yàn)證界面上。當(dāng)客戶(hù)端進(jìn)入貨物供應(yīng)界面以后,就可以通過(guò)后臺(tái)的貨物供應(yīng)Servlet進(jìn)行貨物供應(yīng)的操作,操作結(jié)束的數(shù)據(jù)又通過(guò)互操作中間件模塊把數(shù)據(jù)傳遞到數(shù)據(jù)庫(kù)服務(wù)器,由數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行后臺(tái)數(shù)據(jù)處理,由此完成貨物供應(yīng)子系統(tǒng)的整個(gè)數(shù)據(jù)流程。
實(shí)現(xiàn)貨物供應(yīng)子系統(tǒng)時(shí),采用了SUN J2ME技術(shù)來(lái)設(shè)計(jì)界面和進(jìn)行網(wǎng)絡(luò)傳輸,為了保證高安全性,采用了輕型高效安全產(chǎn)品——Bouncycastle的Lcrypto。
該子系統(tǒng)及相應(yīng)的移動(dòng)代理中間件子系統(tǒng),負(fù)責(zé)接收和運(yùn)行服務(wù)器派遣來(lái)的移動(dòng)代理程序,實(shí)時(shí)地收集供應(yīng)的貨物信息。貨物需求子系統(tǒng)的數(shù)據(jù)流程與貨物供應(yīng)子系統(tǒng)的數(shù)據(jù)流程對(duì)稱(chēng),當(dāng)發(fā)現(xiàn)有符合要求的新的供應(yīng)貨物后,服務(wù)端將通過(guò)移動(dòng)代理立即將貨物信息返回給客戶(hù)端。
實(shí)現(xiàn)貨物需求子系統(tǒng)時(shí),采用了聯(lián)想5100(Strong ARM芯片,WinCE操作系統(tǒng)),PJava;為了實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)保存,采用了PJava里Java.Io.File函數(shù)。
該子系統(tǒng)負(fù)責(zé)移動(dòng)代理系統(tǒng)環(huán)境和移動(dòng)代理程序的管理,它是整個(gè)系統(tǒng)的神經(jīng)網(wǎng)絡(luò),是移動(dòng)環(huán)境下的通信邏輯載體。通過(guò)它,服務(wù)器利用實(shí)時(shí)推算法推送數(shù)據(jù)給PocketPC顯示;同時(shí)它還具有一定的消息機(jī)制,即使PocketPC關(guān)機(jī),數(shù)據(jù)也不會(huì)丟失,一旦PocketPC重新開(kāi)機(jī),會(huì)立即收到消息系統(tǒng)保存的數(shù)據(jù)。
移動(dòng)代理中間件子系統(tǒng)含有三種Agent環(huán)境:移動(dòng)Agent環(huán)境Grasshopper、移動(dòng)Agent環(huán)境SMI和智能Agent環(huán)境JADE。同時(shí)含有移動(dòng)Agent互操作中間件[5]、移動(dòng)Agent和智能Agent互操作中間件。以讓SMI產(chǎn)生的移動(dòng)Agent可以移動(dòng)到Grasshopper環(huán)境,然后再以FIPA消息發(fā)送給JADE,由JADE完成數(shù)據(jù)庫(kù)的寫(xiě)入。
系統(tǒng)配置子系統(tǒng)負(fù)責(zé)對(duì)系統(tǒng)有關(guān)參數(shù)進(jìn)行配置,系統(tǒng)管理員在PocketPC/手機(jī)上的系統(tǒng)設(shè)置界面里進(jìn)行參數(shù)設(shè)置,然后通過(guò)智能Agent模塊傳輸?shù)椒?wù)器,并由服務(wù)器將配制參數(shù)寫(xiě)入數(shù)據(jù)庫(kù)。
實(shí)現(xiàn)系統(tǒng)配置子系統(tǒng)時(shí),采用了小型智能Agent平臺(tái)——LEAP,配置請(qǐng)求信息以FIPA規(guī)范的原語(yǔ)格式在PocketPC/手機(jī)與服務(wù)器之間傳遞。
表1 貨物需求子系統(tǒng)增量測(cè)試結(jié)果
與現(xiàn)有系統(tǒng)的對(duì)接涉及到不同操作系統(tǒng)平臺(tái)及數(shù)據(jù)庫(kù)系統(tǒng)的互連,測(cè)試表明該系統(tǒng)可以方便、有效地從現(xiàn)有系統(tǒng)中提取所需信息,且不會(huì)增加原系統(tǒng)的負(fù)荷。各子系統(tǒng)安裝、配置及其運(yùn)行簡(jiǎn)便易行。既可在事中安裝,又可事后安裝。
為對(duì)系統(tǒng)進(jìn)行全面測(cè)試,采用了以下三種測(cè)試方法。
主要對(duì)系統(tǒng)所提供的各種功能分別進(jìn)行測(cè)試,結(jié)果基本達(dá)到了設(shè)計(jì)目標(biāo),系統(tǒng)安全性也通過(guò)了測(cè)試。
為了測(cè)試移動(dòng)中間件性能,測(cè)試了貨物需求子系統(tǒng)在20條記錄、40條記錄和80條記錄下返回所有貨物信息平均所需時(shí)間,如表1所示。
測(cè)試網(wǎng)絡(luò)含電信撥號(hào)環(huán)境、二代半移動(dòng)網(wǎng)絡(luò)GPRS和第二代移動(dòng)網(wǎng)絡(luò)GSM。具體分別為:普通的有線撥號(hào)(利用掌上電腦上的Modem卡連電話(huà)線,最大理論帶寬為56kbps),GPRS移動(dòng)分組接入(利用掌上電腦上的GRPS模塊,無(wú)線連接移動(dòng)夢(mèng)網(wǎng),最大理論帶寬為13.4kbps)和GSM接入(利用掌上電腦紅外端口配合外置紅外手機(jī),以無(wú)線方式撥入移動(dòng)網(wǎng),最大理論帶寬為9.6kbps)。由表1得知,隨著帶寬的減小,移動(dòng)中間件逐漸顯示出其高性能。
圖3 系統(tǒng)性能比較圖
如圖3所示,實(shí)驗(yàn)結(jié)果表明,基于移動(dòng)Agent中間件的商務(wù)系統(tǒng)有著比普通網(wǎng)絡(luò)計(jì)算結(jié)構(gòu)高效的性能,而且隨著網(wǎng)絡(luò)帶寬的惡化,系統(tǒng)基本性能無(wú)明顯變化,而普通網(wǎng)絡(luò)計(jì)算結(jié)構(gòu)則有大幅下降。同時(shí)也看到,隨著記錄數(shù)的動(dòng)態(tài)增加,系統(tǒng)并發(fā)機(jī)制發(fā)揮了良好的性能,具有良好的可動(dòng)態(tài)擴(kuò)展能力;而普通網(wǎng)絡(luò)計(jì)算結(jié)構(gòu)隨著記錄數(shù)的增加,其計(jì)算時(shí)間會(huì)成指數(shù)級(jí)增長(zhǎng)。
主要目的是測(cè)試在網(wǎng)絡(luò)環(huán)境中,多個(gè)用戶(hù)同時(shí)對(duì)系統(tǒng)不同服務(wù)進(jìn)行訪問(wèn)時(shí),系統(tǒng)能否有效提供服務(wù)。實(shí)驗(yàn)結(jié)果表明即使在低帶寬情況下,系統(tǒng)仍穩(wěn)定可靠。
移動(dòng)Agent不同于基于過(guò)程的RPC(如OSF/DCE中的),也不同于面向?qū)ο蟮膶?duì)象引用(如OMG/CORBA,OLE/DCOM和Java/RMI中的),其獨(dú)特的對(duì)象傳遞思想和卓越的特性給開(kāi)放系統(tǒng)帶來(lái)了巨大的革新。目前國(guó)內(nèi)技術(shù)界大多從人工智能的角度來(lái)研究Agent,所以很難實(shí)用化;本文從分布處理的角度對(duì)其作深入研究,為移動(dòng)Agent的實(shí)用化作出了一些有益的探索。一個(gè)基于移動(dòng)Agent的高效、輕型移動(dòng)實(shí)時(shí)商務(wù)系統(tǒng)的實(shí)踐,對(duì)移動(dòng)Agent實(shí)用化有著重要的理論和現(xiàn)實(shí)意義。
[1]馮鋒,徐琪.基于神經(jīng)網(wǎng)絡(luò)模式的遺傳算法在CRM的數(shù)據(jù)挖掘優(yōu)化研究[J].黑龍江大學(xué)自然科學(xué)學(xué)報(bào),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]張?jiān)朴?劉錦德,郭維娜.基于ACL的移動(dòng)Agent/智能Agent互操作插件[J].電子科技大學(xué)學(xué)報(bào),2007,30(4):407-413.