Real-time Java is an emerging set of technologies that enable
customers to write applications in Java with deterministic
run-time requirements. IBM provides a real-time Java solution
called IBM WebSphere Real Time, which features Real Time GC,
Ahead Of Time Compilation, and a conforming RTSJ environment, all
running on an enhanced Real Time Linux. The Linux product only
uses freely-available technology developed by the Linux
community. The technologies provided here show a first glimpse of
where the industry is taking real-time Java
Efficient implementation of monitors and exceptions is crucial
for the performance of Java. One implementation of threads showed
a factor of 30 difference in run time on some benchmark programs.
This article describes an efficient implementation of monitors
for Java as used in the CACAO just-in-time compiler. With this
implementation the thread overhead is less than 40% for typical
application programs and can be completely eliminated for some
applications.
For all its functionalities, Java is known to suffer in terms of
responsiveness. To make it lend itself to real-time embedded
systems and other computing systems that need to be extremely
fast and responsive, companies like IBM, Sun etc have developed
or are working on real-time Java specifications and development
platforms.
In order to analyse the real time application, we contacted
Mr. Anand Mahadevan, Lead Consultant of Satyam Computers.
Give below is the text of the interview:
<!--[if !supportLists]-->1.
<!--[endif]-->What about the Java Programme and how is it
used in various organizations?
Java is language of choice for software development. It has
evolved, matured and gained acceptance across the industry.
Java is a programming language which was developed by Sun
Microsystems and initially was targeted for a non-computing
environment. The advent of Internet and popularity of the World
Wide Web resulted in the acceptance of Java. Java is an
object-oriented language that is modelled on C++ but has less
clutter. From a usage standpoint it has gained wide
acceptance across all spheres of software development.
<!--[if !supportLists]-->2.
<!--[endif]-->What are the limitations in implementing Java
programme
There are no apparent limitations for implementing a Java
programme. The only limitation would be computing power as Java
has a virtual machine, which needs a fair amount of resources and
computing power to perform efficiently.
<!--[if !supportLists]-->3.
<!--[endif]-->How to overcome these limitations?
As computing power and memory has become cheap it now has no
barrier in developing and deploying Java based applications.
There are no apparent limitations in Java development.
<!--[if !supportLists]-->4.
<!--[endif]-->Can you tell your experience about Java
programme?
I have been involved with Java ever since its inception
(early 90's). I was initially a skeptic but a combination of
increase in computing power and stability of the VM's we started
to take it seriously. A lot of mission critical applications were
developed and deployed using Java programming language in my 14
years of experience. Java's famous quote line of
"Write once and run anywhere" was practically put to
use. We had applications written on Solaris and like a chime,
with no code change was deployed on Windows and Linux. This was
huge as the enterprise was a heterogeneous mix of Operating
Systems.
<!--[if !supportLists]-->5.
<!--[endif]-->What are the applications for which Java
programme can be successfully used?
 
; Java can be used to build content rich web applications. In act
a majority of applications like online banking
have Java components. One can also build system applications and
database applications. Java can thought as a language of choice
for almost all type application scope.
<!--[if !supportLists]-->6.
<!--[endif]-->How will you train people in junior
levels?
There are enough books and materials out there for training
junior level programmers. Java is taught as a part of the
curicullum in almost all computer science courses. A systematic
approach should be take to train with emphasis on OOPS concept
and then working on the language nuances.
<!--[if !supportLists]-->8.
<!--[endif]-->What are the latest developments in Java
programme?
Java as a language has matured. The latest development from
the Java world is the 1.5 release with emphasis on web
services.
<!--[if !supportLists]-->9.
<!--[endif]-->Would you like to share your personal
experience regarding stepwise
Java implementation
Any Java implementation should start with a good ground up
design. A lot of thought and energy should be spent on coming
with a good design. Implementation will basically comprise of
setting up a build environment, deciding on a IDE (Integrated
Development Env) like Eclipse, Net Beans... and setting up the
source repository.
One of the key aspects of Java implementation is to ensure
that the proper version of JVM is installed on the client
machine. Typically you one could have developed the application a
JVM version that might be higher than the target/production
machine JVM. We just have to be careful enough to ensure that JVM
compatibility exists.
Here are few quotes from software engineers:
“When I was at the Trolltech booth at LinuxWorld Expo in
Boston, two guys stepped up to our booth, showing interest to our
slogans about productivity gain. I asked them about their
business, and whether they were in development, adminstration or
management. “Development”, they said. So I asked how
familiar they were with Qt. Then one of the two looks at me with
a grim face and goes “C++ is a pretty hard hitting
language. We write governmental prototype software in
JSP.”. And then they rushed away. Sigh. Then, another guy
shows up and talks about how everything is moving towards PHP and
Ajax.
“Because everyone has a browser!”
“What about the back-button?”, I asked.
“PHP scripts will be able to disable that button in the
future.”, he said.
“Better not hit the bookmark-button!” I warned.
“PHP scripts will be able to disable that button in the
future.”, he said.
“So are you talking about thin clients, or about the
programming language PHP?”
Programming languages, are tools. Let’s just agree on
that. I love Java for all it’s worth, PHP is wonderful, and
I love working with C++. What I can’t stand is language
protagonists. ;-) People who seriously think that one tool can
solve all problems. Nothing good comes from that. Or as they say
in the US, that once you’ve got the perfect hammer,
everything looks like a nail. C++ is not perfect for embedded web
development. PHP is good for that. Java is no good for
performance-critical applications. Use C++ for that. Applets?
Servlets? Yes, please, please, go with Java. Or use PHP. Or C++.
Just please know that these are all different tools that you can
choose amongst.
I’m seeing most protagonism (?) in the Java world. Java
isn’t a language, it’s a movement.
But if you take away one essential feature, say, implicit memory
management in Java, and replace it with explicit management
(a.k.a. delete and pointers), what does Java give you? Now,
we’re talking about syntactic sugars like .h+.cpp vs .java,
and features of the toolkit. Java is a programming language.
Implicit memory management is a tool. It cannot solve all
problems but it certainly solves many of them. And Java is
actually really really ridiculously fast. That’s what I
hear all the time. Actually, they say, it’s really really
fast. The JIT compiler can in theory generate code that’s
faster than what any C++ compiler can do. And I think that when P
= NP, it certainly will! But until then, we will not see Matlab,
Mathematica, 3D studio or Photoshop written in Java. Why? Not
because people in theory want fast code, but because they know
what they get when they use C++. Your average high-performance
Java application typically contains tons (or, as they say in the
US, miiillions ;-)) of tricks to bypass the GC (as nobody wants a
GC sweep in the middle of heavy calculation, real-time rendering
and such). And then there’s tricks to ensure that certain
parts of the code are unrolled to ensure that the JIT kicks
in.
When you as a Java programmer make an effort to bypass your
favorite Java features in order to write an application in Java
that is not suited for Java. And when you as a PHP programmer
write tons and tons of code to make your web application looks
like a true, native application with tray icons and window
decorations, strip away the navigation controls and bookmark
handling. That’s when you know you’ve become a
language protagonist. ;-)
So please, choose the right tool. You’re a great
programmer! But that doesn’t mean you have no options.
Unfortunately, with things like Java becoming /cool/, rather
than well-understood, this is the way things will go. :-(
Chase Venters: The Mac OS X kernel is written in C++. Its
actually quite fast and powerful
Before implementing Java, the actual need of the organization
depending type of transactions, nature of business and day-to-day
business operations. This will help to implement Java
programme successfully.