Java嵌入技术的发展历史和应用实例
1991年,Sun公司的由James Gosling,Bill Joe等人组成的Green小组开发了一个名为Oak的软件,开发它的目的是用于电视等家用电器的嵌入式应用。后来Oak发展成为我们熟知的Java,Java发布之后就风靡于WWW世界,广泛应用于网络计算。Sun公司在大力开发Java网络应用的同时,丝毫没有放松Java嵌入技术的开发。自1996年公布JavaCard技术以来,Sun就陆续推出了EmbeddedJava、PersonalJava、JavaPhone、JavaTV、Jini等嵌入技术,使Java应用于智能卡、顶置盒、专用游戏机、手持电脑、Web电话、PDA、交互式数字电视、网络汽车、无线通讯、门径控制等有联网要求的消费式电子系统。现在,许多公司纷纷宣布自己的电子产品支持Java,为Java嵌入技术的发展奠定了坚实而稳固的基础。1996年,智能卡业的两巨头Schlumberger和Gemplus表示支持Java智能卡并联合成立了Java智能卡论坛(JavaCard Forum),随后,其它大的智能卡公司如Bull CP8 Transac、De La Rue Card Systems、Giesecke & Devrient等也表示支持Java智能卡并参加到这个论坛中来。图1.1是Gemplus公司的Java智能卡最新产品GemXpresso211。
图1.1 Java智能卡产品1997年的Comdex上Sun、IBM、Netscape等联合展示了共同开发的用Java编写界面网络汽车(见图1.2)。图1.2 网络汽车1998年初,Sun公司公布picoJava的核心规范。随后,IBM、NEC、Fujitsu等公司宣布将开发符合picoJava核心规范的Java芯片用于嵌入式应用系统。同年底,Sun公司推出了价格低廉的用于顶置盒、工业数据采集设备、蜂窝电话等嵌入式应用系统的MicroJava芯片和用于台式机的UltraJava芯片。图1.3分析了Java处理器的嵌入应用方向。图1.3 Java处理器的嵌入应用2000年7月的JavaOne会议上,LG公司展示了集成Java技术的移动电话iBook(见图1.4),它支持个人信息管理、个人财务管理、本地特色服务以及可移动的拍卖、游戏、娱乐和社区服务,9月正式投放韩国市场。图1.4 集成Java的移动电话同一次JavaOne会议上,Sharp公司展示了采用Personal JWorks平台开发的基于VxWorks实时操作系统的Web电话(见图1.5),(Personal JWorks开发平台和VxWorks实时操作系统是Wind River公司的产品,)它带有一个显示屏、一个键盘,可以访问互联网。图1.5 Web电话Java嵌入产品的市场化表明Java嵌入技术如同Java一样已经成为电子业界所接受的嵌入技术标准。1997年,Sun公司兼并了长期从事嵌入式实时操作系统开发的Chorus公司,更是为Java嵌入技术的发展提供了良好的操作系统环境。Java嵌入技术的结构、特点和应用前景 Java嵌入技术是基于Java的应用于嵌入设备开发的技术。Java是互联网中的首选语言,它具有面相对象、平台无关、多线程、分布、安全等特点,而这些特点恰恰满足了互联网发展的需求,使得Java能够迅速应用开来。嵌入技术是一个简化的说法,严格说应该是嵌入计算技术。现在计算机技术发展很快,很多名词的涵义也在变,因而嵌入计算这个词的含义也不止一个,本文所指的是目前最为普遍的含义,即指把计算机制引入各种嵌入设备,如电视、电话、数控机床、PDA(个人数字助理)等,从而使后者具有可编程的特性。在Java嵌入技术中,主要编程语言是Java,采用类似标准Java的系统结构,由Java核心结合嵌入Java API(扩展类库)组成新的Java程序运行环境,运行在Java虚拟机上,可用于各种不同的操作系统和处理器。图2.1和图2.2是标准Java和嵌入Java的系统结构图。 图2.1 标准Java的系统结构图2.2 嵌入Java的系统结构在嵌入Java中,Java可被“量身定做”以适合特定的设备使用。例如,对于没有任何图形显示功能的电子设备来说,我们就可以删除抽象窗口工具集(AWT)以减少Java自身所占用的资源。 嵌入Java API是Java嵌入技术的核心,是标准Java子集的扩展类库。由Sun公司公开发布的嵌入Java API包括PersonalJava、EmbeddedJava、JavaCard、JavaPhone、JavaTV、CLDC(Connected Limited Device Configuration)、MIDP(Mobile Information Device Profile)等。这些扩展类库覆盖了家用电器、工业设备、金融保险、通讯网络等诸多领域,为我们进行嵌入Java的开发提供了自由的选择机会。 随着微电子技术的发展和来自网络和智能控制应用的日益增长的需求,嵌入技术有着广阔的应用前景。然而将Java用于嵌入技术有何优势呢?首先,使用Java可以极大地降低用于嵌入设备软件开发的复杂程度,缩短软件开发时间,从而减少软件开发的费用,降低系统成本。就拿智能卡来说,目前智能卡的软件开发都是由专业的开发人员用类似汇编的较低级的语言完成,而且,开发出的程序通用性极差,也很难代码复用。但如果使用JavaCard API来为智能卡进行编程,那么开发出的软件将能做到“一次编写,到处运行”。随着微电子技术的发展,硬件的性能不断提高,统一、通用、高效的应用于嵌入设备软件开发的高级语言就自然成为一种趋势,而Java正是适应这种趋势的最佳语言。其次,Java语言本身特别适用于嵌入式设备,很多特点都使Java成为嵌入式应用的理想语言。Java语言的可移植性、安全性、动态性等特性都非常适合嵌入设备软件的开发。再次,Java在网络中已经取得的巨大成功也有利于嵌入技术。很多嵌入设备都要联网,Java的优势也是显而易见的。 互联网源自计算机,但有联网要求的绝不仅仅是计算机。各种设备,尤其是像电视、电话这样的消费类电子设备也有联网的要求和潜力。要与互联网相连,不仅仅是一个联网的问题,它必将要求计算机制也引入各种要连接互联网的信息装置,使之成为嵌入设备。这些IDC权威数据能够向我们描绘出Java嵌入设备的明天,1999年带有微处理器的智能卡的生产量是430,000,000张,2000年这个数字将达到610,000,000张(同比增长41.9%),2000年安装非视窗操作系统的手持电脑和数字助理将增长60%,2003年手持设备的生产量将达到50,000,000台。而Forrester Research的数据向我们展示了嵌入设备在家用电器方面的应用前景,2000年底2,200,000家庭将享受交互式数字电视服务,而交互式数字电视广告业的收入预计2004年达到11,000,000,000美元。 互联网的影响将是一场变革,但不是简单的联网,新的网络模式必将真正建立并广泛存在。在计算网络化的影响下,计算嵌入化必将有很大的发展,而联网的信息设备绝不仅仅是计算机。 参考资料徐剑军、徐鹏编著,《Java嵌入技术》,清华大学出版社,1998年 Sun Microsystems Corp.