`
guoxinzz
  • 浏览: 431675 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

[转]战胜Java的限制!

 
阅读更多

要发现一套能让开发人员以Java语言在确定性实时要求下编写程序的技术,我们首先必须接受Java的“实时”概念来消除这一语言中固有的局限性。

IBM提供了一个名为IBM WebSphere Real Time的实时Java方案,具有实时GC、预编译和一个匹配的RTSJ环境,这些都运行于一个增强的实时版Linux上。由于Linux只采用来自Linux社区的免费技术,这些技术让我们可以大致了解行业中哪些方面要用到实时Java。

人们经常把“实时”和“真正快速”混为一谈,原因很简单,在有些情况下,实时就是和真正快速对等的。科学地说,实时是指“可靠并可预测性地探究程序逻辑当时行为的原因,并对之进行控制的能力”。电脑每次都会在设定的期限前作出响应,也就是说它是可预测的。因此,

可惜的是,Java虚拟机(JVM)会缓存主机IP地址,以便不需要多次为同一节点进行多次DNS查找。而这样一来,开发环境就无法正确识别因任意原因而改变IP地址的任何主机。

要解决这一问题,就必须终止并重启开发环境,或提供主机的新IP地址(例如,在首页即Launch Remote Java Process的主页上提供此IP地址)。当一台本地电脑上的程序改变了它的IP地址时,用户可以采取以下措施:

* 终止并重启开发环境;
* 从显示器的弹出菜单中创建一个新主机;
* 在主地址域中注明主机新地址。

从这个新主机启动Java程序

Jave无法表述结构型数据,使我们不得不过多地依靠XML,进而导致更加复杂和膨胀;而Jave的很多缺陷,例如基元,则使之非常难学,并且编码很复杂。尽管Java比C++++更为动态化,却比不上Smalltalk和Ruby等其它语言。Java的开发人员正在努力发现元程序化,但他们的想法还不能很快实现,因为Java的编辑/展开周期比这些易懂的动态语言更长。

单从每个问题来看,这些都不会给Java带来太大影响。但这些问题集中到一起,就使得Java的生产力大大降低。

应用Java时应该首先从一个非常好的全面设计开始,包括设立一个创建环境,确定一个集成开发环境(IDE),例如Eclipse和Net Beans,并创建源代码库。

应用Java的一个关键要素就是要确保客户机上安装了正确版本的JVM。一般来说应用程序都是通过版本号高于目标/批量制作机上JVM的Java虚拟机来开发的。

Sun公司的实时Java是唯一符合JSR-1的。JSR-1要求经过JCP中下面四种技术兼容性工具包中的一种:Java EE、Java SE、连接设备配置(CDC)和有限连接设备配置(CLDC)。需要注意的是,如果大公司要投入数百万美金来编写新程序,都会要求能在兼容系统上进行编写。

系统可预测性和良好的Java编程

当电脑控制真实世界中的物理设备时,需要一个包含以下三个互相作用的部分的控制系统:感应、控制和制动。“感应”意味着需要在环境中配备传感器来测量温度、压力、湿度和力度等物理量。“控制”是指从这些传感器取得数据并创建面向制动器的输出指令。触发器则会给环境带来物理影响。带有传感器、控制机制和制动器的控制系统应用非常广泛,例如在火车、飞机、汽车、交通指示灯、财政贸易系统和芯片制造设备等领域。

在进行控制时,感应和指令之间的时间必须限制在一个预设的限值内。在实时环境中,从Web上进行下载同时又想要控制其它东西,就可能会产生系统级故障。这类系统和大部分人习惯的系统截然不同。

但主要问题是,要在Web和商务交易以及性能等方面获得成功,都要取决于速度。当在控制范围内操控物理设备时,单纯的快并不好,可预测性才更为重要。但是一般的机器又很难如此轻易就能预测。

除非开发人员了解程序如何获取内存,否则很难开发出一个可预测的实时垃圾清理软件,因为该软件和程序都要占用内存,而程序在不断制造垃圾。由于将垃圾释放成内存的垃圾清理软件必须和程序互动,它们之间就必须有一定的同步。因此,开发人员必须将有关程序产生垃圾的速度的信息提供给垃圾清理软件,以便垃圾清理软件知道必须以多快的速度进行清理;但是考虑到内存使用和限制,要确定这一数值是非常难的。

下面是一些小窍门:

* 给Java最有优势的地方添加良好的编程,来提高产量并构建快速、安全而可靠的程序;
* 优化软件程序的编辑、展开和测试;
* 以成熟的设计样式和先进的语言特征来解决结构问题;
* 以Java进行安全编辑,并以行业标准的安全框架进行验证;
* 最大化软件性能;
* 提高线程程序的可靠性;
* 稳定扩展程序功能。

通过明确限定Java编码,就可以控制在限值以内。IBM等公司已经开发出了实时Java规范,而且,可以根据用户的需求来应用程序,确保最大的兼容。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics