2016年5月27日 星期五

Oracle v Google lawsuit; Google Prevails


法庭對陪審團的問題只有一個:Google 在使用 Java API 的時候是否為在版權法律允許下的正當使用?陪審團全體一致認為「是的」,全票通過,Google 勝訴。


2012.5.9

Oracle v Google

Who owns the perk in Java?

May 8th 2012, 0:28 by G.F. | SEATTLE
IN 2010 Oracle accused Google of pilfering its intellectual property (IP) for use in the Android mobile platform. It has since presented oodles of forensic evidence, including e-mails among Google executives and bits of allegedly copied program code. On May 7th a federal jury in San Francisco found in its favour. Sort of.
Google, the jurors decided, had indeed copied Oracle's IP related to bits of its Java infrastructure. For a start, the search giant purloined nine lines of Oracle's code for its own version of Java, out of 15m that make up the contentious software. Damages for this misdeed, which will be set at a later stage of the trial, cannot exceed $150,000 by statute. More controversially, Google was also deemed to have infringed Oracle's copyright by mimicking "the overall structure, sequence and organisation of copyrighted works", even where it had not directly copied any code.
Curiously, the jurors could not agree whether this infringement was in fact acceptable under the law. This means that Oracle cannot collect damages from Google (it was seeking up to $1 billion) or require Android to be partially rewritten, at least for now. To add to the confusion, it emerged that one juror had discussed the case with her husband, which the law forbids. Google has called for a mistrial. It now seems likely that this first part of the case, which now proceeds to humdrum patent disputes, will be either retried or appealed.
So, what is all the fuss about? Oracle's copyright-related accusations centred on two bits of software plumbing: application programming interfaces (APIs) and Java virtual machines (JVMs).
Start with APIs. These are the link which allows software developers to create applications which interact seamlessly with a programming language (like Java or C++) or a service (like Facebook or Twitter). Without an API, programmers would first have to suss out how the gears and cogs inside the target platform work, and then construct software to mesh with those. Moreover, different hardware platforms would require separate software versions, which would need to be constantly updated as languages or services are tweaked by their makers. APIs limit such inefficiencies.
Fortunately for programmers, they do not need to write software in machine code, an impenetrable string of 0s and 1s that a computer processor understands. Instead, a separate program called a compiler translates code written in a particular "high-level" language (whose vocabulary and syntax are not entirely unlike that in natural language) into machine-readable commands. APIs make coders' lives easier still, by providing access to ready-made chunks of code to perform some basic, well-defined tasks, from simple ones like displaying dates to the more complicated, such as creating encryption keys.
An API for a particular language is paired with a functional counterpart, a library containing snippets of code in that language which perform the tasks in question. These can be integral parts of languages, paid and licensed add-ons, or some combination of public source and free-but-copyrighted code. Then there is an instruction manual in plain, albeit technical English. It includes descriptions of what each snippet does, together with a command (known as a function call) that, if inserted into a program's source code, acts as a shortcut to the relevant section of the library. Any snippet in the library could be written from scratch—but this takes time and, crucially, fails to take advantage of the extensive testing the existing code in the library has been subject to. It is easier, and safer, simply to bung a reference to the required function into the newly created program.
To run on a particular piece of hardware, a program written in a high-level language must first be converted, or "compiled", into machine code (this typically happens after the program has been completed and prior to distribution). When the hardware runs the compiled program and reaches the function call, it jumps to the relevant section of the library (which is included in the completed code and compiled with it), runs the function's code, and jumps back to the main flow of the program.
Besides snippets of code in a high-level language, some APIs' code libraries contain portions pre-compiled for specific hardware platforms, with the appropriate one picked automatically when the remainder of the program is compiled for a given device. Java API code libraries contain only high-level code. A Java program is compiled all at once. This is where virtual machines come in.
A virtual machine is a computer program which simulates a physical processor. It allows applications designed for one platform, Microsoft Windows, say, to run on another, like Apple Macintosh. A Java VM is not itself written in Java but in another language like C++, and then compiled in the machine code for the device on which it has been installed. Every combination of processor and operating system (Apple's iMac running on an Intel chip, say) therefore has its own unique JVM.
Just as real processors understand a specific machine vernacular, all JVMs speak a machine-code-like version of Java (called Java byte-code). In effect, they act as translators between Java byte-code and the physical hardware's machine language. In theory, then, any Java program only needs to be compiled once and should run on any JVM, prompting Java's developer, Sun Microsystems (which Oracle bought in 2009), to hail it as "write once, run anywhere". 
In practice, however, Oracle offers four types of JVM which support distinct dialects of Java byte-code, tailored for smart cards, mobiles, desktops and servers. A program compiled for a server JVM may not necessarily work on a mobile JVM, or vice versa, as some elements needed to carry it out may be missing from the other sort of virtual machine. A slimmed-down mobile JVM, for instance, lacks the ability to perform complex server tasks, which are a drain on processing power and would unnecessarily slow down a smartphone. A server JVM, meanwhile, does not need to be able to be efficient about draining a battery.
Oracle also licenses other companies to create their own JVMs, on the condition that they can show that their virtual machines are capable of running any software written for at least one of the four classes of virtual device. This lets device-makers create bespoke JVMs for their gadgets.
Google created its own version of Java, which it dubbed Dalvik, for its Android mobile platform, complete with Dalvik APIs, libraries and VMs. Although Dalvik and Java differ on the surface, their structure and many features are identical. As a consequence, a Java program can be adapted to work in Dalvik and vice versa. Crucially, programmers who know one are by the language's fundamental similarities proficient in the other. When a Dalvik program is compiled for use on the Android platform, however, its byte-code is different from Java's—and therefore incompatible with other JVMs.
To create all its Dalvik paraphernalia Google relied on open-source projects, only some of which had secured licences from Oracle. It supplemented them with code of its own, without obtaining a licence. The upshot is that 37 of Dalvik's 173 APIs are functionally identical to Java's (which itself sports a total of 166), albeit implemented using different underlying code.
All this irked Oracle in several ways, prompting the lawsuit. First, the company alleged that Google pinched bits of its code for Dalvik's API-associated libraries. Google admitted this but said it had removed the contentious snippets long ago. The jury agreed with Google, apart from the nine lines mentioned in its verdict. Second, Oracle accused Google of copying its language designs, using its API descriptions, and building a virtual machine incompatible with other elements of the Java infrastructure, without obtaining permission or licences. Here, the jurors agreed with Oracle.
In doing so, they were told by the presiding judge to assume that it is not just the particular wording of the plain-English API descriptions, the function calls, or the underlying code that are protected by copyright. So are the functions themselves, regardless of how they are implemented in software, at least so long as the functions' inputs and outputs are indistinguishable. Some observers found this odd, given that there is currently no clear doctrine about whether API functionality is in fact subject to copyright.
Either way, despite concluding that infringement had occurred, the jury still deadlocked on whether Google's actions fall within the "fair-use" doctrine, which in the context of software might be construed as permitting Google to figure out and emulate all that Java does without seeking a license or permission. The judge accepted this partial verdict and may yet bring his own opinion to bear on the question of doctrine at a later stage of the trial. 
Google insists that API functions, as separate from code, cannot be subject to copyright. That, Google has warned, would be like claiming ownership of ordinary words in a language. If its call for a mistrial is heeded, it will rehearse those arguments anew. If not, it is likely to appeal against the ruling, possibly all the way to the Supreme Court.
Many tech types are jittery about a verdict fully in favour of Oracle. Equivalent API functions based on distinct source code abound across all aspects of hardware, software and services, on the internet and offline. If the court ultimately sides with Oracle it might reshape the nature of technological development.
Google's Tim Lindholm faces off with David Boies on Java license
CNET
Tim Lindholm said that he didn't mean that Google needed a license for Java in his 2010 email that said, "We conclude that we need to negotiate a license for Java under the terms we need." by Dan Farber April 19, 2012 12:51 PM PDT Follow @dbfarber ...
See all stories on this topic »
Google Employee Testifies His Java Email Was Misinterpreted
Wall Street Journal
By John Letzing Of DOW JONES NEWSWIRES SAN FRANCISCO (Dow Jones)--The Google Inc. (GOOG) employee who wrote an email that Oracle Corp. (ORCL) said bolsters their infringement case against the Internet giant testified Thursday that the internal memo was ...
See all stories on this topic »
Google Engineer Says E-Mail Didn't Refer to Java License
BusinessWeek
By Karen Gullo on April 19, 2012 A Google Inc. software engineer testified that when he wrote in a 2010 e-mail, “We need a license for Java,” he didn't mean a license from Java's creator, Sun Microsystems Inc., or any other company.
See all stories on this topic »
Apple, Google, Intel fail to dismiss staff-poaching lawsuit
Reuters
By Jonathan Stempel (Reuters) - Apple Inc, Google Inc, Intel Corp and four other technology companies were ordered by a judge to face an antitrust lawsuit claiming they illegally conspired not to poach each other's employees. District Judge Lucy Koh in ...
See all stories on this topic »
EXPLAINER: Here's What Google And Oracle Are Fighting Over (ORCL, GOOG)
San Francisco Chronicle
After the excitement of Larry Page and Larry Ellison testifying earlier this week, the Google-Oracle trial has turned into a highly technical discussion about Java. So what the heck is really going on? Here's our brief explainer.
See all stories on this topic »
Oracle probes Google engineer about key email
Reuters
By Dan Levine | SAN FRANCISCO (Reuters) - A Google engineer, testifying in a high-stakes trial pitting Oracle Corp against Google Inc, denied that he referred to Oracle or any other company when he wrote in an email that Google should take a license to ...
See all stories on this topic »
Google's Lindholm dances around questions about Java licences
ZDNet (blog)
By Rachel King | April 19, 2012, 12:45pm PDT Summary: After Google CEO Larry Page claimed that he isn't too familiar with him, Google software engineer Tim Lindholm took the stand in the IP trial against Oracle on Thursday. Tim Lindholm leaving the ...
See all stories on this topic »

ZDNet (blog)
APIs take center stage at Oracle-Google trial
CNET
The scene of the Oracle-Google trial Thursday was more like a computer science classroom than a courtroom as the witnesses explained the inner workings of Java and APIs. by Dan Farber April 19, 2012 10:26 AM PDT Follow @dbfarber The scene of the ...
See all stories on this topic »
Oracle Vs. Google: Tour The Evidence
InformationWeek
Google CEO Larry Page took the stand and gave Oracle's attorney's little with which to work. There were no unexpected revelations or confessions. In part, that's because both companies have already laid out their cases in slide decks that summarize ...
See all stories on this topic »
Apple, Google, others to face antitrust suit over staff poaching
Los Angeles Times
By Jessica Guynn SAN FRANCISCO -- Apple, Google, Intel, Pixar and other high-tech companies will face an antitrust lawsuit that alleges they illegally conspired not to poach each other's staffers. San Jose US District Court Judge Lucy Koh rejected a ...
See all stories on this topic »


APIとは【Application Program Interface】(プログラミングインターフェース ...

e-words.jp/w/API.html
APIとは:あるプラットフォーム(OSやミドルウェア)向けのソフトウェアを開発する際に使用できる命令や関数の集合のこと。また、それらを利用するためのプログラム上の手続きを定めた規約の集合。個々のソフトウェアの開発者がソフトウェアの持つすべての機能 ...

Lex_Oracle/Google lawsuit



Why didn’t Google just sign up for a licence and move on? Oracle’s lawsuit alleges that when Google used the Java programming language as the basis for its Android mobile operating system – without taking a licence – it misappropriated intellectual property Oracle acquired when Oracle bought Java, along with Sun Microsystems, in 2009. The trial is set to start today. A licence would not have been expensive. There is even a free, open-source version.
As Oracle tells it, Google built Android out of Java building blocks so that it would be easy for the legions of existing Java developers to write Android applications. But it didn’t want to make Android fully compatible with other Java-based platforms, which taking a licence would have required.
The idea was to keep the applications within the Android ecosystem, and under Google’s control. Developers can check in, but they can’t check out. This damages “the entire Java ecosystem”, according to an Oracle lawyer, because part of the value of any Java application is in its ability to “talk” to all the others.
This story turns the images of Android as open software, and of Google’s “don’t be evil” ethic, upside down. Oracle is also cast against type, as the defender of openness, protecting compatibility in the name of all Java developers.
Yet it is a bit hard to see how Google has harmed Java developers by building the first viable mobile operating system they can use and profit from. Anybody who has written an app for Android will have little trouble recasting it for another Java platform. Oracle is more likely concerned to participate in the future of a popular operating system that may grow beyond phones, and even enter Oracle’s core market, business software.
Of course, all of this is only relevant if Google is found to have violated Oracle’s intellectual property, which Google denies. There will only be reparations if there was a theft.






Google: Oracle Wants To Glom Onto Android's Success
InformationWeek
Day two of trial featured Oracle CEO Larry Ellison on the stand, plus Google assertions that case boils down to Oracle trying to latch onto Android's accomplishments. By Thomas Claburn InformationWeek Defending itself in a San Francisco courtroom ...
See all stories on this topic »
CEOs of Oracle, Google square off in court over Java
Los Angeles Times
Google denies its Android software for mobile devices infringes the patents and copyrights of Java, a programming technology that Oracle obtained when it bought Sun Microsystems. In his testimony on the second day of the technically complex trial that ...
See all stories on this topic »

Los Angeles Times
Google and Oracle battle over the future of Android
CNN
By David Goldman @CNNMoneyTech April 17, 2012: 3:49 PM ET Google CEO Larry Page (left) and Oracle CEO Larry Ellison will testify against one another in the coming weeks. NEW YORK (CNNMoney) -- A landmark court battle between Google and Oracle has begun ...
See all stories on this topic »

沒有留言:

網誌存檔