Java:嵌入网络的核心
陈新
尽管当今市场上的一些嵌入式解决方案不需要网络访问,但独立设备的时代正逐步消亡。随着网络电话、互联网电视、智能卡以及个人数字助理等创新型嵌入设备的大量涌现,客户日益需要网络识别系统,以及那些允许他们插入和访问各种服务的标准,即在任何时间、任何地点和基于任何平台,实现与任何人的连接。
与台式系统不同,消费类设备使用各种不同的用户界面技术,存储空间和屏幕规格相对较小,并配置嵌入式处理器,在能耗、用户反应时间和物理空间等方面受到严格限制。消费类设备必须独立地运行于一种没有系统管理功能的环境。有鉴于此,消费类设备还不能出现故障。Java平台拥有的诸多特性,使其成为这一类设备的理想选择。动态链接和装载特性,允许执行远程更新和软件修补,由于Java字节码比本机代码小,因此只需要很小的代码存储空间;Java编程语言是面向对象语言,允许代码实现模块化和多用途化,不需要把所有应用代码永久地驻留于设备;使用Java平台,代码就可以仅在需要时下载至设备;Java应用环境的安全可靠特性(包括消除指针、直接存储器存取、边界检查、防止非法丢弃和栈溢出),将保证未经授权的对象不能从消费设备的本地存储器中读写数据或代码。
目前,Sun提供了完整的嵌入式Java解决方案,包括PersonalJava、EmbeddedJava和Java Card应用编程接口(API)等,它们分别适用于不同的应用环境。
PersonalJava
PersonalJava平台是专为个人消费类设备的联网应用而设计的,面向家庭、办公室和移动用户使用。配置多种显示技术的设备如电视,以及通常不配置键盘或鼠标器执行输入及导航的产品,均可以采用PersonalJava平台。
PersonalJava是一种Java应用环境(JAE),它由Java虚拟机和Java应用编程接口子集组成,其中包括核心和可选两种应用编程接口以及类库。除此之外,PersonalJava应用编程接口还包括消费类应用在资源有限的环境所需求的专用特性。PersonalJava应用编程接口与EmbeddedJava应用编程接口共享一组公用核心应用编程接口,既能够运行小程序,又支持比较尖端的直观显示器,而且可以联网。适用于PersonalJava应用环境的设备包括移动式手持设备、机顶盒装置、游戏操作台以及智能电话等。
PersonalJava平台包括下列部件:
·Java虚拟机:字节码解释器、字节码检查器、类装载器以及Unicode文本支持、32位和64位整数、垃圾收集、多维阵列、浮点运算、线程、异常处理等功能;
·需求的Java类:输入/输出、语言支持、应用类;
·国际化(I18N)支持:产品使用全面的地区软件包子集,这样只有开发员选择的语言才予以支持,从而减少空间和存储器使用率;
·Java Beans、Java小程序、网络;
·支持代码签字(数字签名);
·以消费类产品外观和感觉为目标并作相应调整的JavaAWT版本。它可以提供图形和窗口特性,支持低分辨率显示器和可选输入设备(通过无鼠标和无键盘设备的扩展事件模型予以实现)。
每一种Java应用环境(JAE)均由核心应用编程接口和标准扩展(可选)应用编程接口组成。PersonalJava的层次结构从低向高依次为:Java虚拟机、Math、输入/输出、语言支持、功能类库、国际化、Java Beans、网络功能(NetWorking)、Java Applets和AWT。
PersonalJava应用环境的定制开发工具包括JavaCheck预处理器,它可以测试代码与PersonalJava应用环境的一致性。其他工具将允许开发员配置、编译和创建图像,在ROM设置可执行代码,植入可选HTML、图像、语音及数据文件等。
EmbeddedJava
EmbeddedJava应用环境是为嵌入式设备而设计的。这类设备配置功能专用且非常有限的存储空间,不需要通用网络浏览功能。EmbeddedJava应用环境提供的一系列工具,允许开发员为满足特定应用的需要,配置和编译只包括必要字段和方法的环境,可以在系统的只读存储器为此种完整环境生成和设置可执行图像。开发员可以使用EmbeddedJava应用环境创建多种产品,其中包括低端移动电话、寻呼机、过程控制器、测试设备、办公打印机与外设以及网络路由器和交换机等。
EmbeddedJava应用运行于实时操作环境,为适应小型存储空间的限制和多样化直观显示设备进行了优化处理。EmbeddedJava应用环境允许设备制造商在其产品的软件中,利用Java编程语言的可移植性和灵活性。
可配置性
当为存储空间受到严重限制的嵌入式设备设计软件时,根据应用需求配置环境是一项至关重要的因素。如果设备(例如寻呼机)不需要文件系统,就不用配置文件系统支持功能。EmbeddedJava应用编程接口提供若干种工具,能够实现此种配置能力。如JavaFilter(TM)技术就是为了评估应用和生成应用需求的字段和方法表,JavaCodeCompact将使用该表,从Java应用环境选择指定的字段和方法;JavaDataCompact可以读取静态数据,例如图像文件或HTML文件;开发员使用这些工具,就可以在只读存储器(ROM)设置可执行代码,配置和编译连编图像,估计需要的资源。
性能
在网络路由器和交换机这样一类设备上运行的嵌入式应用,其设计目标就是要在最终产品中,保持由硬件提供的实时支持功能。换言之,上述产品需要高级性能。因此,EmbeddedJava应用编程接口的宗旨,就是为了在实时操作系统上使用。设计方案中考虑了性能和移植因素。
向上兼容的应用
只要提供相应的设备支持功能,EmbeddedJava应用就可以与PersonalJava(TM)和Java平台实现向上兼容,并运行于这些平台之上。
EmbeddedJava兼容性
当前,Sun正计划开发一种兼容程序,目的是为EmbeddedJava平台提供实现的一致性。认证过程与Java平台的现行过程相同。
Java卡
Java卡技术规范是为使Java技术在智能卡和存储空间十分有限的其它设备上运行而创建的。它提供平台独立性、存储和更新多种应用的能力,以及与现行智能卡标准的兼容性,使日益增多的智能卡应用实现优异的灵活性。
Java卡应用编程接口允许为一种智能卡平台编写应用程序,而Java卡技术可以在其它任何此种平台上运行。Java卡应用环境(JCAE)以原始设备厂商为基础,向智能卡制造商颁发许可,这些制造商代表了全球智能卡制造能力的90%以上。
Java卡智能技术拥有下列独特优势:
·平台独立性。符合Java卡API技术规范的Java卡小程序,将运行于使用JCAE开发而成的智能卡,从而允许开发员使用相同的Java卡小程序,在不同厂商的智能卡上运行。
·多应用功能。多种应用可以运行于单一智能卡。Java编程语言的内在设计以小型可下载代码元素为中心,因此可以便捷和安全可靠地在单一智能卡运行多种应用。
·动态适应性。智能卡发行后,应用安装将为智能卡发行商提供以动态方式适应客户需求变化的能力。如果客户决定改变与智能卡相关的常用程序,智能卡发行商就可以满足其要求,不必发行新卡。
·灵活性。Java卡技术采用面向对象方法,为编写智能卡程序提供灵活性。
·与现行智能卡标准的兼容性。Java卡应用编程接口不仅与诸如ISO7816的国际正式标准兼容,而且与Europay/MasterCard/Visa(EMV)这样一类业界专用标准相兼容。