Misplaced Pages

USENIX Annual Technical Conference

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

The USENIX Annual Technical Conference ( USENIX ATC , or, canonically, USENIX ) is a conference of computing researchers sponsored by the USENIX association. The conference includes computing tutorials, and a single track technical session for presenting refereed research papers, SIG meetings, and BoFs .

#117882

68-593: There have been several notable announcements and talks at USENIX. In 1995, James Gosling announced "Oak", which was to become the Java Programming Language . John Ousterhout first presented TCL here, and Usenet was announced here. It is considered one of the most prestigious venues for computer systems research and has an 'A' rating from the Australian CORE Conference Ranking system. From 2021 onward, this

136-458: A PERQ by translating Perq Q-Code to VAX assembler and emulating the hardware. He is generally credited with having invented the Java programming language in 1994. He created the original design of Java and implemented the language's original compiler and virtual machine . Gosling traces the origins of the approach to his early graduate student days, when he created a p-code virtual machine for

204-433: A judgement as a matter of law (JMOL) that the case dismiss any fair use defense since the jury was split, as well as to overturn the jury's decision on eight security-related files that they had reviewed and found non-infringing but which Google had stated they copied verbatim; Alsup concurred. Google asked for a similar JMOL related to rangeCheck , but Alsup denied this request. The patent phase began on May 7, 2012, with

272-598: A competing platform or embed them in an electronic device. To preserve the "write once, run anywhere" philosophy, Oracle imposes strict compatibility requirements on licensees. The purpose was commercial, the established historical facts by the jury did not satisfy any of the criteria for fair use, and the Court remanded the case back to the District Court of the Northern District of California to determine

340-430: A copyright infringement, but the only relief available was statutory damages up to a maximum of US$ 150,000 As a result of these rulings and a stipulation, there was no jury damages phase. The parties agreed to zero dollars in statutory damages for the small amount of copied code by June 2012. Shortly following the conclusion of the District Court case, both parties attempted to file additional JMOLs on elements of

408-690: A copyright-unburdened engine without the source code, and has admitted to using the APIs but claimed this was within fair use . Oracle initiated the suit arguing that the APIs were copyrightable, seeking US$ 8.8 billion in damages from Google's sales and licensing of the earlier infringing versions of Android. While two District Court-level jury trials found in favor of Google, the Federal Circuit court reversed both decisions, holding that APIs are copyrightable in 2014 and that Google's use does not fall under fair use in 2018. Google successfully petitioned to

476-774: A core part of the new system. Part of the virtual machine included 37 API calls and around 11,500 lines of code deemed central to Java, which were taken from Apache Harmony , an open-source cleanroom Java implementation developed by the Apache Software Foundation (ASF). Prior to this, the ASF had tried to obtain necessary licenses from Sun to support the Apache Harmony project as to call it an official Java implementation, but could not, in part due to incompatible licensing with Java's GNU General Public License and ASF's Apache License , nor could it gain access to

544-574: A deal and Sun refused Google a license for Java. At this point in time, the OpenJDK implementation offered by Sun was not as mature or complete as the Java Standard Edition. Instead of licensing Java, Google chose to develop a cleanroom version of the Java Standard Edition libraries, developing the libraries from a completely fresh start without any access to Sun's code. This became the engine behind Android's Dalvik virtual machine,

612-636: A happy face and tried to turn lemons into lemonade, which annoyed a lot of folks at Sun." However, he approved of the court's ruling that APIs should not be copyrightable. In March 2011, Gosling joined Google . Six months later, he followed his colleague Bill Vass and joined a startup called Liquid Robotics . In late 2016, Liquid Robotics was acquired by Boeing . Following the acquisition, Gosling left Liquid Robotics to work at Amazon Web Services as Distinguished Engineer in May 2017. He retired in July 2024. He

680-415: A new platform either, since other Java smartphones predated Android. It was plausible that the use had harmed Sun/Oracle – perhaps to a great extent if Oracle were to be believed – since as a result, vendors began expecting Oracle to compete on price with a freely available derivative of its own language, and to require very steep discounts and undesired contractual terms. Therefore, Google's use of

