Pacific Connection(英語)

Sun's Java Balancing Act

Sun Moves to Makes Java a Standard, While Trying to Maintain Licensing Control

Sometimes, nobody is grateful. That's how it must seem to Sun Microsystems, at times, with its invention of Java. Almost from the day the company brought Java to the works, Sun has been hit by two conflicting questions: "How are you going to insure Java remains an open standard?" and "How are you going to make money from the technology you invented?" With Java, Sun is balancing the virtue of an open standard with the financial benefits of owning a proprietary technology. The company, understandably, is trying to reap the rewards of having invented Java in the first place, while at the same time trying to serve its many partners who are developing Java tools and Java-based applications.

While hardly the first company to walk this tightrope, Sun's balancing act is more visible and bloody than the norm. And so while the company has received a major endorsement from the world community in its efforts to standardize Java, it is also in a bitter legal fight with Microsoft over the same issue. This fight has become so heated that the usually funny, fast, and glib Scott McNealy has at times turned this into a personal, public dispute with Bill Gates.

ISO/IEC oversight

Sun's strategy with Java has been to put Java under the oversight of a world standards organization, while retaining some of the rights normally enjoyed by any technology innovator. The company began this process in March 1996 with a proposal, approved eight months later, to the International Organization for Standardization's Joint Technical Committee 1 (ISO/IEC JTC 1).

Behind this cumbersome name are two organizations: the ISO and the IEC. Established in 1947, the International Organization of Standardization (ISO) is an umbrella standards body composed itself of standards-making committees from about 100 countries. (The term ISO is not an acronym, but is derived from the Greek word, isos, meaning "equal.") One of the ISO's committees-the Joint Technical Committee-is unique in that it was formed in partnership with the International Electrotechnical Commission (IEC). "JTC 1" refers to the fact that this is the first formal collaboration between these two groups, that is, the first "joint technical committee."

Sun surprised some observers when it approached the ISO, which is not particularly known for its focus on computers. Its technical committees work on everything from screw threads, furniture, and ball bearings to surgical implants, boilers, food, paint, and textiles. Moreover, the ISO backed OSI, the hidebound, open-systems interconnection specification that turned out to be an unsuccessful alternative to TCP/IP.

But defenders of the decision, including Jim Mitchell, vice president, technology and architecture at Sun's JavaSoft division, argued that the ISO/IEC's international clout would ultimately serve Java better over the long term. Speaking in the magazine SunWorld, Eric Brown, a senior analyst with Forrester Research, said that Sun's choice compared favorably with Microsoft's choice of Open Group for standardization of ActiveX. He said that ISO/IEC "looked much better" because "there is a big difference in credibility between the two brands."

But that wasn't the only thing unusual about Sun's proposal. Sun also requested that it be given status as an official Recognized Publicly Available Specification (PAS) submitter-meaning that Sun, not a subcommittee, would become the source of the proposed specifications. The virtue of naming a PAS submitter is that it can speed up the standards-making process. By handing authority to a single organization, the JTC 1 creates a less democratic, but more streamlined standards-making group. But until now, the JTC 1 has only given PAS status to four organizations: X Open, the Digital Audio Video Consul, the Video Electronics Standards Association, and the European Workshop. Hence, Sun becomes the first for-profit company to earn PAS status and has the right to submit Java specifications for the next two years.

In doing so, Sun will attempt to walk the line between dictator and conciliator-trying to move the standard forward while still maintaining the aura of a neutral party acting on behalf of the industry's best interest, rather than Sun's financial gain. Sun said it will work by convening a small group of industry experts to write the first draft of the specification-which then will be reviewed by its licensees (117 of them at last count), and then finally by the Java community via the Internet.

While Sun has not given a specific roadmap of what it will submit, Mitchell has filled in the broad outline. The company will first and foremost submit the specification for the Java platform, itself, "because that is what is needed to have a standard that can support 'write once, run anywhere' and other Java properties." Mitchell said that the patents Sun holds needed to implement the Java platform specification are already freely granted to anyone who builds an implementation that conforms to the specification."

Retaining trademark control

For many in the Java community, Sun's proposal takes the high road in its pledge to make Java an industry standard. But not everyone sees it that way. "What you see is a company that's turning into Microsoft," said Maureen O'Gara, publisher of Unigram-X, a UNIX newsletter, to a Wall Street Journal reporter. "This is like watching a caterpillar going through a metamorphosis and coming out uglier than what you began with." In fact, while the votes of JTC 1 members was overwhelmingly positive, the United States itself, along with China, voted no-presumably because it was influenced by Microsoft and Intel, both of whom lobbied against it. For critics, Sun's position as PAS submitter gives it too much power. Sun's critics are also unhappy because Sun has kept a few of its prerogatives in house. Most specifically, Sun retains the Java trademark and the right to award that trademark to other companies.

