100% Pure Java

By Charles F. Bowman



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.



JavaTM is a trademark of Sun Microsystems, Inc.

Other companies, products, and service names may be trademarks or service marks of others.

Copyright    Trademark



  Java Feature Java Education Java Home  
IBM HomeOrderEmployment