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