Oracle's lawsuit against Google has uncovered an interesting fact: Before last week, not many people knew what Android was, exactly. Most industry watchers understood it was an open source Linux-based OS that ran code written in Java. But the relationship between Android and other, more conventional Java implementations is convoluted.
Here's what is clear, though: Android is a direct threat Oracle's mobile Java licensing business, which is one of the few direct revenue streams that the Java platform brings to its corporate parent. The lawsuit is a move to protect that cash cow.
[ Stay ahead of the key tech business news with InfoWorld's Today's Headlines: First Look newsletter, and follow Java developments with our JavaWorld Enterprise Java newsletter. | Read Bill Snyder's Tech's Bottom Line blog for what the key business trends mean to you. ]
There are three versions of Java platform: the Standard Edition (SE), which is the foundation for the language; the Enterprise Edition (EE), for app servers; and the Mobile Edition (ME), for phones and embedded systems. While Java SE is open source and distributed free of charge, OEMs must pay a fee to put Java ME on their gadgets.
This worked nicely for Sun while embedded systems were underpowered enough to need Java ME's specialized, stripped-down code base. But in the last few years, advances in processor power have produced embedded platforms that are capable of running Java SE -- so, oops, no need to pay for Java ME. To prevent this from happening, Sun added so-called field-of-use restrictions to Java SE's license terms; essentially, if you want your implementation of Java SE to be certified as official Java, its license has to forbid its use on anything other than a "computer," defined narrowly enough to exclude most things that aren't standard PCs or laptops.