《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 移動網(wǎng)絡(luò)中Web服務(wù)應(yīng)用架構(gòu)研究
移動網(wǎng)絡(luò)中Web服務(wù)應(yīng)用架構(gòu)研究
來源:微型機(jī)與應(yīng)用2012年第13期
余以勝
(廣東女子職業(yè)技術(shù)學(xué)院,,廣東 廣州 511450)
摘要: 提出一個應(yīng)用于移動網(wǎng)絡(luò)的Web服務(wù)交互通信體系架構(gòu),,其將基于XML的系統(tǒng)通信的負(fù)擔(dān)從移動客戶轉(zhuǎn)移到外部中間件上,,該中間件像網(wǎng)關(guān)一樣,,使用快速的二進(jìn)制協(xié)議以客戶/服務(wù)器方式與移動設(shè)備進(jìn)行輕量級通信,并同時負(fù)責(zé)解析對Web服務(wù)的請求,。
Abstract:
Key words :

摘  要: 提出一個應(yīng)用于移動網(wǎng)絡(luò)的Web服務(wù)交互通信體系架構(gòu),,其將基于XML的系統(tǒng)通信的負(fù)擔(dān)從移動客戶轉(zhuǎn)移到外部中間件上,該中間件像網(wǎng)關(guān)一樣,,使用快速的二進(jìn)制協(xié)議以客戶/服務(wù)器方式與移動設(shè)備進(jìn)行輕量級通信,,并同時負(fù)責(zé)解析對Web服務(wù)的請求。
關(guān)鍵詞: Web服務(wù),;面向服務(wù)的體系結(jié)構(gòu),;移動計算;移動設(shè)備

 面向服務(wù)的體系結(jié)構(gòu)(SOA)技術(shù)包含了一個靈活的應(yīng)用組件集合,,這些組件相互獨(dú)立并可以互操作,,公開訪問接口,提供特定功能服務(wù),,更好地滿足了大企業(yè)系統(tǒng)的業(yè)務(wù)需求,。由于基于SOA構(gòu)建的系統(tǒng)能更靈活地隨業(yè)務(wù)需求而變化,有效解決了傳統(tǒng)大規(guī)模系統(tǒng)中任何子系統(tǒng)的細(xì)微需求變化及系統(tǒng)反應(yīng)極度敏感的問題,。
 將SOA方法引入到Web,,產(chǎn)生了Web服務(wù)技術(shù)。該技術(shù)通過Web為運(yùn)行在不同平臺上的應(yīng)用之間提供了互操作和信息交換,。由于建立在XML和HTTP標(biāo)準(zhǔn)協(xié)議上,,因此Web服務(wù)容易開發(fā)并通過Web在任何地方訪問。
 Web服務(wù)技術(shù)優(yōu)勢明顯,,引領(lǐng)企業(yè)業(yè)務(wù)主導(dǎo)權(quán),,具有高度互操作性、服務(wù)組件可發(fā)布性及易集成等特點(diǎn),。它也存在不足,,即Web服務(wù)用戶面對通信性能弱、需處理基于XML的額外負(fù)擔(dān),。近年來,,移動應(yīng)用開發(fā)領(lǐng)域已出現(xiàn)過量的可用Web服務(wù),雖然移動設(shè)備硬件能力已大大增強(qiáng),,但由于性能問題和移動平臺缺乏本地化開發(fā)支持,,易使用的Web服務(wù)卻漸漸偏離大多數(shù)移動平臺標(biāo)準(zhǔn)特征。
