趙景 張俊濤
摘 要:傳統(tǒng)的移動(dòng)應(yīng)用程序主采用PULL運(yùn)行方式來(lái)實(shí)現(xiàn)應(yīng)用程序的開(kāi)發(fā),由于PULL方式不能有效滿足用戶對(duì)移動(dòng)應(yīng)用程序的需求,而PUSH注冊(cè)機(jī)制可以實(shí)現(xiàn)人們對(duì)移動(dòng)應(yīng)用程序所需要的功能,因此,本文主要研究PUSH注冊(cè)機(jī)制在J2ME平臺(tái)下的JAVA移動(dòng)應(yīng)用程序開(kāi)發(fā),通過(guò)分析PUSH注冊(cè)機(jī)制的工作原理,研究PUSH注冊(cè)機(jī)制在JAVA移動(dòng)應(yīng)用程序開(kāi)發(fā)中的應(yīng)用。
關(guān)鍵詞:PUSS注冊(cè)機(jī)制;JAVA移動(dòng)應(yīng)用程序;工作原理;應(yīng)用
JAVA移動(dòng)應(yīng)用程序主要由J2ME、J2EE、J2SE等語(yǔ)言組成,而J2ME是當(dāng)前JAVA移動(dòng)應(yīng)用程序開(kāi)發(fā)的主要技術(shù)之一,研究PUSS注冊(cè)機(jī)制在J2ME平臺(tái)下的JAVA移動(dòng)應(yīng)用程序開(kāi)發(fā)是非常有意義的。J2ME主要包括有線連接設(shè)備配置(CLDC)和連接設(shè)備配置(CDC)等兩層結(jié)構(gòu),而CLDC之上的移動(dòng)信息設(shè)備配置文件(MIDP)的應(yīng)用程序模塊為MIDlet,無(wú)論是手機(jī)移動(dòng)應(yīng)用程序,還是企業(yè)移動(dòng)應(yīng)用程序,這些都需要MIDlet自啟動(dòng),而MIDlet自啟動(dòng)需要利用PUSH注冊(cè)機(jī)制來(lái)實(shí)現(xiàn)。
1 PUSS注冊(cè)機(jī)制在J2ME平臺(tái)下的工作原理
1.1 PUSH技術(shù)簡(jiǎn)介
PUSH技術(shù)是一種基于C/S模式的新興技術(shù),是服務(wù)器通過(guò)Internet將信息主動(dòng)發(fā)送給客戶端的技術(shù),傳統(tǒng)的PULL技術(shù)主要通過(guò)客戶端在提交請(qǐng)求的情況下,才能由服務(wù)器將信息發(fā)送給客戶端,而PUSH技術(shù)不需要客戶端提交請(qǐng)求,而又服務(wù)器直接發(fā)送信息給客戶端。PUSH技術(shù)具有信息主動(dòng)性、及時(shí)性的特點(diǎn),其主要通過(guò)服務(wù)器主動(dòng)尋找用戶,并采用篩選機(jī)制來(lái)實(shí)現(xiàn)信息的發(fā)送。由于PUSH技術(shù)與Internet信息篩選模式不相適應(yīng),導(dǎo)致PUSH技術(shù)信息發(fā)送的準(zhǔn)確性較差,但是,PUSH技術(shù)在無(wú)線移動(dòng)網(wǎng)絡(luò)中發(fā)揮著重要作用,由于無(wú)線移動(dòng)網(wǎng)絡(luò)受到許多限制,如無(wú)線網(wǎng)絡(luò)寬帶、移動(dòng)終端能力等,這些因素在一定程度上影響了移動(dòng)終端用戶對(duì)信息的查詢,而PUSH技術(shù)可以通過(guò)主動(dòng)發(fā)送信息來(lái)實(shí)現(xiàn)用戶信息查詢,PUSH技術(shù)可以有效解決無(wú)線移動(dòng)網(wǎng)絡(luò)所存在的問(wèn)題。
1.2 PUSH注冊(cè)機(jī)制概述
PUSH注冊(cè)機(jī)制是JAVA移動(dòng)設(shè)備應(yīng)用程序開(kāi)發(fā)的一種被自啟動(dòng)的方法,PUSH注冊(cè)機(jī)制位于AMS(應(yīng)用程序管理軟件)的內(nèi)部,其是通用連接框架的(GCF)的一部分,如圖1所示,表示PUSH注冊(cè)機(jī)制的典型元素,從圖中可以看出,PUSH注冊(cè)機(jī)制主要包括入站連接隊(duì)、時(shí)鐘警告隊(duì)、基于入站連接的MIDlets應(yīng)用隊(duì)列,PUSH注冊(cè)機(jī)制實(shí)現(xiàn)了MIDlets應(yīng)用程序的PUSH事件激活。
在MIDlet應(yīng)用程序中,PUSH注冊(cè)機(jī)制主要經(jīng)過(guò)注冊(cè)、監(jiān)聽(tīng)、處理等三個(gè)階段,如圖2所示,表示PUSH注冊(cè)機(jī)制與激活示意圖,從圖中可以看出,第一步,需要在MIDlet應(yīng)用程序中實(shí)現(xiàn)PUSH注冊(cè)連接,并讀取連接URL和打開(kāi)連接,最終讀取數(shù)據(jù);第二步;通過(guò)PUSH注冊(cè)連接實(shí)現(xiàn)AMS端口的監(jiān)聽(tīng),當(dāng)AMS監(jiān)聽(tīng)到連接的信息后,則將信息轉(zhuǎn)交給激活的MIDlet應(yīng)用程序;第三步,將外部應(yīng)用程序連接到AMS端口,并進(jìn)行相關(guān)的處理操作。
PUSH靜態(tài)注冊(cè)和動(dòng)態(tài)注冊(cè)。第一,靜態(tài)注冊(cè),是指通過(guò)MIDlet應(yīng)用程序描述符文件中指定相關(guān)系信息來(lái)完成注冊(cè),即指定在安裝過(guò)程中已經(jīng)存在的MIDlet-PUSH信息,這些信息一直保存在MIDlet套件設(shè)備中,從而實(shí)現(xiàn)靜態(tài)注冊(cè)。一般情況下,PUSH靜態(tài)請(qǐng)求通常使用MIDlet應(yīng)用程序描述符(JAD)文件中的Midlet-Push-
PUSH連接注冊(cè)完成后,連接將會(huì)被應(yīng)用程序管理軟件(AMS)監(jiān)聽(tīng)注冊(cè),當(dāng)消息被應(yīng)用程序管理軟件監(jiān)聽(tīng)到后,MIDlet應(yīng)用程序?qū)⒈患せ?,其中PUSH注冊(cè)機(jī)制有內(nèi)部時(shí)鐘激活、入站連接激活等兩種激活方式,但是,內(nèi)部時(shí)鐘激活方式只能應(yīng)用在動(dòng)態(tài)注冊(cè)連接中,而入站連接激活方式可以應(yīng)用在靜態(tài)、動(dòng)態(tài)注冊(cè)連接中。對(duì)于靜態(tài)地址的入站連接,其可以通過(guò)調(diào)用Conector.open()函數(shù)來(lái)指定一個(gè)即包括協(xié)議參數(shù),又包括本地入站端口的URL參數(shù),而動(dòng)態(tài)地址的入站連接,主要通過(guò)調(diào)用Conector.open()函數(shù)來(lái)制定相對(duì)應(yīng)的協(xié)議。
2 PUSH注冊(cè)機(jī)制在JAVA移動(dòng)應(yīng)用程序開(kāi)發(fā)中的使用
針對(duì)PUSH注冊(cè)機(jī)制在JAVA移動(dòng)應(yīng)用程序開(kāi)發(fā)中的應(yīng)用,通過(guò)利用無(wú)線消息API、PUSH注冊(cè)機(jī)制等結(jié)合并采用入站連接激活方式來(lái)實(shí)現(xiàn)MIDlet應(yīng)用程序的自啟動(dòng),以J2ME模擬器或JAVA手機(jī)為平臺(tái),采用OTA運(yùn)行方式來(lái)運(yùn)行服務(wù)器端和客戶端,以模擬器自帶的號(hào)碼為依據(jù),由服務(wù)器端主動(dòng)發(fā)送消息到客戶端,這樣客戶端就可以自動(dòng)接收處理信息。MIDlet應(yīng)用程序主要包括SendUI、Reader、SMSMIDlet等三類,第一,SendUI類,主要負(fù)責(zé)將用戶輸入的號(hào)碼和短消息內(nèi)容通過(guò)新線程來(lái)實(shí)現(xiàn)短消息的發(fā)送工作;第二,Reader類,主要負(fù)責(zé)短消息的接收顯示;第三,SMSMIDlet類,其主要通過(guò)調(diào)用startApp()方法來(lái)進(jìn)行界面的初始化,通過(guò)創(chuàng)建MessageConnection服務(wù)器模式來(lái)確保SMSMIDlet短消息的正常接收。例如以第一個(gè)模擬器號(hào)碼為555000,第二個(gè)模擬器號(hào)碼為5550001,通過(guò)向SMSMIDlet添加PUSH注冊(cè)機(jī)制,并采用OTA運(yùn)行方式來(lái)運(yùn)行發(fā)送端和客戶端模擬器,并編輯短信內(nèi)容并單擊“發(fā)送”,這樣接收端自動(dòng)激活并接受短信,如圖3、圖4所示。
3 結(jié)束語(yǔ)
PUSH注冊(cè)機(jī)制與傳統(tǒng)的PULL技術(shù)相比,其具有信息及時(shí)性、主動(dòng)性的特點(diǎn),PUSH注冊(cè)機(jī)制主要由服務(wù)器自動(dòng)將信息發(fā)送給客戶端,其實(shí)現(xiàn)了應(yīng)用程序自啟動(dòng)的方法,因此,PUSH注冊(cè)機(jī)制應(yīng)用在JAVA移動(dòng)應(yīng)用程序開(kāi)發(fā)中具有重要意義。
[參考文獻(xiàn)]
[1]朱晨鳴.PUSH注冊(cè)機(jī)制在JAVA移動(dòng)應(yīng)用程序開(kāi)發(fā)中的使用[J].中國(guó)水運(yùn)(理論版),2007,12:133-136.
[2]陳玉濤.PUSH技術(shù)在JAVA移動(dòng)應(yīng)用程序開(kāi)發(fā)中的應(yīng)用[J].電子測(cè)試,2013,08:3-5.
[3]姜景根.基于SMS的PUSH技術(shù)及其在移動(dòng)網(wǎng)絡(luò)異步通信中的研究與應(yīng)用[D].貴州大學(xué),2008.
[4]黃亮.基于Java ME的無(wú)線移動(dòng)應(yīng)用系統(tǒng)研究與實(shí)現(xiàn)[D].武漢理工大學(xué),2008.
[5]張亞杰.基于Android平臺(tái)的移動(dòng)終端應(yīng)用程序的研究與開(kāi)發(fā)[D].鄭州大學(xué),2013.