748-410: A review of the four factors that contributed to fair use: Breyer determined that Google's use of the APIs had met all four factors, and that Google used "only what was needed to allow users to put their accrued talents to work in a new and transformative program". Breyer concluded that "we hold that the copying here at issue nonetheless constituted a fair use. Hence, Google's copying did not violate

SECTION 10

#1732783226118

816-546: A utility thoroughly detailed in Brian Kernighan and Rob Pike 's book The Unix Programming Environment . He left Sun Microsystems on April 2, 2010, after it was acquired by the Oracle Corporation , citing reductions in pay, status, and decision-making ability, along with change of role and ethical challenges. He has since taken a very critical stance towards Oracle in interviews, noting that "during

884-585: Is an advisor at the Scala company Lightbend , Independent Director at Jelastic , and Strategic Advisor for Eucalyptus , and is a board member of DIRTT Environmental Solutions. For his achievement, the National Academy of Engineering in the United States elected him as a Foreign Associate member. Oracle v. Google Google LLC v. Oracle America, Inc. , 593 U.S. 1 (2021),

952-510: Is based on POSIX , a set of APIs that mimic those of the commercial Unix operating system that enable high levels of interoperability for developers; a programmer would only need to write one set of code which then can be compiled on any system that has the same API, even if the computing architecture of the systems are different. If case law favored Oracle, the owners of earlier versions of Unix, Micro Focus , could have sought damages from any POSIX-based operating system developer intending to use

1020-407: Is co-located with another premier conference, USENIX OSDI . Prior to 1995 there were two USENIX Technical Conferences held each year, with one held in the summer and the other during the winter James Gosling IEEE John von Neumann Medal The Economist Innovation Award NAE Foreign Member James Arthur Gosling OC (born 19 May 1955) is a Canadian computer scientist , best known as

1088-541: Is undisputed that Google copied verbatim the declaring code of the 37 Java API packages 11,500 lines of Oracle's copyrighted code. It also copied the SSO of the Java API packages. (Decision p. 10)" It is also established and Google recognizes that the software copied is creative and original. The Court found that as a matter of law, Google's use of Java could not have fallen within fair use, even if all factual matters decided by

1156-740: The Android Runtime , which had been built within Google without any of the Java source code. However, Android continued to use the JavaSE APIs through the extent of the case's litigation up until Android Nougat when it was fully replaced by OpenJDK . The first phase of the case lasted from 2010 to 2015. Oracle successfully established that APIs are copyrightable, but their claims of patent infringement were rejected. On August 13, 2010, Oracle sued Google for copyright and patent infringement in

1224-565: The District Court for the Northern District of California . Oracle asserted Google was aware that they had developed Android without a Java license and copied its APIs, and that Google therefore infringed Oracle's copyright. Oracle also cited seven Oracle-owned prior patents related to the Java technology created by Sun that Google should have been aware of as they had hired former Sun developers that worked on Java. Oracle sought both monetary damages and an injunction to stop Google from using

1292-614: The GNU General Public License with a "classpath exception" , allowing developers the access necessary to make derivative works and the ability to release applications under a different license. This led to the OpenJDK (Open Java Development Kit), first released in 2007. Sun retained strong control over the language and standards itself, licensing the necessary elements like TCKs for commercial users. At this time, Sun's business model changed to focusing on licensing of

1360-816: The ISIS 2 satellite, working for the University of Calgary physics department. He received a Bachelor of Science from the University of Calgary and his M.A. and Ph.D. from Carnegie Mellon University , all in computer science . He wrote a version of Emacs called Gosling Emacs (Gosmacs) while working toward his doctorate. He built a multi-processor version of Unix for a 16-way computer system while at Carnegie Mellon University, before joining Sun Microsystems . He also developed several compilers and mail systems there. Gosling has two children, Katie and Kelsey, who are half siblings from his two marriages. Gosling

1428-751: The Internet Association , the Auto Care Association , and a collective group of over 150 academics and computer professionals also filed briefs supporting Google's stance, cautioning that a decision in favor of Oracle would hurt the computing world as a whole. The Supreme Court granted certiorari on November 15, 2019, and was expected to hear the case on March 24, 2020. However, the Supreme Court postponed its March argument session on March 16 in light of concerns surrounding COVID-19 , and later announced that Google v. Oracle

SECTION 20

#1732783226118