1 Web服務(wù)概述
 Web服務(wù)主要使用HTTP和XML技術(shù),,為不同硬件及平臺上的應(yīng)用系統(tǒng)提供標(biāo)準(zhǔn)方式的交互操作,,它像自包含的部件,可以在Web上發(fā)布、定位和調(diào)用,,為應(yīng)用在Web上提供一個獨(dú)立于硬件平臺和操作系統(tǒng)的標(biāo)準(zhǔn)通信機(jī)制,。
 由W3組織提出的Web服務(wù)構(gòu)架,依據(jù)一些Web標(biāo)準(zhǔn),,如XML,、SOAP、WSDL和UDDI,,允許服務(wù)可以被任何應(yīng)用描述、查找和集成,。Web服務(wù)的實現(xiàn)分成SOAP Web服務(wù)和REST Web服務(wù)兩類,。基于SOAP的Web服務(wù)適合在復(fù)雜的多層計算環(huán)境中實現(xiàn)SOA,,具有更大的靈活性和較低的集成成本,,但在與輕量級信息系統(tǒng)通信時比REST Web服務(wù)要求更大的性能。
 基于SOAP的Web服務(wù)主要有額外處理XML的性能問題和通信中缺乏事務(wù)支持兩種不足,。在繁忙和不穩(wěn)定的網(wǎng)絡(luò)上,,相對于傳統(tǒng)方法的分布式計算(如CORBA或DCOM),與Web服務(wù)通信必須忍受低性能,,這是因為基于XML的信息系統(tǒng)追求簡單而不是效率,。而且,當(dāng)對XML請求/響應(yīng)編碼/解碼的額外負(fù)擔(dān)時,,肯定影響整個Web應(yīng)用的性能,。與Web服務(wù)通信中缺乏事務(wù)支持,致使這種數(shù)據(jù)交換協(xié)議沒有狀態(tài),,正如Web服務(wù)提供者和Web服務(wù)用戶彼此不知相互狀態(tài),。
 當(dāng)今移動設(shè)備中無線網(wǎng)接入已成為其標(biāo)準(zhǔn)特征,移動Web服務(wù)應(yīng)用的挑戰(zhàn)可歸結(jié)為兩點(diǎn):移動硬件的能力(包括處理能力和網(wǎng)絡(luò)能力)和對移動平臺的本地化支持,。另外,,對資源約束限制的移動設(shè)備應(yīng)考慮采用已有的標(biāo)準(zhǔn)。
2 移動設(shè)備及平臺現(xiàn)狀
2.1 移動設(shè)備及其局限性

 移動設(shè)備的能力不斷增長,,并滿足移動性和連接性等靈活性上的相關(guān)需求,。未來幾年內(nèi),蜂窩式無線通信網(wǎng)絡(luò)的數(shù)據(jù)流量有望保持幾十倍增長,,數(shù)據(jù)流量通常來自Web瀏覽,,尤其是觀看視頻。
 現(xiàn)在的智能手機(jī)具有最新式的硬件特征,,從移動性的角度講,,智能手機(jī)是市場上最吸引人的移動設(shè)備。智能手機(jī)的計算能力有顯著的提高,如快速的處理器,、更大容量的ROM和RAM,,它的發(fā)展趨勢是增強(qiáng)的無線網(wǎng)絡(luò)通信能力和高度聯(lián)接性等。移動設(shè)備的主要硬件限制且必須解決的是巨大的電池消耗問題,,它導(dǎo)致了電池壽命縮短,、無線網(wǎng)絡(luò)帶寬低和無線連接不穩(wěn)定等問題。只要有電池自主性,,就可以達(dá)到相當(dāng)好的移動性和連接性,,穩(wěn)定地與無線接入點(diǎn)連接,很少或沒有延遲地使用Web服務(wù),。
2.2 移動平臺的支持
 為在移動平臺上開發(fā)Web服務(wù)客戶程序,,現(xiàn)討論它們提供的現(xiàn)有支持。
Sun公司將Java技術(shù)用于移動設(shè)備,,用標(biāo)準(zhǔn)模板訪問現(xiàn)有的Web服務(wù),,通過擴(kuò)展J2ME平臺帶有的JSR 172[1],被命名為J2ME WSS(Web Services Specification)的請求,,使J2ME轉(zhuǎn)成為標(biāo)準(zhǔn)的Java Web服務(wù)平臺,,這些讓開發(fā)者容易創(chuàng)建客戶程序,用于支持Java的移動設(shè)備,。WSS是移動服務(wù)架構(gòu)平臺的一部分,,設(shè)計它面向移動設(shè)備的新技術(shù)和服務(wù),為所有支持Java的移動設(shè)備提供標(biāo)準(zhǔn)應(yīng)用環(huán)境,,用于滿足市場發(fā)展,。
 在支持Web服務(wù)應(yīng)用方面,Apple公司在移動iPhone平臺上幾乎沒做努力,。SDK沒公開其內(nèi)置的C對象庫,,無法創(chuàng)建簡單的Web服務(wù)客戶程序。而且,,當(dāng)實現(xiàn)必需的基于XML的消息機(jī)制時,,很少用到Cocoa構(gòu)架的NSXML庫。當(dāng)需解析XML時,,libxml2或KissXML庫肯定優(yōu)先使用,。iPhone平臺的工作區(qū)包括現(xiàn)有的應(yīng)用功能程序的使用,如wsdl2objc[2],,它派生出代理類,,以訪問源自WSDL規(guī)格的服務(wù)。派生類包含Web服務(wù)公開的所有方法,。不過,,開源社區(qū)作了明顯的努力,,用于創(chuàng)建易于使用的框架,以訪問Web服務(wù),。