For that, Sun makes no apologies. "Sun cannot and will not surrender its trademarks for the Java platform to ISO or anyone else," Mitchell said. "Java is a brand-name product which has its own value and integrity that Sun must maintain for our users and source code licensees. It is part of our contractual obligation to our licensees to maintain strict compliance with the Java trademark policies our contracts define....Sun isn't seeking to give its products to ISO. We want to standardize the specifications that underlie those products, to protect the investment that virtually the entire industry has made in Java and 'Write Once, Run Anywhere.'"

In retaining some prerogatives as inventor of Java, Sun is trying to answer the fundamental shareholder question: "How are you going to make money?" And that can be a tough question to answer. Few companies besides Microsoft have the ability to impose a standard on the industry. If Sun had controlled Java as tightly as Microsoft has controlled Windows, Java would have gone nowhere-or at least that's what most observers, including Sun, believe. But if Sun had put Java completely in the public domain, the company would be able to profit from its own invention. Indeed, the contract between Sun and Microsoft-now posted on both companies' Web sites-shows just how thin the profit margins already are. Microsoft paid just $3.5 million up front for permission to license Java, plus $250,000 annually.

A suit and a counter-suit.

It is this issue of control where Microsoft and Sun butt heads. First, Microsoft implemented a "non-standard" version of Java. Now, the issue has escalated to the courts. On October 7th, Sun filed a $35 million lawsuit against Microsoft in the United States District Court, claiming that Microsoft had breached its contractual obligation to "deliver a compatible implementation of Java technology." Sun says it wants to prevent Microsoft from "improperly" using the Java Compatible logo, and charges Microsoft with trademark infringement, false advertising, breach of contract, unfair competition, interference with a prospective economic advantage, and inducing breach of contract.

The suit contends that Microsoft's Internet Explorer 4.0 browser and its Software Development Kit for Java (SDKJ) are intentionally incompatible, meaning that applications developed with Microsoft development tools may not be able to run under other operating systems and browsers. Sun does not seem to be contesting Microsoft's right to come up with a Windows-tailored Java variant, but only to use the Java Compatible logo or do anything that is "likely to cause confusion, mistakes or deceptions in the marketplace as to the compatibility of IE 4.0 and SDKJ 1.1 with Sun's Java technology. "To be very clear, this action does not seek to revoke Microsoft's license," says Sun in its FAQ. "Our goal is to pressure Microsoft to fulfill the obligations created in that license."

At a conference in Florida, Sun's Scott McNealy seemed to indicate that the dispute was not just business, but personal. A San Francisco Chronicle reporter wrote that McNealy's voice "quivered with anger" and his body language "oozed sarcasm." McNealy imitated Gates' habit of rocking back and forth and said "Microsoft telling us what to do with Java is like Mike Tyson offering culinary advice."

"Microsoft is calling for Sun to give up its Java trademark because it wants to kill what it cannot control," said Jim Mitchell. "We'll consider putting the Java trademarks in the public domain when Microsoft relinquishes control over the Windows specification name and trademark. Let's first see Microsoft demonstrate an act of good faith by opening up the specifications and APIs to Windows as we have done with Java. Let's see Microsoft commit to '100 percent pure Java' applications that will run everywhere, as the rest of the industry has."

Sun says that until the issue is resolved, Sun will withhold ongoing technology from Microsoft. For example, Alan Baratz, president of the JavaSoft business unit, cited an alpha version of Sun's High Spot technology, which Baratz described as a very high-performance virtual machine that allows Java applications to run at the same speed as natively compiled C++ code.

Sun says that Microsoft's Java implementation fails in two principal areas-it does not support the Java Native Method Interface (JNMI) or the Remote Method Invocation (RMI) while adding several methods and fields of its own. The JNMI is an interface of the Java Virtual Machine that provides a way for developers to access native functionality on a host platform. RMI is a mechanism for writing applications that communicate with other Java applications living on other computer systems. In other words, RMI is an API for building distributed Java systems.

In addition, Sun alleges that Microsoft has extended the public Java API. Baratz cited one example: an interface that allows Java to query display information, such as a screen color. He said that Microsoft extended that interface to be able to query additional information, but in doing so made the query incompatible to other versions of Java. "This is really the crux of the matter," said Baratz, "because the Java class hierarchy is the place where developers go to find the reference interfaces....In this case, Microsoft has made them within the Java class hierarchy and so this tricks developers into believing that these interfaces are a part of the reference standard for Java.

