曾經的「免費」卻成了現在的「昂貴」, 一場世紀官司將會導致Java不再免費的命運嗎?
違反Java授權規範?Google於今年正式敗訴對我們會有什麼影響嗎?
在2018年3月時,Java推出了全新版本的Java 10,並停止了Java 9的免費更新支援,但你以為這是Oracle(甲骨文) JAVA佈局最新的一步棋嗎? 根據英國報導(英國科技媒體The Register),同樣在2018年3月,甲骨文公司利用「違反Java授權規範」的理由,已經針對部份用戶提出支付授權金的通知。
這時候我相信你們心中一定有一個大疑問「Java不是免費嗎?」沒錯,昔日的免費,也可能因為商業環境及利益糾葛下,瞬間變成要求支付巨額的洪水猛獸。
這必須先從Java的小歷史開始介紹起了,在1990年初,Sun Microsystems(中文稱昇陽科技或昇陽電腦,以下簡稱昇陽公司),開發出了Java的雛形Oak,並應用在小型家電的通訊與控制上,例如烤麵包機、電視等。隨著網路應用的飛快發展,於是在1995年,Oak正式更名為Java重新出道。
與傳統的程式語言型態大不相同,昇陽公司在推出Java時,就引入了開源性(Open Source),並要求全世界的開發公司,若是有使用Java語言設計的軟體,必須要相互相容,而這與昇陽公司「Java語言靠群體的力量,而非公司的力量」的口號正好吻合,也因此獲得了廣大軟體開發公司的認同。
在2009年時,Oracle公司宣布以每股9.5美元,總計約高達74億美元的價格收購了昇陽公司,這一切看似美好的收購消息,卻沒有讓昇陽公司得到了明顯的收益,而昇陽公司除了Java外,旗下還有許多產品如Solaris 系統、SPARC CPU 晶片、ZFS 檔案系統等,在收購後也並未看見起色。
而過去Java 曾有過三大平台:一是針對一般電腦平台開發的 Java Standard Edition (Java SE)、二是針對伺服器開發的 Java EE、針對手持與智慧裝置的 Java Mobile Edition (Java ME),最早在2007前智慧型手機問世後, Java ME 就逐漸衰微沒落,而在Oracle宣布釋出Java EE後,更可以看到Java的式微與凋謝。
在2017年1月,Oracle更是因為全球裁員浪潮,裁撤了許多員工,其中也不乏資深員工,8 月 17 日 Oracle 公司也終於宣布將把 Java EE 捐贈給開源組織。到了2017年9月,Solaris、SPARC 部門的員工幾乎全被裁員,總計高達約964 人離開了前昇陽公司的總部,似乎為從前輝煌的時代,劃下了無情的句點。而這也似乎意味著併購案最慘烈的下場。
從這些歷史回顧來解讀,大部分人都認為Oracle公司並無心認真發展Java的產品價值,反而是把昇陽買下來後,把重心放在Java專利權益上,利用專利權來打訴訟官司,在2012年,一場世紀官司就在此誕生了。
「Oracle控告Google Android侵犯Java專利」
當初在2012年,大家都看好Android成為新的智慧型手機龍頭,而2012年也正是互聯網起飛的年代,為了行動裝置以及嵌入式裝置,Google選定Java語言為開發工具,並在虛擬主機上使用了Dalvik Virtual Machine,目的就是為了避開昇陽公司開發的Java Virtual Machine專利,但由於Dalvik Virtual Machine仍然會處理到Java的Java bytecode,而Oracle看上了這一點提出了告訴
而另外一個重點是Android對Java Class Library的使用,Oracle聲稱Google Android所使用的Java Class Library,來源都為Java SE,所以在處理上Google都有侵犯到Oracle的專利,並索賠90億元。
但不對阿,Java不是開源軟體嗎?
從Oracle的立場來看,儘管過去昇陽公司聲稱開源,但從GPLv2的條文來看,昇陽亦稱Java技術為其擁有,所以在過去的Java ME上,都有像開發商收取權利金的議題,儘管Google特別開發了Dalvik Virtual Machine,但仍避不開挨告的命運,但當然Google也不是小咖,也表示Java語言在開源運動以及開放社群中的重要性
一路官司迄今,變化莫測
Oracle其中也聲稱 Java SE 的免費僅在general purpose computing(通用運算)上,例如桌機、筆電..等,但如果使用在「具備智慧系統中的嵌入式裝置電腦」,就不能算是免費的範疇。此外,Oracle更認定 Google 在建立 Android 的作業系統時,因為Java Class Library 正是來自於 Java SE,而Google透過使用總計37 個 Java API並有獲利事實,故仍涉侵權。
這邊的寫法有些瑕疵,Oracle告得成的確包含Java Class Library 來自於 Java SE與Java API並有獲利事實。但是真正違反的Oracle規定的不是這個原因。而是Google翻寫了Java基礎的Library。
大家可以想想看,有時候手機系統升級,某些程式就掛掉了,或是突然變得超慢。這是有可能是因為API的內容改變了。通常官方的API 會告訴你有什麼輸入值,有什麼輸出值,保證會有什麼結果。但是他怎麼實作的通常都不保證,原因是他要保留空間彈性。比方說他可以在某一個API實作裡面,一次升級把內容從「同步」改成「非同步」來加快速度。但是如果你是開發者,就有可能陷入非同步執行緒競爭的情境中,導致改版後系統變快但是你的APP卻不正常(這是比較極端一點的例子,通常不會這樣)。
所以Google無法把JAVA系統最底層的基礎類別讓Oracle來維護。這樣等於是一直有機會讓Oracle塞炸彈在Android裡面。所以他自己做了等於是「盜版」的Library (Oracle說誰是盜版就是盜版)。這場仗其實是在打翻寫API是不是盜版這件事。如果從這個概念上來看的話,Google確實會輸。
2021 年更新:
Google 雖然在前面的官司敗訴,但持續上訴後的結果於 2021 最後一場官司,因為法官認為判定若此案由 Oracle 勝訴的話會成為[未來限制新應用的枷鎖],最後經由法律程序表決為 Google 勝訴。
不過最後小編還是要提醒一下大家,法律上的攻防並不是那麼單純。Google 的勝訴並不代表以後 JAVA 都是無限制的免費商用,在商業情境下使用 Oracle 的JAVA JDK 還是要先了解其條款與收費項目, Google 的官司主要是針對 Andorid 上的 OpenJDK。
根據小編了解,並參考工商日報的報導,目前全世界合法使用 Oracle Java SE的廠商,必須要完成下面條件,才算正規合法授權的用戶
1. 廠商通過嚴格的Oracle Technology Compatibility Kit 的認證機制
2. 購買合法授權並簽署過 Oracle Java Binary License and Redistribution Agreement,才可符合官方授權並可進行銷售的廠商,也可以在產品上放上Java 的 Logo。
參考來源:https://m.ctee.com.tw/industrynews/2/43367
未來,只要可以在官網上看到Java的Logo字樣,都有可能變成Oracle追討的現象,像是有些銀行業者的網路ATM服務,需要透過安裝Java Virtual Machine (JVM)進行操作,也是屬於追討範疇之一,另外有些公部門的網站也會放上Java 的Logo,這也是未來急需避免的狀況。
但不論後續的官司案件如何發展,這些都對軟體開源運動投下一枚震撼彈,而未來我們在執行專案的開發上,也將會更為拘束。所以記得即時檢視一下自己的專案或產品,這些 Java 元件是否也有侵權的風險,僅管對 Oracle 是蠅頭小利,但也要學會跟上浪潮,適時保護自己
最後,如果你喜歡我們的文章,別忘了到我們的FB粉絲團按讚喔!!