Java正在进入最后一个也是最苛刻的计算领域,但是这要求Sun在软件基本原则上做出一些妥协。
Java发明人James Gosling等许多程序员在大约3年的时间里一直在寻求实现Java在实时计算设备中的应用,所谓实时计算设备指的是有些动作需要即时的反映,例如飞行员拉动操纵杆等等。
Java在桌面和服务器上是一个主流,但是Sun及其合作伙伴必须对它做出一些调整使之适应于实时领域。Gosling在嵌入式系统会议说要放宽对于一些可能伤害计算机的行动的限制并且要适应Java程序对于内存的调整。Gosling和实时Java行动的领导人Greg Bollela认为做出这些调整是值得的。因为为实时及嵌入式计算设备写程序面临着和通用计算机一样的难题。这两个人相信Java能减轻这个问题。
移动电话,网络路由器,电梯和汽车等嵌入式计算系统一年比一年复杂化和计算机化,把这些设备连结到因特网服务是把问题混在了一起。Java能更加容易的为设备编程并连接到各种编程工程。
Sun的成果喜忧参半。Sun的芯片主要在服务器上流行,在嵌入式设备方面,领先的是摩托罗拉,MIPS,Intel和其它的产品。Sun在它的软件上获得了更多的成功。
Sun在取得进展。一家实时Java公司在美国空军的飞行警告控制系统(AWACS)的雷达和控制飞机的实时系统中使用了Java。
重新打造Java
Java的特色之一是它的“sandbox”,把Java程序限制在计算机的一个部分,以提高其安全性。但是实时的Java却要求写入计算机的内存,这是沙箱外的一个区域。Bollela说只有某些基本的Java程序拥有这个特权。
另外的问题是Java的“碎片收集”,释放当进程被完成时仍然占用的内存。这会加大计算系统上的负担。实时Java要求一些进程甚至在碎片收集进行时也要运行。这些变化将改变Sun的口号,“编写一次,在任何地方运行。”Gosling不喜欢这条标语。修改后的话是“小心地编写一次,在任何地方有条件地运行。”
一个目标,两条道路
Sun及其竞争对手J Consortium的分歧在加大。Gosling说Sun关注设备只有一小部分要求实时的响应。但是NewMonics的首席技术官Kevin Nilsen说J协会的规格是80%的操作是实时的。
尽管两家有技术上的差别,“我们不认为两者有巨大的政治的差别,”Nilsen说。
|