J2ME技術使"Java無所不在" (一)

原创 2003年08月24日 16:58:00

轉貼自JavaWorld.com﹐作者: Michael Juntao Yuan, 翻譯: doodoofish

 

摘要


在前不久的"2003 JavaOne"會議上最矚目的名詞就是"Java無所不在"。但對許多開發者來說﹐確切理解"Java無所不在"的涵意不是這麼容易的﹐因為這個概念似乎沒有任何相對應的實際的Java API。"Java無所不在"是一種觀念﹐它影響Java平臺各個方面的演進和發展。對開發者來說﹐這個觀念遠不止與切身有關而已﹐它預示着在未來最有市場的Java技術和最有利益回報的Java商務的到來。在本文中﹐Michael Juntao Yuan解釋了"Java無所不在"這一觀念﹐它與傳統Java理念的關係﹐以及討論了它對開發人員的影響﹐特別是對當今企業級開發人員。(2400字﹐2003年8月22日)

在"Java是Java"之前﹐它被稱作Oak--一種用于在用戶電器上開發嵌入式應用的語言。在90年代那種無所不在的網絡互聯smart device還未出現﹔此一時期﹐Java作為網絡語言蓬勃發展起來﹐它被用于增強瘦客戶端(applets)﹐而後又因為服務器端的平臺技術(servlets和J2EE)而獲得巨大的成功。然而﹐巨大的並有利益回報的客戶端軟件技術這一塊仍令開發人員難以搞懂和掌握。不管Java的工具如何有垮平臺的能力﹐微軟的視窗系統的壟斷地位仍舊屹立不倒。隨着應用服務器市場日益飽和﹐並且J2EE服務器正變成"日常用品"﹐Java的成長處于關鍵時刻。

幸運的是﹐Java在客戶端上的風向已經出現變化了。隨着今年Smart Wireless Device出貨遠超過PC電腦的銷量﹐視窗系統不再是客戶端平臺的默認標準了。在2003年3月的會議演講上Bill Gates把當今無線市場比喻成"視窗系統出現前的早期階段"﹐那時市面上有巨大的投機和工作機會﹐並且沒有統治優勢的廠商。Java成為真正意譯上普遍存在的端到端平臺的機會終于到來了。

Java無所不在的觀念由Sun Microsystems在2003年JavaOne會議上提出﹐目標是提昇Java在大量成長的端到端解決方案市場中的能力。在本文中﹐我將闡述Java無所不在這個概念﹐它支持何種應用﹐它對開發人員有何意義。

 

什麼是"Java無所不在"?


從技術上講﹐"Java無所不在"是一種單一架構﹑端到端的解決方案。在服務器上的J2EE﹐客戶端上的J2SE和J2ME﹐以及嵌入式系統中的J2ME和JavaCard共享同一的基本語言特性﹑API﹑類庫﹑甚至開發工具。"Java無所不在"對開發人員極有價值的意義是最大限度地提供開發效率﹐並允許現有的開發人員無須經過重新培訓而能參與到各種不同市場中來。

經過若干年開發和PC平臺的成熟﹐J2SE和J2EE的架構已相對穩定。但在移動客戶端上﹐平臺仍舊在迅速演進中。與眾多設備以及網絡廠商的合作已成為一種需求﹐這一需求已經確確實實地把J2ME鎖定為一個遠景目標。

然而﹐要證明J2ME對"Java無所不在"成功的重要性就要知道﹕設備市場不僅巨大﹐而且比PC市場更有利可圖﹐因為移動設備的用戶更願意為服務付錢。"Java無所不在"的概念預想Java Runtime在各部出廠的smart device上安裝﹐這是一個頗具野心的目標。但如果成功﹐"Java everywhere"不僅將創造新的機會﹐而且將幫助整合其他相關的Java技術。為了使Java在所有設備上運行﹐我們必須遵從Java中最被認可的原則之一---Write Once, Run Anywhere (WORA).。

 

比Write Once, Run Anywhere更宏大


