SlideShare a Scribd company logo
1 of 38
Download to read offline
Oracle v. Google: How Can Your Protect APIs?
Dallas Bar Association
Computer Law Section
October 22, 2012

Marc A. Hubbard
Hubbard Law PLLC
mhubbard@hubbardip.com




                                        Hubbard ip
Agenda
• Java API and Android API and issues involved in Oracle v. Google


• Basic copyright issues


• Rationale of decision by court on issue of copyrightability of Java API


• Legal and business ramifications


     • Other modes of protection


     • Effect on protecting APIs as well as class names, file formats, protocols and other types of
       specifications


     • Business ramifications for the computer industry, open source initiatives,and the adoption of
       standards.

 2
                                                                                Hubbard ip
Lawsuit
• Early 2010: Oracle acquired Sun Microsystem and Sun’s interest in Java


• Late 2010: Oracle sued Google, accusing Google’s Android operating system of —


     • Infringing copyright in Java API


     • Patent infringement


• Trial in two phases in 2012:


     • Copyright — Java API presumed to be copyrightable; jury found infringement and no fair use


     • Patent - Jury found no infringement


• Court issued order after trial, on May 31, finding that Java API not copyrightable


• Oracle has filed notice of appeal


 3
                                                                                           Hubbard ip
What is “Java”?
• It’s an object-oriented programming language based on C and C++ that can be used to write source code for
  compiling into a platform independent object code called “bytecode”


• It’s a software “platform” that allows creation of applications that for “write once, run anywhere”


     • A “virtual machine” (one for each OS/hardware platform) (“JVM”)


        • Interprets (executes) applications written in Java


        • Provides the abstraction layer necessary to achieve platform independence for applications


     • An extensible application programming interface (API)


        • Comprised of multiple libraries, referred to as “packages,” of previously written software (classes and
          interfaces) that provide “core” functions that can be called by applications in written Java and running on a Java
          virtual machine


        • Very helpful to application programmers; some are arguably necessary for many functions because of hardware-
          dependency of the implementation


 4
                                                                                                    Hubbard ip
5
    Hubbard ip
Object oriented programming Java style
• A function that can be called by an application is referred to as a “method”


• Each method must be a member of a “class”


• Every Java program must have one class with one method


• A class may implement more than one method


• Classes may be grouped into “packages”




6
                                                                       Hubbard ip
Java API classes written using Java
Simplified example of package, class, method within API

 package java.lang;                             Declares package “java.lang”
 public class Math {                            Declares class “java.lang.math”
     public static int max (int x, int y) {     Declares method “java.lang.math.max”
         if (x > y) return x ;
                                                Body of method
         else return y ;

     }

 }


Part of body of method in class file of an application calling method

 int a = java.lang.Math.max (2, 3);             Calling method “max” with
                                                arguments “2” and “3”

 7
                                                                   Hubbard ip
Java class file example
public class Bicycle {
                                                       Declaration of the class and start of
                                                       body of class
    // the Bicycle class has
    // three fields
    public int cadence;

                                                       Declaration of data fields and their types
    public int gear;
    public int speed;

    // the Bicycle class has                           for the class
    // one constructor
    public Bicycle(int startCadence, int startSpeed,
int startGear) {
        gear = startGear;
        cadence = startCadence;
        speed = startSpeed;
    }

    // the Bicycle class has
    // four methods
    public void setCadence(int newValue) {
        cadence = newValue;
    }

    public void setGear(int newValue) {
        gear = newValue;
    }

    public void applyBrake(int decrement) {
        speed -= decrement;                                       Declaration of method
    }
                                                                  Body of Method
    public void speedUp(int increment) {
        speed += increment;
    }

}



8
                                                                                     Hubbard ip
Java API
• In 1996, at the time Java was introduced, API had 8 packages


    • 3 packages were “core,” meaning must have these three to be able to write
      applications using Java (java.lang, java.io, java.util)


• Sun and Java Community Process developed standard specifications for Java
  classes and methods and added many more packages, classes and methods


    • By 2008, API had 166 packages, containing over 600 classes with over 6000
      methods


    • Copyright in API registered as a single work




9
                                                                     Hubbard ip
What is “Android”?
• A complete software stack for mobile devices that is open source and without
  license fees


• Application programs are written in Java


     • Allows large number of programmers already familiar with writing in Java to also
       write for Android


• Android includes a virtual machine that is used to to interpret Java bytecode (.class
  or .jar file) that has been modified (into a “.dex” file) to run on a virtual machine that is
  part of OS called the Dalvick virtual machine


• Android Includes a library written in Java that implements 37 of Java’s 166 packages


10
                                                                          Hubbard ip
Android System Architecture


                              Blue = written in Java




                              API of core packages



                              Google’s version of the
                              Java virtual machine
                              specially tuned for
                              mobile environment



11
                                      Hubbard ip
Points of similarity between 37 packages
implementing Android API and Java API
• Functions that are available, including inputs and outputs


• Names of packages, classes, methods, and arguments generally identical (for convenience of application
  developers)


• Arrangement of the methods into classes, and the arrangement of classes into packages


• Declaration statements for packages, classes and methods


     • Formats for declarations, etc., dictated by Java programming language


     • “Throw” statements largely similar


     • Standard terms dictated by Java programming language (e.g. “public,” “private,” “static”) and the types
       of values (e.g. “int”, “boolean,” “char,” and “string”)


• Calls to methods (which much follow prescribed form)

12
                                                                                           Hubbard ip
Points of dissimilarity
• Instructions that implement the method — the body of the methods


• NET RESULT


     • 3% of the lines in the 37 packages of the Android API are identical to Java API


     • 97% of the lines are dissimilar




13
                                                                         Hubbard ip
Business background
• Sun sued Microsoft in 1997 for breach of a licensing agreement because of
  incompatible version of Java VM that allowed developers to take advantage of
  Windows features.


     • Microsoft referred to its version of the VM as “Java”, which seemed to be the primary
       point of contention


