The Oracle vs. Google Cold War Heats Up
by Mark W. Hibben
. . . And Google is Winning
With the filing of the Oracle lawsuit on August 12, a cold war has broken out between Oracle and Google, full of posturing, propaganda and playing to the media. Google is clearly winning the cold war, having cast Oracle as a threat to the open source movement in general and a dire threat to open source Java in particular. All of the articles by open source advocates I’ve read have supported this characterization, but the specifics of Oracle’s complaint do not. Oracle does not take issue with the legitimate use of open source Java code by anyone, including Google. The suit alleges that Google infringed on a number of Sun/Oracle patents and some copyrighted documentation concerning Java, without going very deeply into specifics. One of the patents is a reissue of a patent by none other than James Gosling, the esteemed “father of Java”, which describes an implementation of the basic Java virtual machine architecture. In the diagram and explanation below, I’ll discuss the crucial elements of Android that the case will focus on: the dx tool, the Apache Harmony class library, and the Dalvik VM. There really isn’t anything else Android that could infringe either on the patents or the copyrighted material.
An Uneasy Détente
The diagram above is intended to show how the various pieces of Java and Android can work together to produce a useable program on a given hardware device. Two paths are shown, a path through the Android OS and a more conventional pure Java path. Both produce machine code that can run on a given processor, but take different routes to get there.
Strictly speaking, and if Google is to be believed, Android doesn’t need Java to compile and run programs, since Java is only one of a number of programming languages that the Android “dx tool” can convert to Android specific .dex bytecode, generic virtual machine code that will be translated to the specific processor machine code by the Dalvik virtual machine. Google provides the dx tool in order to make it easy for programmers of Java and other languages to create Android applications. But the architecture of Android does emulate that of Java in significant ways. Both make use of high level programming language compilers that produce not machine code targeted to the instruction set of a specific processor but “virtual machine” bytecode targeted to the specific virtual machine, but hardware independent. Google claims that the Dalvik virtual machine was developed in a “clean room” environment so that it works like a Java virtual machine but doesn’t use any Sun/Oracle provided Java source code. Google also claims that the Apache Software Foundation developed Apache Harmony to implement a subset of the Java Class Library, also in a “clean room” environment. According to Google, key differences exist in the implementation of the respective virtual machines, with Dalvik being optimized for low power devices and using a register based architecture, whereas Java VM is optimized for desktop computers where power isn't an issue and uses a stack based architecture.
Until Oracle’s suit in August, Android and Java coexisted, if not always happily. Google complains in their response to the Oracle suit that Sun hedged in making Java truly open source by only releasing a specification of the Java VM rather than source code. Ostensibly, Sun licensed the development of “clean room” versions of the Java VM, but made it difficult to verify compatibility through Sun’s Technology Compatibility Kit, according to Google. Thus, Google couldn’t represent that Dalvik was a Java Virtual Machine clone and didn’t try. Criticism of Sun by various members of the Java Community Process, including Oracle itself, continued until Oracle acquired Sun.
Cold War Breaks Out
With the filing of it lawsuit on August 12, Oracle seemed to reverse roles, becoming a defender of Sun's Java IP rather than a critic of its half hearted open source policy, thereby igniting the cold war with Google. Now Oracle asserts that Android competes with Java, and as such materially harms Oracle by denying it legitimate income from Java licenses. In relief, Oracle seeks damages and an order to stop Google from any further patent or copyright infringement. Presumably, this would halt Android development and distribution (in its current form) and possibly force a recall of existing copies of Android OS.
Google's legal response filed on October 4 included a direct paragraph by paragraph rebuttal to the Oracle complaint as well as a motion to dismiss the copyright infringement portions of the Oracle complaint. The essence of Google's defense on patent infringement was that all of the patents were either invalid or unenforceable or that Google hadn't infringed any valid or enforceable provisions of the patents. Google's motion to dismiss the copyright infringement claims was based on their lack of specificity regarding the copyrighted work. Before the presiding Judge could rule on Google's motion, Oracle filed an amended complaint on October 27, so the Google motion has been set aside, for now.
In the amended complaint, nothing much changed from the original complaint filed on August 12, except in the copyright infringement portion. Here, the claims became both more specific and more far reaching. Oracle claimed that Java code, documentation, specification and libraries were all covered by copyright and that Google infringes these copyrights merely by reproducing and distributing Android. This gave new meaning to the “Prayer for Relief” section that requested that “all copies made or used in violation of Oracle America’s copyrights. . . be impounded and destroyed. . .” In other words, Oracle was calling for the destruction of all the outstanding copies of Android throughout the world.
On November 10, Google filed a response to the Oracle amended complaint of October 27. In it, Google's defense strategy can be seen to have evolved considerably from their first filing on October 4.
Gone was the blanket assertion of patent invalidity and unenforceability, presumably due to the implausibility that the US Government would issue so many invalid patents related to a single case. However, Google still asserted that it hadn’t infringed any valid or enforceable claims of the patents in question, and that each of the patents was nevertheless invalid or unenforceable for more specific reasons. These reasons ranged from failing to meet the “conditions for patentability” to assertions that Oracle had waited too long to enforce the patents or had waived any right to enforce the patents.
Google's arguments regarding copyright infringement followed a similar vein. The copyrights were unenforceable because Oracle had either waited too long to enforce them, waived its right to enforcement, or misled Google through statements that it didn't intend to enforce the copyrights.
With all the claims and counterclaims flying between the disputing parties, it's obviously impossible to make a knowledgeable determination of the facts at this point. I would, however, offer the following observations, based both on technical and legal considerations.
1) Clearly, the dx tool, the Apache Harmony Library, and the Dalvik VM could not have been constructed without substantial documentation and specifications supplied by Sun, and these were probably copyrighted in many if not all cases. The requirement for a “cleanroom” software engineering approach didn’t mean that these documents and specifications were not to be used. On the contrary, they would have to be used, and may have been supplied by Sun with the understanding that they would be used. This seems a misuse of copyright law, which is intended to protect copyright holders against plagiarism or other unauthorized reproduction of copyrighted work. To make its case, Oracle will need to show that Google somehow acquired copyrighted documentation it wasn’t supposed to have or that Google used copyrighted material legitimately in its possession but in a way that wasn’t authorized by Sun.
2) Although “cleanroom” software development may be an effective defense in the case of copyright infringement, I doubt that it is in the case of patent infringement.
If someone invents something that’s already been patented, it usually doesn’t matter that the would-be inventor doesn’t know about the patent. This merely displays a lack of knowledge of prior art. The would-be inventor would not be granted a patent, and the holders of the existing patent would be able to sue for infringement if the would-be inventor attempted to profit from his “invention”. This is why patent searches are such an important preliminary to patent filings. While “cleanroom” development offers no defense, lack of “cleanliness” may serve to confirm infringement. For instance, if some of the participants in Android development were ex-Sun employees with intimate knowledge of patented Java technology, their participation, even in a supervisory capacity, puts the Android development process under an ugly cloud.
The Shooting War, and the War for Mobile Internet Supremacy
If the recent legal proceedings merely constitute a cold war, the reader may well wonder when the real war starts. That would be when the actual jury trial starts, which is tentatively scheduled for October 31, 2011. I continue to believe, however, that this trial is merely a front in the War for Mobile Internet Supremacy being fought largely between Google and Apple, with Microsoft as a belated third combatant. The Oracle CEO and Founder, Larry Ellison, is good friends with Steve Jobs, after all. I realize this goes against conventional wisdom, which has it that Oracle will eventually settle for some form of licensing arrangement. But so far this isn't even on the table, and Oracle's amended complaint seems to escalate the attempt to shut Android down altogether. Even if Oracle fails to make its case and has to settle for a licensing fee, this could still work in Apple's favor, since Google would be saddled with an expense that Apple doesn't have to worry about.