因為專著于架構上的持續性和技能過渡﹐Java無所不在遠比傳統的Write Once, Run Anywhere更宏大。因為在small devices資源的限制﹐我們不能直接在small devices上運行J2SE程序。J2ME的架構本身由configurations和profiles組成﹐它們每個都支持各種J2SE的核心語言類庫。通用的WORA原則被適當調整了﹐因為我們不能再期望一個Java程序在所有J2SE和J2ME設備上都能運行﹐而是讓WORA原則用于在同一J2ME profile的設備上。

甚至對于相近的設備﹐如移動電話﹐標準J2ME profile(如Mobile Information Device Profile, MIDP)只指明一組普遍的API和特性﹐每個設備都必須支持這些API和特性。然而﹐設備市場被認為是高速變革的﹐製造商通過提供新特性和新能力來事自己的設備區別于其他設備(如﹐從PDA電話到相機電話﹐再到視訊電話)。這對Java開發人員來說使用這些新特性來開發應用是相當困難的。


在當前J2ME的架構中﹐對那些先進設備特性的支持可通過可選包來實現。可選包的API在JCP組織中被開發和標準化。它們使開發人員能夠對相近的設備編寫可移植的應用程序。當今﹐MIDP可選包支持最現代的移動電話的特性: 從短信﹐多媒體內容﹐藍牙連接技術﹐和全球定位系統GPS﹐到SOAP Web Services。可選包的方法甚至已經用于J2SE的領域。例如﹐JSR(Java Specification Request)197讓J2ME通用連接框架(J2ME Generic Connection Framework)用于J2SE﹐它使得J2ME網絡應用程序能在J2SE的PC上運行。

當然﹐眾多的可選包有時會讓人困惑。整合的工作正在進行中。最重要的工作是JSR 185﹐無線工業Java技術(Java Technology for the Wireless Industry)。這個JSR 185的專家組由那些主要設備廠商和無線經銷商組成。這個JSR定義了在J2ME中各種不同組件的關係和交集。JSR 185提供了文件﹐TCK(Technology Compatibility Kit)suites技術兼容性工具套件﹐和給用戶和廠商的指南。

設備提供商也能通過基于它們支持的特性和API對設備的分類來幫助開發人員。一個很好的例子就是Nokia30﹐40﹐和60開發平臺系列。

 

開發工具是關鍵


要讓"Java無所不在"成功﹐開發人員必須採用Java來解決現實社會中端到端移動的問題。現在讓我們看看哪些開發人員會關注Java技術
1﹑當今﹐有3百萬Java開發人員。其中許多人將在未來進入smart device領域﹐因為這裡有錢﹐有工作機會。
2﹑現在的smart device開發人員很多使用C/C++。因為Java的帶來巨大的性能提高﹐這些人中的許多人正把Java看作一種更安全和高效的選擇。
3﹑擁有VB技術和客戶端開發經驗的低端開發人員正在打算轉向。他們可能轉到微軟的.NET或Java平臺。

為了吸引這些開發人員到Java陣營中來﹐一個能力超強並讓人熟悉的開發工具是關鍵。在即將到來的J2SE1.5中有新的特性﹐這一特性極大地把減少Java複雜度作為目標。許多創新如Java metadata facility (JSR 175)和一個Java IDE extension API (JSR 198)使得開發一流Java開發工具變得更加容易了。

在2003年JavaOne大會中﹐SUN演示了他們的Rave項目﹐一個用戶企業Java開發的IDE。從許多方面來講﹐Rave很象Microsoft Visual Studio .Net。它被設計成用來吸引VB開發人員。在會議中﹐SUN也演示了Relator項目﹐一個讓企業移動應用開發人員來無縫整合J2ME客戶端和J2EE服務器的工具。

在J2ME裡﹐開發工具正雨後春筍般得冒出來。所有主流Java IDE現在都支持J2ME的開發。現在的挑戰是讓它們支持更多的專有設備的類庫和模擬器(Emulator)。在JavaOne大會中﹐Borland和IBM宣佈Jbuilder和WebSphere Studio Device Developer將支持Nokia設備的特性。

