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 assigned ...
, and
* event handling.
The initia
proposalfor 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
requirementsthat 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 Inc. (formerly Parametric Technology Corporation) is an American computer software and services company founded in 1985 and headquartered in Boston, Massachusetts. The global technology company has over 6,000 employees across 80 offices in ...
,
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''
* '' Inte ...
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