Using Java Technology to Standardize Real-Time Development
Abstract
With the recently released Real-Time Specification for JavaTM (RTSJ),
developed through the Java Community ProcessSM by the Real-Time Expert
Group, the real-time embedded software developer will be able to use the
Java programming language in applications where predictable/hard real-time
behavior is a must. Device manufacturers with time constraint
requirements will be able to take full advantage of the benefits offered
by the Java Technology Model, helping get better products to market
faster. The extensions can be utilized by many industries for numerous
applications. A few examples include computer networking and
telecommunications equipment, industrial robots, automotive controllers,
medical and scientific measurement devices, and industrial controllers.
Java Technology Model with Real-Time Extensions
The Java Technology Model with Real-Time Extensions further leverages the
capabilities of a real-time operating system (RTOS) to achieve the promise
of hard real-time
computing. By coupling the Real-Time Java Virtual Machine with an RTOS and
giving the developer new mechanisms to separate hard real-time and soft
real-time threads, objects and memory, Java Technology will be capable of
addressing the requirements faced by real-time and non-real-time
applications.
The extensions do not introduce new keywords or make syntactic extensions
to the Java programming language, allowing the developer to utilize
current tools. However,
there are new memory models introduced. With these memory models,
developers will be able to define areas that can or cannot be affected by
non-deterministic events such as garbage collection. Additionally,
physical memory or memory mapped I/O will be accessible.
Advantages of the Java Technology Model
Because of the advantages provided by the Java technology model, there has
been a tremendous shift towards using the Java programming language in
software development. Many companies are experiencing shorter
development schedules and reduced costs by developing products using the
Java programming language.
The Java programming language offers several distinct advantages:
Simplicity. Most notably, the Java programming language is easy to learn
and use. The language also brings the productivity enhancements from
object oriented methodologies. There is a large, and rapidly growing
supply of developer talent in the industry, making it easier to staff new
projects.
Security. For distributed, networked applications, the Java programming
language features robust security. The run-time environment creates a
"sandbox" where applications can execute safely, with fine-grained access
restrictions on system resources. The lack of pointers also eliminates
direct memory access, resulting in fewer bugs.
Portability. By using an underlying Java run-time environment,
applications can be easily developed on a desktop system using standard
software development tools. By taking into account the underlying target
hardware characteristics, developers can then move
applications with minimal effort to the target device.
As a result, applications written in the Java programming language are
easily migrated across product lines, greatly simplifying porting and
development efforts, even if the deployment target or underlying RTOS
changes. In this way, the Java programming language can provide a much
higher degree of standardization in the real-time world.
Since the Java APIs have been developed with involvement from many
companies in the computing industry, the platform has gained a level of
acceptance and maturity that promises a long lifespan. For device
manufacturers concerned with long product life cycles, the longevity of
the language will facilitate better on-going support and maintenance.
Real-Time Specification for Java Background
The process of developing real-time extensions for the Java platform,
followed a defined methodology for expanding the Java APIs known as the
Java Community Process. The Java Community Process is an open one,
involving collaboration and consensus-building among academic and industry
experts. The process is subject to review by an independent auditor,
ensuring that it remains open and is not controlled by any one vendor. The
goal of the process is to produce Java extension specifications, as well
as reference implementations and conformance tests for those
specifications, which will enable all vendors to deliver compliant products.
The Real-Time Expert Group is led by Dr. Greg Bollella of IBM and is
comprised of numerous experts in the real-time industry. In addition, over
forty companies have signed up to participate as expert consultants and to
review draft specifications prior to public release. James Gosling,
"father" of the Java programming language is Sun`s representative to the
Expert Group.
Summary
Today, the Java programming language is helping many companies achieve
faster time-to-market and lower development costs for their products. This
is true within the embedded device market as well, where manufacturers can
reuse code across product lines, simplifying development and thus saving
valuable development time and cost.
The specification for extending the Java platform with real-time
capabilities will promote standardization and provide direction on using
the Java programming language for real-time applications. The real-time
industry has stepped up to participate in the open Java Community Process
for developing the real-time API, and has welcomed the Real-Time Expert
Group`s efforts as a means of providing a productive, more standardized
real-time development environment.
|