肖文靜
[摘要]將web service技術(shù)與J2ME技術(shù)相結(jié)合,利用J2ME開(kāi)發(fā)手機(jī)客戶程序,調(diào)用企業(yè)應(yīng)用服務(wù)器發(fā)布的Web Service,手機(jī)客戶程序可以解析Web Service返回的XML數(shù)據(jù)。
[關(guān)鍵詞]J2ME Webservice XML SOAP JSR17
中圖分類號(hào):TP3文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1671-7597(2009)0220051-01
一、引言
與以PC為中心的電子商務(wù)不同,移動(dòng)商務(wù)的重點(diǎn)是個(gè)人體驗(yàn)。人們攜帶普及型移動(dòng)設(shè)備并在任何時(shí)候、任何地點(diǎn)、從任何人那里得到信息。J2ME是為小型設(shè)備設(shè)計(jì)的Java平臺(tái)。Web服務(wù)作為一種支持松散耦合、獨(dú)立于平臺(tái)的集成技術(shù)收到人們的青睞。將J2ME技術(shù)與Web服務(wù)相結(jié)合可以為移動(dòng)商務(wù)提供很好的技術(shù)支持。
二、J2ME平臺(tái)技術(shù)
為了支持資源受限設(shè)備系列所要求的靈活性和可定制部署,J2ME體系結(jié)構(gòu)被設(shè)計(jì)成一個(gè)三層軟件模型來(lái)實(shí)現(xiàn)的,圖1顯示了J2ME架構(gòu)。
從下往上依次為:
Host Operating System:這一層為移動(dòng)信息設(shè)備的操作系統(tǒng),通過(guò)它可以直接控制硬件設(shè)備,實(shí)現(xiàn)硬件設(shè)備的功能。
JVM:Java語(yǔ)言的一個(gè)非常重要的特點(diǎn)就是與平臺(tái)的無(wú)關(guān)性。而使用Java虛擬機(jī)是實(shí)現(xiàn)這一特點(diǎn)的關(guān)鍵。由虛擬機(jī)直接負(fù)責(zé)和移動(dòng)設(shè)備的接口,而J2ME應(yīng)用程序只能和JVM打交道。
Configuration:這一層為一組硬件配置相似的“水平”的設(shè)備分組定義了Configuration所支持的最精簡(jiǎn)的Java庫(kù)和API以及虛擬機(jī)功能特性。目前可用的Configuration有兩種:一種是連接受限設(shè)備配置(Connected Limited DeviceConfiguration CLDC),另一種是連接設(shè)備配置(Connected DeviceConfiguration CDC)。
Profiles:描述層處于Configuration層之上,它擴(kuò)展了Configuration
層。Profiles定義了更高級(jí)的、特定于設(shè)備的API庫(kù),包括GUI(Graphical UserInterface,圖形用戶接口)、網(wǎng)絡(luò)和API。
三、J2ME平臺(tái)上的WEB服務(wù)
(一)SOAP Web服務(wù)的架構(gòu)及KSOAP的使用
作為一種基礎(chǔ)結(jié)構(gòu)解決方案,Web服務(wù)由于它的字包含的、自動(dòng)發(fā)現(xiàn)的,和自動(dòng)配置的可重用軟件組件而受到了人們的青睞。Web服務(wù)的內(nèi)容要比SOAP多得多,SOAP僅僅起提供獨(dú)立于平臺(tái)的傳輸層的作用。圖2描述了Web服務(wù)的完整架構(gòu)。
每一個(gè)Web服務(wù)都對(duì)它的可用服務(wù)進(jìn)行說(shuō)明,并將該說(shuō)明作為一個(gè)WSDL文檔。該WDSL文檔說(shuō)明如何訪問(wèn)這些服務(wù)的技術(shù)細(xì)節(jié)。得到授權(quán)的遠(yuǎn)程客戶可以下載該WSDL文檔,生成一個(gè)與該SOAP服務(wù)接口相匹配的占位程序。
Web服務(wù)本身通過(guò)中央注冊(cè)數(shù)據(jù)庫(kù)(如UDDI注冊(cè)數(shù)據(jù)庫(kù))注冊(cè)??蛻舨樵僓DDI、找出它所需要的服務(wù)、獲取WSDL文件、生成占位程序和開(kāi)始調(diào)用遠(yuǎn)程方法。
要在J2ME設(shè)備上建立Web服務(wù)的客戶,首先需要與J2ME兼容的SOAP分析器。KSOAP可以在J2ME平臺(tái)上運(yùn)行,包括MIDP。每一個(gè)帶有名稱空間支持的通用XML分析器都可以理解SOAP消息,并且可以從這些消息中提取信息。
SOAP分析器建立在通用的XML分析器的基礎(chǔ)上,它帶有特殊的類型映射和文本數(shù)據(jù)整編機(jī)制。SOAP分析器理解SOAP消息中的數(shù)據(jù)類型信息,并且自動(dòng)將SOAP元素轉(zhuǎn)換為Java數(shù)據(jù)對(duì)象。
(二)J2ME Web服務(wù)可選包
JSR172,即J2ME Web服務(wù)規(guī)范,定義了一組用于XML處理和J2ME平臺(tái)上的SOAP Web服務(wù)客戶的標(biāo)準(zhǔn)API。圖3是J2ME訪問(wèn)Web服務(wù)的一個(gè)架構(gòu)圖。
Web服務(wù)使用該可選包創(chuàng)建Web服務(wù)客戶時(shí),首先,從服務(wù)提供者處獲取WSDL文檔,為每個(gè)服務(wù)生成一個(gè)javax.xml.rpc.stub類。再將生成的類放入該項(xiàng)目類的路徑,當(dāng)需要時(shí),將stub類實(shí)例化。然后使用該Stub對(duì)象來(lái)調(diào)用遠(yuǎn)程服務(wù),獲得返回值,返回值為一個(gè)Java對(duì)象。當(dāng)開(kāi)發(fā)工作完成時(shí),將生成的Stub類與應(yīng)用程序捆綁在一起。
四、總結(jié)
綜上所述,本文在J2ME技術(shù)與Web Services技術(shù)的相關(guān)理論知識(shí)基礎(chǔ)上,對(duì)J2ME技術(shù)與Web Services技術(shù)用于移動(dòng)電子商務(wù)方面的應(yīng)用進(jìn)行了探討。在J2ME技術(shù)用于客戶端應(yīng)用程序的同時(shí),采用Web Services技術(shù)來(lái)實(shí)現(xiàn)客戶端和服務(wù)器端的通信連接。
參考文獻(xiàn):
[1]SUN無(wú)線開(kāi)發(fā)網(wǎng)址,http://developers.sun.com/mobility/.
[2](美)David Flanagan.Java技術(shù)手冊(cè)(第三版),吳益華,陳志遠(yuǎn)譯,北京:中國(guó)電力出版社,2002年1月.
[3]Jon Mountjoy,Avinasb Cbugb.Weblogic:The Definitive Guide[M].南京:東南大學(xué)出版社,2005.