• Sun wanted Google to pay a big license fee to call its phone a Java phone, and join
  Nokia, Motorola, Blackberry (RIM) and others in developing apps that run across all the
  platforms.


• Java licensing was a $100 million plus business for Sun


• Sun would also profit by enlarging the Java community and creating more of a barrier to
  competition with Microsoft, et al.

14
                                                                          Hubbard ip
Google’s position
• As long as it is not referring using the “Java” trademark, or implying that it’s platform
  was “Java” or fully compliant with the Java specifications, it was free to build a VM
  that could run programs written in Java unless there was a patent.




15
                                                                          Hubbard ip
Oracle’s purported concern
• “Fragmentation” / Balkanization of platforms


     • Imperfect interoperability among platforms means that Java applications will not run on
       incompatible platforms.


          • Java applications relying on unsupported packages will not run on Android


     • Licensing requirements avoid fragmentation problems


     • Questions: if fragmentation was really the issue, would Oracle have sued Google if it has
       implemented all 166 of the Java API packages?


• There were any number of ways to organize functions of the API into classes, the classes
  into packages, and to name the various classes and packages, and there was a signficant
  amount of expression involved in the particular API.

16
                                                                              Hubbard ip
Fairness issue
• Is it fair to allow Google to gain the benefit of the Java ecosystem without paying for
  the privilege of using it, or at least contributing to it?


     • Subject to patent rights, Google or anyone else to could have created a virtual
       machine and an API offering the same set of functionality, but with different names
       for the packages, classes and methods


     • Google obviously wanted the advantages of Java without abide by the restrictions
       imposed by Sun or Oracle




17
                                                                       Hubbard ip
Fundamental legal principles guiding decisions as
formulated by district court
• There is no decision directly on point; no court has ever decided the issue of whether a computer API was
  protectable by copyright.


• Under 17 U.S.C. §102(b), copyright protection never extends to any idea, procedure, process, system,
  method of operation or concepts regardless of the form. (The idea/expression dichotomy)


     • Functional elements essential for interoperability are not copyrightable.


• Under the merger doctrine, when there is only one or just a few ways to express something, no one can claim
  ownership of such expression by copyright.


• Under the names doctrine, names and short phrases are not copyrightable.


• Court should not yield to temptation to find copyrightability merely to reward an investment in a body of
  intellectual property.


     • “Sweat of the brow” doctrine rejected in U.S. Supreme Court in Feist Publications, Inc., v. Rural Telephone
       Service Co., 499 U.S. 340 (1991).


18
                                                                                              Hubbard ip
Origin of idea / expression dichotomy and merger
doctrine
• Baker v. Seldon, 101 U.S. 99 (1879)


     • Book on new system of double-entry accounting, which included blank form;
       infringer made use of method of bookkeeping, but used different forms.


     • And where the art it teaches cannot be used without employing the methods and
       diagrams used to illustrate the book, or such as are similar to them, such
       methods and diagrams are to be considered as necessary incidents to the art, and
       given therewith to the public; not given for the purpose of publication in other
       works explanatory of the art, but for the purpose of practical application.




19
                                                                      Hubbard ip
Idea / expression dichotomy as codified in 1976
Copyright Act




However, the Copyright Act does not contain explicit standards for separating ideas from
expression.



20
                                                                        Hubbard ip
Merger doctrine rationale
• Where idea and expression are intertwined and where non-protectable ideas
  predominate, copyright protection does not exist because granting protection to the
  expressive component necessarily would extend protection to the work’s
  uncopyrightable ideas as well.


• The merger doctrine is applied as a prophylactic device to ensure that courts do not
  unwittingly grant protection to an idea by granting exclusive rights to the only, or one
  of only a few, means of expressing that idea.


• See Gates Rubber Co. v. Bando Chemical Indus., Ltd., 9 F.3d 823 (10th Cir. 1993);
  Lexmark Int’l, Inc. v. Static Control Components, Inc., 387 F.3d 522 (6th Cir. 2004); ;
  Murray Hill Publ’ns, Inc. v. Twentieth Century Fox Film Corp., 361 F.3d 312 (6th Cir.
  2004); Concrete Machinery Co. v. Classic Lawn Ornaments, Inc., 843 F.2d 600,
  606-607 (1st Cir. 1988); Apple Computer, Inc. v. Microsoft Corp., 799 F.Supp. 1006
  (N.D.Cal. 1992).


21
                                                                         Hubbard ip
Names and short phrases not protectable
Copyright Office regulation 37 C.F.R. 202.1(a)
                  § 202.1
                  Material not subject to copyright.

                  The following are examples of works not subject to copyright and applications
                  for registration of such works cannot be entertained:

                  (a) Words and short phrases such as names, titles, and slogans; familiar
                  symbols or designs; mere variations of typographic ornamentation, lettering or
                  coloring; mere listing of ingredients or contents;



 Rule followed in 9th Circuit. Sega Enterprises Ltd. v. Accolade, Inc., 977 F.2d 1510
 (9th Cir. 1992), (a competitor’s use of Sega’s initialization code, consisting of
 merely of 20 bytes of initialization code plus the letters S-E-G-A, was of de
 minimis length and therefore likely a “word” or “short phrase” that is not
 protected)

 Most other circuits appear to have accepted this regulation as a fair statement of
 the law

22
                                                                                                   Hubbard ip
Disfavor of “structure, sequence and organization”
theory
• Court acknowledged that non-literal elements of computer software — “structure, sequence and
  organization” — can by protected by copyright


     • Whelan Associates, Inc. v. Jaslow Dental Laboratory, Inc., 797 F.2d 1222 (3d Cir. 1986) (structure
       of program for managing a dental office was copyrightable because there were many different
       ways to structure a program to manage a dental laboratory)


     • Johnson Controls, Inc. v. Phoenix Control Sys., Inc., 886 F.2d 1173, 1175 (9th Cir. 1989)(affirming
       under abuse of discretion standard finding that SSO of program was protectable expression on
       grounds that there was evidence that there was room for creativity in expression of functions.)


