Thursday, August 12, 2010

Last gasp of Sun's semi-openness

Throughout its lifespan, Sun always had a schizophrenic view of open standards. Some of the things it did were very open, like giving away specs and/or implementations of things like RPC and NFS. Some of the things were traditional proprietary licensing models — akin to Microsoft or Intel — with SPARC chips, Solaris and the like.

On the other hand, Sun’s use of open source was always semi-open, as I noted in 2003 in my most oft-cited open source paper. In fact, Sonali Shah (now of U. Washington) coined the term “gated source” to refer to Sun’s use of open source-like approaches inside an extranet during the past 15 years or so.

While Sun eventually embraced open source, its opening always seemed like too little, too late. Certainly during its entire lifespan, Sun’s was at best semi-open — a combination of (as I put it in my 2003 paper) “partly open” and “opening parts”.

The crown jewels of Sun during its final decade was the Java programming language. One offhand estimate I heard was that Sun spent more than $1 billion in R&D on Java before it was gobbled up by Oracle, but that number seems low.

Now Oracle (owner of Sun’s IP if few of its former leaders) is suing Google for its independent implementation of Java in the Android platform. Since neither the IP nor the alleged infringement has changed since the first Android phone shipped two years ago, the lawsuit seems driven more by the change in management than a change in IP use.

Oracle is represented by David Boies, who once helped sue Microsoft for antitrust violations but more recently represented SCO in its suit against Linux and IBM.

The Merc sees it as a negotiating ploy:

While Redwood Shores-based Oracle did not specify the amount of damages it will seek, one analyst said the stakes could be high. But he also suggested the lawsuit may be a strategic move by Oracle in the course of a larger negotiating effort.

"At the end of the day, it could mean a fair amount of money," said Al Hilwa, a software industry expert at the IDC tech research firm. Based on other similar past disputes, he added, it's likely that the two companies have been negotiating quietly for months.

"Going public with a lawsuit may well be part of a strategy by Oracle for trying to force the issue," Hilwa said.
In contrast, ComputerWorld quotes a Gartner analyst who (correctly) suggests that Oracle will have a hard time making a case:
When Google developed Android it included a Java compatible technology called Dalvik with the phone OS. Dalvik was developed as a "clean room" version of Java, meaning Google built it from the ground up without using any Sun technology or intellectual property, said Gartner analyst Ken Dulaney.

"You can't just take a Java application from a Sun environment, where it's licensed, and run it on Android. You have to recompile it to Dalvik," Dulaney said.
The cleanroom process is almost 30 years old, used for hundreds of clones of the IBM PC, Adobe’s PostScript interpreter, and many other copryighted software technologies owned by litigious wealthy IT companies. When used properly, it is very effective — which is why Dell and HP are shipping more Wintel PCs than IBM, which dumped the business it created.

If Google used this process, Oracle faces a nearly impossible task of proving copyright infringement. If it didn’t — with all its brains and resources and lawyers and egos — then certainly it deserves to pay whatever a jury hands out in a courtroom.

In fact, Android does not have a complete Java implementation, but the Java language syntax with a different set of APIs that brought heartburn to Java programmers (and Sun).

I don’t know much about the Java patent portfolio, which is potentially a more seriously threat to Google since a cleanroom or independent invention is no defense for patent infringement.

I was curious to find no record of Sun asserting Java patents against other firms, at least openly. The only Java patent litigation I could find was a $92 million settlement in 2004 by Sun in favor of Kodak for Java infringing patents created by Wang Laboratories (and bought by Sun)

Certainly there have been at least limited Java clones, including HP’s MicroChai in 2001, which apparently shipped in a few HP devices.

So does Sun/Oracle have a weak case? Has it been using the patents behind the scenes to win royalties or eliminate competing Java implementations?

However, the fact that Sun has patents to assert over Java implementors shows that it always intended the Java platform to be semi-open, and that its abortive effort to make Java a truly open standard was never intended to give up control.


