18 August 2010

Why Has Oracle Sued Google?

On Thursday, 12 August 2010, Oracle America Inc filed suit against Google Inc in the U.S. District Court for the Northern District of California, contending that Google's Android software for mobile devices violates Java patents and copyrights that Oracle acquired when it bought Sun Microsystems Inc back in January.  (Read the complaint here.)

Oracle America representative Karen Tillman said last Friday that "in developing Android, Google knowingly, directly and repeatedly infringed Oracle’s Java-related intellectual property.  This lawsuit seeks appropriate remedies for their infringement."

This appears to be the story of a clever strategy by Sun/Oracle to monetise intellectual assets (patents, copyrights, and other intellectual capital embodied in the Java platform) through open-source licensing, and an ambitious plan by Google to work around that strategy.  Time will tell who prevails, but in the meantime we will take a look at the story so far.
If this is of particular interest to you, please consider expressing your views via our survey on software patents.


According to the background of the complaint:
One of the most important technologies Oracle acquired with Sun was the Java platform. ... The Java platform is especially useful in that it insulates applications from dependencies on particular processors or operating systems. To date, the Java platform has attracted more than 6.5 million software developers. It is used in every major industry segment and has a ubiquitous presence in a wide range of computers, networks, and devices, including cellular telephones and other mobile devices. Sun’s development of the Java platform resulted in many computing innovations and the issuance to Sun of a substantial number of important patents.
Oracle America owns copyrights in the code, documentation, specifications, libraries, and other materials that comprise the Java platform. ...
Google’s Android competes with Oracle America’s Java as an operating system software platform for cellular telephones and other mobile devices. The Android operating system software “stack” consists of Java applications running on a Java-based object-oriented application framework, and core libraries running on a “Dalvik” virtual machine (VM) that features just-in-time (JIT) compilation. Android ... and devices that operate Android infringe one or more claims of each of United States Patents Nos. 6,125,447; 6,192,476; 5,966,702; 7,426,720; RE38,104; 6,910,205; and 6,061,520.
On information and belief, Google has been aware of Sun’s patent portfolio, including the patents at issue, since the middle of this decade, when Google hired certain former Sun Java engineers.


There are two separate issues to address in answering this question.  The first relates to Oracle's licensing strategy for the Java platform (we will refer to Oracle throughout, on the understanding that Sun in fact developed and implemented the strategy, and Oracle is simply continuing what Sun began).  The second relates to the fact that Google's Android is not actually Java-based.

Licensing of the Java Platform

There is more than one version of the Java Platform.  For present purposes it is sufficient to distinguish between Java SE ("Standard Edition"), which is the platform generally used for desktop applications, and Java ME ("Micro Edition"), which is designed for applications running on mobile and other embedded devices, including mobile phones, personal digital assistants (PDAs), TV set-top boxes, and printers.

The various Java platforms are licensed under the GNU General Public License, version 2 (GPLv2).  This license requires developers who distribute executable programs based upon the licensed code also to make the source code freely available.  The license requires the same terms to be applied to the developer's own modifications and extensions, ie if you use free software licensed under the GPL, you must make your own software equally free.  The GPL also includes patent clauses, effectively prohibiting the licensor from asserting patent rights over the licensee.

Importantly, the Java SE platform license includes a special exception, known as the "classpath exception".  The effect of this is to allow Java developers to link their own code with Oracle's Java runtime libraries without being required to make the source code available.  In practice, this means that desktop applications can be developed in Java, and distributed (with or without the Oracle runtime components) without having to "give away" the source code.  There is thus no impediment to commercial and proprietary desktop applications being developed using Java.

However, the Java ME platform license does not include the classpath exception.  The platform will typically require adaptation to execute on specific mobile or other embedded device hardware.  Furthermore, manufacturers will generally not wish to make the source code for their user interfaces and applications available to users or competitors.  The absence of the classpath exception would force any Java ME developer operating under the GPL to make all of this code freely available.

Developers and manufacturers who do not wish to be subject to the GPL terms can acquire an alternative license from Oracle on commercial terms.  This, for Oracle, is where the money is!  Consider that they probably collect a royalty for every Java-based mobile phone and other embedded device sold anywhere in the world.  Commercial licensees of the Java ME platform include Sony Ericsson, Nokia, LG, Samsung, Toshiba and IBM, amongst others.

This strategy gives Oracle the best of both worlds: freely available development platforms to encourage widespread adoption and standardisation; and commercial licensing in the most lucrative (high volume) market segments.