• But court noted that SSO type of analysis had become disfavored in 9th circuit and other circuits,
  had been heavily criticized, and failed to recognize the danger of conferring monopoly by copyright
  over Congress had expressly warned should only be granted by patent. See Sega Enters., Ltd. v.
  Accolade, Inc., 977 F.2d 1510 (9th Cir. 1992)


     • Whelan and Johnson Controls: “Too narrow a view of the ‘idea’”


23
                                                                                      Hubbard ip
Court favors abstraction, filtration and comparison
analysis
• Originally developed in the Computer Assocs. Int’l, Inc. v. Altai, Inc., 982 F.2d 693
  (2nd Cir. 1992) as an aid to analyze to distinguish between unprotectable ideas and
  protectable expression when comparing software programs for substantially
  similarity.


     • (1) Dissect program according to its varying levels of generality to provide a
       framework


     • (2) Examine each level of generality or abstraction in order to filter out those
       elements of the program which are unprotectable.


     • (3) Compare of the remaining protectable elements with the allegedly infringing
       work to determine whether the defendants have misappropriated substantial
       elements of the plaintiff’s work.


24
                                                                        Hubbard ip
Filtration of unprotectable elements
• (1) Structure based on “practical considerations”


• (2) Structures dictated by external factors


     • “standard techniques”


     • Extrinsic considerations such a computer hardware, compatibility requirements with
       other programs, demands of industry being serviced, widely accepted programming
       practices, hardware standards, software standards, mechanical specifications


       • Scènes à faire doctrine


• (3) Structures already found in public domain


25
                                                                        Hubbard ip
uncopyrightable.
                                           5
                                               U.S. Copyright Office, Circular 34; see 37 C.F.R. 202.1(a).
                                           6
                                                      This rule is followed in the Ninth Circuit. Sega Enters., Ltd. v. Accolade, Inc., 977 F.2d
                                           7
                                               1510, 1524 n.7 (9th Cir. 1992). This has relevance to Oracle’s claim of copyright ownership
                                          Court concernedand packages.
                                           8
                                            over names of methods, classes that SSO is domain of patents
                                           9
                                                      2.      THE DEVELOPMENT OF LAW ON THE COPYRIGHTABILITY
                                          10                  OF COMPUTER PROGRAMS AND THEIR STRUCTURE,
                                                              SEQUENCE AND ORGANIZATION.
                                          11
                                                      Turning now to the more difficult question, this trial showcases a distinction between
                                          12
For the Northern District of California




                                               copyright protection and patent protection. It is an important distinction, for copyright
                                          13
                                               exclusivity lasts 95 years whereas patent exclusivity lasts twenty years. And, the Patent and
                                          14
                                               Trademark Office examines applications for anticipation and obviousness before allowance
                                          15
                                               whereas the Copyright Office does not. This distinction looms large where, as here, the vast
                                          16
                                               majority of the code was not copied and the copyright owner must resort to alleging that the
                                          17
                                               accused stole the “structure, sequence and organization” of the work. This phrase — structure,
                                          18
                                               sequence and organization — does not appear in the Act or its legislative history. It is a phrase
                                          19
                                               that crept into use to describe a residual property right where literal copying was absent.
                                          20
                                               A question then arises whether the copyright holder is more appropriately asserting an exclusive
                                          21
                                               right to a functional system, process, or method of operation that belongs in the realm of patents,
                                          22
                                               not copyrights.
                                          23
                                                              A.      Baker v. Seldon.
                                          24
                                          26
                                          25
                                                      The general question predates computers. In the Supreme Court’s decision in Baker v.
                                                                                                                                               Hubbard ip
                                               Seldon, 101 U.S. 99 (1879), the work at issue was a book on a new system of double-entry
                                          26
Holding 1: Specification for each method is an idea


     • “The method specification was the idea. The method implementation is the
       expression.”


       • Google used its own code to implement method specification, including inputs,
         outputs, etc.


       • Names of individual methods, classes and packages not protectable


       • The declarations, save for the argument names, dictated by rules of Java (external
         considerations and interoperability)


     • As long as the specific code written to implement a method is different, anyone
       is free under the Copyright Act to write his or her own method to carry out exactly the
       same function or specification of any and all methods used in the Java API. Ideas,
       functions and concepts cannot be “monopolized” by copyright.

27
                                                                            Hubbard ip
Holding 2: overall system of organization of methods
not protectable
• Arrangement of methods into classes, and classes into packages involved creativity
  and resembles a taxonomy, but it is nevertheless a command structure or system or
  method of operation.


• Because the use of the same taxonomy or command structure was necessary to
  achieve interoperability, it has to be a method of operation


• Google replicated what was necessary, but not more than necessary, to achieve
  interoperability.


• Oracle’s fears of fragmentation and imperfect interoperability arising from incomplete
  implementation of API tends to confirm that it is a method of operation




28
                                                                       Hubbard ip
Implications
• It is the first decision to address squarely issue of protectability of specification of computer API


     • Will have to see how the appellate court reacts.


• This is not a holding that all APIs cannot be protected by copyright. However, it is difficult to imagine when an API
  would be copyrightable. If copying of elements necessary to achieve interoperability or compatability will always
  be permitted, APIs will not likely ever be found to be protectable by copyright.


• If decision is upheld on appeal, the only real legal limits on third parties recreating a software or hardware
  “platform” will be:


     • Contractual limitations


     • Patents


     • Secrecy


     • Trademarks


29
                                                                                                  Hubbard ip
Oracle/Sun failed at protecting Java API with patents
• Infringement of 7 patents plead


• Infringement claims with respect to 2 survived until trial and jury found no
  infringement


