Java实时编程(面向开发者和架构师的Java RTS权威指南)(china-pub首发)
基本信息
- 作者: (美)Eric J. Bruno GregBollella [作译者介绍]
- 译者: 田思源
- 丛书名: Sun公司核心技术丛书
- 出版社:机械工业出版社
- ISBN:9787111292821
- 上架时间:2010-3-18
- 出版日期:2010 年1月
- 开本:16开
- 页码:270
- 版次:1-1
- 所属分类:
计算机 > 软件与程序设计 > JAVA(J#) > Java
编辑推荐
面向开发者和架构师的Java RTS权威指南
面向转向实时系统领域的Java开发者和架构师,以及转向Java的实时系统开发者。
从头至尾逐步分析应用示例,确定其限制并讨论解决它们的API和设计模式。
作者为实时Java标准过程的前任组长和华尔街实时系统的顶级开发者。
推荐阅读
内容简介回到顶部↑
本书主要讲述使用java rts进行java实时编程的各类主题。主要内容包括3个部分:第一部分“实时计算概念”,明确定义计算领域中的实时概念,并讨论了许多实时应用程序设计和开发的理论;第二部分“高级java rts”,提供充足的示例代码来说明java rts的内部运作机制及其使用;第三部分“使用java rts”,讨论了实际的案例研究。
本书适合java程序开发人员、实时软件开发人员,以及使用java rts编程的人员使用,也可供高等院校老师和学生参考。
sun公司的java实时系统(java rts)在多个广泛的环境中得到了实践验证,其中包括金融、控制系统、制造和防务。java rts和rtsj标准(jsr-001)消除了对于复杂、专用的实时语言和操作系统的需要,利用java超常的生产率和为人所熟知的特点,节省了资金。
在实时java编程中,sun公司的两位实时编程专家介绍了开发者成功使用java rts及其api所需要的深入知识和实际代码示例,并阐明了用任何rtsj兼容的环境进行实时编程的基础。
本书的内容包括:
实时原理和概念,以及实时应用设计和开发的独特要求。
如何把java应用于实时环境。
垃圾回收和java se回收器。
使用java rts api尽可能高效地解决实际实时系统问题。
当前领先的java rts开发和调试工具。
实时垃圾回收、线程、调度和分派。
新的rtsj内存模型。
异步事件处理和异步控制转移。
本书适合java程序开发人员、实时软件开发人员,以及使用java rts编程的人员使用,也可供高等院校老师和学生参考。
sun公司的java实时系统(java rts)在多个广泛的环境中得到了实践验证,其中包括金融、控制系统、制造和防务。java rts和rtsj标准(jsr-001)消除了对于复杂、专用的实时语言和操作系统的需要,利用java超常的生产率和为人所熟知的特点,节省了资金。
在实时java编程中,sun公司的两位实时编程专家介绍了开发者成功使用java rts及其api所需要的深入知识和实际代码示例,并阐明了用任何rtsj兼容的环境进行实时编程的基础。
本书的内容包括:
实时原理和概念,以及实时应用设计和开发的独特要求。
如何把java应用于实时环境。
垃圾回收和java se回收器。
使用java rts api尽可能高效地解决实际实时系统问题。
当前领先的java rts开发和调试工具。
实时垃圾回收、线程、调度和分派。
新的rtsj内存模型。
异步事件处理和异步控制转移。
作译者回到顶部↑
本书提供作译者介绍
Eric J Bruno,Sun公司系统工程师,专门从事于金融界的Java RTS。他是《DrDobbs Journal》的撰稿编辑,并撰写其在线Java博客。加入Sun 之前,Eric曾在路透社工作,在那里他用Java和C++开发实时交易系统、订单输入和路由系统,以及实时新闻和报价数据源系统。
Greg Bollella博士,Sun公司杰出工程师,领导实时Java研发。他是JSR001——Java实时规范(RealTime Specification for Java ,RTSJ)的规范组组长,并且曾经领导在Java社区过程下的实时Java专家小组。他撰写了多本图书、文章,以及有关实时.. << 查看详细
Greg Bollella博士,Sun公司杰出工程师,领导实时Java研发。他是JSR001——Java实时规范(RealTime Specification for Java ,RTSJ)的规范组组长,并且曾经领导在Java社区过程下的实时Java专家小组。他撰写了多本图书、文章,以及有关实时.. << 查看详细
目录回到顶部↑
译者序
前言
致谢
作者简介
第一部分实时计算概念
第1章实时系统概述
1.1实时系统质量
1.2可预见性和确定性
1.2.1确定延迟
1.2.2确定抖动
1.2.3硬实时与软实时
1.2.4等时实时
1.2.5实时与实快
1.2.6实时与吞吐量
1.2.7任务完成价值
1.3实时计算
1.3.1高速公路类比
1.3.2高速公路类比——添加优先车道
1.4实时调度
1.4.1调度约束
前言
致谢
作者简介
第一部分实时计算概念
第1章实时系统概述
1.1实时系统质量
1.2可预见性和确定性
1.2.1确定延迟
1.2.2确定抖动
1.2.3硬实时与软实时
1.2.4等时实时
1.2.5实时与实快
1.2.6实时与吞吐量
1.2.7任务完成价值
1.3实时计算
1.3.1高速公路类比
1.3.2高速公路类比——添加优先车道
1.4实时调度
1.4.1调度约束
译者序回到顶部↑
将广泛使用的Java应用于实时领域,是一项有益的探索。
Java因其自身特点,如垃圾回收和即时编译,并不适合实时应用。从另一个角度看,Java广大的用户群和成熟的开发环境,对于降低实时系统采用专用语言和操作系统环境所造成的开发门槛,有着相当的吸引力。
Java实时规范(RTSJ,也称为JSR001)和Java实时系统(Java RTS)是在这个方向的一个尝试,并取得了不错的进展。
目前,Java RTS还有其局限,例如,不支持硬实时。
本书介绍了实时系统的基本原理和概念、Java的垃圾回收、如何使用Java RTS的API 解决实际问题、实时垃圾回收、线程调度和分派、新的RTSJ内存模型,以及异步事件处理和异步控制转移。
本书第三部分给出了一个用Java RTS实现的证券交易系统的例子,以及从从非实时Java到RTS的转变过程和它们之间的差别。同时,还介绍了开发用到的有关工具,主要包括基于Netbeans和Eclipse的集成开发环境、线程调度展示台和Java RTS Dtrace 探针。
本书基于RTSJ 102和Java RTS 21。Java RTS 22已于2009年9月发布。
希望能看到Java RTS的进一步发展和真正的实际应用。
在翻译过程中,得到了机械工业出版社华章公司的朋友陈冀康的大力帮助,在此表示感谢。
最后,我要感谢外甥女妞妞对我的支持和帮助。
由于时间有限,书中难免存在译释不当之处,恳请读者批评指正。
译者
2009年岁末于西山
Java因其自身特点,如垃圾回收和即时编译,并不适合实时应用。从另一个角度看,Java广大的用户群和成熟的开发环境,对于降低实时系统采用专用语言和操作系统环境所造成的开发门槛,有着相当的吸引力。
Java实时规范(RTSJ,也称为JSR001)和Java实时系统(Java RTS)是在这个方向的一个尝试,并取得了不错的进展。
目前,Java RTS还有其局限,例如,不支持硬实时。
本书介绍了实时系统的基本原理和概念、Java的垃圾回收、如何使用Java RTS的API 解决实际问题、实时垃圾回收、线程调度和分派、新的RTSJ内存模型,以及异步事件处理和异步控制转移。
本书第三部分给出了一个用Java RTS实现的证券交易系统的例子,以及从从非实时Java到RTS的转变过程和它们之间的差别。同时,还介绍了开发用到的有关工具,主要包括基于Netbeans和Eclipse的集成开发环境、线程调度展示台和Java RTS Dtrace 探针。
本书基于RTSJ 102和Java RTS 21。Java RTS 22已于2009年9月发布。
希望能看到Java RTS的进一步发展和真正的实际应用。
在翻译过程中,得到了机械工业出版社华章公司的朋友陈冀康的大力帮助,在此表示感谢。
最后,我要感谢外甥女妞妞对我的支持和帮助。
由于时间有限,书中难免存在译释不当之处,恳请读者批评指正。
译者
2009年岁末于西山
前言回到顶部↑
“要实现伟大的理想,需要两件事:一个计划和不太足够的时间。”
——伦纳德·伯恩斯坦(Leonard Bernstein), 美国指挥家、作曲家
在写作本书时,实时编程的历史,特别是用Java实时编程,才刚刚开始。但是,我们预测,在不久的将来,实时Java,即来自Sun公司的Java实时系统(Java RealTime System,Java RTS),将主要用于实时应用领域,例如金融领域、关键控制系统、生产线、军事和其他政府系统等的软件。这个预测是在Java曾经处于被认为“太慢”而不适用于开发关键任务和其他企业系统时的阴影中作出的。
然而,正如Java已经迅速向世界证明它能够执行得足够好,即适应最苛刻的企业系统,Java RTS也正在向实时世界积极证明它自己。除去必要的、复杂的、专业的实时语言和操作环境,Java RTS为系统带来了Java语言的所有的优势和经验,并满足实时性要求。实际上数十年在实时领域进行研究得到的知识和经验,现在已经为每一个Java开发者唾手可得,仅需要对新的类库多一点理解。
在20世纪90年代末期,Greg Bollella在芝加哥出差时,有了推出一个Java实时版本的想法。不久之后,JSR001开始被使用,而规范处于早期阶段。该规范是由Greg领导,成员包含涉及实时调度理论、微处理器设计、嵌入式系统设计和语言设计等领域的众多精英。最后,制订的规范定义了Java在实时空间是如何使用的,Java RTS符合该规范,并得以实现。
定义“实时”
虽然本书的第1章全面讨论并定义了实时系统,但是最好在早期设置好场景,并商定确切的定义。实时编程的总体目标是确保系统执行其任务,在定义的最后期限之前,对现实世界的事件作出响应。无论最后期限以微秒或天来衡量,只要任务在需要的最后期限之前完成,该系统即被认为是实时的。这个简单的定义是计算机科学整个学科的基础,在学术界和工业界经过了数年的研究和发展。
换言之,现实世界的事件发生(如物体掠过一个传感器,或一个股票市场数据源变化的到来)时到代码完成处理该事件的时间的延迟应该是有界的。满足最后期限的能力必须在任何时间是可预测和有保证的,以便提供一个实时系统所需要的确定性。
满足实时系统的要求可能非常费力,以致创建出专门的编程语言、操作系统、系统框架和调度算法。人们划分不同的研究领域,使用成套的工具,甚至成立整个公司来解决实时问题。正是由于这些原因,Sun创建了Java实时系统。
Java的实时规范
Sun的Java实时系统是与Java实时规范(RTSJ)百分之百兼容的实现。RTSJ也叫做JSR001,是整个Java社区过程(JCP)被建立的第一个Java规范请求(JSR)。实时Java是许多第一中的第一,并且,通过建立JCP,它不仅为本身的目标(即 Java实时编程)铺平了道路,而且在语言特性方面为Java的发展奠定了基础。
RTSJ是一个标准,定义了Java应用程序在真实世界环境中的行为。它是由来自世界各地的许多公司的许多领域(例如,嵌入式系统设计、语言设计、操作系统设计、处理器设计、实时调度理论等)的专家创建的,是真正全球性的努力。首要目标不是确定用Java如何实现实时行为,而是完全不改变 Java语言。实现这一目标的重要性,如同数以千计的开发者现在所知道的,是要确保Java可用于实时领域,不需要妥协。
一个Java的实现能够称为“实时”,则必须符合RTSJ。任何其他都是非标准的,如Java社区作为整体所定义的。这确保了用Java开发的实时应用程序将能够运行在任何兼容RTSJ的JVM上,而且其在实时环境中的行为表现是已经定义的,而无需专门的扩展或者硬件。任何其他做法将违背Java建立的原则。Java RTS是符合RTSJ的,因而是基于标准的。
本书的重点和面向的读者
本书着重介绍Java RTS、它的API,以及用Java如何建立真正的实时应用。这样做的目的是,为读者提供用Java建立实时应用的实用知识和实例。只要有可能,将通过使用实际工作代码示例,提供关键教义和可视化图示,使复杂的概念清晰化。
虽然Java RTS是本书的重点,但是所有从本书获得的知识将是默认兼容于 RTSJ的。对于RTSJ的理解不是阅读本书的前提,但强烈建议你阅读这一规范,因为它是这里所介绍的内容的基础。你可以在http://wwwrtsjorg获得最新的规范和相关材料。
本书的主要读者是(各级)架构师和开发人员,他们需要用时间关键的代码建立应用。本书针对下面不同类型的开发者:
正在使用或没有使用Java RTS开发有实时要求的应用的Java开发者
有兴趣学习Java RTS的API并将其用于未来项目的Java开发者
希望使用Java用于实时应用开发的非Java实时应用程序开发者
——伦纳德·伯恩斯坦(Leonard Bernstein), 美国指挥家、作曲家
在写作本书时,实时编程的历史,特别是用Java实时编程,才刚刚开始。但是,我们预测,在不久的将来,实时Java,即来自Sun公司的Java实时系统(Java RealTime System,Java RTS),将主要用于实时应用领域,例如金融领域、关键控制系统、生产线、军事和其他政府系统等的软件。这个预测是在Java曾经处于被认为“太慢”而不适用于开发关键任务和其他企业系统时的阴影中作出的。
然而,正如Java已经迅速向世界证明它能够执行得足够好,即适应最苛刻的企业系统,Java RTS也正在向实时世界积极证明它自己。除去必要的、复杂的、专业的实时语言和操作环境,Java RTS为系统带来了Java语言的所有的优势和经验,并满足实时性要求。实际上数十年在实时领域进行研究得到的知识和经验,现在已经为每一个Java开发者唾手可得,仅需要对新的类库多一点理解。
在20世纪90年代末期,Greg Bollella在芝加哥出差时,有了推出一个Java实时版本的想法。不久之后,JSR001开始被使用,而规范处于早期阶段。该规范是由Greg领导,成员包含涉及实时调度理论、微处理器设计、嵌入式系统设计和语言设计等领域的众多精英。最后,制订的规范定义了Java在实时空间是如何使用的,Java RTS符合该规范,并得以实现。
定义“实时”
虽然本书的第1章全面讨论并定义了实时系统,但是最好在早期设置好场景,并商定确切的定义。实时编程的总体目标是确保系统执行其任务,在定义的最后期限之前,对现实世界的事件作出响应。无论最后期限以微秒或天来衡量,只要任务在需要的最后期限之前完成,该系统即被认为是实时的。这个简单的定义是计算机科学整个学科的基础,在学术界和工业界经过了数年的研究和发展。
换言之,现实世界的事件发生(如物体掠过一个传感器,或一个股票市场数据源变化的到来)时到代码完成处理该事件的时间的延迟应该是有界的。满足最后期限的能力必须在任何时间是可预测和有保证的,以便提供一个实时系统所需要的确定性。
满足实时系统的要求可能非常费力,以致创建出专门的编程语言、操作系统、系统框架和调度算法。人们划分不同的研究领域,使用成套的工具,甚至成立整个公司来解决实时问题。正是由于这些原因,Sun创建了Java实时系统。
Java的实时规范
Sun的Java实时系统是与Java实时规范(RTSJ)百分之百兼容的实现。RTSJ也叫做JSR001,是整个Java社区过程(JCP)被建立的第一个Java规范请求(JSR)。实时Java是许多第一中的第一,并且,通过建立JCP,它不仅为本身的目标(即 Java实时编程)铺平了道路,而且在语言特性方面为Java的发展奠定了基础。
RTSJ是一个标准,定义了Java应用程序在真实世界环境中的行为。它是由来自世界各地的许多公司的许多领域(例如,嵌入式系统设计、语言设计、操作系统设计、处理器设计、实时调度理论等)的专家创建的,是真正全球性的努力。首要目标不是确定用Java如何实现实时行为,而是完全不改变 Java语言。实现这一目标的重要性,如同数以千计的开发者现在所知道的,是要确保Java可用于实时领域,不需要妥协。
一个Java的实现能够称为“实时”,则必须符合RTSJ。任何其他都是非标准的,如Java社区作为整体所定义的。这确保了用Java开发的实时应用程序将能够运行在任何兼容RTSJ的JVM上,而且其在实时环境中的行为表现是已经定义的,而无需专门的扩展或者硬件。任何其他做法将违背Java建立的原则。Java RTS是符合RTSJ的,因而是基于标准的。
本书的重点和面向的读者
本书着重介绍Java RTS、它的API,以及用Java如何建立真正的实时应用。这样做的目的是,为读者提供用Java建立实时应用的实用知识和实例。只要有可能,将通过使用实际工作代码示例,提供关键教义和可视化图示,使复杂的概念清晰化。
虽然Java RTS是本书的重点,但是所有从本书获得的知识将是默认兼容于 RTSJ的。对于RTSJ的理解不是阅读本书的前提,但强烈建议你阅读这一规范,因为它是这里所介绍的内容的基础。你可以在http://wwwrtsjorg获得最新的规范和相关材料。
本书的主要读者是(各级)架构师和开发人员,他们需要用时间关键的代码建立应用。本书针对下面不同类型的开发者:
正在使用或没有使用Java RTS开发有实时要求的应用的Java开发者
有兴趣学习Java RTS的API并将其用于未来项目的Java开发者
希望使用Java用于实时应用开发的非Java实时应用程序开发者
【插图】


点击看大图






加载中...
