1990.12
|
昇陽(Sun Microsystems)開發了Java,包括一種新的編程語言(programming language)、一個虛擬機(virtual machine)和一組與該語言一起使用的資料庫(libraries),這資料庫是透過API為程式設計者(programmers)記錄資訊,API則負責告訴程式設計者要向資料庫提供那些資料以期望可以得到什麼結果,如此一來程式設計者就不需要知道資料庫如何執行哪些細節工作。
|
1995
|
昇陽公布了Java語言的原始碼(source code),但要求使用該原始碼的產品都必須符合Java標準,且任何商業衍生作品都必須獲得昇陽授權。雖然任何人都可以使用Java語言編程,但昇陽維護了Java平台、標準版和手機版資料庫,以及其各自的API和用於測試軟體的TCK套組。
|
2005
|
Google購買了開發手機平台的Android並繼續開發Android操作系統,Google希望合併JavaSE,昇陽提出30-5,000萬美元的授權金,Google擔心昇陽會繼續對Android進行更多共享控制並收費,所以Google要求取得更多控制權以開放Java原始碼。雙方破局。
這個階段昇陽提供的「Java開發工具包」(Open Java Development Kit,Open JDK)還不如Java標準版完整,Google並非透過Java授權,而是選擇使用一個潔淨室版本(cleanroom version of the Java Standard Edition libraries)重新開發資料庫,這樣就不需用昇陽的代碼,但這個Android核心部分還是用到了37個API和大約11,500行Java重要的代碼。Google表示只是用這代碼來確保與其他程式設計者的Java標準版有互通性,且基於商業理由避免重新創建代碼以快速完成Android系統。
|
2007
|
在程式開發人員壓力下,昇陽放寬了GNU通用公共授權,後來也首次公布了Open JDK。昇陽保留了對Java語言和Java標準的控制權,此時昇陽的商業模式轉為提供Java平台對嵌入式設備(例如手機)的授權,且已經與Nokia、Motorola達成授權協議。
同年Google在11月公布了Android平台的測試版,軟體開發套件SDK中包含了一些Java技術。
|
2009.4
|
Oracal以74億美元收購了昇陽,並將Java語言視為最重要的單一軟體資產,Oracal收購後繼續開發Java並尋找更多業界授權合作機會。
|
2010-2016
一審階段
|
陪審團裁定Oracle API具有著作權,但其專利侵權主張被駁回。然法官認定Java API不具有著作權。
聯邦巡迴上訴法院裁定案件發回地院重新審理,陪審團裁定Android使用的37個Java API構成合理使用。
|
2010.8.13
地方法院
|
Oracle在加利福尼亞北區地方法院起訴主張Google未經許可複製了Java的API,侵害著作權和專利,請求損害賠償及禁制令。
|
2012.4.16
|
法院開始審理著作權部分,包括nine-line range check function,幾個測試文件,Java API的結構、序列和組織,以及API文檔。
|
2012.5.7
|
陪審團裁定Google對Java API構成侵害著作權,但這些用途屬於合理使用範圍;陪審團也認為Google不需從昇陽或Oracle取得Java的授權。Oracle則要求法官依法作出判決(JMOL),法官同意,但拒絕作出與range check相關類似的JMOL。
Oracle的專利案包含二部分:(A) 6,061,520(用於執行靜態初始化的方法和系統)和(B) RE38104(用於解決生成的代碼中數據引用的方法和裝置)。Google主張:(A)用解析來優化靜態初始化,而非用模擬執行;(B)不包含符號(symbolic reference)。陪審團裁定Google只侵害部分專利權。
|
2012.5.31
|
雖然陪審團裁定Google構成侵害著作權,但法官推翻,改認定Java API不具有著作權。陪審團認定Google對Java API的range Check功能及與安全相關的8個文件構成侵害著作權,法官也同意陪審團的觀點,並認為只能用法定賠償來定賠償金。但因為此階段尚無損害,雙方同意在2012.6前將少量複製代碼的法定賠償額定為零。
|
2014.5.9
巡迴上訴法院發回
|
雙方都希望就一審法官駁回的判決內容提起額外的JMOL,所以雙方都提起上訴,但該案涉及與專利有關的損害賠償,所以上訴到聯邦巡迴上訴法院。
法院指出:著作權法保護的是任何有形表達媒介中的原創作品,包括電腦程式,電腦程式只要納入程式設計者對原始思想的表達,就與思想本身有所區別,可取得著作權保護。Oracle API packages的整體結構具有創造性、獨特性,有其順序及組織,應受著作權保護;案件發回地方法院進行第二次審判,因原案未討論Google的使用是否符合合理使用(fair use)。
|
2014.10
|
Google向最高法院請願要求複審,但2015.6遭駁回。
|
2016.5.9
|
地方法院根據上訴法院命令,重新審理Google是否構成合理使用。
|
2016.5.26
地方法院
|
Oracle要求的損害賠償提高為90億美元,陪審團裁定Android使用的37個Java API構成合理使用,未侵害Oracle的著作權。
|
2016.10.26
|
Oracle提起上訴。
|
2018.3.27
聯邦巡迴上訴法院
|
法院判決Oracle勝訴,Java API有著作權,Google對Java的使用不屬於合理使用
|
聯邦巡迴上訴法院判決Oracle勝訴,法官援引Campbell v. Acuff-Rose Music, Inc. 510 U.S. 569 (1994)一案,指出:在文學、科學和藝術中,只存在極少數嚴格意義下的新穎和原創。但文學、科學和藝術領域的每本書都必須一定要大量用到過去眾所周知且用過的文字。
本案事實是:Google逐字複製了37個Java API packages中11,500行Oracle有著作權的原始碼,Google也複製了Java API的SSO,所以Google意識到其複製的軟體是具有原創性的。
法院認為,即使陪審團裁定的事實都對Google有利,但從法律來看,Google對Java的使用不屬於合理使用範圍。因為Google對API原始碼並不符合合理使用考慮的4個要點:
1. 使用的目的和性質;
2. 著作權作品的性質;
3. 相對於整個著作權作品來說所使用的內容和數量;
4. 這種使用對有著作權作品的潛在市場或價值所產生的影響。
詳言之,Google對Java API僅是未經轉換的使用,沒有變革創新,且使用的目的相同,甚至沒有進行最小幅度的改寫。Googel使用的11,500行當中,其實只需要170行就夠了。Google並未為第三人在程式操作的共通性上進行實質努力,甚至Google還試圖防止與其他Java互通,並因此曾被昇陽拒絕授權。Google宣稱的合理使用事實上對昇陽/Oracle都造成了損害,因為衍生產品回過頭對Oracle產生價格競爭,所以聯邦巡迴上訴法院判決Oracle勝訴。
此外,法院還發現Google使用Java API packages多達11,500行的目的是讓Android可以被熟悉Java系統的程式開發人員容易上手,還可以免除重寫Java所需的代碼,因此法院特別指出「Making it easy for oneself.」並不表示這就是Google可以主張合理使用的理由。且Android是免費的這件事,也不代表Google對Java API packages的使用不會對Oracle造成商業競爭。
|
2019.1
|
Google向最高法院提起上訴,焦點放在著作權保護是否及於類似Java API的軟體介面,以及陪審團認為Google使用Java API構成合理使用這件事是否能被推翻。
|
2019.4
|
川普政府政策支持Oracle,並要求法院駁回訴訟文件移送命令(certiorari),但Microsoft、Mozilla、Red Hat及其他公司及IBM、電腦通訊協會、網路協會…等超過150個公協會都提交amicus briefs支持Google,並警告若支持Oracle將對整體電腦上下游產業造成損害。
|
2019.11.15
|
最高法院核准了訴訟文件移送命令,預計2020.3.24開始審理,但因Covid-19影響,案件延遲審理;因為聯邦地方法院推翻了陪審團在一審所作的裁定,所以法院要求雙方先就Google提出的第七修正案內容補充相關資料。
|
2020.10.7
|
因為Covid-19,案件以電話會議方式進行辯論,法官在著作權方面雖然傾向同意Oracle,但也尊重微軟所提出若支持Oracle可能將顛覆軟體行業的觀點。審理著重討論API是否屬於著作權要保護的「表達」,是否適用合併原則(merger doctrine),及聯邦巡迴法院推翻陪審團的裁定是否恰當。
|
2021.4.5
|
最高法院以6:2裁定Google對Java API的使用滿足以下4個要件,屬於合理使用範圍,推翻了聯邦巡迴上訴法院的裁決:
1. API是聲明碼(declaring code)而非執行碼(implementing code),具有一種類似Dewey Decimal System的組織功能,是程式設計者和程式碼之間的介面,所以其主要價值是程式設計者對於API的熟悉程度,所以Google抄襲應該評價為「合理使用」。
2. 用途和目的特徵:Google對Java API進行了轉化(transformative),擴大了以Android為基礎的智慧型手機的使用和實用性,並藉此創造了一個程式設計者能輕鬆使用的新平台,也就是從電腦轉移到了手機上;且Google也只有在智慧型手機程式必須用到的範圍內才使用Java API。
3. Google只使用了Java總原始碼的0.4%,比例極少,且Google並未複製Java運作的核心碼,Google複製這些原始碼並不是為了創意或美麗才抄襲,而是因為程式設計者已經熟悉了Java SE,必須用Java才能吸引程式設計者加入Android。
4. 在Google複製Java API的時候,還不確定Android是否能夠成功,Android並不是Java的競爭者,所以沒有影響Java的市場;也沒有證據證明如果Android沒有抄襲Java API,Oracle就能成功進入手機市場,反倒是因為Android讓更多人熟悉Java語法。如果支持Oracle的立場,將使Oracle全面掌握關鍵技術而享有豐厚利潤,反倒可能對公眾造成損害。
因此,多數法官Google抄襲Java API屬於合理使用,有助於軟體業發展,並未侵害Oracle原有的市場。
**不同意見書:認為上述多數意見無異是在聲明碼和執行碼中間畫了一條新的界線,這界線不是國會通過的法律,卻因此影響了是否構成合理使用的判斷;使得未來聲明碼是否仍受著作權保護也成問題。API是否享有著作權保護乃本案核心問題,但多數法官迴避對這問題做出判斷,而Java是最普遍的程式語言,因為Android是免費的使得原本和Oracle簽約的Samsung、Amazon都要求調降授權金,當然有導致Oracle受到損害。至於Google把Java API從電腦移到手機使用,功能可以說都一樣,根本不算跨市場。所以本案中Google使用Java API不構成合理使用。
|