• Patents had little, if anything, to do with the Java API or its implementation


• Not so easy to obtain patents on method of operation of an API or to make a claim
  of infringement stick




30
                                                                         Hubbard ip
Feasibility of protecting API with patents
• API software specifications, as such, are abstract


     • Patent must claim a process, a machine or article of manufacture


• Must look to patent processes essential to implementation of the API


• However, patent eligibility of computer implemented processes under scrutiny




31
                                                                          Hubbard ip
Patents on software implemented inventions
• Bilski v. Kappos, 130 S.Ct. 3218 (2010)


     • Laws of nature, physical phenomena, and abstract ideas are not patentable


• CLS Bank v. Alice Corp. en banc rehearing ordered by the Federal Circuit (involves
  computer implemented financial business method):


     • “What test should the court adopt to determine whether a computer-implemented
       invention is a patent ineligible "abstract idea"; and when, if ever, does the presence
       of a computer in a claim lend patent eligibility to an otherwise patent-ineligible idea?


     • “In assessing patent eligibility under 35 U.S.C. § 101 of a computer-implemented
       invention, should it matter whether the invention is claimed as a method, system, or
       storage medium; and should such claims at times be considered equivalent for § 101
       purposes?”

32
                                                                              Hubbard ip
The abstraction chasm

        Method of operation, process, system

       Invention / Practical application of idea   Abstract idea   Expression of idea




                              §101 case law             Case law relating to
                              pushing fuzzy             copyrightability of program
                              boundary one              structures pushing fuzzy
                              direction                 boundary the other direction



33
                                                                            Hubbard ip
Basic advice to clients developing an API or hardware
or software “platform”
• Keep secret; avoid “open source” or “open standard;” self-help precautions


     • Aggressive contractual and licensing provisions to keep API and other interfaces
       secret


• Patent all novel processes essential to implementing or supporting API specification


• If business model depends on “open” API or open standard, there may not much
  that can be done, other than create circumstances which favor inclusion rather than
  exclusion




34
                                                                        Hubbard ip
Basic advice to client wanting to develop
interoperable software and hardware
• Avoid contracts with party who developed platform (watch for implied contracts
  associated with using specification)


• Evaluate patents


• Avoid confidentiality restrictions


• Avoid using trademarks


• Reverse engineer using clean room techniques that are consistent with current law


• Otherwise, have at it



35
                                                                     Hubbard ip
Open source and standards
• Generally viewed by the popular media and software programmers as good for open
  source; one less obstacle


• However, strong copyright protection is, arguably, essential to


     • Enforcing licensing requirements in open source (e.g. contribution of derivatives, limits
       on commercial uses, etc)


     • Less ability to control development and guard against splintering or forking in standards


• More difficulty in getting standards off the ground


     • One less means to force cooperation among all of the players, and to encourage others
       to join


36
                                                                               Hubbard ip
Conclusions
• Court’s decision expresses a consistent theme found in cases, which is the concern
  over the extrinsic effects of extending copyright protection


• Specifications for an API, file format, etc. generally exist to achieve interoperability. If
  reasoning of this decision is followed, APIs are likely not to be protectable under
  copyright under rationale that they are methods of operation.


     • Similarities in expression occurring within an implementation essential to
       implementation of a specification are likely not protectable under the merger or
       scènes à faire doctrines.


• Subject to misappropriation of trade secrets, contractual limitations, patents, and
  trademark rights, software and hardware platforms appear to be generally free for
  the taking


37
                                                                          Hubbard ip
Marc A. Hubbard
Hubbard Law PLLC
740 E. Campbell Road, Suite 550 | Richardson, TX 75081
(214) 396-6001 direct
(214) 208.2601 mobile
(214) 785-6958 fax
www.hubbardip.com
© 2012 Marc A. Hubbard




                          38

More Related Content

Viewers also liked

Interoperability, networking and standards
Interoperability, networking and standardsInteroperability, networking and standards
Interoperability, networking and standardsBethan Ruddock
 
Cloud interoperability
Cloud interoperabilityCloud interoperability
Cloud interoperabilitygaurav jain
 
Cloud Lock-in vs. Cloud Interoperability - Indicthreads cloud computing conf...
Cloud Lock-in vs. Cloud Interoperability  - Indicthreads cloud computing conf...Cloud Lock-in vs. Cloud Interoperability  - Indicthreads cloud computing conf...
Cloud Lock-in vs. Cloud Interoperability - Indicthreads cloud computing conf...IndicThreads
 
Architecture and Practices on Cloud Interoperability and Portability
Architecture and Practices on Cloud Interoperability and PortabilityArchitecture and Practices on Cloud Interoperability and Portability
Architecture and Practices on Cloud Interoperability and PortabilityThomas Lee
 
Cloud Interoperability
Cloud InteroperabilityCloud Interoperability
Cloud InteroperabilityAmir Mohtasebi
 
Cloud interoperability
Cloud interoperabilityCloud interoperability
Cloud interoperabilitygaurav jain
 

Viewers also liked (6)

Interoperability, networking and standards
Interoperability, networking and standardsInteroperability, networking and standards
Interoperability, networking and standards
 
Cloud interoperability
Cloud interoperabilityCloud interoperability
Cloud interoperability
 
Cloud Lock-in vs. Cloud Interoperability - Indicthreads cloud computing conf...
Cloud Lock-in vs. Cloud Interoperability  - Indicthreads cloud computing conf...Cloud Lock-in vs. Cloud Interoperability  - Indicthreads cloud computing conf...
Cloud Lock-in vs. Cloud Interoperability - Indicthreads cloud computing conf...
 
Architecture and Practices on Cloud Interoperability and Portability
Architecture and Practices on Cloud Interoperability and PortabilityArchitecture and Practices on Cloud Interoperability and Portability
Architecture and Practices on Cloud Interoperability and Portability
 
