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.

1 comment:

Unknown said...

The blog was absolutely fantastic! Lot of great information which can be helpful in some or the other way. Keep updating the blog, looking forward for more contents...Great job, keep it up..For best trademark attorney visit here.

Post a Comment