1496-450: The APIs. The decision reversed the Federal Circuit ruling and remanded the case for further review. The case has been of significant interest within the tech and software industries, as numerous computer programs and software libraries, particularly in open source , are developed by recreating the functionality of APIs from commercial or competing products to aid developers in interoperability between different systems or platforms. Java

1564-486: The Apache Harmony in 2011, leading Google to take over maintenance of these libraries. Google released a beta of the Android platform on November 5, 2007 then, one week later, the software development kit (SDK) which they noted included some Java technologies. Sun's president Schwartz congratulated Google the same day, saying they had "strapped another set of rockets to the community's momentum – and to

1632-520: The Apache Harmony project. After two weeks of testimony, the jury found on May 7, 2012, that Google had infringed on the copyright related to the code, SSO, and documentation of the APIs as well as the rangeCheck function, but were deadlocked on whether these uses fell within fair use. The jury also found that Google had sufficient reason to believe based on Sun's and Oracle's conduct that they did not need to license Java from Sun or Oracle, but did not rely on this when developing Android. Oracle requested

1700-519: The Appeals Court, a new district court trial began on May 9, 2016, on the question of whether Google's actions were fair use given the prior ruling that the APIs were copyrightable. Closing arguments were completed on May 23, 2016 and the jury began deliberations. Oracle was seeking damages of up to US$ 9 billion. On May 26, 2016, the jury found that Android did not infringe Oracle-owned copyrights because its re-implementation of 37 Java APIs

1768-522: The Java SE libraries. Google's executive chairman Eric Schmidt had approached Sun's president Jonathan I. Schwartz about licensing the Java libraries for use in Android. Sun offered a licensing deal of between US$ 30 and 50 million . Schmidt said Google would have paid for that license, but they were concerned that Sun had also requested some shared control of Android along with the fee. Google states that they wanted more control in order to open source

1836-514: The Java TCKs to validate the Harmony project against Sun's implementation. Though Google stated they used this code to ensure interoperability with the Java Standard Edition for other programmers, during the second appeal hearing, Google stated that it had used this code for commercial reasons to rapidly complete Android and to avoid the "drudgery" of recreating the code. ASF ceased maintaining

1904-481: The Java code and APIs failed to meet all four of the currently accepted criteria under which fair use would be possible. Instead, the Court found that Google's purpose had been to enhance its nascent Android platform's attractiveness to existing developers, who were often familiar with Java, and to avoid the "drudgery" of rewriting the code (which they could have done) needed to implement the 170 lines of API detail which were indeed required. "Making it easy for oneself",

1972-506: The Java platform to embedded devices , particularly mobile phones, and had already made licensing deals with Nokia , Motorola , and Research In Motion . Android, Inc. was founded in 2003 by Andy Rubin , Rich Miner , Nick Sears, and Chris White to develop a mobile phone platform. Google purchased Android in 2005 and continued developing the Android operating system . During the development of Android, Google wanted to incorporate

2040-518: The Supreme Court to hear the case in the 2019 term, focusing on the copyrightability of APIs and subsequent fair use; the case was delayed to the 2020 term due to the COVID-19 pandemic . In April 2021, the Supreme Court ruled in a 6–2 decision that Google's use of the Java APIs served an organizing function and fell within the four factors of fair use, bypassing the question on the copyrightability of

2108-534: The acquisition in January 2010. Besides allowing them to enter the hardware business, Oracle's CEO Larry Ellison called the Java language "the single most important software asset we have ever acquired". Oracle continued to develop Java and pursue licensing opportunities following its acquisition of Sun. By the release of Android KitKat (v4.4) in 2013, Google removed the Dalvik virtual machine and replaced it with

USENIX Annual Technical Conference - Misplaced Pages Continue

2176-541: The allegedly infringing materials. The case was assigned to Judge William Alsup , who split the case into three phases: copyright, patent, and damages. The copyright phase started on April 16, 2012, and consisted of several distinct claims of infringement: a nine-line rangeCheck function, several test files, the structure, sequence and organization (SSO) of the Java (API), and the API documentation. Oracle alleged infringement of 37 separate Java APIs which had derived from

