答案:J2ME应用技术
---- 随着Java技术的不断发展,它根据市场进一步细分为针对企业网应用的J2EE(Java 2 Enterprise Edition)、针对普通PC应用的J2SE(Java 2 Standard Edition)和针对嵌入式设备及消费类电器的J2ME(Java 2 Micro Edition)等3个版本。J2ME推出之后,Motorola公司作为J2ME的主要支持者,第一个在自己生产的手机上移植了KVM(千字节虚拟机),又领导全球手机厂家制定了MIDP(移动信息设备框架)规范。那么,为什么Motorola对J2ME如此青睐?J2ME究竟魅力何在呢? J2ME能给我们带来什么?
---- 回顾移动电话的发展历史,我们不难发现移动电话上应用软件的发展也经历了3个阶段。传统的移动电话通常只有通话和短消息功能,只能提供基本的语音服务。随后移动电话上又增加了一些简单的附加应用,如电话簿和电话铃声编辑功能等。而现在随着WAP技术的发展,移动电话增加了访问Internet的功能,使用户可以直接在手机上以无线方式浏览网页。然而,随着无线Internet新应用的出现,新的问题也随之而来。
---- 首先面临的是开发瓶颈的问题。目前,手机类嵌入式系统普遍使用C语言和专用的实时操作系统,开发速度慢,也没有动态加载应用程序的能力。移动电话上应用程序的开发变得越来越困难,一方面单纯依靠手机厂商自身的软件开发能力难以满足市场的需求,而另一方面广大的软件开发商却又无法参与进来,开发适用于移动电话的应用程序。这无疑极大制约了新应用的推广与普及。
---- 其次,移动电话访问Internet只能通过WAP方式,而WAP采用Browser/Server方式访问Internet却功能有限。现在的WAP解决方案要求手机通过WAP网关才能访问Internet,而且只能访问WML而不是主流的HTML,也不能显示复杂格式的图形。此外,因为现有的WAP解决方案不够智能,而且不能访问本地存储区,如果进行在线交易会增加服务器负荷,反应速度慢,使无线Internet应用受到了很大的限制。
---- J2ME的出现则使上述问题迎刃而解。因为Java语言是跨平台运行的,这一特性使第三方软件开发商可以很容易地介入进来开发应用程序,也可以很方便地将应用程序安装移植到移动电话上,开发周期也大大缩短,而且还能支持应用程序的动态下载和升级。J2ME提供了HTTP高级Internet协议,使移动电话能以Client/Server方式直接访问Internet的全部信息,不同的Client访问不同的文件,此外还能访问本地存储区,提供最高效率的在线交易。
---- J2ME除了能够更好地增强完善移动电话上已有的应用外,还进一步增加了字典、图书、游戏、遥控家电和定时提醒等新的应用,并能访问电子邮件、即时消息、股票和电子地图等信息。
---- 在J2ME出现之前,我们更多接触到的是Java卡(Java Card)、嵌入式Java(Embedded Java)和实时Java(Real Time Java)等。其中Java卡是针对SIM卡、智能卡等设备而定制的最小Java子集,比J2ME还要小,移植性也不强。嵌入式Java则针对特殊用户自行配置Java类库和VM(Virtual Machine,虚拟机)。它对资源需求极小,可运行在无图形用户接口和网络的设备上,可以添加用户专用的API,但是它根本就无法移植。实时Java是由IBM领导的RTJE组织(Real Time Specification for Java Experts Group,实时定制Java专家组)负责实施的,现在还在不断完善中。不过,从严格意义上来说,它们都不是真正的J2ME。
---- 为了进一步讨论J2ME的技术细节,我们首先需要了解Java的结构。Java内部分为3层,从下到上分别是VM、Configuration(配置)和Profile(框架)。VM负责建立Java虚拟机,解释Java代码。Configuration负责建立核心类库,功能比较少(比如没有用户接口),主要面向水平市场。Profile负责建立高级类库,主要功能丰富,面向垂直市场。
---- 针对手机内存小、速度慢和I/O差的特点,J2ME对VM、Configuration和Profile等3层结构做了特殊的实现:在VM层,Motorola在手机上移植了KVM。顾名思义,KVM只需要几百KB的内存就可以运行; 在Configuration层,J2ME规定了连接限制设备配置(Connected Limited Device Configuration,CLDC)。它适用于有双向网络连接但是硬件资源有限的设备;在Profile层,J2ME规定了移动信息设备框架(Mobile Information Device Profile,MIDP),适用于手机或双向寻呼机。 J2ME与WAP:朋友还是敌人? ---- J2ME刚刚提出的时候,经常会有人讨论,在无线Internet应用领域它是不是WAP的对手?其实,它们之间并没有直接竞争的关系,而是可以共生共存、互补互助。 ---- WAP包括2层内容:一层是无线Internet传输层,它针对无线的特点制定了WDP、WTP等等协议; 另一层是应用层,WAP以Browser的方式来访问Internet。为了适应低速网络的限制,WAP简化了Internet标准的HTML,制定了WML标准,并且只能访问WML脚本。而J2ME在传输层提供了一组面向应用程序的高层协议,以支持HTTP协议,在此基础上,Motorola在它开发的KVM上又实现了对TCP/IP协议的支持,实际的传输可以基于WAP实现,也可以基于其他方式(比如CSD或GPRS等)。在应用层,J2ME提供了全功能的Java开发环境,可以用Client/Server方式来访问Internet上的所有数据,而与标记语言无关。
---- 总的来说,WAP是在线浏览技术,只能以Browser/Server 模式运行于在线环境,而J2ME采用Client/Server模式,既可以用于在线环境,也可以用于离线应用(如图3所示)。此外,WAP论坛现在也正在尝试让现有WAP浏览器通过WAP Profile与Java交谈或直接用Java编写WAP浏览器。
---- 由此可见,J2ME与WAP并没有竞争关系,而是面向不同领域的两套解决方案。如果是面向浏览的应用,比如新闻、天气预报等,可以继续使用WAP方案; 如果是需要智能处理的应用,比如收发E-mail、股票信息等,就更适合用J2ME实现。
---- 据悉,Motorola公司即将在全球范围内推出同时支持J2ME和GPRS的大屏幕手机,它将是首款实用的适合于开发无线Internet应用的移动电话。Motorola在研发与推广J2ME终端的同时,还积极培育J2ME应用开发环境,并于2001年年初推出支持开发商开发应用的网站(http://j2me.motorola.com.cn),不仅提供了大量技术文档,而且还有供不同层次的开发商使用的工具软件、源程序示例、模拟器、技术论坛以及更进一步的技术支持。相信随着J2ME技术的不断发展,一定会产生出新一代的应用,让无线Internet大放异彩。
上一个:什么时候(不)应该使用Web Service 转帖
下一个:Java 程序中的多线程--下篇(转)