HOME

TheInfoList



OR:

Real time Java is a catch-all term for a combination of technologies that enables programmers to write
program Program, programme, programmer, or programming may refer to: Business and management * Program management, the process of managing several related projects * Time management * Program, a part of planning Arts and entertainment Audio * Progra ...
s that meet the demands of
real-time Real-time or real time describes various operations in computing or other processes that must guarantee response times within a specified time (deadline), usually a relatively short time. A real-time process is generally one that happens in defined ...
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 express ...
in the
Java programming language Java is a high-level, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible. It is a general-purpose programming language intended to let programmers ''write once, run anywh ...
. Java's sophisticated
memory management Memory management is a form of resource management applied to computer memory. The essential requirement of memory management is to provide ways to dynamically allocate portions of memory to programs at their request, and free it for reuse when ...
, 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 is ...
, 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 that h ...
avoidance techniques, such as
priority inheritance In real-time computing, priority inheritance is a method for eliminating unbounded priority inversion. Using this programming method, a process scheduling algorithm increases the priority of a process (A) to the maximum priority of any other proce ...
or the
priority ceiling protocol In real-time computing, the priority ceiling protocol is a synchronization protocol for shared resources to avoid unbounded priority inversion and mutual deadlock due to wrong nesting of critical sections. In this protocol each resource is assign ...
, and * event handling. The initia
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 th
CACM
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 consensu
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 o ...
from
Timesys Timesys Corporation is a company selling Linux open source software security, engineering services, and development tools, for the embedded software market. They also help software development teams build and maintain a custom Linux platform for e ...
, IBM's WebSphere Real Time,
Sun Microsystems Sun Microsystems, Inc. (Sun for short) was an American technology company that sold computers, computer components, software, and information technology services and created the Java programming language, the Solaris operating system, ZFS, the ...
's Java SE Real-Time Systems, PTC Perc from PTC, Inc.,PTC Perc
/ref> 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.0 ...
from
aicas aicas GmbH is a software corporation headquartered in Germany with subsidiaries in France and the United States. aicas provides Java technology and analysis tools for realtime and embedded systems. Its flagship product is JamaicaVM, a Java Virtu ...
. 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 remembered, ...
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 zone, arena, area, or memory context, is a collection of allocated objects that ca ...
. 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
interface Interface or interfacing may refer to: Academic journals * ''Interface'' (journal), by the Electrochemical Society * '' Interface, Journal of Applied Linguistics'', now merged with ''ITL International Journal of Applied Linguistics'' * '' Int ...
s and behavioral refinements that enable real-time
computer programming Computer programming is the process of performing a particular computation (or more generally, accomplishing a specific computing result), usually by designing and building an executable computer program. Programming involves tasks such as ana ...
in the
Java programming language Java is a high-level, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible. It is a general-purpose programming language intended to let programmers ''write once, run anywh ...
. RTSJ 1.0 was developed as JSR 1 under the
Java Community Process The Java Community Process (JCP), established in 1998, is a formalized mechanism that allows interested parties to develop standard technical specifications for Java technology. Anyone can become a JCP Member by filling a form available at thJCP w ...
, which approved the new standard in November, 2001. RTSJ 2.0 is being developed under JSR 282. A draft version is available a
JSR 282 JCP Page
More information can be found a
RTSJ 2.0


See also

*
Functional specification A functional specification (also, ''functional spec'', ''specs'', ''functional specifications document (FSD)'', ''functional requirements specification'') in systems engineering and software development is a document that specifies the functio ...
*
Javolution Javolution is a real-time library aiming to make Java or Java-Like/C++ applications faster and more time predictable. Indeed, time-predictability can easily be ruined by the use of the standard library (lazy initialization, array resizing, etc. ...
– 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

Ovm

Fiji VM real-time Java


{{DEFAULTSORT:Real Time Java Java (programming language) Real-time computing