|
continued from page 1... The
New VoxGateway
Java
or C++?
The first decision we made as we began our rewrite of
the VoxGateway was whether to continue with Java or
switch to C++ for better performance. Java was
a wonderfully efficient language to write in, and it
offered us tremendous portability for free. It
was also a very flexible medium to work in, which meant
that as VoiceXML was defined and evolved, our code would
be more likely to evolve with it instead of getting
into a mess that could not be refactored.
In
the end we stayed with Java. This proved to be
the correct decision. Java was becoming faster
with time, and its productivity allowed us to reimplement
VoxML by mid-1999, and to implement VoiceXML 0.9 a few
months later. We tied with IBM for the first VoiceXML
1.0 browser by mid-2000, and were one of the first to
have a VoiceXML 2.0 implementation.
Java's development efficiency greatly helped us with
reliability. For example, as the W3C's VoiceXML
2.0 Implementation Report test suite came out in early
2003, we quickly found and fixed all the conformance
"issues" that the 610 tests uncovered, except
for ten tests (one required, nine optional) that could
only be passed with functionality not yet present in
the speech recognizer.
But what about Java's performance? Figure 1 illustrates
the progress made. It is a graph of how changing
the number of concurrent channels affects the total
time to execute a simple VoiceXML document one thousand
times on a 2.4Ghz P4 desktop using the VoxGateway using
various Java Virtual Machines. The document is
a simple temperature conversion dialog, which asks the
caller if he or she wants to convert a Fahrenheit temperature
to Celsius, or vice versa; then asks for the temperature;
and then reads out the converted value and asks for
another temperature to convert. In the test the
caller hangs up and the process repeats. Please
note that this is a completely artificial measure,
as it involves no speech resources at all (it's a batch
testing environment), does no fetching, and does only
minimal logging.
Figure 1: Time to execute 1,000 dialogs with different
Java Virtual Machines and different numbers of channels.
Continued...

back
to the top

Copyright
© 2001-2003 VoiceXML Forum. All rights reserved.
The VoiceXML Forum is a program of the
IEEE
Industry Standards and Technology Organization
(IEEE-ISTO).
|