親愛的Oracle: Java API不是藝術品

黃小非發表於2012-06-06

Oracle曾經說Java API就像是優美的畫作。Google卻說API就是檔案櫃裡的檔案。最後,William Alsup(負責審理Oracle和Google關於Java糾紛的法官)比較同意Google的觀點,Java作為一門程式語言,其API就像是圖書館裡的藏書一樣。

“Java裡的包(package)就像是圖書館的書架一樣”,Alsup法官在他最近一週的所作出的廣受關注的裁定中這樣寫道,該裁定正是針對Google和Oracle關於Java API的漫長的法律訴訟所作出的,“每一個類(Class)就像是書架上的一本書,類中的每一個方法(Method)就像是書中的‘閱讀指南’章節。程式設計師的工作,就是前往正確的書架,選擇正確的書,開啟這本書,找到所需要的章節。”

bookshelf

Image: twechy/Flickr

 

Alsup法官的基本觀點是:庫檔案的組織形式並不受制於版權。是的!他明確地表達了這個觀點:書是有版權的,但是你在書架上怎麼放書,按什麼順序放,這跟版權一點兒關係都沒有。

換句話說,Google複製了37個Java API,用以構建其Android手機作業系統,這一行為並不侵犯Oracle的版權。儘管Google照搬了這些API的組織形式,但Google自行構建了程式碼,至少是絕大多數自行構建的。“Java和Android的類庫在組成形式上大致相同,基本上提供了相同的功能,解決相同的問題,不過Google對這些功能函式都做了自己的實現,這些實現和Oracle所屬的Java是不一樣的。”

Google和Oracle關於Android是否侵犯Java版權開展訴訟

 

根據這一裁定,Alsup法官終結了這場關於Google Android系統侵權使用Java的訴訟,該訴訟長達六週之久。Oracle於2010年控告Google非法侵佔了Java的版權和專利權,並企圖通過該訴訟在Google Android系統的鉅額利潤中分得一杯羹。不過,依照Alsup法官的裁決,資料庫巨頭Oracle這次要一無所獲了。Oralce已經表明了對此案上訴的態度。

如果Alsup做出相反的判決,那麼Oracle很可能會引發一場‘令人難以想象’的災難,還好法官沒有這麼做。Bret Bocchieri表達了這樣的觀點,他是來自一家名為Seyfarth Shaw LLP的國際法律公司的智慧財產權專家律師。

更重要的是,Alsup法官的裁決讓全世界範圍內的軟體公司和獨立開發者們都鬆了一口氣。在軟體世界裡,複用API是非常普遍的行為。例如,一些雲端計算平臺,就模仿了Amazon所擁有的著名的雲端計算架構ECC(Elastic Compute Cloud)的API形式。API是應用程式的可程式設計介面,是不同軟體之間互動的重要方式,行業內普遍預設對介面的組織和使用並不會觸犯到版權保護法律。Oracle對這個預設規則的挑釁,至少在業界引發了巨大的爭議。週四,Alsup法官的裁定結束了這些紛爭。

“如果Oracle的觀點得到認同,那麼著就意味著任何人都能給自己實現的系統或功能加上版權,同時,他還能夠根據版權的保護條例禁止其他任何人用他們自己的方式實現跟你的系統和功能相同的軟體。(也就是說,這種軟體只能有版權的人做,其他人會做都不能做——譯者注)”在法官的41頁的簡報裡,他寫到:“沒有任何理由可以支援這種極端的提議。”

Alsup法官 為了審案甚至親自學習了Java程式設計

 

Ed Walsh,一位來自於Wolf Greenfield國際法公司的律師,表示他對這樣的裁定並不感到驚訝。但是他同時也指出,這個裁定並不意味著從此以後API就不受版權的約束了。Walsh認為,Alsup法官部分出於Sun公司的原因,幫了Google一把,允許Google複製API。Sun公司才是Java真正的創始者,後被Oracle收購,而後Oracle才取得了Java的版權並起訴Google.

“我認為有一些因素對裁定結果產生了影響,那就是Sun公司原先是允許人們隨意使用Java的”,Walsh說,“所以Oracle不能用版權去限制這些本來就已經開放的事物。”

