Real-time Java is a catch-all term for a combination of technologies that enables programmers to write
programs that meet the demands of
real-time
Real-time, realtime, or real time may refer to:
Computing
* Real-time computing, hardware and software systems subject to a specified time constraint
* Real-time clock, a computer clock that keeps track of the current time
* Real-time Control Syst ...
systems
A system is a group of interacting or interrelated elements that act according to a set of rules to form a unified whole. A system, surrounded and influenced by its environment, is described by its boundaries, structure and purpose and is exp ...
in the
Java programming language
Java is a high-level, general-purpose, memory-safe, object-oriented programming language. It is intended to let programmers ''write once, run anywhere'' ( WORA), meaning that compiled Java code can run on all platforms that support Jav ...
.
Java's sophisticated
memory management
Memory management (also dynamic memory management, dynamic storage allocation, or dynamic memory allocation) is a form of Resource management (computing), resource management applied to computer memory. The essential requirement of memory manag ...
, native support for
threading and concurrency,
type safety
In computer science, type safety and type soundness are the extent to which a programming language discourages or prevents type errors. Type safety is sometimes alternatively considered to be a property of facilities of a computer language; that ...
, and relative simplicity have created a demand for its use in many domains. Its capabilities have been enhanced to support real-time computational needs:
* Real-time Java supports a strict
priority-based threading model,
* because Java threads support priorities, Java
locking mechanisms support
priority inversion
In computer science, priority inversion is a scenario in scheduling in which a high-priority task is indirectly superseded by a lower-priority task, effectively inverting the assigned priorities of the tasks. This violates the priority model tha ...
avoidance techniques, such as
priority inheritance or the
priority ceiling protocol, and
* event handling.
The initial proposal for an open standard for real-time Java was put forth by Kelvin Nilsen, then serving as a research faculty member at Iowa State University. A follow-on overview paper was published in the ''
Communications of the ACM
''Communications of the ACM'' (''CACM'') is the monthly journal of the Association for Computing Machinery (ACM).
History
It was established in 1958, with Saul Rosen as its first managing editor. It is sent to all ACM members.
Articles are i ...
''. The overwhelmingly positive response to these early proposals resulted in a series of meetings hosted by the National Institute of Standards and Technology in an effort to establish an open standard for real-time Java. NIST was ultimately told that they were not the appropriate body to establish standards related to the Java language, as Java was trademarked, and the technologies were owned by Sun Microsystems. Therefore, NIST ended their efforts with publication of consensus requirements. that could be considered by future standardization efforts to be hosted by Sun Microsystems.
When the
Java Community was formed, the very first effort was the specification for real-time Java, JSR001. A number of implementations of the resulting ''Real-time specification for Java'' (''RTSJ'') have emerged, including a
reference implementation
In the software development process, a reference implementation (or, less frequently, sample implementation or model implementation) is a program that implements all requirements from a corresponding specification. The reference implementation ...
from
Timesys,
IBM
International Business Machines Corporation (using the trademark IBM), nicknamed Big Blue, is an American Multinational corporation, multinational technology company headquartered in Armonk, New York, and present in over 175 countries. It is ...
's WebSphere Real Time,
Sun Microsystems
Sun Microsystems, Inc., often known as Sun for short, was an American technology company that existed from 1982 to 2010 which developed and sold computers, computer components, software, and information technology services. Sun contributed sig ...
's Java SE Real-Time Systems, PTC Perc from
PTC, Inc., or
JamaicaVM
The JamaicaVM is a virtual machine and build environment for developing and running realtime Java programs. It includes a deterministic garbage collector and implements the RTSJ.Fridtjof Siebert, "Realtime Garbage Collection in the JamaicaVM 3 ...
from aicas.
The RTSJ addressed the critical issues by mandating a minimum specification for the threading model (and allowing other models to be plugged into the VM) and by providing for areas of
memory
Memory is the faculty of the mind by which data or information is encoded, stored, and retrieved when needed. It is the retention of information over time for the purpose of influencing future action. If past events could not be remembe ...
that are not subject to garbage collection, along with threads that are not preemptable by the garbage collector. These areas are instead managed using
region-based memory management
In computer science, region-based memory management is a type of memory management in which each allocated object is assigned to a region. A region, also called a partition, subpool, zone, arena, area, or memory context, is a collection of alloca ...
. The latest specification, 2.0, supports direct device access and deterministic garbage collection as well.
Real-Time Specification for Java
The ''Real-Time Specification for Java'' (RTSJ) is a set of
interfaces and behavioral refinements that enable real-time
computer programming
Computer programming or coding is the composition of sequences of instructions, called computer program, programs, that computers can follow to perform tasks. It involves designing and implementing algorithms, step-by-step specifications of proc ...
in the
Java programming language
Java is a high-level, general-purpose, memory-safe, object-oriented programming language. It is intended to let programmers ''write once, run anywhere'' ( WORA), meaning that compiled Java code can run on all platforms that support Jav ...
. RTSJ 1.0 was developed as JSR 1 under the
Java Community Process
The Java Community Process (JCP), established in 1998, is a formal mechanism that enables interested parties to develop standard technical specifications for Java technology. Becoming a member of the JCP requires solid knowledge of the Java program ...
, which approved the new standard in November, 2001. RTSJ 2.0 is being developed under JSR 282. A draft version is available at a JCP page. More information can be found from Aicas.
See also
*
Javolution – RTSJ Compliant Java Library
References
External links
Issues in the Design and Implementation of Real-Time JavaAdding Real-Time Capabilities to JavaRequirements for Real-Time Extensions for the Java PlatformReal-Time Specification for Java 2.0 (RTSJ 2.0)JSR-282Real-Time Specification for Java (RTSJ)JSR-1a fully conformant RTSJ SE VM
an RTSJ SE implementation with deterministic garbage collection
PTC Perca real-time VM based on Java Standard Edition but with a patented deterministic garbage collection technology rather than RTSJ
Apogee real-time Java with real-time GC (discontinued)Timesys RTSJ implementation and testing toolkitjRate (Java Real-Time Extension)an open-source extension of the GNU GCJ compiler front-end and runtime system which adds support for most of the features required by the RTSJ.
[http://www-users.cs.york.ac.uk/~andy/JTRES06/ JTRES 2006
JTRES 2007JTRES 2008
JTRES 2009JTRES 2010JTRES 2012JTRES 2013JTRES 2014JTRES 2015
LJRT Lund Java based Real-Time open source
*
* {{usurped,
Fiji VM real-time Java
}
Java (programming language)
Real-time computing