Sun Inner Circle: 商界和科技界领袖必读 Sun Inner Circle: 商界和科技界领袖必读

Java 技术实现向微设备世界的巨大飞跃

随着 Squawk 虚拟机将 Java 技术应用于微嵌式应用程序,开发人员将不再费力做一些小事

日益变小且更强大的设备的市场机会不断增加,这在很大程度上因为自从 1995 年 Java 技术推出以来,计算机平台的定义不断演进。绝大多数计算设备不是台式机、笔记本电脑、服务器和主机,而是您每天使用的资源受限的小型发明创造产品。

Java这些微嵌式设备包括医疗设备、MP3 播放器、智能卡、汽车制动系统、RFID 标签等其它产品。它们执行特定功能,并可作为一个无处不在的网络 — 有时称为物联网 (Internet of Things) 的组成部分,这使我们保持连接、进行通信和共享数据。

而且,随着传统设备和媒体之间的界限的消失,微嵌式世界很可能是开发人员的下一个新领域。

微设备配备有处理能力、内存和存储系统,而且通常靠电池电源运行。不过,针对这些设备的开发需要不同的工具、语言、库和 API,这使得创新更加困难,而且会延迟产品上市时间。这使 Java 技术 — 连同其标准语言、API 和工具 — 成为微嵌式设备的一个极有吸引力的开发工具。

 
Squawk 开发资源
Squawk 项目站点提供将 Java 移植到微嵌式设备的工具。可以访问工程团队、信息论坛、社区文档编制维客 (Wiki)、错误跟踪、开发警报,等等。
» 立即前往

为了最大限度地增强 Java 技术对于微设备开发人员的吸引力,必须有人去做在其设备或所选目标上实现或移植 Java 技术的工作。对于许多开发人员来说,移植、调试和维护虚拟机 (VM) 一直以来都是嵌入式设备市场创新和增长面临的一个巨大障碍。

Squawk 项目扩大了 Java 技术的应用范围
由于 Sun Labs 有一个由 Eric Arseneau 和 Derek White 领导的研究人员团队,开发人员有了一个虚拟机,它适用于为小型设备优化的 Java 语言。称为 Squawk VM 的新虚拟机把 Java 技术的应用扩展到更多设备上 — 超出现在的移动电话和 MP3 播放器的范围,延伸到将来的电动刮胡刀和烤箱上。

Squawk VM 在 Java Micro Edition Information Module Profile (CLDC 1.1 IMP 1.0) 上进行了认证。Squawk VM 为开发人员提供标准化 Java 语言及其普遍了解的工具、库和 API 的好处。使用 Squawk 和 Java 工具消除了传统嵌入式开发的许多难题。利用 Squawk,开发人员可以利用 Java 的简便性创建应用程序,并提供一个自定义二进制程序包,该程序包是针对目标微嵌平台和必需的应用服务的能力定制的,无论是微嵌平台和应用服务都具有非常普通的学习曲线。

简便性和可扩展性导致无限创新
“这一技术把 Java 的内在优势 — 尤其是创新和可扩展性 — 带到嵌入式开发中,” Arseneau 指出。“目前,嵌入式领域的开发人员面临学习和使用起来非常困难的专有工具的种种限制。我们希望把 Java 的简便性、效率和熟悉性扩展到嵌入式开发中,这样,程序员就可以利用他们已经拥有的 Java 工具和知识。”

Squawk VM 是最初受 Squeak 项目启发后用 Smalltalk 编写的,而 Squawk VM 几乎全是用 Java 技术本身编写而成的。这提供了一个有趣的平台,通过这个平台,可以进行基于 Java VM 的研究工作。但是,随着时间的推移,Sun 研究人员意识到使用 Java 实施 Java 为非 VM 开发人员提供了一个了解如何将 Java 移植到新平台的更简单的机制。

由于微嵌式设备拥有与传统计算机硬件所不同的属性,Squawk 在几个方面不同于传统的 Java 虚拟机。最重要的差别之一是,Squawk 可用来提前 (AOT) 编译和优化核心 VM 组件、其它 Java 组件以及 Bytecode。此外,Squawk 执行对 Bytecode 的 Just-In-Time (JIT) 编译。

Squawk VM 设计为使开发人员可以在一个虚拟机上运行多个应用程序,甚至将一个正在运行的应用程序迁移到另一个设备上。

“Squawk 是一个 Java 占用面积极小的 VM,使应用程序可直接在 CPU 上运行,无需基本的操作系统,” Arseneau 解释道。由于小型设备不需要支持通用操作系统的额外资源,开发人员可以自由地体验用不同的方法实施低级服务,如网络协议,这样的协议一般都深藏在操作系统中。这样可以降低额外开销,并提高应用程序性能。

Squawk 便于在小型设备中实施
Squawk VM 设计为使开发人员可以在一个虚拟机上运行多个应用程序,甚至将一个正在运行的应用程序迁移到另一个设备上。因此,应用程序可以继续在新设备的与老设备相同的位置上运行。通过在一个虚拟机上运行多个应用程序,并利用表现更紧凑的类文件,Squawk VM 可以更好地利用小设备的有限资源。

这种迁移运行中的应用程序的能力的一个有趣示例是,如果某个设备发现自己的电池电量不足,它可以监测附近是否存在拥有较多电量的另一个设备,并可在自己的电池电量实际耗尽之前转移其运行中的程序。

