基于J2ME平臺的SOAP協(xié)議研究與應(yīng)用_第1頁
基于J2ME平臺的SOAP協(xié)議研究與應(yīng)用_第2頁
基于J2ME平臺的SOAP協(xié)議研究與應(yīng)用_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

基于J2ME平臺的SOAP協(xié)議研究與應(yīng)用1引言

J2ME作為嵌入式系統(tǒng)應(yīng)用平臺得到了快速的進(jìn)展,JAVA語言固有的平臺無關(guān)性使得基于J2ME平臺的嵌入式應(yīng)用系統(tǒng)具有寬闊的前景。受限于嵌入式設(shè)備及消費(fèi)類電器硬件條件的限制,J2ME平臺供應(yīng)的功能有限,如何能夠在有限的資源下拓展J2ME的功能,使得J2ME平臺能夠處理SOAP協(xié)議是本文討論的重點(diǎn)。

目前企業(yè)應(yīng)用正在向面對WEB服務(wù)的SOA架構(gòu)轉(zhuǎn)變,嵌入式系統(tǒng)與企業(yè)應(yīng)用系統(tǒng)的連接目前還處于TCP/IP協(xié)議、HTTP協(xié)議等比較初級的階段。隨著企業(yè)應(yīng)用系統(tǒng)供應(yīng)的WEB服務(wù)日益廣泛和成熟,需要J2ME平臺供應(yīng)處理SOAP協(xié)議的需求也越來越多。

SOA架構(gòu)是目前企業(yè)應(yīng)用系統(tǒng)廣泛部署的架構(gòu),實(shí)現(xiàn)SOA的關(guān)鍵問題之一就是對SOAP協(xié)議的支持。本文分析了在J2ME平臺中實(shí)現(xiàn)SOAP協(xié)議處理遇到的問題,提出了相應(yīng)的解決方案。

2j2ME介紹[1][2][3]

J2ME(Java2PlatformMicroEdition)是為無線電子市場所設(shè)計的JAVA平臺,包括JVM規(guī)范和API規(guī)范。J2ME定義了一套類庫和虛擬機(jī)技術(shù),這些技術(shù)可以使用戶、服務(wù)供應(yīng)商和設(shè)備制造商通過物理(有線)連接或無線連接,根據(jù)需要隨時使用豐富的應(yīng)用程序。J2ME同時供應(yīng)了Java語言一貫的跨平臺性和平安性。

為了支持用戶和嵌入式市場提出的敏捷性和可定制性要求,J2ME被設(shè)計得更加模塊化和可縮放化。J2ME在設(shè)備原有的操作系統(tǒng)上建筑了3層軟件來實(shí)現(xiàn)這種要求:

1.JVM層:這層基于宿主操作系統(tǒng),根據(jù)某一種J2ME的配置實(shí)現(xiàn)了JVM。

2.配置層:這層對于用戶可見度要低一些,但對簡表層特別重要。它針對不同市場的需求,定義了Java虛擬機(jī)的最小功能集合和Java類庫的最小集合。在J2ME設(shè)備中,JVM與配置層緊密相連,它們體現(xiàn)了每一類設(shè)備的基本功能。

3.簡表層:這層對于用戶和應(yīng)用程序供應(yīng)者來說是最常見的。它針對特定市場的需求,定義了Java虛擬機(jī)的最小功能集合和Java類庫的最小集合。

J2ME組件都圍繞一個中心,這些中心被稱為configuration(配置),它們中間的每一個都是用于消費(fèi)電子和嵌入設(shè)備的特殊的類。目前配置分為CLDC和CDC兩種。

Connectedlimiteddeviceconfiguration(有限連接設(shè)備配置,簡稱CLDC)定義支持“devicesthatyouholdinyourhand(握在手中的設(shè)備)”的應(yīng)用程序接口和技術(shù),這類設(shè)備的代表是PDA。Connecteddeviceconfiguration(連接設(shè)備配置CDC)定義支持“devicesthatyouplugintoplugintothewall(插入墻的設(shè)備)”的應(yīng)用程序接口和技術(shù),這類設(shè)備的代表是機(jī)頂盒。

這兩種配置不同的.地方就在于它們應(yīng)用于的裝置的力量,CLDC設(shè)備的處理器力量有限(與臺式機(jī)系統(tǒng)比較),并且存儲器大小一般也只在128KB到512KB之間。CDC系統(tǒng)不同,它可能有32位或64位處理器,以及有限的存儲容量,不過它的下限也得超過512K。

上圖解釋配置和簡表的體系結(jié)構(gòu)。J2ME的體系結(jié)構(gòu)被橫向地分成三層,縱向分成兩部分。配置包括一個掌握配置核心類的虛擬機(jī),詳細(xì)的簡表位于每個配置之上。

簡表為相同消費(fèi)電子設(shè)備的不同的生產(chǎn)商供應(yīng)了標(biāo)準(zhǔn)化的Java類庫,現(xiàn)在五個已知簡表已經(jīng)有了規(guī)范:

Mobileinformationdevicesprofile(MIDP)移動電話和呼叫器CLDC

PersonaldigitalassistantprofilePalm和Handspring的PDA設(shè)備CLDC

