Oracle vs. Google litigation – why negotiations failed

The litigation between Oracle and Google regarding Java has provided a wonderful opportunity to watch the legal intersection between patent and copyright law with regards to protection of computer programming. When I first read that Oracle filed suit against Google for copyright and patent infringement, I wondered how an ordinary jury would process the complex issues regarding machine code, the Java bytecode, and Java, the difference and overlap between patent and copyright protection of software, and the hundreds of patent claims in these patents. It is hard enough for any IP attorney to understand the overlapping protection of software from patent and copyright law. How would a jury understand it?  How would the court determine the definition of terms such as “data”, “method”, “function”, “API“, etc., in the Java context?

Why Negotiations between Oracle and Google Failed.

First of interest to me, is why two multi-billion dollar companies could not negotiate a license to do what they wanted to do rather than spend millions of dollars on lawyers.  In this case it seems that the interests of Oracle and Google in this circumstance were completely incompatible.

Oracle (previously Sun) offered three types of licenses to use Java. The first was a common Global Public license which only required that the user contribute the code back to the open source community.  The second was a Specification License which provided that programmers could use the declaratory code and package organization, but had to write their own implemetation code.  The third was a commercial license available for a royalty payment.  In both the specificaiton and commericial license, the code had to pass certain tests in order to ensure that it was compatable with the Java platform.  Basically, the advantage of Java is that it can be used in any machine.

Google wanted to use Java for its Android operating system, but did not want to make the Android programs compatible with other Java programs.  Basically, it seems as if Google wanted Android to be its own ecosystem, distinct from, for example, Windows or Apple OS.  If the Android programs were compatibile with Java as Sun desired, an application in windows may work in Android.  Thus, Google would not have been able to make their Android OS a distinct ecosystem.  However, if Google used Java to develop programs not compatible with overal Java, the value of Java itself could be degrated.

The Negotiations

In October 2005, following “discussions with Sun regarding Android’s Open Source VM strategy,”Google’s then Senior Vice President Andy Rubin remarked in an e-mail, “If Sun doesn’t want to work with us, we have two options: 1) Abandon our work and adopt MSFT CLR VM and C# language—or—2) Do Java anyway and defend our decision, perhaps making enemies along the way”. Google and Sun continued to negotiate over the next several months, but they were unable to reach a deal.

In January 2006, Google internally discussed a possible co-development partnership deal under which Java technology would become an open-source part of the Android platform. The deal was projected to cost Google 25–50 million dollars, plus a negotiable share of revenue from “platform-enabled mobile ads”   For some reason, Google never actually proposed this idea to Sun.

The following month, Sun supposedly “proposed a deal that would include both a payment of $20 million per year for three years plus 10 percent of the revenue generated by Google on handsets running the open source platform, capped at $25 million” per year.  No documentation of Sun’s proposal is in the record, butOracle’s economist summarized it as “a proposed licensing of Java for use in Android” in an official, conforming, Java-compatible implementation . Google rejected Sun’s offer. Google supposedly made at least one more counteroffer, but the negotiations ultimately failed.

When the negotiations failed, Google evidently forged ahead with the second of Mr. Rubin’s fallback options—“Do Java anyway and defend our decision, perhaps making enemies along the way.”

Google decided to build its own virtual machine based upon Java called Dalvik VM.  However, Google knew that for programmers to design apps for  its VM, it would need to use the same naming convention and syntax of Java.  In order to do so, it copied 37 Java API packages into the Dalvik VM.  It also copied a function called rangeCheck (the same developer from Sun was hired at Google, and he simply used the rangeCheck code he wrote at Sun).  Google also copied eight security files used as test filed, but not in the Android platform.

In January 2010, Oracle Corporation acquired Sun and renamed it Oracle America, Inc. Seven months later, Oracle filed an action for patent and copyright infringement, asserting 132 claims in seven patents as well as copyright infringement allegations.

In August 2010, Andy Rubin received an internal email stating that the technical alternatives to using Java for Android “all suck” and stating, “We conclude that we need to negotiate a license for Java under the terms we need” .

However, no agreement was ever reached.