这些能力在 Squawk VM 的最早的商业实施之一得到很好的展示,即在 Sun Labs 的 Sun SPOT (小型可编程对象技术) 无线转换器设备上实施。Sun SPOT 硬件平台是一个用电池驱动的小型无线设备,它需要编程语言和工具。Squawk VM 能够同时提供操作系统和软件应用平台。

仿真器提高了开发人员的生产力
Squawk VM 的在所有流行桌面平台上运行的能力产生一个为开发人员提供仿真器的机制。为了帮助开发人员进一步提高生产力,Squawk 包含了仿真支持。Squawk 在桌面上运行的能力使开发人员能够快速创建仿真器来在部署之前测试应用程序。

例如,Arseneau 指向研究人员在 Sun SPOT 硬件上的工作。“有了在桌面上运行的虚拟 SPOT,我们可以来回移动操作对象和轻按开关,而不必借助任何硬件,” 他说。“这种灵活性有助于开发人员缩短产品上市时间,并使我们能够为开发人员创造更丰富的体验。”

由于微嵌式设备一般没有足够内存实施设备上类文件加载,Squawk 实施一个分离式 VM 架构,其中,类加载是在桌面上执行的,具体执行情况如下图所示:

分离式 VM 架构

分离式 VM 方法尽可能提前完成大量工作,而且只由开发人员的台式机执行一次,而不是每次都打开或启动设备,这样就减少了在设备上运行 Java 所必需的资源数量。Java 技术拥有一个严格的安全模型,该模型必需保留,但可能会需要大量资源。同时还有一个额外的好处,即使开发人员可以在桌面上执行操作。

分离式 VM 架构意味着,一次性代码可以在桌面上运行,这样,当把二进制软件包发送到设备时,对象已经预先算出。这有助于确保设备尽可能高效地利用可用资源。Arseneau 说,提高效率还有助于开发人员设计较小和更强大的设备。

Squawk 继续缩小体积和增强能力
Arseneau 及其团队还在努力工作,继续改进 Squawk,以使其能够在越来越小的设备上运行,从而使开发人员可以在越来越多的设备上使用 Java 设备。当前,Squawk 需要 512K 的闪存,但是,随着工作的深入,Arseneau 的目标发展成为仅需 16K 闪存就能运行 Squawk。

“我们还在增加更多实时能力,” Arseneau 说。“这意味着设备将能够更精确地响应实时输入,并对关键应用程序进行更多计时操作,例如,驱动伺服系统。对于像汽车上的防抱死制动系统这样的设备,这种功能极为重要。”

在另一个示例中,Squawk 正在移植到 LEGO MINDSTORM NXT,这是一个教育平台,它使儿童可以设计并构建机器人并对它们进行编程以执行各种操作。Squawk 项目成员正在与一个 LEGO MINDSTORMS NXT 小组一起工作,LEGO MINDSTORMS NXT 是 Lego 与 MIT 媒体实验室合作的结果。该项目最终将有助于简化并增强 LEGO 编程能力,并且可以释放各个年龄的儿童的想象力。

作为 Sun 公司支持在微嵌式设备上推广 Java 技术的承诺的组成部分,开发人员可以访问 Squawk VM 的整个源代码,并可使用 Java、CLDC 和 IMP 标准来快速构建 Java VM。通过开放 Squawk 的源代码,Arseneau 希望使开发人员有机会将 Squawk 和 Java 移植到许多不同平台上 (参见侧条)。

“开放 Squawk 源代码将进一步推进我们的战略:把 Java 领域扩展为包含尽可能多的不同类型的微嵌式设备。”
Eric Arseneau, Sun Labs

开放源代码打开取得大量机会的大门
当 Sun 公司去年开放 Java Micro Edition 源代码时,它允许像 Squawk 这样的项目利用已证明支持其它设备的代码。因此,Squawk 快速实现 Java 顺应性 — 不论事情大小,都对其进行作为 Java 编程语言通过认证所必需的 11,000 次测试。

“开放 Squawk 源代码将进一步推进我们的战略:把 Java 领域扩展为包含尽可能多的不同类型的微嵌式设备,” Arseneau 解释道。“研究只少量生产的原型和设备的开发人员可以将 Squawk 用于他们在其它情况下可能不会考虑的应用。Java 提供实行按惊人创新的主干,而且为开发人员提供下一个巨大机会。”

不仅 Java 技术的普遍性为开发创新应用打开了大门,而且 Squawk VM 的可用性使开发人员可以更容易地探索并研究新的机会,因而有助于缩短新产品上市时间。Java 技术已经部署在 10 亿多台移动电话上。

然而,Arseneau 将移动性仅仅视为小设备冰山之一角。“至于移动电话,每人只使用一部,这一限制不言而喻,” 他说。“如果我们着手把人们每天使用的所有小玩意儿都包含在内,那么,潜力将是无比巨大的,几乎没有任何限制。”

Arseneau 估计,在接下来几年里,嵌入式领域里,将会开发并生产出难以计数的新设备。“我们已经在与进行一些伟大创新的人进行谈判,例如,把传感器置于眼镜中来探测并清除污垢,或者把某个设备放到摩托车头盔中,当发生事故时,该设备将会拨打 911,” 他说。“我们觉得 Java 技术应该就像其促进通用计算技术的发展一样促进微嵌式应用。”

 
联系我们 公司信息 新闻 事件 招聘信息 政策法规 使用条款 注册商标 Copyright 1994-2008 Sun Microsystems, Inc.