Showing posts with label Oracle America. Show all posts
Showing posts with label Oracle America. Show all posts

U.S. Supreme Court No Help to Google in API Copying Case

Monday, June 29, 2015

Back in October 2014, the U.S. Supreme Court was asked to take up the appeal for Oracle v. Google (Oracle America, Inc. v. Google Inc.). This case offered the Supreme Court a chance to weigh in on the IP protections afforded software. After receiving the requested input from the Solicitor General, the Supreme Court opted to follow the Solicitor General’s suggestion and denied the writ of certiorari. This leaves standing the Federal Circuit Court’s decision that the “declaring code and the structure, sequence, and organization of the 37 Java API packages” were entitled to copyright protection.

The Solicitor General’s recommendation was premised on several factors included a rejection of a distinction between declaring code and implementing code and an assertion that many of the anti-copyright arguments presented would be better handled as a matter of fair use.

Many of the arguments presented in support of the notion that APIs should not be covered by copyright included an implicit distinction between declaring code and other elements of the software. The Solicitor General’s brief did away with this idea by using a statutory interpretation of ‘computer program’ to include both declaring code and implementing code. The brief goes as far as to state: “Nothing about the declaring code at issue here materially distinguishes it from other computer code”.

The argument for denying copyright for declaring code asserted that declaring code was a functional aspect of the program designed to perform a process and that copyright protections could not extend to cover such aspects. By doing away with the distinction between declaring code and other parts of the program, the Solicitor General’s brief relies on the express intent of the statute to provide copyright protection for computer programs despite their functional aspects. This bolsters the proposition that APIs are copyright eligible as they are simply another piece of the program. Thus, even though the declaring code may have functional aspects it is still entitled to copyright protection like any other computer program or portion thereof.

The Solicitor General’s brief provides some guidance as to further consideration of APIs. The brief notes that arguments directed to interoperability should be directed to a fair use defense rather than attempting to carve an exclusion from copyright protection. However, the discussion notes that in this case the copying was not done so that the Android platform was interoperable with the Java platform or programs. Instead, the copying was done “so that programmers familiar with the Java platform would be able to switch over to the Android platform without having to learn entirely new commands for invoking commonly used methods” which would appear to undermine any fair use claim based on interoperability.

The Supreme Court in refusing the appeal has provided the opportunity for a more suitable case to come before it which may allow the Court to better address the underlying distinctions between copyright and patent protections available to software. While some would have preferred a clear signal from the Court at this time, the lessons learned from the Solicitor General’s brief may provide a potential roadmap as to how to avoid some of the pitfalls from Oracle v. Google. Although Google still has the chance to argue their fair use defenses in the lower courts this case will likely be focused on copyright issues from here on out.

Patent and Copyright Protection for Software API

Tuesday, April 28, 2015

Recently the United States Court of Appeals for the Federal Circuit had a chance to weigh in on the IP protections afforded software. When deciding Oracle v. Google (Oracle America, Inc. v. Google Inc.), the Court concluded that Google violated Oracle’s copyright in the Java API. The court reasoned that the “declaring code and the structure, sequence, and organization of the 37 Java API packages” were entitled to copyright protection. Some viewed this as a reversal of the perception that API’s were not copyrightable.

API’s (or application program interfaces) are critical elements in modern software that allows programs to interact. The API describes how one program can call to another. This is often seen as a functional requirement for compatibility. By enabling one program to use features from another program, programmers can avoid recreating large amounts of code. Using similar APIs allows programs to be more easily ported from one system to another. Additionally, APIs can encourage development by third party programmers by making interoperability easier which can lead to a richer software environment that is more appealing to customers.

While the Court’s decision revolved mostly around copyright issues, the court acknowledged the potential relationship with patent laws and indicated that computer software may be covered by both copyright and patent laws.

Copyright protection has the potential to be extremely problematic. However, patent protections are equally problematic. In truth, both forms of protection have inherent balancing factors. Patents require going through the U.S. Patent and Trademark Office application process which ensures patents meet certain requirements, such as novelty, subject matter, non-obviousness, etc. This makes seeking patent protection a large investment in both time and money. In contrast, copyright protection may be seen as considerably easier to get as there is no substantive examination process. Additionally, a copyright’s duration is considerably longer than a patent’s.

However, these differences are offset by the associated scope of protection afforded by copyrights and patents. Where copyrights are limited to a specific expression, patents may have a broader coverage for the underlying structure and functionality of the software. This can make working around a patent claim considerably more difficult than avoiding a copyrighted expression.

Software programs are currently deemed eligible for protection from both copyright and patent laws. To some, this may seem counter-intuitive since software is often considered functional since it has instructions for a process. Copyrights do not protect procedures; whereas, patents do (although neither extends protections to cover abstract ideas). However, this reasoning overlooks the fact that software programs can be viewed as having distinct aspects: namely an expressive aspect and a functional aspect.

Even when a program is written in order to provide a particular result, there can still be a variation (or expression) in the way the program is written. For example, there are a number of programing contests where programmers attempt to make the least understandable program. These obfuscated code contest entries produce functioning programs despite being nearly indecipherable as written.

Generally, programmers are encouraged to follow best practices so that anyone who later works with the program can easily understand the nature of the code. This still leaves room for personal style and expression. Returning to the API, the declaration is typically defined as a short command line call for each function. In practice there is limited room for personal expression. A function to return the larger of two integers would be expected to be written as “max (int a, int b)” or as “maximum (int a, int b).” Though the options are varied, using a declaration of add (int a, int b) for such a function would be highly unusual.

One allegation against Google is that the copying of the API is an attempt to gain the benefit of the existing Java environment in order to leech off of the work originally done to establish the Java platform. While this particular fact pattern has the potential to create problems for people hoping to maintain legacy software environments, there appears to be little risk to developers working with an existing platform. This case does not involve the use of the API in programs intended to operate with the Java platform but rather the attempt to create a replacement of the Java platform. Furthermore, the Federal Circuit emphasized the significance of the copying of the structure and organization of the API packages – not simply the use of the API.

Ultimately, this issue is now in the hands of the U.S. Supreme Court who have been asked to take up the case. Some are concerned that given the Supreme Court’s track record against software protection, the Supreme Court may make a ruling which proves problematic for software protection. It is still unlikely they will totally do away with the dual protections of copyright and patents for software, if they take up the case.