Cloud Interoperability
Cloud InteroperabilityCloud Interoperability
Cloud Interoperability
 
Cloud interoperability
Cloud interoperabilityCloud interoperability
Cloud interoperability
 

Similar to Oracle v Google: How Can You Protect Computer APIs

j-chap1-Basics.ppt
j-chap1-Basics.pptj-chap1-Basics.ppt
j-chap1-Basics.pptSmitaBorkar9
 
JavaClassPresentation
JavaClassPresentationJavaClassPresentation
JavaClassPresentationjuliasceasor
 
PPS Java Overview Unit I.ppt
PPS Java Overview Unit I.pptPPS Java Overview Unit I.ppt
PPS Java Overview Unit I.pptRajeshSukte1
 
PPS Java Overview Unit I.ppt
PPS Java Overview Unit I.pptPPS Java Overview Unit I.ppt
PPS Java Overview Unit I.pptCDSukte
 
1 java programming- introduction
1  java programming- introduction1  java programming- introduction
1 java programming- introductionjyoti_lakhani
 
Java Presentation
Java PresentationJava Presentation
Java PresentationAmr Salah
 
Session 02 - Elements of Java Language
Session 02 - Elements of Java LanguageSession 02 - Elements of Java Language
Session 02 - Elements of Java LanguagePawanMM
 
Elements of Java Language
Elements of Java Language Elements of Java Language
Elements of Java Language Hitesh-Java
 
1 Module 1 Introduction.pptx
1 Module 1 Introduction.pptx1 Module 1 Introduction.pptx
1 Module 1 Introduction.pptxBhargaviDalal3
 
Introduction to Java Programming.pdf
Introduction to Java Programming.pdfIntroduction to Java Programming.pdf
Introduction to Java Programming.pdfAdiseshaK
 
basic core java up to operator
basic core java up to operatorbasic core java up to operator
basic core java up to operatorkamal kotecha
 

Similar to Oracle v Google: How Can You Protect Computer APIs (20)

j-chap1-Basics.ppt
j-chap1-Basics.pptj-chap1-Basics.ppt
j-chap1-Basics.ppt
 
JavaClassPresentation
JavaClassPresentationJavaClassPresentation
JavaClassPresentation
 
PPS Java Overview Unit I.ppt
PPS Java Overview Unit I.pptPPS Java Overview Unit I.ppt
PPS Java Overview Unit I.ppt
 
PPS Java Overview Unit I.ppt
PPS Java Overview Unit I.pptPPS Java Overview Unit I.ppt
PPS Java Overview Unit I.ppt
 
1 java programming- introduction
1  java programming- introduction1  java programming- introduction
1 java programming- introduction
 
Java Presentation
Java PresentationJava Presentation
Java Presentation
 
Session 02 - Elements of Java Language
Session 02 - Elements of Java LanguageSession 02 - Elements of Java Language
Session 02 - Elements of Java Language
 
Comp102 lec 3
Comp102   lec 3Comp102   lec 3
Comp102 lec 3
 
Elements of Java Language
Elements of Java Language Elements of Java Language
Elements of Java Language
 
Java Programming
Java ProgrammingJava Programming
Java Programming
 
1 Module 1 Introduction.pptx
1 Module 1 Introduction.pptx1 Module 1 Introduction.pptx
1 Module 1 Introduction.pptx
 
Java
JavaJava
Java
 
Introduction to Java Programming.pdf
Introduction to Java Programming.pdfIntroduction to Java Programming.pdf
Introduction to Java Programming.pdf
 
Java basics notes
Java basics notesJava basics notes
Java basics notes
 
oop unit1.pptx
oop unit1.pptxoop unit1.pptx
oop unit1.pptx
 
CS8392 OOP
CS8392 OOPCS8392 OOP
CS8392 OOP
 
basic core java up to operator
basic core java up to operatorbasic core java up to operator
basic core java up to operator
 
Java introduction
Java introductionJava introduction
Java introduction
 
unit1.pptx
unit1.pptxunit1.pptx
unit1.pptx
 
Java basic
Java basicJava basic
Java basic
 