2244-614: The amount of damage that Google should pay Oracle. Google filed a petition for writ of certiorari with the Supreme Court of the United States in January 2019 to challenge the two rulings that were made by the appeals court in Oracle's favor. In its petition, Google centered its case on whether copyright extends to a software interface like an API, and whether the use of the Java API by Google fell within fair use as found at

2312-752: The aspects of a fair use claim which were to be decided by a judge and jury, respectively. It then looked at the factual matters which, it had to be assumed, the jury had reached, and their implications in law. It noted that in a "mixed" case of fact and law, such as the present dispute, the trial jury's role is to decide on the facts. Judge O'Malley quoted the Supreme Court case Campbell v. Acuff-Rose Music, Inc. 510 U.S. 569 (1994) in her opinion, noting that: [i]n truth, in literature, in science and in art, there are, and can be, few, if any, things, which in an abstract sense, are strictly new and original throughout. Every book in literature, science and art, borrows, and must necessarily borrow, and use much which

2380-483: The case. Microsoft argued in an amicus brief that ruling in Oracle's favor could upend the software industry. Several questions focused on how APIs fell within the idea–expression distinction of copyright and if the merger doctrine would apply. Justice Gorsuch was also seen to focus heavily on the Seventh Amendment arguments and whether the Federal Circuit's ruling to overturn the trial court's jury verdict

2448-403: The claim required. For the '104 patent, they argued that the instruction did not include a symbolic reference. On May 23, 2012, the jury found non-infringement on all patent claims. Judge Alsup issued the final verdict for both these phases on May 31, 2012. While the jury had found for Oracle regarding copyright infringement of the APIs, Alsup determined that the APIs were not copyrightable in

2516-620: The copyright law." This conclusion rendered the need to evaluate the copyright of the API unnecessary. Justice Clarence Thomas wrote a dissenting opinion that was joined by Justice Samuel Alito . Thomas wrote that the majority opinion created a new distinction between implementing code and declaring code that Congress had rejected, and thus, "the result of this distorting analysis is an opinion that makes it difficult to imagine any circumstance in which declaring code will remain protected by copyright." Thomas further stated that in his own fair use analysis that "Google's use of that copyrighted code

2584-410: The court noted, is well established to not fall within valid grounds for fair use. The Court found that "The fact that Android is free of charge does not make Google's use of the Java API packages noncommercial". Oracle devised a licensing scheme to attract programmers while simultaneously commercializing the platform. In relevant part, Oracle charges a licensing fee to those who want to use the APIs in

2652-416: The court to conclude "that the overall structure of Oracle's API packages is creative, original, and resembles a taxonomy" (p. 14). It therefore reversed the district court's decision on the central issue, holding that the "structure, sequence and organization" of an API is copyrightable. It also ruled for Oracle regarding the small amount of literal copying, holding that it was not de minimis . The case

2720-537: The current trends in software development which have focused on improving interoperability between different services, allowing apps to communicate with one another, and creating more integrated platforms for end users. Industry and legal experts stated an Oracle victory could have created a chilling effect in software development, with copyright holders using the copyright on APIs to prevent their use in developing interoperable alternatives through reverse engineering , as common in open source software development. At

2788-407: The extent that they incorporate authorship in the programmer's expression of original ideas, as distinguished from the ideas themselves" (p. 18). To qualify for copyright protection a work must be original. 17 U.S.C. § 102(a). The court was therefore "first to assess whether the expression is original to the programmer" (p. 24), something that Google had already conceded (p. 21). This led

USENIX Annual Technical Conference - Misplaced Pages Continue

2856-484: The first place: So long as the specific code used to implement a method is different, anyone is free under the Copyright Act to write his or her own code to carry out exactly the same function or specification of any methods used in the Java API. It does not matter that the declaration or method header lines are identical. Alsup did agree with the jury that the rangeCheck function and eight security files were

2924-481: The founder and lead designer behind the Java programming language . Gosling was elected a member of the National Academy of Engineering in 2004 for the conception and development of the architecture for the Java programming language and for contributions to window systems . Gosling attended William Aberhart High School in Calgary, Alberta. While in high school, he wrote some of the software to analyze data from

2992-491: The integration meetings between Sun and Oracle, where we were being grilled about the patent situation between Sun and Google, we could see the Oracle lawyer's eyes sparkle." He clarified his position during the Oracle v. Google trial over Android: "While I have differences with Oracle, in this case they are in the right. Google totally slimed Sun. We were all really disturbed, even Jonathan [Schwartz]: he just decided to put on

