1 引言
Java語言是由美國SUN公司在1995年設計的,原是為機頂盒這種嵌入式系統設計的,但並沒有在嵌入式領域得到發展,隨著Internet的普及JAVA占領了PC端和Server端,現在Java又回到了嵌入式領域。為了和PC端、Server端的Java相區別,用於嵌入式系統的Java被稱為Java 2 Micro Edition,簡稱J2ME。
以嵌入式產品的典型——手機來說,我們可以看到,手機軟件經歷了三個階段,最早只有基本的語音通話服務,其後手機上增加了電話本、短消息和游戲等簡單的應用功能,去年又增加了通過WAP方式訪問Internet的功能。
現在手機廠商還存在兩個普遍的問題:一個是缺乏開放的編程平台,另一個是只能通過WAP方式訪問Internet,沒有其他方式實現。
通過應用J2ME技術開發手機的應用軟件,我們就可以解決這兩個問題:
首先,Java語言是跨平台運行的,軟件開發商可以很容易地開發應用程序,也可以方便地安裝到手機中;
其次,J2ME提供了HTTP、TCP等高級Internet協議,Java程序可以自由的訪問Internet。
2 J2ME結構分析
圖1 J2ME應用示意圖
Java內部分三層,從下到上分別是VM(虛擬機)、Configration (配置層)和Profile(框架層)。
VM負責建立Java虛擬機,解釋Java 字節碼;Configration建立了核心類庫,功能少(比如沒有UI),主要面向水平市場;Profile建立了高級類庫,功能豐富,面向垂直市場。
針對手機內存少、速度慢和IO差的特點,J2ME針對VM、Configration和Profile3層做了特殊的實現:
在虛擬機層,在手機上移植KVM,只需要幾百K內存就可以運行;
在配置層,J2ME規定了連接有限設備配置(Connected, Limited Device Configration),簡稱CLDC。它適用於有雙向網絡連接,但是硬件資源有限的設備;
在框架層,J2ME規定了移動信息設備框架(Mobile Information Device Profile),簡稱MIDP。它適用於手機或雙向尋呼機。
3 J2ME與WAP的關系
圖2 WAP與手機(J2ME)的關系
J2ME與WAP並沒有直接競爭關系,而是共存互助。
WAP包括2層內容:一層是無線Internet傳輸層,針對無線的特點制定了WDP、WTP等等協議;另一層是應用層,也就是WAP Browser,WAP為了適應低速網絡的限制,簡化了Internet標准的Html,制定了WML標准。
那麼J2ME在傳輸層和應用層又是什麼呢?在傳輸層,J2ME提供了一組面向應用程序的高層協議,包括HTTP和TCP(或UDP等),實際的傳輸可以基於WAP實現,也可以基於其他方式(比如CSD或GPRS等)。在應用層,J2ME提供了全功能的Java開發環境,可以用ClIEnt/Server方式來訪問Internet上的所有數據。如果需要的話,軟件開發商甚至可以開發出Html Browser。
所以J2ME與WAP並沒有競爭關系,而是面向不同領域的兩套解決方案。如果是面向浏覽的應用,比如新聞、天氣預報等,可以繼續使用WAP方案;如果是需要智能處理的應用,比如email、股票等,就更適合用J2ME實現。
4 J2ME中虛擬機KVM
KVM是Java虛擬機;是一個想象中的機器,在實際的計算機上通過軟件模擬來實現。Java虛擬機有自己想象中的硬件,如處理器、堆棧、寄存器等,還具有相應的指令系統。引入Java語言虛擬機後Java語言在不同平台上運行時不需要重新編譯。Java虛擬機在執行字節碼時,把字節碼解釋成具體平台上的機器指令執行。
KVM由五部分組成:一組指令集、一組寄存器、一個棧、一個無用單元收集堆(Garbage-collected-heap)、一個方法區域。這五部分是Java虛擬機的邏輯成份,不依賴任何實現技術或組織方式,但它們的功能必須在真實機器上以某種方式實現。
5 J2ME未來應用
Motorola是J2ME的主要支持者,第一個在手機上移植了KVM,又領導全球手機廠家制定了MIDP規范。日本已經將J2ME開發的手機投入到商業應用,主要是游戲、聊天、證券等交互信息應用領域。
成都華好網景公司最近推出采用J2ME開發的手機地圖浏覽器,首家實現以J2ME MIDP方式支持Java手機,在OkMap地圖服務器的支持下,可對多個城市進行地圖浏覽、單位查找、街道查找、按類型進行最近目標查找、公交換乘咨詢、兩點間距離估算等操作。
北京科銀京成公司與SUN公司合作推出了基於他們自己開發的操作系統平台的Java虛擬機,並可以實現面向手機和PDA的應用。
美國硅谷一些公司也在國內成立了分公司,專門推廣Java在手機和PDA等終端產品上的應用。
目前在手機市場上已經出現的應用Java的產品有:
(1)2001年4月,美國Nextel通信公司宣布推出兩款由摩托羅拉公司生產的JAVA手機,i85s售價為200美元, i50sx售價為150美元。這是美國市場上首先推出的Java手機。同時支持WAP功能;
(2)2001年6月底,摩托羅拉公司推出天拓A6288,支持J2ME開發程序;
(3)日本J-Phone公司從2001年7月中旬開始上市兩種內置對應“Java”應用軟件和3D的數碼相機的手機;
(4)西門子公司2001年6月推出一款6688I的手機是世界上首部KJAVA手機,可以下載任何用KJava計算機語言編寫的應用程序,包括各種游戲軟件;
我們預計在未來的兩至五年內,大多數新的信息設備將與Internet連接,這將導致用戶使用這些設備的方式產生根本性的變化。用戶無論何時、何地和使用何種設備均可方便地傳遞網頁內容、企業數據和個人數據。
這些新信息設備上網的一個顯著後果是比現今的設備更加趨向於可自定制化和個人化。過去的設備有與硬件相關的程序代碼。與此不同,現在新的信息設備將允許用戶從Internet下載新的服務和應用程序來定制設備。
現在已經有一些無線設備廠商正在制造新的蜂窩手機,可使用戶下載諸如交互游戲、網上銀行、訂票系統和無線協作等等的應用程序。
6 J2ME開發信息終端技術
目前,信息終端的產品代表就是手機和PDA,但是他們的功能都很有限,隨著J2ME的發展,未來的信息終端功能可以無限拓展。
按照J2ME的層次結構,我們分析采用J2ME開發信息終端的技術。
*J2ME中KVM軟件平台的開發;
目前,有很多信息終端產品開發商都開發了適用於自己產品的KVM軟件平台,也有一些軟件供應商采用開放的技術開發面向各類嵌入式產品的KVM平台,結合具體的信息終端再進行二次開發,完成針對具體產品的KVM。
關於KVM軟件平台的開發,我們認為需要注意兩個問題:
首先,為了支持用戶和信息終端提出的靈活性的和可定制性的要求,KVM應用平台必須設計成模塊化和可縮放化。
其次,隨著設備制造商開發新的設備家族,KVM軟件平台技術應該提供范圍廣泛的框架層、配置層和虛擬機,它們針對適應不同的應用程序、不同的需求、不同的內存,進行過最優化處理。
關於對Internet的訪問,在使用KVM應用平台後可以解決:
(1)浏覽器方式訪問Internet的功能有限;
(2)不能直接訪問Internet,需要Gateway過濾;
(3)只顯示WML,不能顯示復雜格式圖形;
(4)在線交易增加服務器負荷,速度慢;
(5)不能訪問本地存儲區;
*J2ME配置層的應用
在配置層,J2ME規定了連接有限設備配置CLDC,它適用於有雙向網絡連接,但是硬件資源有限的設備;該層軟件的開發主要實現硬件設備的標准配置,隨著設備的不同實現不同的配置。
這一層對於用戶可見度要低一些,但對框架層非常重要。它針對 “水平”市場的需求,定義了Java虛擬機的最小功能集和Java類庫的最小集合。在某種意義上,配置層定義了開發者在所有設備上都可以使用的Java特性和類庫的“最小公分母”。
*在框架層按照MIDP規范開發的各種API;
框架層針對不同的設備,在配置層的基礎上規定了附加的API。為了滿足不斷更新的令人興奮的應用程序,框架層可以擴充新的Java庫類。
*面向具體信息終端的應用程序;
具有J2ME的KVM、配置層和框架層後的信息終端,可以實現各種功能的應用程序,目前已經實現的功能包括交互性游戲、聊天、電子郵件、證券交易等;根據我們的分析,未來的信息終端將會根據市場的需要具備客戶自由定制、功能專用、信息多樣等特點。
7 結束語
J2ME是專門面向嵌入式並且對資源要求較少的產品的開發工具,尤其適合在無線通信產品上網絡應用軟件的開發。相信隨著無線網絡速率的提高,J2ME工具的應用和產品開發將進入一個高速發展的時期。