spaetz said...

Hi Joel,

this does not seem to be about copyright. It seems to be about patents, and Sun, eerr, Oracle has a bunch of patents related to Java. There are a number of issues:
Java is licensed under the GPL v2 which some say has an implicit patent grant clause. But as Google did a clean room implementation using another project as base, the GPL patent grant is not applicable (it is no derived work).

Sun also has a patent indemnification clause, but that is only valid if the full java specification are fulfiled, which dalvik does not do. So Sun was honest about Java being open and open standard, but only if you adhere to the full Java standard and do so in a compatible way.

Both Google and Oracle are licensees in the "Open Invention Network" which pledge to not sue themselves over patents related to "Linux systems". The exact wording is, I believe:

"You, on behalf of yourself and your Affiliates, (a) grant to each Licensee ... a royalty-free, worldwide, nonexclusive, non-transferable license under Your Patents for making, having made, using, importing, and Distributing any Linux System;..."

Joel West said...

Thanks for the pointer to the Open Invention Network.

As for it only being patent litigation, the word "copyright" appears in the announcement of the lawsuit, even though I can't figure out how that figures in.

Your point about Sun's decision to grant a patent license only if you implement the Java APIs is another indicator that Sun only wanted to be semi-open. That's the story of Sun's 30 year existence: we are somewhat "open", but only on our terms. (By contrast, I think Apple's work on WebKit is much more open.)

Anonymous said...


This lawsuit is a non-starter. First of all, the Android platform has *NO* Java technology at all. It will not run a Java program. There is no claim by anyone that it will run a Java program.

True, application development for Android is done in the Java LANGUAGE, on a development platform that is of the developer's choosing-- which may indeed be a licensed copy of Sun's JDK. An Android application in source form is written in the Java language, but using API calls into the Android run-time library (since the Java run-time library is not available on the Android platform). It is then compiled by a Java compiler, then the Java byte-codes are converted to Dalvik byte-codes by a translator. The (now Dalvik) program is them loaded onto the Android platform an is run by the Dalvik virtual machine (VM)-- which will *NOT* run any Java byte-code program.

The developer of an Android application must use the Android library-- not the Java library, because the Android platform has no Java library. The Android run-time library is vastly different in function and architecture from the Java run-time library.

Thus, there is no "copyright infringement", because Android uses no code from Java. There is no "trademark infringement" because Android makes no claim to use any Java technologies or run any Java program. (The developer may choose to use Java technologies to develop an Android application, but the Android platform itself does not use any Java technologies.) There are many languages that create Java byte-code as their output (like Jython for example), which when translated by the Android byte-code translator will run on the Android platform-- so there is the possibility that an Android application can be created without even using the Java language.

The Dalvik VM, is register based, and it's inner workings and architecture are vastly different from a Java VM. It will *NOT* run Java byte-code.

As to the supposed patents, the only thing "Java-like" about Android is that it uses a virtual machine, the virtual machine makes use of a Just-In-Time compiler (JIT), and the byte-code interpreted program makes use of a run-time library. All of these things are prior-art. Early IBM computers that had small memory models ran FORTRAN on a virtual machine-- this was in the 1970's. The concept of "Just-In-Time" compilation for virtual machine byte-codes was in the literature years before Sun patented it. FORTH is one such system language that makes use of JIT compilation, and it was developed int he 1970's. Run time libraries have been in use for decades before any Sun patent.

In addition, since the Sun patents were issued, there have been some recent court cases that raise the bar for a patent to be "novel". It is highly likely that if this case survives the show-cause hearing, the higher courts will find that the Sun patents are invalid due to their obvious nature and lack of novelty.

If Google files counter claims (which they most likely will do-- at least a "frivolous lawsuit" claim), it is conceivable that Oracle can lose this lawsuit and end up paying court-costs, attorney fees to Google.

