"Oracle要对Java收费了,SAP基于Java技术栈的那些产品的客户怎么办"

今年年初的时候,所谓“Oracle要对Java收费”的新闻,在网上传得沸沸扬扬。这个新闻被专业人士视为标题党,而国内众多技术论坛,好比知乎社区上,有不少大神对“Java收费”这个说法作出了很是专业的解读,Jerry这里就不班门弄斧了,Bing搜索引擎根据“Oracle Java收费”的关键字搜索,第一条搜索结果就值得阅读。html

Jerry本文想扫盲的重点,是介绍JDK,Oracle JDK, Open JDK和SAP JDK这几个名词的关系。java

JDK - Java Development Kit

Java编程语言的软件开发工具包,是Java开发的核心,包含了Java运行环境即JVM(Java Virtual Machine)和Java系统类库,以及大量工具。git

Jerry之前在SAP德国总部和CRM开发团队一位拥有20年ABAP编程经验的德国老同事闲聊,谈到近些年来愈来愈多的SAP产品技术栈换成了Java,这位同事从没接触过Java,好奇地问我啥是JDK.github

我当时给他的解释是(为了节省篇幅,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关键字,位于搜索结果前列的全是www.oracle.com开头的页面:并发

因为Oracle和SAP的关系(SAP从业者都懂的),在Oracle旗下的Java传出“要收费”的消息后, 一部分使用Java进行二次开发的SAP从业者们内心难免感到紧张,其实大可没必要。oracle

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究竟是什么鬼?

官网:openjdk.java.net/

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,源代码地址:

github.com/corretto

还有国内阿里巴巴的AJDK: Dragonwell

能够说阿里的解决方案之因此能经受诸如双十一这样对高并发高可用性要求极高的严酷场景下的考验,阿里本身的JDK功不可没。

下面一段话来自阿里云栖社区一篇帖子:

支撑双11每秒17.5万单事务 阿里巴巴对JVM都作了什么?

最先从2010年,阿里巴巴就开始了基于OpenJDK6的JVM定制优化工做,这也是国内第一个优化、定制且开源的服务器版Java虚拟机。2015年开始,阿里巴巴JVM团队开始着手在OpenJDK8进行优化和定制工做,力求在稳定性,性能优化,以及技术前瞻性方面,知足阿里巴巴,蚂蚁金服,以及菜鸟快速发展的业务需求。定制的版本被命名为AJDK(Alibaba JDK),目前淘宝、天猫,蚂蚁,菜鸟,几乎全部的核心应用都从Oracle JDK切换到了AJDK上,并通过了双11的考验。

但愿经过本文的介绍,你们可以对几种不一样的JDK有一个最基本的了解。对于本文题目引号中的伪命题,相信你们心中已经有答案了。

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

相关文章
相关标签/搜索