HOME

TheInfoList



OR:

Javolution is a
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 ...
library aiming to make
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mos ...
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.) which is not acceptable for
safety-critical A safety-critical system (SCS) or life-critical system is a system whose failure or malfunction may result in one (or more) of the following outcomes: * death or serious injury to people * loss or severe damage to equipment/property * environme ...
systems. The open source Javolution library addresses these concerns for the
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mos ...
platform and native applications. It provides numerous high-performance classes and utilities useful to non real-time applications as well. Such as: * Collections classes, supporting custom views, closure-based iterations,
map-reduce MapReduce is a programming model and an associated implementation for processing and generating big data sets with a parallel, distributed algorithm on a cluster. A MapReduce program is composed of a ''map'' procedure, which performs filtering ...
paradigm, parallel computing, etc. *
Worst-case execution time The worst-case execution time (WCET) of a computational task is the maximum length of time the task could take to execute on a specific hardware platform. What it is used for Worst case execution time is typically used in reliable real-time sys ...
behavior documented using Realtime
Java annotation In the Java computer programming language, an annotation is a form of syntactic metadata that can be added to Java source code. Classes, methods, variables, parameters and Java packages may be annotated. Like Javadoc tags, Java annotations can b ...
s * Fractal structures to maintain high-performance regardless of the size of the data *
OSGi OSGi is an open specification and open source project under the Eclipse Foundation. It is a continuation of the work done by the OSGi Alliance (formerly known as the Open Services Gateway initiative), which was an open standards organization fo ...
contexts allowing cross cutting concerns (concurrency, logging, security, ...) to be addressed at run-time through
OSGi OSGi is an open specification and open source project under the Eclipse Foundation. It is a continuation of the work done by the OSGi Alliance (formerly known as the Open Services Gateway initiative), which was an open standards organization fo ...
published services without polluting the application code (
separation of concerns In computer science, separation of concerns is a design principle for separating a computer program into distinct sections. Each section addresses a separate '' concern'', a set of information that affects the code of a computer program. A concern ...
) * Algorithmic parallel computing support with concurrent contexts and
general-purpose computing on graphics processing units General-purpose computing on graphics processing units (GPGPU, or less often GPGP) is the use of a graphics processing unit (GPU), which typically handles computation only for computer graphics, to perform computation in applications traditiona ...
with compute context * Struct/Union base classes for direct interfacing with native applications * Perfometer utility class to measure
worst-case execution time The worst-case execution time (WCET) of a computational task is the maximum length of time the task could take to execute on a specific hardware platform. What it is used for Worst case execution time is typically used in reliable real-time sys ...
with high precision *
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable ...
Marshalling/unmarshalling facility capable of direct serialization/deserialization of existing classes (no intermediate data structure required) * StAX-like XML reader/writer which does not require object creation (such as String) and consequently faster than standard
StAX Streaming API for XML (StAX) is an application programming interface ( API) to read and write XML documents, originating from the Java programming language community. Traditionally, XML APIs are either: * DOM based - the entire document is read i ...
* Simple yet powerful configuration management for your application. Since version 6.0, Javolution makes it easy to port any Java source code to C++ for
cross-platform In computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several computing platforms. Some cross-platform software ...
native compilation.
OSGi OSGi is an open specification and open source project under the Eclipse Foundation. It is a continuation of the work done by the OSGi Alliance (formerly known as the Open Services Gateway initiative), which was an open standards organization fo ...
and
JUnit JUnit is a unit testing framework for the Java programming language. JUnit has been important in the development of test-driven development, and is one of a family of unit testing frameworks which is collectively known as xUnit that originated ...
have been ported and are included with the core C++ distribution. All modules (Java and native) are built using
maven MAVEN is an American spacecraft orbiting Mars to study the loss of its atmospheric gases to space, providing insight into the history of the planet's climate and water. The spacecraft name is an acronym for "Mars Atmosphere and Volatile Evolu ...
. Javolution can be usedJavolution Usage Overview
/ref> either as an OSGi bundle (preferred) or as a standalone library.


References


External links


Javolution website

Fully Time Deterministic Java
– AIAA Space 2007 Conference
Validating Java for Safety-Critical Applications
– AIAA Space 2005 Conference
Turbo-Charging Java for Real-Time Applications
– Java Developer Journal Article Java APIs