100% Pure Java
JavaSoft's certification program impacts on developers and users
When Sun Microsystems Inc.'s JavaSoft unit formally announced
the details of the 100% Pure Java certification program last April
at the JavaOne conference in San Francisco, top executives from
Sun, Netscape, IBM, Novell, and dozens of other vendors and developers
pledged to support it. "This is what our customers want," Sun's
Chief Executive Scott McNealy said at the time.
Now, several months later, most of the companies that vowed allegiance
to 100% Pure Java are taking the next step. "They're going through
the certification program," says Dr. Lew Tucker, JavaSoft's director
of corporate and developer relations. And so far, Tucker stresses,
the results have been better than expected. "The response has
been very, very strong."
The program involves testing applications and applets to determine
whether they are purely Java-written. Mike Fahnert, certification
program manager at KeyLabs Inc., the Provo, Utah-based concern
that has been chosen to administer the certification program,
agrees with Tucker's bullish assessment. "The program was announced
and registration began at JavaOne. Shipping versions of the certification
tools were available as of May 1st," he notes. "Nonetheless, over
a dozen products have already been certified and there are over
70 more registered and in pre-test."
KeyLabs has tried to make the program as accessible as possible,
relying on certification automation and its Web site. "We've tried
to simplify the entire process by automating it," says Fahnert.
"In fact, vendors can register, begin pre-testing, download certification
tools and programs, get testing support, and deliver code all
from our Web sites."
Even so, the program itself is demanding. Developers, Tucker explains,
must put their products through a rigorous purity test. "This
forces them to analyze their code to see if anything's been left
out or if there's some problem that causes it not to be portable,"
Tucker explains. "In effect, it's a quality assurance process
that makes for a better product."
In addition, products are tested to validate the fact that they
can truly run across different platforms. "There are really two
sets of tests," says William Lyon, senior program manager for
Open Horizon Inc., and a developer himself who's been through
the program. "There's a static analysis of your code and a dynamic
analysis, really a stress test, of your applications."
Open Horizon used the program to certify its Ambrosia event management
software. "From the developer's side, the program is helpful for
quality assurance, and certification means you don't have to worry
about portability. Your product has met the 100% Pure Java benchmark,"
adds Open Horizon's principal architect Terry Olkin.
Developers whose products are certified receive a certification
letter from KeyLabs and permission to use the certification logo
from Sun. This helps both the developer and, ultimately, the corporate
user of the product. "The IT manager wants the ability to have
thin clients using 100% Pure products that can run across all
different platforms and departments," says Lyon. "The fact that
the product has been certified lets the IT people know exactly
what they're getting. And the vendor doesn't have to convince
customers that it can deliver a pure Java product, not after being
certified."
"Those assurances are increasingly important to corporate IS as
Java becomes more widely used in the enterprise," adds JavaSoft's
Tucker, who notes that some IS managers are testing the Java-based
software they already have installed on their own, using testing
tools from Sun.
Of course, not everyone is lining up to join the Pure Java camp.
"Some vendors are going along with the Microsoft model and developing
Java products for individual platforms," notes Fahnert.
"You can't build a competitive application that's also 100% Pure,"
Microsoft's group manager for Java platforms, Charles Fitzgerald,
was recently quoted in a press article.
Gina Poole, IBM's program director for Java technology, sums it
up well. "To be truly competitive in today's networked world,
you need to be able to reach all of your customers. And the only
way to maximize your reach is by insuring portability through
platform independence. The 100% Pure Java logo guarantees portability
for your end users and customers with the added benefit of increased
productivity for your developers."
Conclusion
Although a boon to both users and developers, there does appear
to be one minor-albeit common-weakness with the purity certification
program. In the unlikely event that KeyLabs, or the Sun-supplied
certification programs permit an "impure" program to slip through,
it will, as usual befall the user to discover the problem. Nonetheless,
Java certification could be vital to users of modern, cross-platform
applications.
How the program works
The product certification program is divided into two main phases.
The first, called the assurance phase, requires that developers
execute-independently-a series of tests contained in the certification
suite. The goal is to provide assurance to the certification center
that the product in question meets the purity specifications.
The major tasks vendors must complete include:
Registration
Vendors begin the process by registering with the certification
center. In addition, they must remit a modest fee to underwrite
the cost of the certification. Once registered, vendors can download
the certification package. (Interested parties can visit
www.keylabs.com/100percent
for more information.)
Validation Centers
IBM has established a pre-testing program for independent software
vendors that allows Java applications to be tested free of charge
across multiple systems on a pre-certification basis. There are
seven validation centers located around the world and in the United
States which provide such preliminary testing for those companies
that have limited resources.
Static verification tests
Product testing begins with a static purity test to ensure its
compliance with metrics specified in the 100% Pure Java Cookbook
(the document is available for downloading at
www.keylabs.com/100percent).
To simplify this task, the certification package provides a
program called JavaPureCheck that displays the name of any classes
that might contain any "unpure" code. (JavaPureCheck is a free
tool made generally available by Sun.)
Dynamic verification tests
This step ensures that the product's code does not rely on operating-system-
or browser-specific features. To complete this step, the vendor
creates an automated test driver (written in Java, of course)
using a program called JavaSpin (also provided in the certification
package). In addition, vendors must also measure test coverage
using another package-supplied tool called JCov (one caveat: Automated
testing is not always possible; thus, in some cases, manual tests
are acceptable. Please refer to the 100% Pure Java Certification
Guide, which is available from
www.keylabs.com/100percent,
for details).
Verification package submission
After successfully completing all of the foregoing tasks, vendors
need only bundle their programs and test results into a verification
package and submit it to KeyLabs. If vendors successfully complete
all the steps in Phase 1, they can be reasonably assured of success
in Phase 2.
Verification
The second phase of the program is verification. Here, KeyLabs
independently verifies the results of the assurance phase. Some
of the tasks that they need to complete are:
Verification package audit
Upon receipt, KeyLabs will audit each vendor's submission for
completeness. If rejected, vendors may resubmit the product in
accordance with resubmission procedures.
Static verification tests
KeyLabs will re-execute, and verify the results of the static
tests performed by the vendor. If any failures occur, or inconsistencies
arise, the package is rejected.
Set-up and installation
KeyLabs will then install the product-according to vendor instructions-on
a maximum of four reference platforms. KeyLabs will reject any
submission if their technicians are unable to install the product
on any platforms. (Note that the basic certification fee provides
for only 30 minutes of installation time. If your product needs
more, you must contact KeyLabs.)
Dynamic test execution
Upon successful installation, KeyLabs will execute the test driver
developed by the vendor in phase one. KeyLabs will also audit
code coverage to ensure compliance.
Certification reporting
Upon successful completion of all tasks, KeyLabs will provide
vendors with an accepted certification. If rejected, KeyLabs will
provide the vendor with a report that describes all the problems
that arose.
About the Author: Charles F. Bowman is an independent consultant, author, and lecturer
specializing in relational, GUI, and object-oriented technologies.
|