"Oracle要對Java收費了,SAP基於Java技術棧的那些產品的客戶怎麼辦"
今年年初的時候,所謂“Oracle要對Java收費”的新聞,在網上傳得沸沸揚揚。這個新聞被專業人士視為標題黨,而國內眾多技術論壇,比如知乎社群上,有很多大神對“Java收費”這個說法做出了非常專業的解讀,Jerry這裡就不班門弄斧了,Bing搜尋引擎根據“Oracle Java收費”的關鍵字搜尋,第一條搜尋結果就值得閱讀。
Jerry本文想掃盲的重點,是介紹JDK,Oracle JDK, Open JDK和SAP JDK這幾個名詞的關係。
JDK - Java Development Kit
Java程式語言的軟體開發工具包,是Java開發的核心,包含了Java執行環境即JVM(Java Virtual Machine)和Java系統類庫,以及大量工具。
Jerry以前在SAP德國總部和CRM開發團隊一位擁有20年ABAP程式設計經驗的德國老同事閒聊,談到近些年來越來越多的SAP產品技術棧換成了Java,這位同事從沒接觸過Java,好奇地問我啥是JDK.
我當時給他的解釋是(為了節省篇幅,Jerry這裡就不放英文了),“想想你在SAPGUI裡編寫的ABAP程式碼,啟用後執行在C/C++實現的ABAP執行時(runtime)也就是ABAP虛擬機器裡。”
“另外,Netweaver ABAP平臺提供了很多基礎設施層面的功能,比如用於HTTP通訊的CL_HTTP_CLIENT和CL_HTTP_SERVER, ABAP裡有很多這種類庫,都儲存在BASIS這個包和它的子包下面。所以ABAP Development Kit就是ABAP執行時和ABAP類庫的組合,而JDK就是Java執行時和Java類庫的組合,就這麼簡單。”
看到德國同事露出了理解後的笑容,Jerry心想,有一點我沒告訴你,和ABAP這種Server Side的開發模式相比,用Java開發企業級應用免不了在本地搭各種開發環境,因此Java開發人員要有在本地搭環境時可能會遇到各種各樣問題的心理準備。當初Jerry的朋友吳脊老師2015年加入SAP成都研究院時,Jerry作為他的導師,一起在本地搭一個Java開發環境,最後花了一週的時間才搭好。在那一週的時間裡,下面這句話,Jerry說了起碼不下十次:
在我電腦上是好的。
Oracle JDK
建立了Java程式語言的Sun公司,於2009年以74億美元的白菜價被Oracle收購之後,越來越多的Java初學者將Oracle JDK等同為JDK. 這並不奇怪,畢竟Google JDK關鍵字,位於搜尋結果前列的全是 開頭的頁面:
由於Oracle和SAP的關係(SAP從業者都懂的),在Oracle旗下的Java傳出“要收費”的訊息後, 一部分使用Java進行二次開發的SAP從業者們心裡不免感到緊張,其實大可不必。
Jerry本科的時候,一心想幹掉Java的微軟曾經搞出一個叫做J++的程式語言,以及對應的Visual J++這個IDE. 不過當時Jerry就讀的電子科大計算機學院的程式設計課全用的C/C++,我周圍認識的同學們也沒人搗鼓這個語言。這個J++雖然有著和Java相同的語法和關鍵字,但是隻能執行在微軟的作業系統上,後來據說山寨了Java的微軟被Sun告了,賠了20億美元,然後就沒有然後了。
有意思的是,剛剛過去的十月末,微軟釋出了一封 公開信:
原文如下:
這封信是發給Open JDK社群的,微軟首先宣佈自己正式加入Open JDK社群,動機之一是因為微軟有越來越多的產品和服務需要依賴於Java, 比如Azure上的Java Runtime. 正如Jerry最近工作的一個專案用到的SAP Commerce Cloud on Azure,就是這種依賴的受益者。
接著微軟在公開信中,低調地承認Oracle是Open JDK專案的大佬,自己的團隊加入Open JDK社群後,會從小bug修復和功能backport入手,努力成為一名社群好公民。果然英雄所見略同,以前Jerry的開發團隊每當加入一個新產品的開發大家庭之初,也是透過修bug和做downport來掌握開發知識和熟悉流程的。
信中最後一句話:We look forward to participating in the future of Java —— Java的未來,微軟也期望參與其中。
所以,這個Open JDK到底是什麼鬼?
Open JDK是Sun在2006年末把Java開源而形成的專案,而Oracle JDK是基於Open JDK的商業實現。Open JDK和Oracle JDK的關係,好比Open UI5和SAP UI5, Kyma和SAP Cloud Platform Extension Factory一樣。
java -version的輸出如果看到出現了HotSpot,說明是Oracle JDK:
而Jerry的阿里雲上,輸出則是Open JDK:
說了這麼多,和SAP有啥關係?
大家可以訪問這個公網 連結.
SAPMachine,是一個SAP基於Open JDK打造的JDK,在前者的基礎上,SAP針對企業級應用需要的可支援性(supportability)和可靠性(reliability)等方面做了增強。
SAPMachine既可以在上述github連結裡下載,也可以在SAP 官網下載:
像SAP這樣基於Open JDK之上為自己的企業量身定做一個JDK出來的做法在業界非常普遍。
比如亞馬遜的Corretto,原始碼地址:
還有國內阿里巴巴的AJDK: Dragonwell
可以說阿里的解決方案之所以能經受諸如雙十一這樣對高併發高可用性要求極高的嚴酷場景下的考驗,阿里自己的JDK功不可沒。
下面一段話來自阿里雲棲社群一篇帖子:
支撐雙11每秒17.5萬單事務 阿里巴巴對JVM都做了什麼?
最早從2010年,阿里巴巴就開始了基於OpenJDK6的JVM定製最佳化工作,這也是國內第一個最佳化、定製且開源的伺服器版Java虛擬機器。2015年開始,阿里巴巴JVM團隊開始著手在OpenJDK8進行最佳化和定製工作,力求在穩定性,效能最佳化,以及技術前瞻性方面,滿足阿里巴巴,螞蟻金服,以及菜鳥快速發展的業務需求。定製的版本被命名為AJDK(Alibaba JDK),目前淘寶、天貓,螞蟻,菜鳥,幾乎所有的核心應用都從Oracle JDK切換到了AJDK上,並經過了雙11的考驗。
希望透過本文的介紹,大家能夠對幾種不同的JDK有一個最基本的瞭解。對於本文題目引號中的偽命題,相信大家心中已經有答案了。
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2662638/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於 Hybris (SAP Commerce Cloud)產品的客戶群Cloud
- 「SAP技術」SAP MM 委外加工採購流程裡副產品的收貨
- JavaFX及Java客戶端技術的未來Java客戶端
- 基於java的客戶關係管理系統Java
- 基於CMPP2.0的Socket客戶端(Java) - JAVA程式語言客戶端Java
- 技術人怎麼“打通”產品業務?
- 不懂技術的產品經理該怎麼做?
- 甲骨文Java SE平臺的四種產品形式(區分免費與收費)Java
- 技術分享 | undo 太大了怎麼辦
- 基於 Scala 的產品開發實踐 | 掘金技術徵文
- SAP產品增強技術回顧
- 產品經理要懂多少技術?
- 產品經理要懂多少技術
- java培訓收費標準是怎樣的Java
- Java要怎麼自學?Java
- [技術討論]軟體的產品、技術、標準對話
- 怎麼識別Oracle客戶端、資料庫、Java在WIN上是多少位的Oracle客戶端資料庫Java
- 為什麼 elasticsearch 的 JDBC 要收費ElasticsearchJDBC
- 品鈦產品技術怎麼樣,品鈦RPA大放異彩
- Java基礎7:關於Java類和包的那些事Java
- 客戶需求 產品原型 上線效果 對比圖原型
- 基於 Go 技術棧的微服務構建Go微服務
- SAP Emarsys 的前後臺技術棧
- 產品技術團隊怎麼搭 原QQ安全產品人告訴你
- 基於Grafana和Prometheus的監視系統(3):java客戶端使用GrafanaPrometheusJava客戶端
- 關於 SAP Enterprise Portal 的前後端技術棧後端
- 基於色鍵技術的純客戶端實時蒙版彈幕客戶端
- 面試了 Hypref 技術棧的公司面試
- zookeeper的Java客戶端APIJava客戶端API
- Java要怎麼入門?初學者要怎麼學?Java
- 親愛的Oracle: Java API不是藝術品OracleJavaAPI
- 資料產品:CDP(客戶資料平臺)必備的產品能力
- 吃人的那些 Java 名詞:物件、引用、堆、棧Java物件
- SpringBoot競爭對手來啦:紅帽Linux加入基於Kubernetes原生的Quarkus Java技術棧 - infoworldSpring BootLinuxJava
- 線上圓桌 | 對於技術寫作,你有什麼要說的?
- 天塌了:Oracle 或許要在 2017 年對 Java SE 收費OracleJava
- Java技術轉(兼顧)產品經理——讀《快速轉行做產品經理》有感Java
- 我的那些年(12)~公司技術轉行,我也跟著轉到java了Java