Oracle v Google: How Can You Protect Computer APIs

  • 1. Oracle v. Google: How Can Your Protect APIs? Dallas Bar Association Computer Law Section October 22, 2012 Marc A. Hubbard Hubbard Law PLLC mhubbard@hubbardip.com Hubbard ip
  • 2. Agenda • Java API and Android API and issues involved in Oracle v. Google • Basic copyright issues • Rationale of decision by court on issue of copyrightability of Java API • Legal and business ramifications • Other modes of protection • Effect on protecting APIs as well as class names, file formats, protocols and other types of specifications • Business ramifications for the computer industry, open source initiatives,and the adoption of standards. 2 Hubbard ip
  • 3. Lawsuit • Early 2010: Oracle acquired Sun Microsystem and Sun’s interest in Java • Late 2010: Oracle sued Google, accusing Google’s Android operating system of — • Infringing copyright in Java API • Patent infringement • Trial in two phases in 2012: • Copyright — Java API presumed to be copyrightable; jury found infringement and no fair use • Patent - Jury found no infringement • Court issued order after trial, on May 31, finding that Java API not copyrightable • Oracle has filed notice of appeal 3 Hubbard ip
  • 4. What is “Java”? • It’s an object-oriented programming language based on C and C++ that can be used to write source code for compiling into a platform independent object code called “bytecode” • It’s a software “platform” that allows creation of applications that for “write once, run anywhere” • A “virtual machine” (one for each OS/hardware platform) (“JVM”) • Interprets (executes) applications written in Java • Provides the abstraction layer necessary to achieve platform independence for applications • An extensible application programming interface (API) • Comprised of multiple libraries, referred to as “packages,” of previously written software (classes and interfaces) that provide “core” functions that can be called by applications in written Java and running on a Java virtual machine • Very helpful to application programmers; some are arguably necessary for many functions because of hardware- dependency of the implementation 4 Hubbard ip
  • 5. 5 Hubbard ip
  • 6. Object oriented programming Java style • A function that can be called by an application is referred to as a “method” • Each method must be a member of a “class” • Every Java program must have one class with one method • A class may implement more than one method • Classes may be grouped into “packages” 6 Hubbard ip
  • 7. Java API classes written using Java Simplified example of package, class, method within API package java.lang; Declares package “java.lang” public class Math { Declares class “java.lang.math” public static int max (int x, int y) { Declares method “java.lang.math.max” if (x > y) return x ; Body of method else return y ; } } Part of body of method in class file of an application calling method int a = java.lang.Math.max (2, 3); Calling method “max” with arguments “2” and “3” 7 Hubbard ip
  • 8. Java class file example public class Bicycle { Declaration of the class and start of body of class // the Bicycle class has // three fields public int cadence; Declaration of data fields and their types public int gear; public int speed; // the Bicycle class has for the class // one constructor public Bicycle(int startCadence, int startSpeed, int startGear) { gear = startGear; cadence = startCadence; speed = startSpeed; } // the Bicycle class has // four methods public void setCadence(int newValue) { cadence = newValue; } public void setGear(int newValue) { gear = newValue; } public void applyBrake(int decrement) { speed -= decrement; Declaration of method } Body of Method public void speedUp(int increment) { speed += increment; } } 8 Hubbard ip
  • 9. Java API • In 1996, at the time Java was introduced, API had 8 packages • 3 packages were “core,” meaning must have these three to be able to write applications using Java (java.lang, java.io, java.util) • Sun and Java Community Process developed standard specifications for Java classes and methods and added many more packages, classes and methods • By 2008, API had 166 packages, containing over 600 classes with over 6000 methods • Copyright in API registered as a single work 9 Hubbard ip
  • 10. What is “Android”? • A complete software stack for mobile devices that is open source and without license fees • Application programs are written in Java • Allows large number of programmers already familiar with writing in Java to also write for Android • Android includes a virtual machine that is used to to interpret Java bytecode (.class or .jar file) that has been modified (into a “.dex” file) to run on a virtual machine that is part of OS called the Dalvick virtual machine • Android Includes a library written in Java that implements 37 of Java’s 166 packages 10 Hubbard ip
  • 11. Android System Architecture Blue = written in Java API of core packages Google’s version of the Java virtual machine specially tuned for mobile environment 11 Hubbard ip
  • 12. Points of similarity between 37 packages implementing Android API and Java API • Functions that are available, including inputs and outputs • Names of packages, classes, methods, and arguments generally identical (for convenience of application developers) • Arrangement of the methods into classes, and the arrangement of classes into packages • Declaration statements for packages, classes and methods • Formats for declarations, etc., dictated by Java programming language • “Throw” statements largely similar • Standard terms dictated by Java programming language (e.g. “public,” “private,” “static”) and the types of values (e.g. “int”, “boolean,” “char,” and “string”) • Calls to methods (which much follow prescribed form) 12 Hubbard ip
  • 13. Points of dissimilarity • Instructions that implement the method — the body of the methods • NET RESULT • 3% of the lines in the 37 packages of the Android API are identical to Java API • 97% of the lines are dissimilar 13 Hubbard ip
  • 14. Business background • Sun sued Microsoft in 1997 for breach of a licensing agreement because of incompatible version of Java VM that allowed developers to take advantage of Windows features. • Microsoft referred to its version of the VM as “Java”, which seemed to be the primary point of contention • Sun wanted Google to pay a big license fee to call its phone a Java phone, and join Nokia, Motorola, Blackberry (RIM) and others in developing apps that run across all the platforms. • Java licensing was a $100 million plus business for Sun • Sun would also profit by enlarging the Java community and creating more of a barrier to competition with Microsoft, et al. 14 Hubbard ip
  • 15. Google’s position • As long as it is not referring using the “Java” trademark, or implying that it’s platform was “Java” or fully compliant with the Java specifications, it was free to build a VM that could run programs written in Java unless there was a patent. 15 Hubbard ip
  • 16. Oracle’s purported concern • “Fragmentation” / Balkanization of platforms • Imperfect interoperability among platforms means that Java applications will not run on incompatible platforms. • Java applications relying on unsupported packages will not run on Android • Licensing requirements avoid fragmentation problems • Questions: if fragmentation was really the issue, would Oracle have sued Google if it has implemented all 166 of the Java API packages? • There were any number of ways to organize functions of the API into classes, the classes into packages, and to name the various classes and packages, and there was a signficant amount of expression involved in the particular API. 16 Hubbard ip
  • 17. Fairness issue • Is it fair to allow Google to gain the benefit of the Java ecosystem without paying for the privilege of using it, or at least contributing to it? • Subject to patent rights, Google or anyone else to could have created a virtual machine and an API offering the same set of functionality, but with different names for the packages, classes and methods • Google obviously wanted the advantages of Java without abide by the restrictions imposed by Sun or Oracle 17 Hubbard ip
  • 18. Fundamental legal principles guiding decisions as formulated by district court • There is no decision directly on point; no court has ever decided the issue of whether a computer API was protectable by copyright. • Under 17 U.S.C. §102(b), copyright protection never extends to any idea, procedure, process, system, method of operation or concepts regardless of the form. (The idea/expression dichotomy) • Functional elements essential for interoperability are not copyrightable. • Under the merger doctrine, when there is only one or just a few ways to express something, no one can claim ownership of such expression by copyright. • Under the names doctrine, names and short phrases are not copyrightable. • Court should not yield to temptation to find copyrightability merely to reward an investment in a body of intellectual property. • “Sweat of the brow” doctrine rejected in U.S. Supreme Court in Feist Publications, Inc., v. Rural Telephone Service Co., 499 U.S. 340 (1991). 18 Hubbard ip
  • 19. Origin of idea / expression dichotomy and merger doctrine • Baker v. Seldon, 101 U.S. 99 (1879) • Book on new system of double-entry accounting, which included blank form; infringer made use of method of bookkeeping, but used different forms. • And where the art it teaches cannot be used without employing the methods and diagrams used to illustrate the book, or such as are similar to them, such methods and diagrams are to be considered as necessary incidents to the art, and given therewith to the public; not given for the purpose of publication in other works explanatory of the art, but for the purpose of practical application. 19 Hubbard ip
  • 20. Idea / expression dichotomy as codified in 1976 Copyright Act However, the Copyright Act does not contain explicit standards for separating ideas from expression. 20 Hubbard ip
  • 21. Merger doctrine rationale • Where idea and expression are intertwined and where non-protectable ideas predominate, copyright protection does not exist because granting protection to the expressive component necessarily would extend protection to the work’s uncopyrightable ideas as well. • The merger doctrine is applied as a prophylactic device to ensure that courts do not unwittingly grant protection to an idea by granting exclusive rights to the only, or one of only a few, means of expressing that idea. • See Gates Rubber Co. v. Bando Chemical Indus., Ltd., 9 F.3d 823 (10th Cir. 1993); Lexmark Int’l, Inc. v. Static Control Components, Inc., 387 F.3d 522 (6th Cir. 2004); ; Murray Hill Publ’ns, Inc. v. Twentieth Century Fox Film Corp., 361 F.3d 312 (6th Cir. 2004); Concrete Machinery Co. v. Classic Lawn Ornaments, Inc., 843 F.2d 600, 606-607 (1st Cir. 1988); Apple Computer, Inc. v. Microsoft Corp., 799 F.Supp. 1006 (N.D.Cal. 1992). 21 Hubbard ip
  • 22. Names and short phrases not protectable Copyright Office regulation 37 C.F.R. 202.1(a) § 202.1 Material not subject to copyright. The following are examples of works not subject to copyright and applications for registration of such works cannot be entertained: (a) Words and short phrases such as names, titles, and slogans; familiar symbols or designs; mere variations of typographic ornamentation, lettering or coloring; mere listing of ingredients or contents; Rule followed in 9th Circuit. Sega Enterprises Ltd. v. Accolade, Inc., 977 F.2d 1510 (9th Cir. 1992), (a competitor’s use of Sega’s initialization code, consisting of merely of 20 bytes of initialization code plus the letters S-E-G-A, was of de minimis length and therefore likely a “word” or “short phrase” that is not protected) Most other circuits appear to have accepted this regulation as a fair statement of the law 22 Hubbard ip
  • 23. Disfavor of “structure, sequence and organization” theory • Court acknowledged that non-literal elements of computer software — “structure, sequence and organization” — can by protected by copyright • Whelan Associates, Inc. v. Jaslow Dental Laboratory, Inc., 797 F.2d 1222 (3d Cir. 1986) (structure of program for managing a dental office was copyrightable because there were many different ways to structure a program to manage a dental laboratory) • Johnson Controls, Inc. v. Phoenix Control Sys., Inc., 886 F.2d 1173, 1175 (9th Cir. 1989)(affirming under abuse of discretion standard finding that SSO of program was protectable expression on grounds that there was evidence that there was room for creativity in expression of functions.) • But court noted that SSO type of analysis had become disfavored in 9th circuit and other circuits, had been heavily criticized, and failed to recognize the danger of conferring monopoly by copyright over Congress had expressly warned should only be granted by patent. See Sega Enters., Ltd. v. Accolade, Inc., 977 F.2d 1510 (9th Cir. 1992) • Whelan and Johnson Controls: “Too narrow a view of the ‘idea’” 23 Hubbard ip
  • 24. Court favors abstraction, filtration and comparison analysis • Originally developed in the Computer Assocs. Int’l, Inc. v. Altai, Inc., 982 F.2d 693 (2nd Cir. 1992) as an aid to analyze to distinguish between unprotectable ideas and protectable expression when comparing software programs for substantially similarity. • (1) Dissect program according to its varying levels of generality to provide a framework • (2) Examine each level of generality or abstraction in order to filter out those elements of the program which are unprotectable. • (3) Compare of the remaining protectable elements with the allegedly infringing work to determine whether the defendants have misappropriated substantial elements of the plaintiff’s work. 24 Hubbard ip
  • 25. Filtration of unprotectable elements • (1) Structure based on “practical considerations” • (2) Structures dictated by external factors • “standard techniques” • Extrinsic considerations such a computer hardware, compatibility requirements with other programs, demands of industry being serviced, widely accepted programming practices, hardware standards, software standards, mechanical specifications • Scènes à faire doctrine • (3) Structures already found in public domain 25 Hubbard ip
  • 26. uncopyrightable. 5 U.S. Copyright Office, Circular 34; see 37 C.F.R. 202.1(a). 6 This rule is followed in the Ninth Circuit. Sega Enters., Ltd. v. Accolade, Inc., 977 F.2d 7 1510, 1524 n.7 (9th Cir. 1992). This has relevance to Oracle’s claim of copyright ownership Court concernedand packages. 8 over names of methods, classes that SSO is domain of patents 9 2. THE DEVELOPMENT OF LAW ON THE COPYRIGHTABILITY 10 OF COMPUTER PROGRAMS AND THEIR STRUCTURE, SEQUENCE AND ORGANIZATION. 11 Turning now to the more difficult question, this trial showcases a distinction between 12 For the Northern District of California copyright protection and patent protection. It is an important distinction, for copyright 13 exclusivity lasts 95 years whereas patent exclusivity lasts twenty years. And, the Patent and 14 Trademark Office examines applications for anticipation and obviousness before allowance 15 whereas the Copyright Office does not. This distinction looms large where, as here, the vast 16 majority of the code was not copied and the copyright owner must resort to alleging that the 17 accused stole the “structure, sequence and organization” of the work. This phrase — structure, 18 sequence and organization — does not appear in the Act or its legislative history. It is a phrase 19 that crept into use to describe a residual property right where literal copying was absent. 20 A question then arises whether the copyright holder is more appropriately asserting an exclusive 21 right to a functional system, process, or method of operation that belongs in the realm of patents, 22 not copyrights. 23 A. Baker v. Seldon. 24 26 25 The general question predates computers. In the Supreme Court’s decision in Baker v. Hubbard ip Seldon, 101 U.S. 99 (1879), the work at issue was a book on a new system of double-entry 26
  • 27. Holding 1: Specification for each method is an idea • “The method specification was the idea. The method implementation is the expression.” • Google used its own code to implement method specification, including inputs, outputs, etc. • Names of individual methods, classes and packages not protectable • The declarations, save for the argument names, dictated by rules of Java (external considerations and interoperability) • As long as the specific code written to implement a method is different, anyone is free under the Copyright Act to write his or her own method to carry out exactly the same function or specification of any and all methods used in the Java API. Ideas, functions and concepts cannot be “monopolized” by copyright. 27 Hubbard ip
  • 28. Holding 2: overall system of organization of methods not protectable • Arrangement of methods into classes, and classes into packages involved creativity and resembles a taxonomy, but it is nevertheless a command structure or system or method of operation. • Because the use of the same taxonomy or command structure was necessary to achieve interoperability, it has to be a method of operation • Google replicated what was necessary, but not more than necessary, to achieve interoperability. • Oracle’s fears of fragmentation and imperfect interoperability arising from incomplete implementation of API tends to confirm that it is a method of operation 28 Hubbard ip
  • 29. Implications • It is the first decision to address squarely issue of protectability of specification of computer API • Will have to see how the appellate court reacts. • This is not a holding that all APIs cannot be protected by copyright. However, it is difficult to imagine when an API would be copyrightable. If copying of elements necessary to achieve interoperability or compatability will always be permitted, APIs will not likely ever be found to be protectable by copyright. • If decision is upheld on appeal, the only real legal limits on third parties recreating a software or hardware “platform” will be: • Contractual limitations • Patents • Secrecy • Trademarks 29 Hubbard ip
  • 30. Oracle/Sun failed at protecting Java API with patents • Infringement of 7 patents plead • Infringement claims with respect to 2 survived until trial and jury found no infringement • Patents had little, if anything, to do with the Java API or its implementation • Not so easy to obtain patents on method of operation of an API or to make a claim of infringement stick 30 Hubbard ip
  • 31. Feasibility of protecting API with patents • API software specifications, as such, are abstract • Patent must claim a process, a machine or article of manufacture • Must look to patent processes essential to implementation of the API • However, patent eligibility of computer implemented processes under scrutiny 31 Hubbard ip
  • 32. Patents on software implemented inventions • Bilski v. Kappos, 130 S.Ct. 3218 (2010) • Laws of nature, physical phenomena, and abstract ideas are not patentable • CLS Bank v. Alice Corp. en banc rehearing ordered by the Federal Circuit (involves computer implemented financial business method): • “What test should the court adopt to determine whether a computer-implemented invention is a patent ineligible "abstract idea"; and when, if ever, does the presence of a computer in a claim lend patent eligibility to an otherwise patent-ineligible idea? • “In assessing patent eligibility under 35 U.S.C. § 101 of a computer-implemented invention, should it matter whether the invention is claimed as a method, system, or storage medium; and should such claims at times be considered equivalent for § 101 purposes?” 32 Hubbard ip
  • 33. The abstraction chasm Method of operation, process, system Invention / Practical application of idea Abstract idea Expression of idea §101 case law Case law relating to pushing fuzzy copyrightability of program boundary one structures pushing fuzzy direction boundary the other direction 33 Hubbard ip
  • 34. Basic advice to clients developing an API or hardware or software “platform” • Keep secret; avoid “open source” or “open standard;” self-help precautions • Aggressive contractual and licensing provisions to keep API and other interfaces secret • Patent all novel processes essential to implementing or supporting API specification • If business model depends on “open” API or open standard, there may not much that can be done, other than create circumstances which favor inclusion rather than exclusion 34 Hubbard ip
  • 35. Basic advice to client wanting to develop interoperable software and hardware • Avoid contracts with party who developed platform (watch for implied contracts associated with using specification) • Evaluate patents • Avoid confidentiality restrictions • Avoid using trademarks • Reverse engineer using clean room techniques that are consistent with current law • Otherwise, have at it 35 Hubbard ip
  • 36. Open source and standards • Generally viewed by the popular media and software programmers as good for open source; one less obstacle • However, strong copyright protection is, arguably, essential to • Enforcing licensing requirements in open source (e.g. contribution of derivatives, limits on commercial uses, etc) • Less ability to control development and guard against splintering or forking in standards • More difficulty in getting standards off the ground • One less means to force cooperation among all of the players, and to encourage others to join 36 Hubbard ip
  • 37. Conclusions • Court’s decision expresses a consistent theme found in cases, which is the concern over the extrinsic effects of extending copyright protection • Specifications for an API, file format, etc. generally exist to achieve interoperability. If reasoning of this decision is followed, APIs are likely not to be protectable under copyright under rationale that they are methods of operation. • Similarities in expression occurring within an implementation essential to implementation of a specification are likely not protectable under the merger or scènes à faire doctrines. • Subject to misappropriation of trade secrets, contractual limitations, patents, and trademark rights, software and hardware platforms appear to be generally free for the taking 37 Hubbard ip
  • 38. Marc A. Hubbard Hubbard Law PLLC 740 E. Campbell Road, Suite 550 | Richardson, TX 75081 (214) 396-6001 direct (214) 208.2601 mobile (214) 785-6958 fax www.hubbardip.com © 2012 Marc A. Hubbard 38