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 more marketing 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. It can be found on the web at http://www.nist.gov/rt-java.
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:
|Ben Brosgol||Aonix/Ada Core Technologies|
|Peter Dibble||Microware Systems Corporation|
|Steve Furr||QNX System Software Lab|
|James Gosling||Sun Microsystems|
|Mark Turnbull||Nortel Networks|
would actually write the specification, and the consultant group:
|Rudy Belliardi||Schneider Automation|
|E. Douglas Jensen||MITRE|
|Masahiro Kuroda||Mitsubishi Electric|
|C. Douglass Locke||Lockheed Martin/TimeSys|
|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. It's not over your head, it's 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 (http://www.rtj.org.) 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.
We'll start at the beginning. Many of the technical contributors came together at a series of forums conceived and hosted by Lisa Carnahan at the National Institute for Standards and Technology. One of the authors, Greg Bollella, was instrumental, along with Lisa, in the early establishment of the organization of the future authors. He thanks his managers at IBM, Ruth Taylor, Rod Smith, and Pat Sueltz, for (in their words) being low-maintenance managers and for allowing Greg the freedom to pursue his goal.
The Java Community Process was developed at Sun Microsystems by Jim Mitchell, Ken Urquhart, and others to allow and promote the broad involvement of the computer industry in the development of the Java platform. We thank them and all those at Sun and other companies who reviewed the initial proposals of the process. Vicki Shipkowitz the embedded Java product manager at Sun has also helped the Real-Time for Java Expert Group with logistics concerning demonstrations and presentations of the RTSJ.
The Real-Time for Java Expert Group comprises an engineering team and a consultant team. The authors of this work are the primary engineers and we sincerely thank the consultants, mentioned by name previously, for their efforts during the early design phase and for reviewing various drafts. Along the way Ray Kamin, Wolfgang Pieb, and Edward Wentworth replaced three of the original consultants and we thank them for their effort as well.
We thank all those, but especially Kirk Reinholtz of NASA's Jet Propulsion Lab, who submitted comments during the participant and public reviews.
We thank Lisa Friendly, the Java Series editor at Sun Microsystems, and Mike Hendrickson, Sarah Weaver, and Julie DiNicola at Addison-Wesley for their effort in the preparation of this book.
We all thank Russ Richards at DISA for his support of our effort.
We thank Kevin Russell and Bill Foote of Sun Microsystems who worked hard during the NIST sponsored requirements phase.
Although they have much left to do and will likely give us more work as they implement the RTSJ, we thank the reference implementation team at IBM. Peter Haggar leads the team of David Wendt and Jim Mickelson. Greg also thanks them for their efforts on the various robot demonstrations he used in his talks about the RTSJ.
Greg would like to personally thank his dissertation advisor Kevin Jeffay for his guidance.
We thank Robin Coron and Feng Liu, administrative assistants at Sun Microsystems and IBM, respectively, for their logistical support.