事實也證明,,Google公司沒使SOAP Web服務(wù)應(yīng)用對Android平臺開發(fā)者社區(qū)是一個容易的任務(wù)。SDK甚至沒打包成工具包為Web服務(wù)接口產(chǎn)生派生類,。在開發(fā)社區(qū)中,,Android平臺被認(rèn)為是最適合在移動空間中作為Google服務(wù)的發(fā)布者。
 在Windows Mobile平臺上應(yīng)用Web服務(wù)是容易的工作,,因為.NET框架適合同步和異步訪問,。與Windows Phone 7平臺類似,通過簡單引用Web服務(wù)生成服務(wù)接口開放的代理類,。
Nokia從Symbian系列60平臺提供Serene框架,,容易創(chuàng)建訪問Web服務(wù)的客戶程序應(yīng)用。該框架依賴J2ME JSR 172規(guī)格,,提供創(chuàng)建相關(guān)豐富Web應(yīng)用的全部支持。
 除了Windows和Nokia平臺提供支持,,允許開發(fā)人員專注于設(shè)計和創(chuàng)造,,其他平臺缺少本地化支持,開發(fā)SOAP Web服務(wù)客戶程序要求更多的額外努力,。而且要在所有移動平臺上實現(xiàn)Web應(yīng)用既麻煩又耗費(fèi)資源,,特定的平臺需要特定的工作環(huán)境。
3 相關(guān)工作介紹
 目前,,開源社區(qū)提出的兩類解決辦法是解決問題的基礎(chǔ),,據(jù)此進(jìn)行簡單改編,針對基于SOAP的Web服務(wù)的局限性,,為大多數(shù)移動平臺能應(yīng)用,。
3.1 支持RESTFul架構(gòu)
 參考文獻(xiàn)[3]提出的Web服務(wù)架構(gòu)通過修改現(xiàn)有的SOAP Web服務(wù)解決通常SOAP消息系統(tǒng)的兩個資源耗費(fèi)問題,即由于密集的SOAP請求封裝機(jī)制帶來HTTP通信負(fù)擔(dān),、移動設(shè)備端SOAP響應(yīng)的解析,,以適應(yīng)移動設(shè)備的低資源特點(diǎn)。參考文獻(xiàn)[4]的方法依據(jù)的是RESTful架構(gòu),,也因SOAP協(xié)議的傳輸中立性而帶來一系列的問題,。通過為每類交互活動明確地分配另一個截然不同的URL,現(xiàn)有的SOAP接口甚至優(yōu)化在RESTful架構(gòu)中,。對同步和異步RESTful實現(xiàn)都進(jìn)行了性能測試,,結(jié)果很樂觀,隨著HTTP負(fù)載的減輕,,從同步調(diào)用高達(dá)96%負(fù)載,,減至異步調(diào)用的75%,。
3.2 使用移動Web服務(wù)代理

 


 另一解決辦法是在移動網(wǎng)絡(luò)中引入Web服務(wù)代理,它像移動設(shè)備和Web服務(wù)之間的網(wǎng)關(guān)一樣[5],。代理從移動設(shè)備接收輸入?yún)?shù),,調(diào)用請求的服務(wù),并向移動設(shè)備返回結(jié)果,。結(jié)果令人滿意,,因為消除了移動設(shè)備端的XML處理,獲得了改進(jìn)性能,。性能測試顯示,,響應(yīng)時間很少且數(shù)據(jù)負(fù)荷低。
 目前,,研究領(lǐng)域存在以上兩種辦法的主要原因是有個通用理念,,即移動設(shè)備上任何可行的通信架構(gòu)必須包括中間件,它存在于設(shè)備之外,,負(fù)責(zé)與Web服務(wù)通信且必須處理XML的重?fù)?dān),。那些中間件像網(wǎng)關(guān)服務(wù)器一樣工作,與移動設(shè)備輕量級通信,,并承擔(dān)檢索來自Web服務(wù)的響應(yīng),。這種類型架構(gòu)對確保與Web服務(wù)更可靠的通信會有更大的機(jī)會。無線通信是移動設(shè)備上易于波動的行為,,會造成無線訪問出錯,。網(wǎng)關(guān)將最大可能地運(yùn)行在專用硬件上,將證明確保去查找一些與Web服務(wù)的通信狀態(tài),。連接錯誤時,,會啟用重試機(jī)制。
