Google's Java Jam
Sometimes things that are supposedly free for the taking -- such as open source software -- can ultimately cost a wad of dough from the corporate coffers. That could well be the lesson Google learns from a lawsuit Oracle filed last year alleging that Google violated its intellectual property as well as infringed on its copyright for using a variation of Java.
Details of the court filings surfaced in published reports recently, and they show that Google could owe Oracle between US$1.4 billion and $6.1 billion. The issues involve Oracle's claims that Google violated license and patent protections built into Java code, thus infringing on Oracle's intellectual property.
"If part of the settlement involves royalties of even $5 a copy [for using Java], it makes Android more expensive to deploy and gives Android the appearance of not being free anymore. The issue becomes how is that tax passed down the ecosystem," Bill Weinberg, principal analyst and consultant for Linux Pundit, told LinuxInsider.
Both Oracle and Google declined requests to discuss the issues.
A Fork Too Far?
Software developers tend to use Java whether they are targeting Android or some other PC platform. But the developers are not all using the same Java version. They are using a collection of different libraries when they develop apps for Android.
"That is where the issue or accusation of fragmentation occurs," Al Hilwa, program director for applications development software at IDC Seattle, told LinuxInsider.
That's why Oracle is concerned that developers' use of different Java versions created from different libraries is creating fragmentation. That is one concern that Oracle has that prompted them to make the legal move, he explained.
Java is used on numerous computing platforms. That code was a core component of Sun Microsystems' Java platform written in a simpler object model derived from C and C++. The innovation behind Java is that its applications can run on any Java Virtual Machine (JVM) regardless of computer architecture.
The issue raised by Oracle is focused on what Google did in adapting Java to run on its Android flavor of Linux. If Google fails to successfully defend itself in the accusations, it could be found guilty of violating a different set of license requirements than those that control Linux.
"The allegations by Oracle against Google boil down to improper and unauthorized use of Java, which although open-sourced under the GPLv2 by Sun Microsystems before Oracle took ownership of it, nonetheless invokes restrictions and licensing requirements on variations, such as partial subsets or just parts of the full, standard Java implementation," Jay Lyman, analyst with the 451 Group, told LinuxInsider.
Thus, Oracle claims that Google's Dalvik Virtual Machine is a partial or subset of a full Java implementation. If so, this is covered differently by licensing and patent terms, he said.
Java vs. Dalvik
The root of the contest is defining what Java is and what license obligations it carries. At the top end of the software development chain, developers rely on Java and its JVM code. At the bottom end, Google uses something else that is very similar, the Dalvik Virtual Machine, said Hilwa.
"That is another concern that Oracle brought forward. Google claims that it is not copied and there is no copyright violation," he explained.
The connection to Linux is basically that Android is based on the Linux kernel, and Android also incorporates the Java runtime-based Dalvik VM. The only connection here is that both Linux and Java coexist within Android, though there has always been a strong connection between Java application development and Linux in enterprise IT, said Hilwa.
When Google launched Android, it put together Dalvik to fix what it claimed was a broken Java. The company's rationale for doing it was technical, according to Weinberg. But Oracle claims that what is not broken needs no fixing.
Google's goal was to leverage the global competence in Java programing. The blogosphere came out and asserted that Google would be free of royalties, he said.
"Google built its own virtual machine and used the Apache Harmony class library as the basis for Android. Oracle is alleging that Google is violating a number of patents -- six I think, last time I looked -- that cover the way the JVM does things, like loading classes or implementing security," Jeffrey S. Hammond, principal analyst for research firm Forrester, told LinuxInsider.
The Patent Players
Technically, many of the patents cover fairly low-level functions. It is hard to create alternative methods to implement the feature without making the way the Dalvik Virtual Machine works very unlike the way Java classes work when they are used with the Hotspot JVM, Hammond explained.
"I suppose that Google could change the way the VM works, but that would not cover past infringement and all the Android devices that have already been sold. Developers would also have to adjust all their apps," he said.
Another concern in the Java intellectual property dispute is the potential success of Android, noted Hilwa. If Android becomes extremely successful and moves into other areas beyond the mobile space and its presence already in tablets, then it will be extremely competitive technology.
"It is not licensed, so Oracle is extremely concerned about that," he said.
The GPL license, under which Linux and Java fall, requires users to put their improved code back into the community. No one can uniquely profit from it, Hilwa said. The Apache license that regulates use of Android has no such requirement. Android and the Apache license are not compatible with the GPL.
Google contends that there is no violation and that the patents are invalid in the first place. Google will argue whatever the standard set of defenses are in patent cases, according to Hilwa.
"At the time, Sun was very lax in enforcing licensing, at least that is the way I saw it. They may have done some saber rattling, but I know they took no serious pursuit of whatever infringement we now find out is in Dalvik," Weinberg said.
But Oracle has a different take on intellectual property and Google's actions than Sun did. Sun did not want to go to war with Google, but Oracle has an ax to grind, added Weinberg.
"Sun was occupied by a bunch of other things, and Android went on its way. Things are rather different today with Sun being a part of Oracle," he said.
The other side of the fight is Google's stance. And that is a big bone of contention.
"The assumption here is that this code is a clean implementation and does not violate any IP claims or patents. That's what Google is claiming," Hilwa said. [*Editor's note - July 15, 2011]
When the Dust Settles
In reaction to the court activity, there are significant cases where the large manufacturers and device makers are licensing patents to protect themselves just in case, Hilwa said. Some product makers are also signing agreements with Microsoft.
Whether or not the manufacturers will start signing agreements with Oracle will depend on this current lawsuit and how all these patents stand up, he suggested.
"It's a test case really for whether or not Oracle will be able to monetize Java in the mobile space. There is no doubt that the Google technology smells and looks a lot like Java," Hilwa said.
Beyond that, developers use Java for the attractive tool that they know and love at the top end of the technology. But whether at the bottom end of the technology it breaks any of the rules with the way the Dalvik engine works is what is being tested, he explained.
From the analysis to which Weinberg is privy, Oracle has a strong patent case on a number of counts, he said. Unlike other patent cases, Google does not have a portfolio it can show to counter-sue across license issues.
"So Google is in a very awkward position as far as the entire Android ecosystem," said Weinberg.
In Google's defense, Lyman retorted that some arguments may hold up. These involve a possible grant of patent rights in the GPLv2 license. In terms of impact, he sees little effect on developers based on what he hears from them, project members and vendors in this case.
Google's main rebuttals have centered on Java being open source code and Oracle seeking royalties that Sun already passed up with its stewardship and open-sourcing of Java.
"Not just this lawsuit but the whole body of lawsuits surrounding Android shows me that Google could have done a bit more homework and been more careful," concluded Hilwa.
*ECT News Network editor's note - July. 15, 2011: In the original publication of this article, Al Hilwa is quoted as saying, "The assumption here is that this code is a clean implementation and does not violate any IP claims or patents. That's what Oracle is claiming." Hilwa later contacted LinuxInsider to clarify that he meant to say "That's what Google is claiming."