摘要:簡要介紹了Windows下的J2ME(Java2 Mobile Edition )手機開發環境——J2ME Wire less Toolkit,討論基于其上的手機監控系統的設計和實現,并就無線通信系統部分如何實現從現有的GPRS系統過渡到3G系統做了介紹。
關鍵詞:J2ME;手機監控;無線通信;GPRS;3G
中圖分類號:TN929文獻標識碼:A文章編號:1009-3044(2009)24-6983-02
Monitor System Based on Mobile Phone with J2ME
YE Peng-ge, WANG Han
(Hangzhou Armed Police Command College, Hangzhou 310023, China)
Abstract: The Article briefly introduces the platform of J2ME mobile phone developing environment which is operated under Windows -J2ME Wireless toolkit. Discusses the technology ofdesign andrealization the Monitor System based on Mobile phone with J2ME.Meanwhile,Introduces the Wireless communication system part on how to achieve 3G system fromthe existing GPRS system.
Key words: J2ME; mobile phone monitor system; wireless communication; GPRS; 3G
隨著3G時代來臨,數據傳輸速度有了大幅提升,3G可以實現名副其實的移動寬帶。除了能夠滿足日常通話、短信需求之外,3G手機還能處理圖像、音樂、視頻流等多種媒體形式。對于企業、政府等行業用戶而言,視頻監控應用前景廣闊。比方說,上半年甲型H1N1流感盛行,來自墨西哥的航班降落浦東國際機場,應上海市出入境檢驗檢疫局對來自流感疫區的檢疫要求,上海電信緊急在浦東機場停機坪等處安裝3G無線全球眼,以實現航班落地后在機艙內實施檢驗檢疫測量體溫等防疫工作。同時,3G時代的到來也給個人用戶帶來實實在在的便利。舉個例子,正在上班的母親,擺弄了一下手機按鍵,孩子在家的實時圖像就出現在了手機屏幕中。本文主要討論基于J2ME技術,實現手機移動多媒體業務的一個典型應用:手機監控系統,并就無線通信系統部分如何實現從現有的GPRS系統過渡到3G系統做了介紹。
1 系統采用主要技術
1.1 J2ME 與MIDlet
Sun Microsystems 將 J2ME 定義為“一種以廣泛的消費性產品為目標的的高度優化的 Java 運行時環境,包括尋呼機、移動電話、可視電話、數字機頂盒和汽車導航系統。”
J2ME 使用配置(Configuration)和簡表(Profile)定制 Java 運行時環境 (JRE)。作為一個完整的JRE,J2ME 由配置和簡表組成,配置決定了使用的 JVM,而簡表通過添加特定于域的類來定義應用程序。
MIDP(Mobile Information Device Profile,移動信息設備簡表)定義了關于移動信息設備(主要指智能手機和一部分具有無線通信功能的PDA)的圖形界面,輸入和時間處理,持久性存儲,短消息等等的API,并且考慮到了移動信息設備的屏幕和內存限制。類似于J2SE中的Applet框架,MIDP提供了基于javax.microedition.midlet包的MIDlet應用程序框架。
MIDlet 是MDIP應用程序的基本單位,它必須繼承自javax.microedition.midlet. MIDlet類。MIDlet 是本系統客戶端所開發的手機應用程序類型。MIDlet 程序包括三種運行狀態:Active,Paused和Destroyed,。MIDlet的運行是由startApp(),pauseApp()和destroyApp()這三個方法控制的。編寫 一 個 MIDlet程序,實際上就是實現startAtpp(),pauseApp()和destroyApp()這三個方法和構造函數,然后控制程序在這三種運行狀態之間轉換而成的。
1.2 移動流媒體和Java多媒體框架(JMF)
所謂移動流媒體技術就是把連續的影像和聲音信息經過壓縮處理后放到網絡服務器上,讓移動終端用戶能夠一邊下載一邊觀看、收聽,而不需要等到整個多媒體文件下載完成就可以即時觀看的技術。實際上移動流媒體技術是網絡音視頻技術和移動通訊技術發展到一定階段的產物,它是融合很多網絡技術之后所產生的技術,它會涉及到流媒體數據的采集、壓縮、存儲以及網絡通信等多項技術。
隨著第三代移動通信技術的逐步成熟,將移動流媒體技術引入移動數據增值業務,已經成為目前全球范圍內移動業務研究的熱點之一。移動流媒體業務的各種應用也相繼出現,例如人們非常熟悉的視頻點播、遠程教育、遠監控等。
JMF實際上是Java的一個類包。JMF 2.1.1技術提供了先進的媒體處理能力,從而擴展了Java平臺的功能。這些功能包括:媒體捕獲、壓縮、流轉、回放,以及對各種主要媒體形式和編碼的支 持,如M-JPEG、H.263、MP3、RTP/RTSP (實時傳送協議和實時流轉協議)、Macromedias Flash等。JMF 2.1.1還支持廣受歡迎的媒體類型,如QuickTime、Microsoft AVI和MPEG-1等。此外,JMF 2.1.1軟件中包括了一個開放的媒體架構,可使開發人員靈活采用各種媒體回放、捕獲組件,或采用他們自己的定制的內插組件。
在開發JMF 應用程序之前要完全理解JMF 的體系架構、接口和類。JMF 提供的模型可大致分為6類:數據源(Data source),截取設備(Capture Device,包括視頻和音頻截取設備),播放器(Player),處理器(Processor),數據格式(Format)和管理器(Manager)。
2 系統實現
整個系統由由服務器端、無線通信系統和客戶端三個部分構成。系統充分利用了無線通信系統的移動性和靈活性,無論用戶身處何地,只要隨身攜帶了智能手機等無線移動終端就可以對自己關心的地方進行實時監視。
2.1 服務器端
服務器端 用Tomcat5 .5+Servlet+mySql來搭建,用J2SE+JMF+JDBC編程實現。服務器端主要做的工作有兩個:1) 捕獲視頻,保存視頻;2) 架設web服務器。
2.1.1 保存監控數據為視頻文件
JMF API中既有對HTTP協議的支持也有對RTP協議的支持,用來實現視頻流的采集與編碼。對于本系統而言,首先是找到捕獲設備,然后取到捕獲設備的位置信息。如果要保存所采集的數據,就要創建一個處理器。然后將處理器的輸出作為數據池的輸入。當啟動數據池的時候,就可以把捕獲的數據保存成文件了。具體步驟如下:1) 獲取視頻捕獲設備的medialocator地址。2) 以獲取的medialocator為參數,創建Processor。3) 設置Processor,輸出類型為MPEG格式。4) 以Processor的輸出為參數,創建數據源。5) 建立一個保存文件位置的MediaLocator。6) 以輸入數據源和輸出數據源為參數,建立一個DataSink。7) 調用Processor的StreamWriterControl,設置Processor控制生成文件的大小。8) 設置完畢,可以啟動Processor和DataSink來保存捕獲數據了。
2.1.2 架設web服務器
用Tomcat配置web服務器。用Servlet來監聽是否有客戶端請求,當客戶端發送請求至服務器時,服務器將請求信息發送給Servlet,并讓Servlet建立起服務器返回給客戶端的響應。
2.2 無線通信系統
本系統的通信部分可以采用現有的2.5G或者即將商用的3G。其主要區別為數據傳輸速率及通信協議的選用。雖然現在的流媒體發展迅速,但是針對手機而言,由于手機本身內存的限制以及無線通信系統的不確定性,支持RTP/RTCP等流媒體傳輸協議的終端還不是很多,而2.5G系統中能夠訪問網絡的手機終端幾乎都支持HTTP協議,所以本系統選擇了HTTP協議作為整個系統的協議,在GPRS網絡中實現視頻監控功能。GPRS是一種基于GSM系統的無線分組交換技術,提供端到端的、廣域的無線連接。相對原來GSM的撥號方式的電路交換數據傳送方式,GPRS是分組交換技術,具有“實時在線”、“按量計費”、“快捷登錄”、“高速傳輸”、“自如切換”的優點。GPRS的數據傳輸最高可達到115kbps- 170kbps。隨著3G的商用,本系統可以不做任何修改,平滑地過渡到3G系統,或者只需把HTTP協議改為更為適合流媒體傳輸的RTP/RTCP協議,便可以通過較小的改動輕松的過渡到3G系統,達到更好的效果。
2.3 客戶端
系統的客戶端是支持MIDP2.0的Java移動終端(手機、PDA等)。目前我們所使用的手機絕大多數都滿足此要求,所以利用現有的手持設備就可以輕松的對自己關心的區域進行監控。客戶端的主要功能是與服務器端建立連接,并且播放從服務器取得的視頻文件。客戶端可以隨時隨地連接服務器,進行接近于實時的監控。
客戶端采用MVC設計模式,用J2ME+MMAPI編程實現。移動媒體API(Mobile Media API)為J2ME設備上媒體的播放提供了高層的API接口,很容易實現視頻在手機中播放,關鍵代碼如下:
pl=Manager.createPlayer(in,“video/mpeg”);
pl.prefetch();
vc =(VideoControl)pl.getControl(“VideoControl”);
3 結束語
本文提出了一種基于J2ME的手機監控系統的解決方案。本系統的設計和實現既可以在目前的GPRS網絡上順利的進行視頻監控,又可以平滑的過渡到3G系統,從而提供更加順暢的視頻流服務。當然,隨著3G的大規模商用的展開,3G平臺上的服務將日趨多元化,對整個系統的安全性和流暢性還會提出更高的要求。
參考文獻:
[1] 彭波.Java多媒體技術[M].北京:清華大學出版社,2005.
[2] 劉斌,丁璇,龐暉.J2ME手機開發入門[M].北京:人民郵電出版社,2006.
[3] 劉志成,周啟亞.Java ME程序設計案例教程[M].北京:清華大學出版社,2009.
[4] 劉柳.基于J2ME的無線視頻監視系統研究[D].北京:北京科技大學,2007.
[5] 王森.Java手機/PDA程序設計入門[M].北京:電子工業出版社,2004.
[6] 陳暉.手機視頻監控的JAVA實現方案探討[J].機電技術,2008(4):11-18.
[7] 高博.基于J2ME的移動通信技術的研究與應用[D].沈陽:沈陽工業大學,2006.
[8] 郭春雷,李祥.基于J2ME平臺手機遠程監控系統的研究與實現[J].計算機系統應用,2005(11):86-88.