Catherine Lacavera, Google的訴訟代表,也表達了同樣的觀點。“這個判決重申了我們長期以來對法律的理解,這些API是可以被所有人自由使用的,正如我們使用它一樣,我們採用了這些功能的宣告,並自己獨立實現這些宣告所包含的功能程式碼。”,她說,“這就是開發者使用Java的正常模式,你不能說,一種語言是可以自由使用的,然後又禁止人們使用這種語言的名詞或者動詞。”

Alsup法官則考慮得更細,他使用了大量的細節來描述什麼是Java API以及在法律範圍內這些API應當如何對待。他所提出的圖書館的比喻非常經典。但是他可不是僅僅停留在比喻的層面上。他似乎真的理解什麼是API.他也很清楚複製一個介面(Interface)和複製實現介面的程式碼,這兩個概念是有區別的。

“每個成員方法(Method)和類(Class)都是用來實現特定的功能的,因此,‘宣告’(或者說‘標頭檔案’)所包含的程式碼必須和實現功能的程式碼一致”,Alsup法官在做出圖書館的比喻後還這樣說過。

2008年時,Java共包括166個API, 涉及到該600個類,6000多個方法。 Google複製37個API包(package)的名稱和操作方式,但是Google用自己的程式碼對這些方法和類進行了實現。

在訴訟中,Oracle的法律顧問Mike Jacobs常說,構建API就像是進行交響樂創作,或者是,是的,就像是繪製一幅優美的畫作一樣。Alsup法官當然意識到了開發API是一種創作性行為。但是他也為這種行為加上了概念性的級別,API這樣的發明只能由專利權來保護(而不是智慧財產權)。Oralce當然也從專利權的角度進行過訴訟,但是同樣沒有成功。

Java依賴一種特殊的“詞彙表”一樣的組織形式,稱之為“方法規格說明書(method specification)”,程式設計師這通過這個說明書告訴計算機需要做什麼事情。Alsup法官表示,根據美國版權法案,無論“方法規格說明書”是如何地有創意,任何人——包括Google——都有權利使用相同的“方法規格說明書”,只要他們對“方法規格說明書”中定義的方法的實現程式碼不同。“方法規格說明只是一種‘概念’,方法本身的實現才是具體的表達。法律不能讓任何人對‘概念’進行壟斷”。Alsup法官如此寫道。

法官說,目前還沒有哪個上訴法庭或者地區法院對API受版權保護一事做出裁決。但是他也的確參照了其他的案例進行判決,包括1879年最高法院裁定Baker針對Seldon的訴訟——這是一場討論關於會計技能是否受版許可權制的官司。法院最後裁定會計記賬方法學只受專利權的約束,而不受版權的約束,因為一旦判決其受版權法約束,將會“極大挫傷出版業的積極性”。

“Baker的案例已經很久遠了,但是這個案例並不過時。相反,即便是在當代,Baker案也會被告到上訴法庭才能有最終裁定。”

他還引證了1994年蘋果公司針對微軟公司的訴訟案,1992年冠群電腦國際有限公司(Computer Associates International)針對Atari的官司,以及1985年Whelan Associates, Inc. 針對 Jaslow Dental Laboratory, Inc.的訴訟案,所有的這些案件都是關於計算的各個方面是否違反版權的。Alsup得出結論:如果一個概念有不只一種表達方式,那麼沒有人可以申請對概念本身的版權。

名稱和短語都是不受版權保護的,他說,版權保護的範圍不會延伸到任何概念,過程、程式、系統、操作方法,或者觀念——無論以任何形式。他還說,對實現互用性所必要的功能性元素不受版許可權制。這裡就包括了Java API.

從很多方面來說,Google和Oracle的官司的結果並不讓人激動。但是從某些方面來講,這個案子又遠遠超傳統的意義。該案的亮點在於,Alsup法官告訴法庭,他自己為了審案而學習了Java程式設計,這給了Oralce一記響亮的耳光,別想用技術矇蔽法官的雙眼。回顧這長達6周的訴訟,在法庭上,Alsup法官多次向雙方的律師和技術證人提出各種專業而尖銳的問題,這真是非常精彩的表現!我們信任這樣的法官!在他的裁決書裡,他甚至自己寫出了各種程式碼,來演示方法(method)、類(class)和包(package)的具體概念。並且,最後,他做出了正確的判決!

 

英文原文:Caleb Garling  編譯:伯樂線上 – 黃小非

【如需轉載,請標註並保留原文連結、譯文連結和譯者等資訊,謝謝合作!】

 

相關文章