在下面的部份﹐我們將詳細介紹J2ME。

WattUp:真正的无线充电技术,可在4.6米内充电

 无线充电已经存在了一段时间,但不论标准是什么,几乎都无法摆脱一个使用USB线缆的充电底座,所以严格意义上也并非是完全无线。那么,我们到底有没有机会获得真正无线、可以穿过门、墙壁的无线充电功能?...
  • kyg66266
  • kyg66266
  • 2014年09月17日 11:20
  • 606

WOW~,無處不在,無軟件不在

摘要:微軟的VISTA廣告是以蓋茨的“WOW”為主打。能夠讓大人物發出感嘆的東東,一定也是大塊頭或是大事情。同理可證,要讓俺等市井小民驚訝的事情,其實不要很大,有時一點點就足夠。因為蓋茨大叔和VIST...
  • mrtorney
  • mrtorney
  • 2007年08月03日 20:08
  • 470

人生来自由,却无处不在枷锁中——读[法]卢梭《社会契约论》

推荐理由 《社会契约论》是18世纪法国启蒙思想家卢梭Jean jacquesRousseau 1712—1778的最重要的政治理论著作,1762年4月出版于阿姆斯特丹,被译成多种文字。卢梭在说明了人类...
  • u013536195
  • u013536195
  • 2014年01月22日 10:09
  • 497

eclipse中配置j2me,简单运行j2me程序

1.安装好jdk2.去官网上下载好eclipse,去eclipseme.org上下载eclipseme,http://www.oracle.com/technetwork/java/download-...
  • snrqtdhuqf
  • snrqtdhuqf
  • 2011年01月20日 10:09
  • 2388

J2ME中文教程之J2ME技术概述

随着移动通信的突飞猛进,移动开发这个新鲜的字眼慢慢成为开发者关注的热点。在网上进行的最近一份调查显示,有24.34%的受访者涉足嵌入式/移动设备应用开发,这个数字可能略高于实际的比例,但也足可说明嵌入...
  • lpy123456
  • lpy123456
  • 2007年01月16日 12:37
  • 676

最新版idea2017+kemulator搭建J2ME开发环境

要求32位电脑,没有的话装个虚拟机。实际中发现kemulator的调试功能只有在32位条件下才能运行...
  • songhaibei7305
  • songhaibei7305
  • 2017年06月26日 17:35
  • 484

JAVA中J2SE和J2EE和 J2me关系

java是一门开发语言。j2se是java的桌面应用平台,用于开发桌面应用程序,比如qq,暴风影音都是桌面应用程序,其中s表示standard,标准的意思。 j2ee,其中的e表示enterpris...
  • litong09282039
  • litong09282039
  • 2015年05月26日 19:21
  • 1832

J2EE,J2SE,J2ME三者有什么不同?

J2EE,J2SE,J2ME是Sun 公司的Java多个版本,就像Windows XP还有专业版和家庭版是一样的。J2EE:Java 2 Platform Enterprise Edition 企业版...
  • kepeizong
  • kepeizong
  • 2006年05月09日 13:39
  • 3662

用Eclipse做J2Me开发的前期配置

 我也是一个初学者,从一个初学者的角度上讲,就是要尽可能的详细,因为这个东西稍微配置不对,或者是那里没有注意到,就会走不少的弯路,所以我在这里把配置讲得非常的详细,以图文的形式展示,以免你看了不知道所...
  • fenglibing
  • fenglibing
  • 2007年09月05日 23:01
  • 10305

Java几个技术点,简单的说说学好Java必须弄懂哪些知识点

程序员是一种神秘的人类物种,Java程序员更是! 今天给大家科普一下我在这么多年的Java后台开发后得出的经验,Java的知识很多,有很多在工作中不经常用的,我这里讲的都是些经常用的吧1、Java的运...
  • qq_41214527
  • qq_41214527
  • 2017年12月19日 14:53
  • 28
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:J2ME技術使"Java無所不在" (一)
举报原因:
原因补充:

(最多只允许输入30个字)