HOME

TheInfoList



OR:

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 Java

Adding Real-Time Capabilities to Java

Requirements for Real-Time Extensions for the Java Platform

Real-Time Specification for Java 2.0 (RTSJ 2.0)

JSR-282

Real-Time Specification for Java (RTSJ)

JSR-1


a fully conformant RTSJ SE VM

an RTSJ SE implementation with deterministic garbage collection
PTC Perc
a 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 toolkit

jRate (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 2008JTRES 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