"Microsoft will likely claim that all they were attempting to do in changing the libraries was to make Java run well on Windows," said Baratz in a teleconference given the day the lawsuit was announced, October 7, 1997. "First we encourage all our licensees to incorporate Java on their platforms, but they must clearly delineate between Java and their platform. There can be no confusion." Baratz said that licensees are encouraged to offer improvements to the APIs and class libraries as part of the Java community-"not unilaterally and not secretly." He said that an infrastructure is already in place for Java licensees wishing to improve the platform. They can propose enhancements directly to Sun or develop new functionality outside the public Java API package.

And what about developers who would like to use Java specifically to develop Windows applications. Shouldn't they be allowed to do so, and isn't that what Microsoft is providing? Sun's answer is that the Java Native Method Interface does indeed allow developers to invoke underlying native codes-but that's the developer's choice. "The point here is that that's a decision a developer should make consciously, not unconsciously or unwittingly," said George Paolini, director of corporate marketing, JavaSoft division of Sun Microsystems.

Baratz said that all Java licensees can legally extend the Java platform, including adding their own native method interface. His problem is that Microsoft has actually omitted some of the functionality specified in the platform. In other words, if Microsoft fully supported JNMI and RNI, it could also offer additional functionality, as well. "It's okay for Microsoft to add a new interface if they make it clear to developers that this is a Microsoft-specific new interface. Unfortunately, what Microsoft has done by adding new interfaces into the Java code packages is tricking developers into thinking these modifications are a part of the reference, and, as a result, supported on all platforms."

In the U.S., lawsuit defendants usually have little to say, and Microsoft's response was initially terse-"Sun's claims have no merit. We believe we are compliant with all aspects of our Agreement with Sun and we are confident we will prevail in court. Independent reviews consistently state that Internet Explorer 4.0 delivers the most compatible, most functional and fastest implementation of Java on the market.

"We are confident that this suit will not impact the shipment or deployment of Internet Explorer 4.0. Nothing in the suit affects our partners' or customers' ability to use any of the features or capabilities of IE4. Since this matter is in litigation we have no further comment." Then, later in October, Microsoft counter-sued Sun, claiming breach of contract, breach of covenant of good faith and fair dealing and unfair competition for "Sun's repeated failure to live up to its obligations under the two companies' agreement of March 11, 1996." Microsoft's associate general consul said that "Sun has apparently decided that it no longer likes the deal it made more than a year and a half ago. Sun's suit may make for good PR, but its claims are not grounded in fact or law." Microsoft's counter-suit claims that Sun has failed to provide a public set of test suites and, further, that Sun has not treated Microsoft on an equal basing with other licensees. Microsoft also claims that Sun made repeated false statements about the compatibility and desirability of Microsoft's products and rights under the agreement. Meanwhile, both parties have revealed the once-secret contract giving Microsoft licensing rights to Java. And both have stepped up their campaign in the press. Sun went back to federal court to ask that Microsoft stop using Sun's "Java Compatible" logo on its Internet Explorer 4.0 browser. Microsoft has already removed the logo from its Web site. Sun mustered testimony from Dr. L. Peter Deutch of Xerox PARC and Allen Hankinson, a researcher formerly with the National Institute of Standards and Technology. Both said that IE 4. doesn't pass Java's compatibility testing.

Microsoft replied that it is "disappointed with Sun's theatrics. If they want to spend their time on lawsuits and PR stunts, that's fine," said Joe Herman, an Internet product manager at Microsoft, in the San Francisco Chronicle. "We're going to spend our time shipping the best possible products to our customers." Microsoft, of course, is no stranger to lawsuits. It emerged the victor in a copyright infringement lawsuit from Apple Computer, then went on to incorporate even more Apple-like features into its Windows 95 GUI. For Apple, losing that suit was the beginning of what may be the end.

With Java, Microsoft is trying to ward off the only substantial threat on the horizon to its dominance with Windows. The company, for good financial reasons, has nothing to cheer about when Sun says "Write once, run anywhere." In a Microsoft universe, there's only place you'd want to run.

Open Heart Surgery on the Virtual Machine

In addition to its lawsuit, Sun has resorted to a bit of guerilla warfare in trying to ensure consistency between Java implementations. In December, the company introduced Java Activator, a piece of downloadable code that, according to Sun, will make Internet Explorer's virtual machine irrelevant.

Using a Wizard developed by Sun, a Web page author can modify Web pages so that they download and install the Java Activator product's functionality on a user's Web browser. While Sun says that the installation can work with both Internet Explorer and Netscape Navigator, the initial beta release supports IE 3.02, 4.0 and 4.01. The Wizard, called the Java Activator HTML Converter, automatically makes the HTML code alterations on specified Web pages-and is available free of charge from Sun.

It is not clear how many Web developers will actually deploy the wizard, which will require some indulgence on behalf of end-users, who may have not the least idea of what Activator does. As for Microsoft, it was not amused-calling Activator "Big Brother technology," (a reference to George Orwell's novel, 1984).