"Independence" of Android

It seems fairly clear that Google's objective with Android is for the platform to acquire as large a share of the mobile phone market as possible.  The real money may not be in licensing operating system (OS) platforms, but in mediating the market for sale of applications to run on those platforms.  It is necessary only to look at Apple's iPhone Apps Store for proof.

Much of Android's market share is obtained at the expense of the Java ME platform.  It was recently reported that Android is now the leading smartphone OS, in terms of US market share.

Google wanted to leverage the widespread familiarity with Java, while at the same time achieving independence from Oracle.  Their clever strategy includes the following elements:
  1. Android was developed from the ground up without any use of copyright Java code;
  2. Android does not include a Java virtual machine (VM) implementation, instead providing its own VM known as Dalvik;
  3. the Dalvik VM does not execute Java bytecode, instead using its own bytecode stored in Dalvik Executable (.dex) files;
  4. the .dex files are themselves generated from Java bytecode (.class files), using a tool called dx;
  5. however, Dalvik does not align to the Java SE or ME profiles, and does not implement all features of the "standard" Java platform libraries.
From a developer perspective, application development can be performed using familiar Java syntax, and the code compiled using conventional Java tools, such as those in the freely-available Oracle Java SE platform.  The dx tool is then used to generate the Dalvik bytecode (.dex) files, that no longer have features in common with the Java platform, and are not encumbered by provisions of the GPL, since they are never linked or distributed with any Oracle code to which the GPL applies.

Android is open-source, with the code being available under the Apache Software License (ASL).  Like the GPL, the ASL allows the user of the software the freedom to use the software for any purpose, to distribute it, to modify it, and to distribute modified versions of the software.  Unlike the GPL, the ASL does not require modified versions of the software to be distributed using the same license.  This makes Android extremely attractive to commercial developers, who can maintain proprietary source code, and are under no obligation to make this openly available.


Oracle's complaint is fairly generic, which is usual.  The facts and arguments will emerge in the course of the proceedings (assuming that Google and Oracle do not settle the case first).

However, we can make a few observations about the likely basis of Oracle's case against Google.
  1. Since Android is not licensed from Oracle under the GPLv2 (with or without the classpath exception), or under any alternative commercial license, Google has no immunity from infringement of any relevant patents held by Oracle.  Regardless of the independence of Android's development, it may nonetheless infringe one or more of Oracle's Java-related patents.
  2. Oracle is likely to contest Google's claims that Android was developed completely independently of the Java platforms.  The complaint mentions Google's hiring of "former Sun Java engineers", so it is not too much of a stretch to suppose that Oracle will claim that their knowledge of Java internals inevitably contributed to parts of the Android code being "derived" from copyright Java code.
  3. Likewise, the mention of the former Sun employees' knowledge of Java-related patents suggests that Oracle will be angling for punitive damages based on "willful infringement".
  4. The source code for Android is freely available.  We can therefore expect much tedious analysis and comparison of code to establish "copying", "derivation", and/or patent infringement.
Oracle has requested a jury trial, and we feel sorry for the jurors already!


We do not think that Oracle's complaint against Google is vexatious, or an example of "trolling" or sabre-rattling using its recently acquired Java IP portfolio.  Oracle has a genuine commercial interest in the subject matter of the case: Android is a direct competitor to the Java ME platform, and by recent reports is rapidly devouring market share.

On the other hand, Google has been too clever so far not to have seen this coming, so we expect a spirited defense!

Some will claim that Sun was a benevolent corporate citizen, giving freely to the world, while Oracle is a greedy behemoth with no respect for Java's heritage.  This is rubbish.  Oracle has inherited Sun's legacy, and this is the way they had planned it all along!  Anybody who doubts this will find the postings on this forum from Terrence Barr ("Evangelist, Java Mobile & Embedded Community, Sun Microsystems, Germany") quite informative.  Interestingly, the original discussion dates from the early days of Java ME, back in 2006, while the thread was recently revived in June this year.  It is clear that, then and now, anyone with a commercial interest in the Java ME platform, and wanting to avoid the GPL terms, should contact Sun/Oracle to discuss alternative commercial licensing terms.


Java Technology, at oracle.com.
Stefano Mazzocchi, Dalvik: how Google routed around Sun’s IP-based licensing restrictions on Java ME, 12 November 2007.
GPLv2 with the Classpath Exception, at openjdk.java.net.

No comments:

Post a Comment