永中Office是不是100%pure Java的吗?
的确也是一个产品质量的认可
但是不必交出源代码
100% PURE JAVATM CERTIFICATION-- QUESTIONS & ANSWERS
When the 100% Pure JavaTM Initiative was announced in December of last year it was a marketing program. Today it is an industry initiative with hundreds of companies having endorsed its objectives. The heart of the 100% Pure Java Initiative is the 100% Pure Java certification process which ensures ISVs, corporate developers, and end-users that products bearing the 100% Pure Java logo are truely platform independent.
In addition to being a valuable brand for customers, JavaSoftTM discovered that early participants in the certification tests are praising the quality assurance benefits of the test suites.
We asked the key members of JavaSoft's 100% Pure Java team to discuss the whys and hows of the 100% Pure Java certification process.
Q: First off, what does it mean for a program to be 100% Pure Java?
A: Basically, a pure JavaTM program is one that relies only on the documented and specified Java platform. That means no native methods, no external dependencies aside from the Java Core APIs, and some other requirements that are detailed in the developer's Certification Steps on our Web site. The certification process verifies that the code is in fact 100% Pure Java.
Q: So why should someone worry about whether or not their programs are 100% Pure Java?
A: A year or so ago you really did not have to worry about it. But now some technologies are surfacing that work to tie Java to only one platform, it is important to worry about 100% Pure Java. It is the only way to guarantee to both the developer and the end-user that the program really will run on multiple platforms.
The whole idea behind the certification program is to establish that whenever a program wears the 100% Pure Java logo, people can be sure it runs on any platform that has the Java compatible logo, which is for JavaTM Virtual Machines. All users have to do is match up the two logos and they can be confident the program will run.
Q: From a developer's or ISV's perspective, what are the certification steps?
A: The initial thing you need to do is get information on the requirements for 100% Pure Java -- how to develop a new program or how to convert an existing program to be 100 percent pure. You can get that in our Certification Steps.
There is also a free purity check you can use to get started. It's called JavaPureCheckTM and you can download it from the Web.
The first real certification step is to apply for certification by contacting KeyLabs, which is our independent testing facility for 100% Pure Java. Developers pay the certification fee and then download a full test suite, so they can begin internal tests.
As a developer, first you run the static test using JavaPureCheck to determine whether the code is pure Java. That generates a report that flags errors and exceptions. Developers have the option to annotate that report before sending it into KeyLabs, to explain why they did certain things. For example if there are native method calls, file names, or URLs, you get to explain why they are in there.
Next, you create and run the dynamic multi-platform tests. In order to pass, the dynamic test must cover a certain percentage of your program's methods. So an additional step before submission is for you to measure coverage of your methods.
Developers send off both tests as a final submittal to Key Labs, which reruns the tests themselves. The lab might call you if they have questions. The lab will then certify or reject the application for certification.
We had the JavaPureCheck program in the Hacker's Lounge at Java OneSM, and about 100 ISVs brought in applications and ran them through the purity check. Perhaps the most interesting thing to come out of that experience was that we found the test was very educational for the developers. ISVs found out there were things in their applications that they had no idea were there. Apparently no one had gone through and evaluated the applications as a whole to critique the way various developers added functionality.
So aside from being a purity check, we found it was a good quality control test to run the code through. Most of the ISVs were very positive, saying they thought the tests helped to get developers in touch with their applications. So we got some very positive feedback on the whole process.
Q: Is this quality control the reason so many companies are supporting the 100% Pure Java program?
A: The quality checks are a side-benefit, but really, the central reason people are supporting 100% Pure Java is the whole idea of cross-platform performance. The whole reason Java has taken off to such a degree is because of its cross-platform nature.
Again, there are forces at work that would change that, and make it just another proprietary technology. What the industry is saying is that they do not want that. They want something that is truly cross-platform. We want the Open Horizon's of the world to have just as big of a chance as an IBM or a Microsoft program of making a big splash in the marketplace.
Once you get rid of this proprietary architecture, and you look at the way the Web is revolutionizing distribution, then companies like Open Horizon really can compete against the big companies. No longer do they have to go through big retail distribution chains. And they do not have to be as worried about platform specific architecture, or porting their application to a whole bunch of different platforms. So Java really levels the playing field.
It is really interesting that big companies like IBM and like Oracle are just as supportive as smaller companies such as Bulletproof and Marimba. That is primarily because everybody -- well there may be a few exceptions -- wants this cross-platform capability to succeed. Certainly customers want it because it means they have a choice. They do not have to be locked into one architecture.
Q: Can you give more details about what testing procedures involve?
A: There are three testing tools: JavaPureCheck, JavaSpinTM, and a set of coverage reporting utilities. The first step is running JavaPureCheck. That spits out a report flagging a range of issues. Error messages note things that appear to be clear violations, like native calls. Warning messages point to things that may be a problem -- something with a slash in it may be a hard- coded path name, which is not acceptable, or it may be a perfectly acceptable URL.
When the firm is satisfied with its JavaPureCheck results it should then use JavaSpin to generate a script that automates running the code on multiple platforms. JavaSpin is a GUI-capture/replay tool. The developers run their product, capture the user interaction, and then generate a Java program as output.
That test script, which is a Java program itself, can be executed on multiple platforms, and the developers are expected to test it on several platforms.
What we are looking for from the multi-platform test is consistent behavior and adequate coverage.
The multi-platform test requirement is that the test script run to completion on two platforms. Those platforms are evolving as more Java Development Kit (JDKTM) 1.1-based VMs become available. Today the multi-platform script would have to run to completion on either Microsoft Windows NT or '95, and SolarisTM.
Everything has been designed so that developers can run all the tests in-house and know that they will pass the tests before submitting the materials to Key Labs to complete the certification. We wanted to eliminate as much as possible the back-and-forth that might occur between the lab and the developer. Thus the developers have all the tools they need to analyze their applications and we've been able to keep the lab charges to a minimum.