進度條

曾經的「免費」卻成了現在的「昂貴」, 一場世紀官司將會導致Java不再免費的命運嗎?

違反Java授權規範?Google於今年正式敗訴對我們會有什麼影響嗎?

作者: Vincent Ke 更新日期:

在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確實會輸。

 

 

 

 

 

 

最後,Google於今年正式敗訴了。 原因為Googel Android 免費使用,但非意謂著 Java API是具備非商業性的屬性,而只要免費提供客戶原本要花錢買的東西,就屬商業行為。更有專家指出,當企業或團隊以 Java 執行作出的應用程式,並有使用者透過使用該產品獲得服務或獲利時,就不算「通用運算」的範疇了

 

 

根據小編了解,並參考工商日報的報導,目前全世界合法使用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粉絲團按讚喔!!

Medium vincent

Vincent Ke

喜歡把混亂的事情變的簡單 用嘴巴做事其實很可以 但要結合靈活的腦袋思考 就一起來拆解吧