Oracle要对Java收费了,SAP基于Java技术栈的那些产品的客户怎么办
今年年初的時候,所謂“Oracle要對Java收費”的新聞,在網(wǎng)上傳得沸沸揚揚。這個新聞被專業(yè)人士視為標題黨,而國內(nèi)眾多技術(shù)論壇,比如知乎社區(qū)上,有很多大神對“Java收費”這個說法做出了非常專業(yè)的解讀,Jerry這里就不班門弄斧了,Bing搜索引擎根據(jù)“Oracle Java收費”的關(guān)鍵字搜索,第一條搜索結(jié)果就值得閱讀。
Jerry本文想掃盲的重點,是介紹JDK,Oracle JDK, Open JDK和SAP JDK這幾個名詞的關(guān)系。
JDK - Java Development Kit
Java編程語言的軟件開發(fā)工具包,是Java開發(fā)的核心,包含了Java運行環(huán)境即JVM(Java Virtual Machine)和Java系統(tǒng)類庫,以及大量工具。
Jerry以前在SAP德國總部和CRM開發(fā)團隊一位擁有20年ABAP編程經(jīng)驗的德國老同事閑聊,談到近些年來越來越多的SAP產(chǎn)品技術(shù)棧換成了Java,這位同事從沒接觸過Java,好奇地問我啥是JDK.
我當時給他的解釋是(為了節(jié)省篇幅,Jerry這里就不放英文了),“想想你在SAPGUI里編寫的ABAP代碼,激活后運行在C/C++實現(xiàn)的ABAP運行時(runtime)也就是ABAP虛擬機里。”
“另外,Netweaver ABAP平臺提供了很多基礎(chǔ)設(shè)施層面的功能,比如用于HTTP通信的CL_HTTP_CLIENT和CL_HTTP_SERVER, ABAP里有很多這種類庫,都存儲在BASIS這個包和它的子包下面。所以ABAP Development Kit就是ABAP運行時和ABAP類庫的組合,而JDK就是Java運行時和Java類庫的組合,就這么簡單。”
看到德國同事露出了理解后的笑容,Jerry心想,有一點我沒告訴你,和ABAP這種Server Side的開發(fā)模式相比,用Java開發(fā)企業(yè)級應(yīng)用免不了在本地搭各種開發(fā)環(huán)境,因此Java開發(fā)人員要有在本地搭環(huán)境時可能會遇到各種各樣問題的心理準備。當初Jerry的朋友吳脊老師2015年加入SAP成都研究院時,Jerry作為他的導(dǎo)師,一起在本地搭一個Java開發(fā)環(huán)境,最后花了一周的時間才搭好。在那一周的時間里,下面這句話,Jerry說了起碼不下十次:
在我電腦上是好的。
Oracle JDK
創(chuàng)建了Java編程語言的Sun公司,于2009年以74億美元的白菜價被Oracle收購之后,越來越多的Java初學(xué)者將Oracle JDK等同為JDK. 這并不奇怪,畢竟Google JDK關(guān)鍵字,位于搜索結(jié)果前列的全是www.oracle.com開頭的頁面:
由于Oracle和SAP的關(guān)系(SAP從業(yè)者都懂的),在Oracle旗下的Java傳出“要收費”的消息后, 一部分使用Java進行二次開發(fā)的SAP從業(yè)者們心里不免感到緊張,其實大可不必。
Jerry本科的時候,一心想干掉Java的微軟曾經(jīng)搞出一個叫做J++的編程語言,以及對應(yīng)的Visual J++這個IDE. 不過當時Jerry就讀的電子科大計算機學(xué)院的編程課全用的C/C++,我周圍認識的同學(xué)們也沒人搗鼓這個語言。這個J++雖然有著和Java相同的語法和關(guān)鍵字,但是只能運行在微軟的操作系統(tǒng)上,后來據(jù)說山寨了Java的微軟被Sun告了,賠了20億美元,然后就沒有然后了。
有意思的是,剛剛過去的十月末,微軟發(fā)布了一封公開信:
原文如下:
這封信是發(fā)給Open JDK社區(qū)的,微軟首先宣布自己正式加入Open JDK社區(qū),動機之一是因為微軟有越來越多的產(chǎn)品和服務(wù)需要依賴于Java, 比如Azure上的Java Runtime. 正如Jerry最近工作的一個項目用到的SAP Commerce Cloud on Azure,就是這種依賴的受益者。
接著微軟在公開信中,低調(diào)地承認Oracle是Open JDK項目的大佬,自己的團隊加入Open JDK社區(qū)后,會從小bug修復(fù)和功能backport入手,努力成為一名社區(qū)好公民。果然英雄所見略同,以前Jerry的開發(fā)團隊每當加入一個新產(chǎn)品的開發(fā)大家庭之初,也是通過修bug和做downport來掌握開發(fā)知識和熟悉流程的。
信中最后一句話:We look forward to participating in the future of Java —— Java的未來,微軟也期望參與其中。
所以,這個Open JDK到底是什么鬼?
官網(wǎng):https://openjdk.java.net/
Open JDK是Sun在2006年末把Java開源而形成的項目,而Oracle JDK是基于Open JDK的商業(yè)實現(xiàn)。Open JDK和Oracle JDK的關(guān)系,好比Open UI5和SAP UI5, Kyma和SAP Cloud Platform Extension Factory一樣。
java -version的輸出如果看到出現(xiàn)了HotSpot,說明是Oracle JDK:
而Jerry的阿里云上,輸出則是Open JDK:
說了這么多,和SAP有啥關(guān)系?
大家可以訪問這個公網(wǎng)鏈接.
SAPMachine,是一個SAP基于Open JDK打造的JDK,在前者的基礎(chǔ)上,SAP針對企業(yè)級應(yīng)用需要的可支持性(supportability)和可靠性(reliability)等方面做了增強。
SAPMachine既可以在上述github鏈接里下載,也可以在SAP官網(wǎng)下載:
像SAP這樣基于Open JDK之上為自己的企業(yè)量身定做一個JDK出來的做法在業(yè)界非常普遍。
比如亞馬遜的Corretto,源代碼地址:
https://github.com/corretto
還有國內(nèi)阿里巴巴的AJDK: Dragonwell
可以說阿里的解決方案之所以能經(jīng)受諸如雙十一這樣對高并發(fā)高可用性要求極高的嚴酷場景下的考驗,阿里自己的JDK功不可沒。
下面一段話來自阿里云棲社區(qū)一篇帖子:
支撐雙11每秒17.5萬單事務(wù) 阿里巴巴對JVM都做了什么?
最早從2010年,阿里巴巴就開始了基于OpenJDK6的JVM定制優(yōu)化工作,這也是國內(nèi)第一個優(yōu)化、定制且開源的服務(wù)器版Java虛擬機。2015年開始,阿里巴巴JVM團隊開始著手在OpenJDK8進行優(yōu)化和定制工作,力求在穩(wěn)定性,性能優(yōu)化,以及技術(shù)前瞻性方面,滿足阿里巴巴,螞蟻金服,以及菜鳥快速發(fā)展的業(yè)務(wù)需求。定制的版本被命名為AJDK(Alibaba JDK),目前淘寶、天貓,螞蟻,菜鳥,幾乎所有的核心應(yīng)用都從Oracle JDK切換到了AJDK上,并經(jīng)過了雙11的考驗。
希望通過本文的介紹,大家能夠?qū)追N不同的JDK有一個最基本的了解。對于本文題目引號中的偽命題,相信大家心中已經(jīng)有答案了。
要獲取更多Jerry的原創(chuàng)文章,請關(guān)注公眾號"汪子熙":
總結(jié)
以上是生活随笔為你收集整理的Oracle要对Java收费了,SAP基于Java技术栈的那些产品的客户怎么办的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《红霞岛》游戏发布 Devinder 角
- 下一篇: PingPong获得英国电子货币机构(E