《電子技術(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)用組件集合,這些組件相互獨立并可以互操作,公開訪問接口,提供特定功能服務(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ī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ā)布性及易集成等特點。它也存在不足,即Web服務(wù)用戶面對通信性能弱、需處理基于XML的額外負(fù)擔(dān)。近年來,移動應(yīng)用開發(fā)領(lǐng)域已出現(xiàn)過量的可用Web服務(wù),雖然移動設(shè)備硬件能力已大大增強,但由于性能問題和移動平臺缺乏本地化開發(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上提供一個獨立于硬件平臺和操作系統(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ù)兩類?;赟OAP的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é)為兩點:移動硬件的能力(包括處理能力和網(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ā)展趨勢是增強的無線網(wǎng)絡(luò)通信能力和高度聯(lián)接性等。移動設(shè)備的主要硬件限制且必須解決的是巨大的電池消耗問題,它導(dǎo)致了電池壽命縮短、無線網(wǎng)絡(luò)帶寬低和無線連接不穩(wěn)定等問題。只要有電池自主性,就可以達(dá)到相當(dāng)好的移動性和連接性,穩(wě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)用既麻煩又耗費資源,特定的平臺需要特定的工作環(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)的兩個資源耗費問題,即由于密集的SOAP請求封裝機(jī)制帶來HTTP通信負(fù)擔(dān)、移動設(shè)備端SOAP響應(yīng)的解析,以適應(yīng)移動設(shè)備的低資源特點。參考文獻(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)將最大可能地運行在專用硬件上,將證明確保去查找一些與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)點如下:
?。?)移動客戶必須維持輕量級通信,即較小帶寬和較低處理能力要求。
?。?)可以開發(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ù)壓縮等來消費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)載。