3060-437: The jury had been in Google's favor. The Appeals Court found that Google's use of API code declarations had not met any of the four current criteria for fair use, but was merely untransformed reuse. It had not been transformative, since it was used for the same purposes without even minimal changes or rewrites. It was not minimal, since it was agreed that only 170 lines of the 11,500 lines copied were needed for Google's purposes. It

3128-620: The jury trials. In orders issued in April 2019, the Court asked the Solicitor General of the United States to file an amicus brief to outline the government's stance on the case. The Trump administration backed Oracle and urged the Court to deny certiorari. Microsoft , Mozilla Corporation , Red Hat Inc. , and others filed amicus briefs in support of Google's position. IBM , the Computer & Communications Industry Association ,

3196-462: The lab's DEC VAX computer, so that his professor could run programs written in UCSD Pascal . In the work leading to Java at Sun, he saw that architecture-neutral execution for widely distributed programs could be achieved by implementing a similar philosophy: always program for the same virtual machine. Another contribution of Gosling's was co-writing the " bundle " program, known as "shar",

3264-420: The language and allow third parties to take better advantage of its code; Oracle states that Sun refused because Google's intention was essentially to fork Java to a Google version of the language, and to prevent it being inter-operable with other versions, an idea which was "anathema" to the "write once run anywhere" basis of the language. Because of these differences of view, the negotiations failed to reach

3332-573: The language itself, Sun maintained the Java Platform, Standard Edition (Java SE) and Mobile Edition (Java ME) libraries, provided to users as pre-compiled Java bytecode , and their respective APIs, as well as the Technology Compatibility Kits (TCKs) that tested an implementation against the Java standard. Over 2006 and 2007, due to pressure from developers, Sun changed the license of the various Java packages to use

3400-483: The ongoing COVID-19 pandemic on October 7, 2020. Justice Ruth Bader Ginsburg had died the prior month, and her replacement, Justice Amy Coney Barrett , had not yet been confirmed, so Barrett took no part in the proceedings. Court observers found that while the Justices seemed to side with Oracle on the copyright arguments, they also took deference to the arguments presented by Microsoft, who had taken Google's side on

3468-409: The potential for bad actors to pick up the rights to old software and file claims against companies who built their software on what were assumed to be open standards. If APIs became subject to copyright protection, it is believed that companies would need to implement deliberately incompatible standards to protect themselves from the risk of complex litigation . This scenario would mean moving away from

SECTION 50

#1732783226118

3536-441: The programmer to know how the library they are using does what it does. These libraries together provide the "Java virtual machine" which programmers write programs to use (run upon). The common way in which a common set of libraries are used across all "Java virtual machines" allows for interoperability , or as marketed by Sun, " Write once, run anywhere "; a programmer need only create one version of their software which, because of

3604-418: The question posed and what types of historical facts are relevant to that standard; (2) finding what the historical facts in the case at hand are; and (3) assessing whether the historical facts found satisfy the legal test governing the question to be answered" (Decision p. 19). Except clear error, the role of the jury is limited to determining disputed 'historical facts' (2). The facts are not discussed. "It

3672-689: The ruling which Alsup dismissed, leading to Oracle appealing the decision and Google filing a cross- appeal on the literal copying claim. Because the case involved claims related to patents, the appeal was automatically assigned to the United States Court of Appeals for the Federal Circuit . The hearing was held on December 4, 2013, and the judgment was released on May 9, 2014. The court noted that Copyright Act provides protection to "original works of authorship fixed in any tangible medium of expression" (p. 17). The legislative history explains that literary works include "computer programs to

