The Real-time Specification for Javaby James Gosling, Peter Dibble, Mark M. Turnbull, Greg Bollella, David Hardin
Real-time programming is a critical component in the development of many consumer, industrial, and system devices. This book represents the first official specification for developing real-time applications with the Java™ platform. The Real-Time Specification for Java™ (RTSJ) is the definitive reference to the semantics, extensions, and/i>/i>
Real-time programming is a critical component in the development of many consumer, industrial, and system devices. This book represents the first official specification for developing real-time applications with the Java™ platform. The Real-Time Specification for Java™ (RTSJ) is the definitive reference to the semantics, extensions, and modifications to the Java programming language that enable the Java platform to meet the requirements and constraints of real-time system predictability, performance, and capabilities. These world-renowned authors provide you with an authoritative resource for all of the APIs and Java virtual machine semantics required to implement the specification.
The newly developed RTSJ enables the creation, verification, analysis, execution, and management of code written for the Java platform for which the correctness conditions, timeliness, and execution predictability are paramount.
This specification provides programmers with the ability to model applications and program logic that require predictable execution which meets hard real-time constraints.
The RTSJ APIs, methods, and classes are fully detailed and contain sample code that demonstrate the important concepts and techniques. Additionally, you will find coverage of such specific topics as:
- Memory management
- Asynchronous event handling
- Asynchronous transfer of control
- Asynchronous thread termination
- Physical memory access
As the most authoritative and comprehensive description of a new and important technology, this book is an essentialresource for programmers who are developing implementations of the RTSJ and programming for real-time systems. You will also find this book useful if you are a real-time programmer interested in the Java platform.
Read an Excerpt
In 1997 the idea of writing real-time applications in the Java programming language seemed unrealistic. Real-time programmers talk about wanting consistent timing behavior more than absolute speed, but that doesn't mean they donIt require excellent overall performance. The Java runtime is sometimes interpreted, and almost always uses a garbage collector. The early versions were not known for their blistering performance.
Nevertheless, Java platforms were already being incorporated into real-time systems. It is fairly easy to build a hybrid system that uses C for modules that have real-time requirements and other components written to the Java platform. It is also possible to implement the Java interpreter in hardware (for performance), and integrate the system without a garbage collector (for consistent performance). aJile Systems produces a Java processor with acceptable real-time characteristics.
Until the summer of 1998, efforts toward support for real-time programming on the Java platform were fragmented. Kelvin Nilsen from NewMonics and Lisa Carnahan from the National Institute for Standards and Technology (NIST) led one effort, Greg Bollella from IBM led a group of companies that had a stake in Java technology and real-time, and Sun had an internal real-time project based on the Java platform.
In the summer of 1998 the three groups merged. The real-time requirements working group included Kelvin Nilsen from NewMonics, Bill Foote and Kevin Russell from Sun, and the group of companies led by Greg Bollella. It also included a diverse selection of technical people from across the real-time industry and a few representatives with a moremarketing or management orientation.
The requirements group convened periodically until early 1999. Its final output was a document, Requirements for Real-time Extensions for the Java Platform, detailing the requirements the group had developed, and giving some rationale for those requirements.
One of the critical events during this processess occurred in late 1998, when Sun created the Java Community Process. Anyone who feels that the Java platform needs a new facility can formally request the enhancement. If the request, called a Java Specification Request (JSR), is accepted, a call for experts is posted. The specification lead is chosen and then he or she forms the expert group. The result of the effort is a specification, reference implementation, and test suite.
In late 1998, IBM asked Sun to accept a JSR, The Real-Time Specification for Java, based partly on the work of the Requirements Working Group. Sun accepted the request as JSR-000001. Greg Bollella was selected as the specification lead. He formed the expert group in two tiers. The primary group:Greg Bollella, IBM
Paul Bowman, Cyberonics
Ben Brosgol, Aonix/Ada Core Technologies
Peter Dibble, Microware Systems Corporation
Steve Furr, QNX System Software Lab
James Gosling, Sun Microsystems
David Hardin, Rockwell-Collins/aJile
Mark Turnbull, Nortel Networks
would actually write the specification, and the consultant group:Rudy Belliardi, Schneider Automation
Alden Dima, NIST
E. Douglas Jensen, MITRE
Alexander Katz, NSICom
Masahiro Kuroda, Mitsubishi Electric
C. Douglass Locke, Lockheed Martin/TimeSys
George Malek, Apogee
Jean-Christophe Mielnik, Thomson-CSF
Ragunathan Rajkumar, CMU
Mike Schuette, Motorola
Chris Yurkoski, Lucent
Simon Waddington, Wind River Systems
would serve as a pool of readily available expertise and as initial reviewers of early drafts.
The effort commenced in March 1999 with a plenary meeting of the consultant and primary groups at the Chicago Hilton and Towers. This was an educational meeting where the consultants each presented selections of general real-time wisdom, and the specific requirements of their part of the real-time world.
The basis of the specification was laid down at the first primary group meeting. It took place in one of the few civilized locations in the United States that is not accessible to digital or analog cell phone traffic, Mendocino, California. This is also, in the expert opinion of the primary group, the location of a restaurant that produces the world's most heavily cheesed pizza.
Through 1999 the primary group met slightly more than once a month, and meetings for the joint primary and consultants groups were held slightly less than once a month. We worked hard and had glorious fun. Mainly, the fun was the joy of solving a welter of problems with a team of diverse and talented software architects, but there were memorable nontechnical moments. There was the seminal "under your butt" insight, when James told Greg that he should stop looking over his head for the sense of an argument: "This is simple, Greg. ItIs not over your head, itIs going under your butt." That was the same Burlington, Massachusetts, meeting where a contingent of the expert group attended the 3:00 AM second showing of the newly released Star Wars Phantom Menace. The only sane reason for waking up at a time more suitable for going to sleep was that James had gone back to California to attend the movie with his wife, who had purchased tickets weeks in advance. It tickled our fancy to use the magic of time zones and early rising to see the new release before them.
The cinnamon rolls in Des Moines, which David later claimed were bigger than his head. This was an exaggeration. Each roll was slightly less than half the size of David's head.
The "dead cat" meeting in Ottawa, where Greg claimed that when he took his earache to the clinic, the doctor would probably remove a dead cat. The "impolite phrase" meeting, also in Ottawa. The group made it into a computer industry gossip column, and our feelings on the thrill of being treated like movie stars simply cannot be expressed in this book. We are, however, impressed that a writer old enough to perceive Greg as IBM's boy is still writing regularly.
In September 1999, the draft specification was published for formal review by participants in the Java Community Process and informal reading by anyone who downloaded it from the group's web site. In December 1999, the revised and extended document was published on the web site for public review. Public review remained open until the 14th of February 2000 (yes, Valentine's Day). Then the specification was revised a final time to address the comments from the general public.
The first result of this work is the document you are reading. IBM is also producing a reference implementation and a test suite to accompany this specification.
A Note on Format
We used javadoc on Java source files to produce most of this book (see the Colophon for more details) and thus many references to class, interface, and method names use the @link construct to produce a hyperlink in the (more typical) html formatted output. Of course, clicking on the hyperlink in the html formatted version will display the definition of the class. We tried to preserve this hyperlink characteristic in the book by including on each occurrence of a name the page number of its definition as a trailing subscript.
Most Helpful Customer Reviews
See all customer reviews