版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
基于J2ME平臺的SOAP協(xié)議研究與應用摘要:本文對于在J2E平臺下,利用XL解析器開發(fā)SAP協(xié)議的根本方法進展了研究,介紹了J2E平臺和SAP協(xié)議,其中重點討論了XL的開發(fā),提出了一種利用XL解析器在J2E平臺上實現(xiàn)SAP協(xié)議的方法,具有一定的推廣價值。關(guān)鍵詞:J2ESAPXL嵌入式系統(tǒng)1引言J2E作為嵌入式系統(tǒng)應用平臺得到了迅速的開展,JAVA語言固有的平臺無關(guān)性使得基于J2E平臺的嵌入式應用系統(tǒng)具有廣闊的前景。受限于嵌入式設(shè)備及消費類電器硬件條件的限制,J2E平臺提供的功能有限,如何可以在有限的資源下拓展J2E的功能,使得J2E平臺可以處理SAP協(xié)議是本文研究的重點。目前企業(yè)應用正在向面向EB效勞的SA架構(gòu)轉(zhuǎn)變,嵌入式系統(tǒng)與企業(yè)應用系統(tǒng)的連接目前還處于TP/IP協(xié)議、HTTP協(xié)議等比擬初級的階段。隨著企業(yè)應用系統(tǒng)提供的EB效勞日益廣泛和成熟,需要J2E平臺提供處理SAP協(xié)議的需求也越來越多。SA架構(gòu)是目前企業(yè)應用系統(tǒng)廣泛部署的架構(gòu),實現(xiàn)SA的關(guān)鍵問題之一就是對SAP協(xié)議的支持。本文分析了在J2E平臺中實現(xiàn)SAP協(xié)議處理遇到的問題,提出了相應的解決方案。2j2E介紹[1][2][3]J2E〔Java2PlatfrirEditin〕是為無線電子市場所設(shè)計的JAVA平臺,包括JV標準和API標準。J2E定義了一套類庫和虛擬機技術(shù),這些技術(shù)可以使用戶、效勞提供商和設(shè)備制造商通過物理〔有線〕連接或無線連接,按照需要隨時使用豐富的應用程序。J2E同時提供了Java語言一貫的跨平臺性和平安性。為了支持用戶和嵌入式市場提出的靈敏性和可定制性要求,J2E被設(shè)計得更加模塊化和可縮放化。J2E在設(shè)備原有的操作系統(tǒng)上建造了3層軟件來實現(xiàn)這種要求:1.JV層:這層基于宿主操作系統(tǒng),按照某一種J2E的配置實現(xiàn)了JV。2.配置層:這層對于用戶可見度要低一些,但對簡表層非常重要。它針對不同市場的需求,定義了Java虛擬機的最小功能集合和Java類庫的最小集合。在J2E設(shè)備中,JV與配置層嚴密相連,它們表達了每一類設(shè)備的根本功能。3.簡表層:這層對于用戶和應用程序提供者來說是最常見的。它針對特定市場的需求,定義了Java虛擬機的最小功能集合和Java類庫的最小集合。J2E組件都圍繞一個中心,這些中心被稱為nfiguratin〔配置〕,它們中間的每一個都是用于消費電子和嵌入設(shè)備的特別的類。目前配置分為LD和D兩種。nnetedliiteddevienfiguratin(有限連接設(shè)備配置,簡稱LD)定義支持“deviesthatyuhldinyurhand〔握在手中的設(shè)備〕〞的應用程序接口和技術(shù),這類設(shè)備的代表是PDA。nneteddevienfiguratin(連接設(shè)備配置D)定義支持“deviesthatyuplugintpluginttheall〔插入墻的設(shè)備〕〞的應用程序接口和技術(shù),這類設(shè)備的代表是機頂盒。這兩種配置不同的地方就在于它們應用于的裝置的才能,LD設(shè)備的處理器才能有限(與臺式機系統(tǒng)比擬),并且存儲器大小一般也只在128KB到512KB之間。D系統(tǒng)不同,它可能有32位或64位處理器,以及有限的存儲容量,不過它的下限也得超過512K。上圖解釋配置和簡表的體系構(gòu)造。J2E的體系構(gòu)造被橫向地分成三層,縱向分成兩部分。配置包括一個控制配置核心類的虛擬機,詳細的簡表位于每個配置之上。簡表為一樣消費電子設(shè)備的不同的消費商提供了標準化的Java類庫,如今五個簡表已經(jīng)有了標準:bileinfratindeviesprfile(IDP)挪動和呼叫器LDPersnaldigitalassistantprfilePal和Handspring的PDA設(shè)備LDFundatinprfile用于所有不需要GUI的D設(shè)備的標準簡表DPersnalprfile替代PersnalJava的Fundatin完善的簡表DRIprfile提供RI的Fundatin完善的簡表D3SAP協(xié)議介紹[4]SAP〔簡單對象訪問協(xié)議〕是一種利用XL編碼數(shù)據(jù)的數(shù)據(jù)傳輸協(xié)議。它是同類協(xié)議中要求最低的一個標準,只定義了協(xié)議所要求的最關(guān)鍵的部分,有意地忽略了垃圾搜集、對象激活等方面的細節(jié)。像TP/IP協(xié)議一樣,SAP協(xié)議也包括客戶端和效勞器兩個部分。SAP客戶端是一種創(chuàng)立XL文檔的程序,該XL文檔包含在分布式系統(tǒng)遠程調(diào)用方法所需的信息。SAP客戶端不是傳統(tǒng)意義上的程序,它除了用作普通的桌面應用程序外,還可以是一種eb效勞器或基于效勞器的應用程序。來自SAP客戶端的消息和懇求一般是通過HTTP發(fā)送的。因此,SAP文檔可以穿過幾乎所有的防火墻,從而能跨越不同的平臺交換信息。SAP效勞器只是用于監(jiān)聽SAP消息的特殊代碼,它可用作SAP文檔的分配器和解釋器。外部eb效勞可以與基于J2EE技術(shù)的應用程序效勞器交互,這種應用程序效勞器可以處理多種客戶端的SAP懇求。SAP定義了數(shù)據(jù)編碼規(guī)那么,稱為基準編碼或“Setin5〔第5節(jié)〕〞編碼,它是出自SAP標準中描繪數(shù)據(jù)編碼規(guī)那么的內(nèi)容。SAP編碼可以簡短地描繪成簡單值或復合值的集合。簡單值可以是簡單類型,如整型、浮點型和字符型,或者是XL架構(gòu)標準第2部中定義的內(nèi)置類型,包括各種數(shù)據(jù)類型,如字節(jié)型數(shù)組和枚舉。復合值包括構(gòu)造、數(shù)組和XL架構(gòu)制定組定義的復雜類型。SAP在標準化消息格式環(huán)境中,可以做所有它能完成的工作。消息的主體部分是“text/xl〞形式的IE類型,并且包含一個SAP封套。該封套是一個XL文檔。封套包含了報頭〔可選的〕和報文〔必須有的〕。封套的報文部分總是用于最終接收的消息,而報頭工程可以確定執(zhí)行中間處理的目的節(jié)點。附件、二進制數(shù)字及其他工程可以附加到報文上。SAP提供了一種讓客戶端指定哪個中間處理節(jié)點必須處理報頭工程的方法。由于報頭與SAP消息的主體內(nèi)容是互不相關(guān)的,所以可用它們給消息添加信息,而不會影響對消息報文的處理。4SAP協(xié)議在J2E平臺中的實現(xiàn)如何真正地將挪動設(shè)備融入到ebServies中去呢?這就需要使得PDA、等成為ebServies的客戶端,因此這些設(shè)備至少應該具有處理XL信息的才能。在J2E平臺中實現(xiàn)SAP客戶端的功能,使得嵌入式設(shè)備可以連接企業(yè)的EB效勞是企業(yè)應用中比擬常見的需求。J2E的根本類庫中沒有提供SAP的支持,所以需要在J2E平臺中開發(fā)實現(xiàn)SAP的處理功能。實現(xiàn)SAP協(xié)議客戶端的關(guān)鍵問題分為兩個方面:J2E不同配置的數(shù)據(jù)類型不一樣,導致與SAP協(xié)議封裝的數(shù)據(jù)類型不匹配;J2E平臺沒有提供對XL文件進展處理的功能。針對第一個問題,需要注意只能使用根本類型,對不匹配的數(shù)據(jù)類型采用使用根本類型復合的方式進展處理。針對第二個問題需要在J2E中擴展對XL文件處理的功能。目前有有兩種方法對XL文件進展解析。一種是采用D的方式,另外一種是采用SAX的方式。操作D是一個與XL互相作用的簡單方法,通常這個XL是一棵完好的XL樹,被解析成一個存放在存儲器中的節(jié)點構(gòu)造,你可以遍歷這棵樹。它非常簡單易用,但是因為整棵樹存在于存儲器中造成存儲器的負擔,而對于嵌入式系統(tǒng)來說存儲器的資源是有限的,因此這種方法的使用具有一定局限性。第二種方法在捕捉語法分析事件中,每當語法分析程序遇到數(shù)據(jù)中的特定構(gòu)造,它就會遍歷XL數(shù)據(jù),然后把結(jié)果發(fā)回前面注冊的一個事件監(jiān)聽器中。比方說,當語法分析程序遇到一個起始標記,如<htl>,那么事件監(jiān)聽器將接收一個事件,通知它這個情況,并且向它傳遞任何所需的信息。相對D方式的處理,SAX方法對存儲器的要求比擬低,但是效率要比D方式低。Enhydra的KXL是一個只占很小存儲空間的XL語法分析程序,對于J2E應用程序非常合適。KXL支持D語法分析和操作,但是不支持SAX語法分析。取而代之,它使用一種略微不同的稱為“Pull〞的分析方法。下面是KXL采用D的方式處理XL數(shù)據(jù)的例子:1.Duentd=neDuent();2....3.parser=neXlParser(ab);第一行創(chuàng)立了一個文檔對象,保存XL樹。第三行從一個名為ab的InputStreaReader中創(chuàng)立一個KXL語法分析程序。第四行傳送這個語法分析程序到文檔,然后讓文檔開場分析。XL被遞歸分析,直到到達文檔的結(jié)尾。當分析調(diào)用退出時,整個文檔被裝入內(nèi)存,這時就可以對XL進展操作了。1.Eleentrt=d.getRtEleent();2.inthild_unt=rt.gethildunt();3....4.fr(inti=0;i<hild_unt;i++){5....6.Eleentkid=rt.getEleent(i);7.8.if(!kid.getNae().equals("ab")){9.ntinue;10.}<ab>元素是根元素的直接子元素,可以遍歷根元素的子元素,尋找ab標記,假如子元素不是一個ab標記,那么返回。1.intaddress_ite_unt=kid.gethildunt();2.3.fr(intj=0;j<ab_ite_unt;j++){4....假如找到了ab子元素,開場遍歷它的子元素,并把這些子元素的內(nèi)容打印出來。通過KXL對XL的處理,可以進一步實現(xiàn)對SAP數(shù)據(jù)的處理,實現(xiàn)J2E平臺對SAP協(xié)議的支持。J2EebServies標準〔JSR172〕的制訂給J2E平臺增加兩大功能:一是使其可以遠程訪問基于SAP/XL的ebServies;二是使其具有解析XL數(shù)據(jù)的才能。目前JSR172的標準已經(jīng)制定完成,為了實現(xiàn)這兩大功能,JSR172新定義了提供相應功能的兩個可選包。這兩個包占用內(nèi)存非常少,XL-RP部分大概需要25-30KB的空間,而XL解析器那么需要35KB左右。標準只對JAX-RP的模型提供支持,也就是說僅支持同步的訪問方式,使用J2E客戶端可以向效勞器發(fā)送RP懇求和獲得RP響應。在JSR172中實現(xiàn)的是SAX形式的解析器??梢越馕鯴L之前首先需要創(chuàng)立SAXParser的實例,SAXParserFatryfatry=SAXParserFatry.neInstane();SAXParsersaxParser=fatry.neSAXParser();接下來要獲得XL文件的輸入流,并把它作為其中一個參數(shù)傳遞給saxParser的parse方法,InputStreais=this.getlass().getResureAsStrea("phne.xl");SaxParser.parse(is,neBasiHandler(this));DefaultHandler是SAX2默認的事件處理器基類,用于處理XL解析事件的方法如下:startDuent()haraters(har[]h,intstart,intlength)endDuent()默認情況下,DefaultHandler的上述方法什么也不做,因此必須自己擴展DefaultHandler并且覆蓋上述的方法。程序中提供了一個BasiHandler用來處理xl文件。lassBasiHandlerextendsDefaultHandler在BasiHandler類中有兩個成員變量privateVetrphnes=neVetr();privateStaktagStak=neStak();phnes用來存儲我們已經(jīng)解析出來的Phne對象,tagStak那么用來存放我們解析到的元素名稱,比方snyerissn,phne,nae,lur等。在文檔解釋完畢后,也就是在endDuent()方法內(nèi)我們把解析的結(jié)果顯示在屏幕上,BasiHandler的幾個重要方法如下:publividstartDuent()thrsSAXExeptin{}publividstartEleent(Stringuri,StringlalNae,StringqNae,Attributesattributes)thrsSAXExeptin{if(qNae.equals("phne")){Phnephne=nePhne();phnes.addEleent(phne);}tagStak.push(qNae);}publividendEleent(Stringuri,String
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人工智能倫理治理-深度研究
- 二零二五年度油漆涂料行業(yè)人才培養(yǎng)合同
- 2025年度煙酒店社區(qū)便利店合作經(jīng)營合同
- 二零二五年度經(jīng)紀公司與藝人海外演藝市場拓展合同
- 2025年度二零二五年度道路運輸車輛保險代理合同
- 2025年度貨運保險貨車運輸合同
- 二零二五年度火鍋店加盟店加盟商品牌升級與轉(zhuǎn)型合同
- 2025年度股東借款及股權(quán)激勵計劃合同
- 設(shè)備共享新篇章實驗室技術(shù)與應用拓展
- 2025年倉儲貨物維修合同
- 加油站復工復產(chǎn)方案
- 《鋼筋焊接及驗收規(guī)程》(JGJ18)
- 蘇州市區(qū)2024-2025學年五年級上學期數(shù)學期末試題一(有答案)
- 醫(yī)藥高等數(shù)學知到智慧樹章節(jié)測試課后答案2024年秋浙江中醫(yī)藥大學
- 2024年濰坊工程職業(yè)學院單招職業(yè)適應性測試題庫完美版
- GB/T 44823-2024綠色礦山評價通則
- 人教版英語高考試卷與參考答案(2024年)
- 《共情的力量》課件
- 2022年中國電信維護崗位認證動力專業(yè)考試題庫大全-上(單選、多選題)
- 水平二(四年級第一學期)體育《小足球(18課時)》大單元教學計劃
- 醫(yī)藥高等數(shù)學智慧樹知到課后章節(jié)答案2023年下浙江中醫(yī)藥大學
評論
0/150
提交評論