Foundationprofile用于全部不需要GUI的CDC設(shè)備的標(biāo)準(zhǔn)簡表CDC

Personalprofile替代PersonalJava的Foundation完善的簡表CDC

RMIprofile供應(yīng)RMI的Foundation完善的簡表CDC

3SOAP協(xié)議介紹[4]

SOAP(簡潔對象訪問協(xié)議)是一種利用XML編碼數(shù)據(jù)的數(shù)據(jù)傳輸協(xié)議。它是同類協(xié)議中要求最低的一個規(guī)范,只定義了協(xié)議所要求的最關(guān)鍵的部分,有意地忽視了垃圾收集、對象激活等方面的細(xì)節(jié)。像TCP/IP協(xié)議一樣,SOAP協(xié)議也包括客戶端和服務(wù)器兩個部分。

SOAP客戶端是一種創(chuàng)建XML文檔的程序,該XML文檔包含在分布式系統(tǒng)遠(yuǎn)程調(diào)用方法所需的信息。SOAP客戶端不是傳統(tǒng)意義上的程序,它除了用作一般的桌面應(yīng)用程序外,還可以是一種Web服務(wù)器或基于服務(wù)器的應(yīng)用程序。來自SOAP客戶端的消息和懇求一般是通過HTTP發(fā)送的。因而,SOAP文檔可以穿過幾乎全部的防火墻,從而能跨越不同的平臺交換信息。

SOAP服務(wù)器只是用于監(jiān)聽SOAP消息的特別代碼,它可用作SOAP文檔的安排器和解釋器。外部Web服務(wù)可以與基于J2EE技術(shù)的應(yīng)用程序服務(wù)器交互,這種應(yīng)用程序服務(wù)器可以處理多種客戶端的SOAP懇求。

SOAP定義了數(shù)據(jù)編碼規(guī)章,稱為基準(zhǔn)編碼或“Section5(第5節(jié))”編碼,它是出自SOAP規(guī)范中描述數(shù)據(jù)編碼規(guī)章的內(nèi)容。SOAP編碼可以簡短地描述成簡潔值或復(fù)合值的集合。簡潔值可以是簡潔類型,如整型、浮點(diǎn)型和字符型,或者是XML架構(gòu)規(guī)范第2部中定義的內(nèi)置類型,包括各種數(shù)據(jù)類型,如字節(jié)型數(shù)組和枚舉。復(fù)合值包括結(jié)構(gòu)、數(shù)組和XML架構(gòu)制定組定義的簡單類型。

SOAP在標(biāo)準(zhǔn)化消息格式環(huán)境中,可以做全部它能完成的工作。消息的主體部分是“text/xml”形式的MIME類型,并且包含一個SOAP封套。該封套是一個XML文檔。封套包含了報頭(可選的)和報文(必需有的)。封套的報文部分總是用于最終接收的消息,而報頭項(xiàng)目可以確定執(zhí)行中間處理的目標(biāo)節(jié)點(diǎn)。附件、二進(jìn)制數(shù)字及其他項(xiàng)目可以附加到報文上。

SOAP供應(yīng)了一種讓客戶端指定哪個中間處理節(jié)點(diǎn)必需處理報頭項(xiàng)目的方法。由于報頭與SOAP消息的主體內(nèi)容是互不相關(guān)的,所以可用它們給消息添加信息,而不會影響對消息報文的處理。

4SOAP協(xié)議在J2ME平臺中的實(shí)現(xiàn)

如何真正地將移動設(shè)備融入到WebServices中去呢?這就需要使得PDA、手機(jī)等成為WebServices的客戶端,因此這些設(shè)備至少應(yīng)當(dāng)具有處理XML信息的力量。在J2ME平臺中實(shí)現(xiàn)SOAP客戶端的功能,使得嵌入式設(shè)備能夠連接企業(yè)的WEB服務(wù)是企業(yè)應(yīng)用中比較常見的需求。J2ME的基本類庫中沒有供應(yīng)SOAP的支持,所以需要在J2ME平臺中開發(fā)實(shí)現(xiàn)SOAP的處理功能。

實(shí)現(xiàn)SOAP協(xié)議客戶端的關(guān)鍵問題分為兩個方面:J2ME不同配置的數(shù)據(jù)類型不一樣,導(dǎo)致與SOAP協(xié)議封裝的數(shù)據(jù)類型不匹配;J2ME平臺沒有供應(yīng)對XML文件進(jìn)行處理的功能。

針對第一個問題,需要留意只能使用基本類型,對不匹配的數(shù)據(jù)類型采納使用基本類型復(fù)合的方式進(jìn)行處理。針對其次個問題需要在J2ME中擴(kuò)展對XML文件處理的功能。目前有有兩種方法對XML文件進(jìn)行解析。一種是采納DOM的方式,另外一種是采納SAX的方式。操作DOM是一個與XML相互作用的簡潔方法,通常這個XML是一棵完整的XML樹,被解析成一個存放在存儲器中的節(jié)點(diǎn)結(jié)構(gòu),你可以遍歷這棵樹。它特別簡潔易用,但是由于整棵樹存在于存儲器中造成存儲器的負(fù)擔(dān),而對于嵌入式系統(tǒng)來說存儲器的資源是有限的,因此這種方法的使用具有肯定局限性。其次種方

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論