文章專區

2018-08-01是誰讓Oracle可以拿9列程式碼的著作權 到處濫收保護費? 440 期

Author 作者 洪朝貴/朝陽科大資管系副教授、軟體自由協會理事。
美國的資料庫大廠Oracle看到安卓(Android)作業系統生態系幫Google賺了不少錢,便控告Google侵權,並求償90億美元。初審時法官判定Google並未侵權,但在最近的上訴法庭卻逆轉,Google被判敗訴。Oracle不僅讓Google賠錢,也挾著勝訴的氣勢準備對其它(非資訊產業的) 企業大撈授權費,而其中就有許多臺灣企業「挫勒等」。身為程式設計師,看了這樣的判決及後續效應, 覺得快要吐血。
 

用源頭技術索償,可惡至極


事情得從Java程式語言開始說起,昇陽公司(Sun Microsystems)於1996年左右釋出Java程式語言,這家開放、技術能力高的公司早在雲端炒作出現前,就實現了雲端運算,其於1996年打的廣告「The Network is the Computer」其實就是現在所說的SaaS,而多年後Google所收購的開發Android作業系統,其採用的開發工具就是Java程式語言。不幸的是,Oracle於2010年將昇陽買下,而java程式語言也就從Google的搖錢樹變成法律夢魘。此前,昇陽所開發的許多技術,都以開放原始碼或至少以開放介面的方式釋出,當年Google想跟昇陽談授權未果,便自己重寫Java,但為了跟Oracle的Java相容,Google必須採用Oracle的java應用程式介面(Application Programming Interface, API),而這也成為Oracle控告Google的依據。
 

憑什麼把相互往來的管道據為己有?


其實,讀者並不需要會寫程式,也能理解何謂 API。
舉例來說,牆壁上的電源插座就是電力供應的 API, 接觸的兩隻腳距離要多遠、電壓是多少、頻率是多少都經供電方與用電方同意;提款機的提款卡插入口也是提款∕查詢服務的API,而提款卡的寬度、厚度、晶片位置、傳遞的資訊等這都有固定的數值,是業界大家共同遵守的共識。此外,電腦跟電視、投影機間的VGA接口或HDMI接口即影像傳輸的API,而USB接頭就是電腦跟週邊設備(鍵盤、滑鼠、無線網卡、網路攝影機等)之間的 API。 
 
API 是一個共通的介面,也是一種微型的語言,其讓參與溝通的眾多廠商及不同品牌型號的產品可以溝通、交換資訊。API 既不屬於臺電、也不屬於任何一家家電業者,更非任何一家銀行或任何一家電腦公司所獨有,它是大家溝通時共用的語言。試想,如果VGA接口或HDMI接口的規格屬於某家公司所獨有,那麼任何廠商想要生產投影機、螢幕、可外接螢幕的電腦等都必須獲得這家公司的授權;也就是說,掌握API就等同主導了這整個市場的生殺大權。既然只有付得起高昂授權費的廠商才有能力進入這個市場,到最後這個市場會變得消沉不活絡、失去競爭,而消費者最明顯的感受將會是昂貴且欠缺多樣選擇的終端產品,進而被少數(很可能只有一家,就是「擁有」API 的這家)公司所綁架。
 
相較於發電廠、各種需要吃電的複雜電器設備或提款機內部電路,API不過是一個小小的接口,其複雜度幾近於零。隨便找一個用C或 C++語言所寫的程式,比較一下*.h程式碼(API)與*.c、*.cpp或*.c++程式碼實作部分(implementation)的份量,就可以具體地粗估這「趨近於零」的數字。
 

自由軟體與數位版權管理

 

自由軟體之父史托曼(Richard M. Stallman)在設計GPL授權(GNU General Public License,即GNU 通用公共授權條款)捍衛自由軟體延續性的時候,還多設計了一個約束力較小的LGPL(GNU Lesser General Public License), 就是為了要讓專屬軟體可以採用自由軟體的API,而不需要跟著把自寫的專屬軟體程式碼釋放出來,他知道支持GPL需要理念;然而對於那些想受惠於自由軟體但又不想回饋的廠商來說,LGPL比較可以接受。
 
另一方面,即使是專屬軟體的著作權人間也經常需要靠API來溝通,如製定網頁標準的全球資訊網協會(World Wide Web Consortium, W3C),去(2017)年宣佈將加密媒體擴充功能(Encrypted Media Extensions, EME)列為W3C所推薦的「標準」,進而引發公憤。這個標準,就是一種數位版權管理(Digital Rights Management, DRM,筆者主張稱它為遙控數位枷鎖)領域的API,它讓各家數位內容廠商可以透過相同的接口入侵瀏覽器,並在瀏覽器裡植入程式碼,讓數位內容廠商可以遙控該瀏覽器,言下之意就是從遠端決定要施捨用戶多少自由、對其閱聽行為進行多少限制等,沒有哪一家白癡公司會主張對EME擁有著作權。
 
