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