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