從自由軟體到瀏覽器DRM(光譜上的兩個極端),任何稱職的程式設計師都知道API扮演的是一個溝通用的介面,不該成為智慧財產權保護的對象。倘若API被列為智慧財產權保護的對象,開發應用程式就成為處處可能踏到法律地雷的高風險違法行業,這也是為什麼蘋果共同創辦人沃茲尼克(Steve Wozniak)、C++之父史卓司查普(Bjarne Stroustrup)、Unix作業系統之父湯普森(Ken Thompson)、Minix作業系統之父塔南鮑姆(Andrew Tanenbaum)、Linux作業系統之父托瓦茲(Linus Torvalds)、Smalltalk程式語言之父凱(Alan Kay)與電腦界其他許多大咖透過法庭之友機制在本案當中力挺Google的原因,並向法院解說為何API不該被著作權保護。
 
假使有程式設計師還主張著作權可以保護用來讓兩個程式接口的API,不如乾脆加碼主張他嘴巴碰過的碗以及屁股坐過的馬桶等等任何跟他身上的洞口對接過的東西也通通都侵犯他的著作權吧!相信這位拒聽專家建言的白癡法官,也一定會力排眾議跟他站在同一陣線的。
 

開發的美意,卻成要脅工具


API不該被著作權保護、基於API的侵權判決是智障判決;但除了API之外,Google在其他方面難道沒有侵權?有,但就只有9列極其簡單的程式碼,其程度大約適合作為Java初學者認識該語言例外處理(exception)機制的教科書。從我們的角度來看,這就是Oracle勉強能拿來坑殺顧客的「智慧」財產依據,也是讓Google欠Oracle 90億美元的偉大「創意、創新、發明」。第一審的法官埃爾蘇(William H. Alsup)為了理解大家的說法,還認真地自學寫程式,最後判Google勝訴,但是上訴法庭的白癡法官就沒這麼認真做功課了。 關心電子資訊產品消費者權益的電子先鋒基金會(Electronic Frontier Foundation, EFF)有一個專頁詳細整理了這個事件的來龍去脤。除了上述電腦專家之外,還有微軟∕紅帽∕HP、手機 App程式開發者聯盟、開發火狐瀏覽器的Mozilla、智慧財產權教授群、電腦與通訊行業協會(Computer and Communications Industry Association, CCIA)等團體也都透過法庭之友機制,在本案中力挺 Google。
 
雖然這個判決的受害者主要是Java用戶;但資料庫被Oracle綁架的公司更多。 而仗著9列侵權程式碼向Google敲詐90億美元的Oracle是怎麼樣的一家公司呢?只要搜尋「Oracle threaten customer、Oracle extort customer」或是比較中性的「Oracle customer tactics、Oracle customer audit」就知道答案。Oracle對付客戶的策略向來就是綁架他的資料,然後在續約時才祭出昇陽創辦人麥可尼利(Scott McNealy)所稱高昂的「barrier of exit」,筆者翻譯為「下賊船的代價」,此舉讓客戶驚覺該產品已深入公司基礎建設。想要改用其它廠牌的產品?別傻了,這條路昂貴到根本走不通。言下之意就是要照Oracle開的價格付費,否則使用者的企業就會死得很難看。
 
近年來,Oracle開始搶雲端商機,儘管他們的雲端服務彈性遠不及Amazon或Google,價格又更昂貴許多,但只要 Oracle要求進行軟體授權稽核(software licensing audit),客戶在恐嚇之下就不得不簽約使用Oracle的雲端服務。簡單來說,Oracle的專長不是技術或服務品質,而是簽合約;它採取的手段不是提供誘因,而是威脅,也就是透過軟體授權稽核逼用戶越陷越深。然而,客戶們通常因為採購的授權不足、法律上自知理虧,所以沒人敢站出來大聲反抗,也因而無法彼此交流經驗、共同找出對抗Oracle的策略。這個情境和那些被黑道用毒品控制住的受害者有沒有很像?與Oracle的作風對照,現在回頭再看那些「只收你一次錢就滿足的勒贖軟體」,後者簡直就是慈悲為懷的大善人。
 

在學會寫程式前,得先學會理解處境


所有用到Oracle任一種產品的使用者都應該覺醒了,而最重要的第一步就是理解麥可尼利所說的barrier of exit。當年Oracle買下昇陽時,他就給了這個超級重要,卻被主流資訊教育體系及資訊產業所忽略的6分鐘演講,即便他拿IBM的資料庫系統DB2作例子,但其實一樣適用於Oracle的資料庫, 現在竟也出人意表地適用於被Oracle搞爛掉了的Java。不只資訊長,這些觀念對於不寫程式的老闆來說,也需要通曉一二,這比全民寫程式更重要。
 
事實上,筆者在每個學期的通識課裡,都會考考學生這個概念,因為這就像是每一位公民需要知道詐騙集團的手法或毒品的危害一樣重要:戒毒很痛苦,但只痛一次;不戒的話,就痛一輩子。「跳下賊船」不是喊跳就馬上能跳的,而是逐步穩健地走,才能邁向自由,但若不起頭,就只能永遠當Oracle的奴隸,直到公司或國家降旗收攤不再做生意的那一天為止。
 
延伸閱讀
1. Electronic Frontier Foundation, Oracle v. Google, https://goo.gl/8W68rY, May 22, 2013.
2. 洪朝貴,Scott McNealy談資訊科技轉換跑道的成本(下賊船的代價),https://goo.gl/TS2yGr,2014年10月5日。