GLOSSARY (Reference: Oracle Am., Inc. v. Google LLC, 886 F.3d 1179 (Fed. Cir. 2018)
Java Platform: The Java platform is software used to write and run programs in the Java programming language. It allows programmers to write programs that “run on different types of computer hardware without having to rewrite them for each different type.” The Java 2 Standard Edition (“Java SE”) of the platform includes, among other things, the Java Virtual Machine and the Java Application Programming Interface (“API”).
API: (General meaning: When creating software applications, developers rely on functionality built into operating systems and programming languages. An API provides a menu of available functionality and tells developers what to provide and what information will be returned.) The Java API is a collection of “pre-written Java source code programs for common and more advanced computer functions. The prewritten programs are organized into packages, classes, and methods. Specifically, an API package is a collection of classes and each class contains methods and other elements. By 2008, Java SE included 166 API packages divided into 3,000 classes containing more than 30,000 methods.
Declaring Code: To include a particular function in a program, the programmer invokes the Java “declaring code.” the declaring code is the line or lines of source code that “declares or defines (i) the method name and (ii) the input(s) and their type as expected by the method and the type of any outputs.” After the declaring code, each method includes “implementing code,” which takes the input(s) and gives the computer step-by-step instructions to carry out the declared function.
TIMELINE
1990s: Sun Microsystems, Inc. (“Sun”) developed the Java platform for computer programming.
2005: Google acquired Android and began discussions with Sun to adapt the Java SE platform for mobile devices. Negotiations failed.
2008: Google used some of the Java API declarations to build Android. Google incorporated those declarations to allow developers to write applications for Android using the Java language. Sun originally applauded Google for using the Java language.
Jan 2010: Oracle purchased Sun & acquired Java.
Aug 2010: Oracle sued Google in the U.S District Court for the Northern District of California, claiming patent and copyright infringement related to Google’s unlicensed use of Java APIs as part of Android
May 31 2012: US District Judge William Alsup ruled that Java's APIs are not copyrightable.
2013: Oracle files for Appeal to the U.S. Court of Appeals for the Federal Circuit.
May 9 2014: The US Court of Appeals for the Federal Circuit reversed Judge Alsup’s order, and ruled that Java’s API packages were copyrightable. It sent the case back to the trial court to determine whether Google's copying was nonetheless a lawful fair use.
2014: Google files a petition for writ of certiorari on the copyrightability determination at the SCOTUS. The petition is denied in 2015. Result: Case back in District Court to decide on the issues of fair use by Google & damages, in case fair use defense did not prevail.
May 2016: Jury found in favour of Google, holding that its use of Oracle’s Java API was fair use. After the jury verdict, the district court denied Oracle’s motion for judgment as a matter of law (“JMOL”) and entered final judgment in favour of Google.
Sep 2016: Oracle filed a renewed motion for JMOL and separately moved for a new trial. The district court denied both motions in a single order. Consistent with these determinations, no damages verdict was rendered.
2017: Oracle files for Appeal from the district court’s final judgment and its decisions denying Oracle’s motions for JMOL and motion for a new trial. Google cross-appeals from the final judgment to the U.S. Court of Appeals for the Federal Circuit. Decided in 2018, Fed Cir reversed the district court’s decisions denying Oracle’s motions for JMOL and remand for a trial on damages. Also dismissed Google’s cross-appeal.
Jan 2019: Google files a petition for writ of certiorari at SCOTUS. Granted for 2 issues: (1) whether copyright protection extends to software interfaces such as APIs and (2) whether the use of software interfaces when creating new applications constitutes fair use.
FACTS
In the 1990s, Sun Microsystems Inc. (the “Sun”) developed the Java programming language platform. The programming language itself was freely available and open for everyone to use without a licence.
In 2005, Google acquired Android and began discussions with Sun to adapt the Java SE platform for mobile devices. Despite conducting negotiations, the parties were unable to reach an agreement. Google then went ahead to use the freely available programming language to build its own virtual machine named Dalvik with a software different from Java’s virtual machine. Keeping in mind that Java programme developers may wish to create Android applications, Google replicated the syntax and structure of the Java API declarations exactly as they were. This was done concerning certain methods in 37 Java API libraries. However, Google wrote or acquired its own source code to implement virtually all the functions of the 37 API packages in question. Sun did not object Google’s move.
In January 2010, Oracle America acquired Sun. In August, Oracle sued Google in theUnited States District Court for the Northern District of California for infringing Java-related copyrights and patents.
Oracle had its own licensing system which comprised of 3 different licenses:
A General Public License which is free of charge, but users must contribute back its innovations to the public,
Specification License as per which the user can use the declaring code and organization of Oracle’s API packages but not the implementing code.
Commercial License for businesses to use the entire code in their commercial products and keep the code secret.
When it came to Specification and Commercial licenses, Oracle had its set of tests for strict compatibility requirements.
5. Oracle believed in the “write once, run anywhere” motto, which was the cause of contention between the parties during the initial negotiations. Google wished for device manufacturers to be able to use Oracle’s APIs in Android for free with no limits on modifying the code. According to Oracle, this approach would be dangerous to their aforementioned motto. This led to Google developing its own virtual machine.
ISSUES
1. Whether Java API is eligible for copyright protection.
2. Whether the use of software interfaces when creating new applications constitutes fair use.
LAW
17 U.S.C. - Copyright Act
§ 101- Definitions. (A ‘computer program’ is a set of statements or instructions to be used directly or indirectly in a computer in order to bring about a certain result.)
§ 102- Subject matter of copyright: In general
§ 107- Limitations on exclusive rights: Fair use
ANALYSIS
A. First jury trial: 2012
1. For the sake of simplicity, the Court decided to conduct the trial in 3 phases covering the following issues:
copyrightability, copyright infringement and equitable defenses;
patent infringement; and
damages
2. The jury was to determine if the elements (the names, their organisation and the functionality of 37 out of 166 packages in the Java API, which has been referred to as the “structure, sequence and organization” of the 37 packages) replicated by Google from the Java system were qualified to be protected under the copyright law in the first place.
3. To determine infringement and fair use, the jury was told it should take for granted that the structure, sequence and organization of the 37 API packages as a whole were copyrightable. This, however, was not a final definitive legal ruling.
4. The jury agreed that Google was free to use the Java language itself and that Google’s virtual machine was free of any copyright issues. It also agreed that the implementation methods used by Google were free from copyright issues.
5. The jury found that Google infringed Oracle’s copyrights in the 37 Java packages and a specific computer routine called “rangeCheck,”. But it returned a noninfringement verdict as to eight decompiled security files.
6. The jury deadlocked on whether Google’s use was protected by the fair use defense. It found no patent infringement.
7. Both Oracle and Google filed motions for Judgement as a Matter of Law (JMOL) regarding fair use and rangeCheck respectively. However, the District Court denied these motions. [Order on Motions for Judgment as a Matter of Law, Oracle Am., Inc. v. Google Inc., No. 3:10– cv–3561 (N.D.Cal. May 10, 2012), ECF No. 1119]
However, it granted Oracle’s motion for JMOL of infringement as to the eight decompiled files and explained that:
(1) Google copied the files in their entirety;
(2) the trial testimony revealed that the use of those files was ‘‘significant’’; and
(3) no reasonable jury could find the copying de minimis. [Order Granting JMOL on Decompiled Files, 2012 U.S. Dist. LEXIS 66417]
8. In its decision dated May 31, 2012 [Oracle Am., Inc. v. Google Inc., 872 F.Supp.2d 974 (N.D.Cal.2012)], the District Court found that “To carry out any given function, the method specification as set forth in the declaration must be identical under the Java rules, as any other declaration would carry out some other function. when there is only one way to write something, the merger doctrine bars anyone from claiming exclusive copyright ownership of that expression. Therefore, there can be no copyright violation in using the identical declarations.” Therefore, at the method level, it was found that Google did not violate any copyright. Further, it also found that “there can be no copyright violation due to the name given to the method (or to the arguments), for under the law, names and short phrases cannot be copyrighted.”
The Court recognised that “although Oracle’s overall scheme of file name organization resembles a taxonomy which was creative and original, it is still a command structure, a system or method of operation.” Therefore, it cannot be accorded copyright protection.
9. Accordingly, on June 20, 2012, the District Court entered the final judgment in favour of Google on Oracle’s copyright infringement claims, except for the rangeCheck code and the eight decompiled files. With respect to the rangeCheck code and the decompiled files, judgment was in favour of Oracle. [Final Judgment, Oracle Am., Inc. v. Google Inc., No. 3:10-cv3561 (N.D. Cal. June 20, 2012), ECF No. 1211.]
B. The Appeal: 2014 Oracle Am., Inc. v. Google Inc., 750 F.3d 1339 (Fed. Cir. 2014)
1. Both parties filed for an appeal at the U.S Court of Appeals for the Federal Circuit.Oracle appealed from the portion of the final judgment entered against it, and Google cross-appealed from the portion of that same judgment entered in favour of Oracle.
2. The Court concluded that the declaring code and the structure, sequence, and organization of the API packages are entitled to copyright protection. It found that the District Court “failed to distinguish between the threshold question of what is copyrightable” and “the scope of conduct that constitutes infringing activity.” It was also of the view that the District Court “erred by importing fair use principles, including interoperability concerns, into its copyrightability analysis.”
3. Regarding Google’s cross-appeal, the U.S Court of Appeals affirmed the District Court’s decisions.
4. Due to insufficient record as to the relevant fair use factors, the U.S Court of Appeals remanded for further proceedings on Google's fair use defense and damages, if appropriate.
C. Following the Federal Circuit’s decision of reversal and remand, Google filed a writ of certiorari at the Supreme Court, which was denied in 2015.
D. Second Jury Trial: 2016
1. Following remand from the Federal Circuit, the case was back in the U.S District Court for The Northern District of California for a second jury trial for fair use.
2. Due to a pretrial order, the second jury trial was divided into phases.
Phase 1: Google’s fair use defense.
Phase 2: wilfulness and monetary remedies, had the jury decided in favour of Oracle during phase one.
Phase 3: Whether “Oracle deserved equitable remedies, including whether Google had equitable defenses.” [Oracle Am., Inc. v. Google Inc., No. C 10-03561 WHA, 2 (N.D. Cal. Sep. 27, 2016)]
3. Google prevailed on its fair use defense and no verdict for damages was given.
4. Following the jury verdict, Oracle filed a motion for JMOL which was denied by the District Court. [Oracle Am., Inc. v. Google Inc., No. C 10-03561, 2016 WL 3181206 (N.D. Cal. June 8, 2016)]. The Court entered the final judgement in favour of Google [Final Judgment, Oracle Am., Inc. v. Google Inc., No. 3:10-cv-3561 (N.D. Cal. June 8, 2016), ECF No. 1989].
5. Oracle then filed a renewed motion for JMOL and separately moved for a new trial, both of which were denied by the District Court in a single order. [Oracle Am., Inc. v. Google Inc., No. C 10-03561, 2016 WL 5393938 (N.D. Cal. Sept. 27, 2016)].
6. No verdict pertaining to damages was rendered.
E. The Appeal: 2017, 2018 Oracle Am., Inc. v. Google LLC, 886 F.3d 1179 (Fed. Cir. 2018)
1. Following the final judgment and denial of motions for JMOL and a new trial by the District Court, Oracle filed an appeal at the U.S Court of Appeals for the Federal Circuit in 2017. Google cross-appealed from the final judgement to “preserve the claim that the declarations are not protected by copyright law.”
2. In 2018, the Federal Circuit yet again reversed the decision of the District Court and concluded that Google’s use of the Java API packages was not fair as a matter of law.
3. Google did not advance any argument to support its cross-appeal which was then accordingly dismissed.
4. The case was remanded back to the District Court to determine the damages in the light of infringement.
F. In 2019, Google filed yet another petition for certiorari at the Supreme Court. This time, the Supreme Court granted the petition and agreed to hear the matter on the aforementioned 2 issues.
ARGUMENTS
During the oral arguments that took place on October 7th, 2020, the parties advanced the following arguments:
A. Scope of Copyright Protection
Google relied on the merger protection extends to original works of authorship. However, § 102 (b) says that copyright does not extend to “any idea, procedure, process, system, method of operation, concept, principle or discovery doctrine (the idea-expression dichotomy). It argued that under the merger doctrine, there is no copyright protection for computer code that is the only way to perform those functions. The method of operation of Java SE is the combination of commands by the developers and the declarations in Java SE. In order for the commands to function, Google had to reuse the exact set of declarations to get the exact result. Oracle’s exclusive right over the declarations appear to be patent right and not copyright. As per 17 U.S.C § 102 (a), copyright” embodied in the work. Google argues that the declaring code is different from the implementing code, and that the declaring code is a method of operation and not copyrightable. Oracle is of the view that such a distinction cannot be done. Google relies on the argument that the APIs are functional in nature and are thus exempted from copyright protection. On the other hand, Oracle argues that the manner in which it describes each function and method is creative and that the declaring code is expressive in nature. Therefore, Oracle argues that the APIs merit copyright protection.
During the appeal proceedings that took place in 2014, Google was of the view that the Java API packages had become the effective industry standard, it had the right to copy them. Specifically, it suggested that in the same way a formerly distinctive trademark can become generic over time, a program element can lose copyright protection when it becomes an industry standard. However, since Google did not cite any authorities for the same and the Federal Circuit found that the industry standard argument did not affect the copyrightability of Oracle’s work. [Oracle Am., Inc. v. Google Inc., 750 F.3d 1339 (Fed. Cir. 2014)]
B. Fair Use
17 U.S.C. § 107 provides four factors to be considered for a fair use defense:
the purpose and character of the use (commercial or non-commercial);
the nature of the copyrighted work;
the amount and substantiality of the portion used in relation to the copyrighted work as a whole; and
the effect of the use upon the potential market for or value of the copyrighted work.
Google argues that although its use of the declaring code was commercial, it was transformative in nature. However, this argument was rejected by the Federal Circuit as all that Google did was “copy the material and moved it from one platform to another without alteration, which is not a transformative use”. Further, “the purpose of the API packages in Android is the same as the purpose of the packages in the Java platform” [Oracle Am., Inc. v. Google LLC, 886 F.3d 1179 (Fed. Cir. 2018)].
The standard of review when it comes to determining fair use was discussed in the latest hearing. Google advanced the ‘reasonable jury’ standard ie, whether after construing all the evidence in support of the verdict, a reasonable jury could find fair use. It argued that the Federal Circuit should not have resorted to the de novo standard of review. In contrast, Oracle advanced that the Federal Circuit had in fact also performed the ‘reasonable jury’ standard of review when it found that no reasonable jury could conclude that Google did not “transform” the copyrighted material into a new context, what was copied was qualitatively insignificant and that there was no market harm to Oracle from Google’s copying. [Oracle Am., Inc. v. Google LLC, 886 F.3d 1179 (Fed. Cir. 2018)]. According to Oracle, de novo is the right standard because resolving fair use requires primarily legal work.
CONCLUSION
The decade-old dispute has been lauded as the copyright case of the decade, and rightly so. During the latest hearing, the Judges expressed concerns regarding the ramifications of denying copyright protection to Java API on protectability of computer code under § 102. Several questions have been raised, which the Court is yet to answer. Major consequences wait for the software industry if the judgement goes in favour of either party. Considering the number of amicus curiae briefs filed, it is certain that members of the legal and software industries are waiting with bated breath for the final judgement in 2021.
REFERENCES
Transcript of the hearing held on October 7, 2020 https://www.supremecourt.gov/oral_arguments/argument_transcripts/2020/18-956_kifl.pdf , Audio recording of the proceeding: https://www.c-span.org/video/?469263-1/google-v-oracle-america-oral-argument&live
SCOTUS Reaches for Cup of Java in Oracle v. Google Oral Argument, Finnegan, Oct 16, 2020 , https://www.finnegan.com/en/insights/blogs/incontestable/scotus-reaches-for-cup-of-java-in-oracle-v-google-oral-argument.html#page=1
Google v. Oracle: What We Learned from Oral Argument, JDSupra, Oct 22, 2020, https://www.jdsupra.com/legalnews/google-v-oracle-what-we-learned-from-78841/
Google v. Oracle: The High Court Holds the Future of IP in Its Hands, IPWatchdog, Oct 31, 2020, https://www.ipwatchdog.com/2020/10/31/google-v-oracle-high-court-holds-future-ip-hands/id=126937/
Good abstract of the overall case.
My perspective - when it comes to core platform type of software, (For that matter it could even be any software) usage of the API has to be fair use.
Failure to recognise this could cause immense harm to the society at large.
- it will remove interoperability
- it will lock people into walled gardens.
- it will ensure that tech behemoths are perpetuated and wannabes will find it hard to break in.
On range check - I don't see the details to make any observations.