4 基于中間件的Web服務(wù)應(yīng)用構(gòu)架
 在提出的通信架構(gòu)中引入中間件,,它像SOAP和瘦客戶之間的網(wǎng)關(guān),,而瘦客戶剝離了處理XML的重?fù)?dān)。網(wǎng)關(guān)是移動客戶的服務(wù)器,,承擔(dān)著移動客戶請求響應(yīng)的任務(wù),。通用的通信系統(tǒng)架構(gòu)如圖1所示,移動客戶將必須使用二進(jìn)制協(xié)議維持與網(wǎng)關(guān)的輕量級C/S通信,。當(dāng)然,,任何比SOAP協(xié)議更輕量級的協(xié)議都可以使用(如REST),但眾所周知二進(jìn)制協(xié)議大致與SOAP協(xié)議功能相當(dāng),。二進(jìn)制協(xié)議簡單,,不如XML或SOAP標(biāo)準(zhǔn),但它們能提供同樣層次的擴(kuò)展性和低通信腳本上的安全性,。而且,,從開發(fā)者支持的角度,,成功的協(xié)議會為所有重要的編程語言和開發(fā)平臺提供客戶端口。

 該架構(gòu)的優(yōu)點(diǎn)如下:
?。?)移動客戶必須維持輕量級通信,,即較小帶寬和較低處理能力要求。
?。?)可以開發(fā)出高級的安全措施,,因為網(wǎng)關(guān)中間件將代表移動客戶工作。
?。?)為防止任何通信錯誤(移動設(shè)備到網(wǎng)關(guān)或網(wǎng)關(guān)到Web服務(wù)),,存儲一些狀態(tài)用于保證透明地與移動客戶通信,網(wǎng)關(guān)保持全部的通信狀態(tài),,當(dāng)斷線后的所有方重回線上時,,繼續(xù)重試通信連接。
?。?)從實現(xiàn)架構(gòu)的角度看,,容易設(shè)計出軟件工具,幾乎自動地從WSDL文檔開始,,創(chuàng)建完全網(wǎng)關(guān)和移動客戶部件,;系統(tǒng)架構(gòu)容易生成和測試,優(yōu)于任何的現(xiàn)有實現(xiàn),。
唯一不足的是這種構(gòu)架可能增加總的請求應(yīng)答時間。系統(tǒng)或許贏得些時間,,如果網(wǎng)關(guān)上執(zhí)行的XML處理量巨大,,但是這并不準(zhǔn)確,因為兩通信線路必須建立并維護(hù),,因此這早于任何實際實現(xiàn)的測量,,該方向上沒有明確的結(jié)論。
 使用大量Web服務(wù)的Web應(yīng)用實現(xiàn)是接下來應(yīng)用領(lǐng)域里的工作,。移動應(yīng)用市場正尋找解決授權(quán)移動設(shè)備與Web服務(wù)集成的辦法,,并盡可能降低當(dāng)前的性能問題。Web服務(wù)的研究者[5]證明并不存在實際的工作區(qū),,將嘗試通過更快的XML解析器,、全面協(xié)議優(yōu)化和數(shù)據(jù)壓縮等來消費(fèi)Web服務(wù),提高移動客戶的性能,。參考文獻(xiàn)[3],、[5]的研究者證實了設(shè)計通信架構(gòu)的努力,包括存在于外部設(shè)備的中間件部件,,負(fù)責(zé)與Web服務(wù)通信時的XML處理,。
 下一步工作包括創(chuàng)建一個更加詳細(xì)的原型,,支持在主流移動平臺上的Web應(yīng)用現(xiàn)存的開發(fā),主要是為實現(xiàn)新的Windows Phone 8平臺而提出的架構(gòu),。該平臺確定容易創(chuàng)建Web服務(wù)的客戶應(yīng)用,,相比之下,基于網(wǎng)關(guān)的體系架構(gòu)的性能試驗還不如它重要,。在基于網(wǎng)關(guān)的構(gòu)架實現(xiàn)中,,主要將對Windows Phone客戶程序的封裝帶寬進(jìn)行測量,并與容易創(chuàng)建的.NET Framework下的SOAP Web服務(wù)客戶程序的數(shù)據(jù)結(jié)果進(jìn)行比較,,兩個方案的系統(tǒng)性能和可靠性也將進(jìn)行測試和對比,。
參考文獻(xiàn)
[1] JSR 172: J2METM Web services specification[EB/OL].http://jcp.org/en/jsr/detail?id=172, 2012-01-20.
[2] wsdl2objc library homepage[EB/OL]. http://code.google.com/p/wsdl2objc/,,2012-01-20.
[3] AIJAZ F,, ZAHID S A, CHAUDHARY M,, et al. Enabling high performance mobile Web services provisioning[C].Vehicular Technology Conference Fall(VTC 2009-Fall),,2009:1-6.
[4] 劉振海,姜利群,,殷兆麟,,等.移動Web服務(wù)的研究與應(yīng)用[J].計算機(jī)工程與設(shè)計,2009,,30(11):2711-2713.
[5] ADA?觭AL M,, BENER A B. Mobile Web services: a new agent-based framework[J]. Internet Computing, 2006,,10(3):58-65.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。