Today, the U.S. Court of Appeals for the Federal Circuit heard oral argument in Oracle v. Google. The complexities of the case were demonstrated by the fact that the oral argument lasted an hour and a half – thirty minutes longer than the extended time the court had already allocated for the argument.
In 2010, Oracle sued Google in federal district court in San Francisco, alleging that the Android Application Program Interface (API) infringed Oracle’s copyrights and patents relating to the Java API. Oracle owned the intellectual property in Java by virtue of its acquisition of Sun Microsystems. In 2012, a jury found that Google had not infringed Oracle’s patents. With respect to the principal copyright claim, Judge Alsup ruled that the elements of the Java API copied by Google – the method headers (a line or two of code at the beginning of each subroutine) and the organization of 37 Java API packages – were not protected by copyright under 17 U.S.C. § 102(b).
Oracle appealed to the Federal Circuit, asserting that Judge Alsup had erred by holding that the copied API elements were unprotectable methods of operation. Oracle further argued that Judge Alsup incorrectly found that program elements necessary for interoperability were not protected by copyright. Finally, Oracle asserted that Google had copied elements of the Java APIs not for the purpose of achieving interoperability, but rather to attract the community of Java developers to the Android platform.
CCIA filed an amicus brief in support of Google, arguing that over the past 25 years, U.S. courts, Congress, and jurisdictions around the world have arrived at a consensus that copyright protection does not extend to program elements, including interface specifications, necessary for achieving interoperability. In the judicial and legislative battles that resulted in this consensus, both Sun Microsystem and Oracle consistently had supported the pro-interoperability position, until Oracle reversed itself in this case.
The complexity of the case was obvious from the get-go, when Judge Taranto (who represented Grokster before the Supreme Court in MGM v. Grokster) asked Oracle’s counsel, Joshua Rosenkranz, a series of questions about how an Android app developer would access the Android API. Judge Plager on several occasions expressed bewilderment on how a court should go about separating expression from functionality in a computer program, where every line of code is functional. Oracle’s counsel and Google’s counsel, Robert Van Nest, articulated a basic factual disagreement on whether an app written in Java could run on Android.
The panel wrestled with the question of whether the structure of the Java API was an unprotected method of operation. Of the three judges, Judge O’Malley appeared to lean most clearly towards Oracle’s position that organization of the Java API was protected because it reflected a high degree of creativity and Sun’s programmers could have organized the API in a different manner when they designed. Google’s lawyer responded that the Ninth Circuit (whose law will control because this case arose from a district court in the Ninth Circuit) in Sega v. Accolade had held that program elements necessary for interoperability were unprotectable. Judge O’Malley insisted that Sega only reached the issue of fair use, not protectability under Section 102(b). But on this point Judge O’Malley is incorrect. The Ninth Circuit stated that the district court found that Accolade reverse-engineered
“Sega’s software solely in order to discover the functional requirements for compatibility with the Genesis console – aspects of Sega’s programs that are not protected by copyright. 17 U.S.C. § 102(b).”
The Ninth Circuit’s conclusion that Accolade’s disassembly was a fair use was predicated on its holding that the information Accolade sought – “the functional requirements for Genesis compatibility” – was not protectable per Section 102(b). The Ninth Circuit explained that if reverse engineering were not permitted,
“the owner of the copyright gains a de facto monopoly over the functional aspects of his work – aspects that were expressly denied copyright protection by Congress. 17 U.S.C. § 102(b). In order to enjoy a lawful monopoly over the idea or functional principle underlying a work, the creator must satisfy the more stringent standards imposed by the patent laws.”
And while Judge O’Malley was correct that at the time Sun designed the structure of the Java API it could have designed it in a different way, she overlooked what the Java API is. It is not just a computer program or even a set of computer programs. It is an entire programming system Sun provided to programmers for the development of Java apps. And thousands, if not millions, of apps have been written using this system. Google replicated the structure of this system in Android, but not its implementation. Google copied the 7,000 lines of declaring code that embodied the “outline” of the Java API, to use Judge Taranto’s phrase, but it wrote 15 million lines of original code that implemented that outline.
Even if one of the other judges agrees with Judge O’Malley that the Java API is protectable, that is not the end of the case. As all the judges acknowledged, Google’s use of the Java API could be a fair use. In his concurring opinion in Lotus v. Borland, Judge Boudin posited fair use as an alternative to the rationale in Judge Stahl’s majority opinion that the Lotus 1-2-3 command structure was an unprotectable method of operation. Oracle’s counsel argued that the panel should decide that Google’s actions were not a fair use. Google’s counsel responded that the question of fair use should be remanded to the district court. The judges’ questions suggested that they were leaning towards Google that the fair use issue should be remanded to the district court, assuming they find that the Java API structure was protectable.
Moreover, a ruling that the API structure was protectable could very well result in a visit to the Supreme Court, because such a ruling would conflict with the Ninth Circuit in Sega and the First Circuit in Lotus.
In short, this case could be far from over.
Jonathan Band is a DC-based attorney whose clients include Internet companies, providers of information technology, universities, library associations, and CCIA. He previously guest-posted on DisCo about misconceptions in copyright studies.