Anonymous said...

Patent infringement analysis will be straightforward (other than whether Sun has given express or implied licenses away due allowing distribution of Java specs, ety. through open source type licenses). Copyright infringement will be extreely interesting as a discusson point for academics and legal scholars - the questions will relate to how "functional" the purported copyright material is - functional aspects cannot be protected by copyright- this is the so-called idea-expresssion dichotomy (i.e., it is unlikely you can protect a computer language, or even the specs and API, by copyright due to its functonal aspects under the idea-expression dichotomy)

Walt French said...

A “non-starter” case? Billions of dollars have been paid under similar terms. This is a Big Deal, maybe leading the SCOTUS to invalidate software patents as unworkable.

What's the deal about the Dalvik VM not being the same as the java VM? I hear that translation between the bytecodes is trivial. If that matters but Android never touches java, then every developer who uses the bytecodes is at risk.

But the claims I've looked at cover much more fundamental (Generally Recognized As Patentable) aspects of how the language works, rather than copyrightable spelling of bytecodes. This might be much more difficult for Google to remediate.

Just to put an order-of-magnitude tag on this: Oracle paid about $7 billion for Sun; by accounts, much of that for its Intellectual Property. Sun has seen JavaME revenues fall from around $1 billion per year to a couple hundred million; much of that certainly relates to the "free" Android. Sun, whose DNA does not include litigiousness, managed to get more than a billion out of Microsoft. And Schmidt has said that the Android business, as a giveaway, was worth maybe $10 billion in eyeballs and etc. Given that there's some risk whether they could prevail, Oracle must either (a) have gone non compos mentis or (b) expect a settlement larger than a couple of billion dollars, possibly including a few dollars per Android install. This is NOT just because Larry and Steve are buddies.

Finally, it seems noteworthy and unremarked that Sun, having given away widespread (not total) rights to java, failed financially. As this case illustrates, technology increasingly relies on big deals, big patent portfolios and multi-year, big-team efforts. With Google partnering with Verizon on a semi-open mobile internet, Google is quite willing to reverse its marketing line in order to make exclusive and exclusionary deals with whoever gets them the most money. It reinforces the view that Android was never about "openness" and if it had to do with whether "one man, one company" controlled the internet, that man would be Mr. Schmidt and Google the company.

Robert said...

Larry@Oracle is making Balmer and Microsoft appear as good samaritan geniouses. In the EU, USA, and other countries, this action is again raising the visibility of anti-trust behavior. Oracle purchases companies, lays off employees, kills innovative projects, alienates their parters, and sues to make money. All because Oracle is having trouble innovating as well as their peers. Larry is starting to appear too old and stubborn to lead Oracle, and has lost touch with the marketplace (and customer base).

Oracle has better things to do with their time, including cleaning up their hardware-software portfolio stack, and getting their enterprise apps ready for the cloud and client devices which are already shipping for the cloud (but Oracle's client requirements are firmly rooted in 1980's technology, and not suitable for many cloud devices).

I predict that Open Source will come out smelling like a rose, and that new university talent around the world will flock to start-ups, Google, and just about anywhere but Oracle Corp.

Regardless of the Copyright/Patent merits, Larry has made a huge PR mistake that no amount of spending can recover. The rest will now be history unfolding, both in the courts and driven by consumer device choices and the choice of where new high-caliber university talent chooses to invest their energy.

Larry won't be leading Oracle much longer, so he can take the risk, but can Oracle take the risk?

spaetz said...

This blog posts nicely lists the patents involved:

- Protection domains to provide security in a computer system
- Controlling access to a resource
- Method and apparatus for pre-processing and packaging class files

These are not patents that would only apply to a JAVA-language, but to any language that resembles Java. I agree, Millions have been paid for weaker claims.

@joel: you are right, copyright appears in the Oracle text, which I don't understand as I don't think anyone claims that Google actually "copied" code from Java.