3740-468: The same jury. By the time of trial, Oracle's patent case comprised claims from two patents, 6,061,520 (Method and system for performing static initialization), (the '520 patent) and RE38104 (Method and apparatus for resolving data references in generated code). (the '104 patent). Google pursued a non-infringement defense. For the '520 patent, they argued that they were using parsing for optimizing static initialization, rather than "simulating execution" as

3808-453: The same time, experts cautioned that a judgment favoring Google's position may weaken protection for copyright for software code developers, allowing competitors with better resources to develop improved products from smaller firms and reduce the motive for innovation within the industry. One example identified by Wired is the Linux operating system. While Linux is fully open source , it

3876-521: The single group of APIs common to all Java virtual machines, can thus be run on any computing platform that supports Java. The Java language was released to the public in 1995, under the Sun Community Source License , making the source code freely available but requiring that products using the code were maintained to the Java standard, and that any commercial derivative works were licensed by Sun. While anyone could program in

3944-413: The vision defining opportunity across our (and other) planets." During the trial, Schwartz said that at that time of Android's release, despite knowing Google may have bypassed their licensing requirements, "We decided to grit our teeth and support it so anyone supporting it would see us as part of the value chain". Oracle announced it would purchase Sun in April 2009 for US$ 7.4 billion , and completed

4012-477: Was a U.S. Supreme Court decision related to the nature of computer code and copyright law . The dispute centered on the use of parts of the Java programming language 's application programming interfaces (APIs) and about 11,000 lines of source code , which are owned by Oracle (through subsidiary, Oracle America, Inc., originating from Sun Microsystems ), within early versions of the Android operating system by Google . Google has since transitioned Android to

4080-432: Was anything but fair". Google v. Oracle was a closely watched case by the tech industry. A ruling favoring Oracle could have had significant effects on past and future software development given the prolific use of APIs. Opponents of the Federal Circuit's ruling, including Google and other developers of Android-based software, had raised several concerns including the impact on interoperability , software innovation, and

4148-400: Was not within any example of transformation, nor intended to permit third party interoperability, since Google had made no substantial efforts to use them for the purpose of third party interoperability. (In fact it found that Google had tried to prevent interoperability with other Java and had previously been refused a license by Sun for that reason. ) It was not transformative in the sense of

SECTION 60

#1732783226118

4216-609: Was one of several cases from the 2019–20 term to be postponed until the first week of the 2020–21 term. Following the delay, the Court asked parties to submit additional briefs related to the Seventh Amendment , given that the Federal District court had overridden some of the findings of facts that the jury had concluded in their case at the District level. Oral arguments were heard via teleconference due to

4284-472: Was originally developed at Sun Microsystems starting in December 1990. It included a new programming language , a virtual machine , and a set of libraries for use with the language. These libraries are documented for programmers via application programming interfaces (APIs), which tell programmers what information to provide to library functions and what results to expect back, eliminating any need for

4352-503: Was proper. The Court issued its decision on April 5, 2021. In a 6–2 majority, the Court ruled that Google's use of the Java APIs was within the bounds of fair use, reversing the Federal Circuit Appeals Court ruling and remanding the case for further hearing. Justice Stephen Breyer wrote the majority opinion. Breyer's opinion began with the assumption that the APIs may be copyrightable, and thus proceeded with

4420-424: Was protected by fair use. Oracle announced its intention to appeal, but before doing so, it attempted unsuccessful motions to disregard the jury verdict , and then to hold a re-trial. Oracle officially filed its appeal on October 26, 2016. Oracle's appeal was heard by the United States Court of Appeals for the Federal Circuit in 2017. On March 27, 2018, the Court ruled in favor of Oracle. The ruling analyzed

4488-523: Was remanded to the District Court for a second trial, to consider whether Google's use was acceptable anyway, under the doctrine of fair use, since the original case had not brought out the facts related to fair use sufficiently for the Appeal Court to rule on that point. In October 2014, Google petitioned the U.S. Supreme Court to hear the case; this request was denied in June 2015. As ordered by

4556-411: Was well known and used before. (quoting Emerson v. Davies, 8 F. Cas. 615, 619 (C.C.D. Mass. 1845)) The Court of Appeals' role is to assess whether a reasonable jury could have reached the conclusions it did, and whether the judge's decision could be correct and reasonable in law. The standard review of mixed questions of law and fact concerned three components: "(1) determining the legal standard governing

4624-453: Was with Sun Microsystems between 1984 and 2010 (26 years). At Sun he invented an early Unix windowing system called NeWS , which became a lesser-used alternative to the still used X Window System , because Sun did not give it an open source license. He is known as the father of the Java programming language . He got the idea for the Java VM while writing a program to port software from

#117882