当前位置: 首页 > 后端技术 > Java

说说JDK和SAPMachine的关系

时间:2023-04-01 20:52:59 Java

曾几何时,网上传出所谓Oracle要对Java收费的新闻。这个消息被专业人士奉为头条党,在国内很多技术论坛,比如一些社区,都有很多大神对Java收费的说法做出了非常专业的解读。OracleJava收费”关键字搜索,第一个搜索结果值得一读。本文重点介绍JDK、OracleJDK、OpenJDK和SAPJDK这几个术语的关系。JDK-JavaDevelopmentKit的软件开发工具包Java编程语言是Java开发的核心,包括Java运行环境,即JVM(JavaVirtualMachine)和Java系统类库,还有大量的工具。笔者曾与一位德国老同事聊天在SAP德国总部和CRM开发团队有20年ABAP编程经验的他讲到最近几年越来越多的SAP产品技术栈被Java取代,这个同事一直没接触过Java,好奇的问我什么是JDK,我当时给他的解释是(为了节省篇幅,作者这里就不放英文了),“想想你用SAPGUI写的ABAP代码,在C/激活后的C++。实现的ABAP运行时(runtime)也在ABAP虚拟机中。”“此外,NetweaverABAP平台提供了很多基础设施级的功能,比如用于HTTP通信的CL_HTTP_CLIENT和CL_HTTP_SERVER。ABAP中有很多这样的库。存放在BASIS包及其子包下。所以ABAPDevelopmentKit是ABAP运行时和ABAP类库的结合,JDK是Java运行时和Java类库的结合,就这么简单。”懂了笑,笔者心想,还有一件事没告诉你。相对于ABAP的ServerSide开发模式,使用Java开发企业级应用必然要在本地搭建各种开发环境。因此,Java开发者在搭建本地环境时,一定要对可能遇到的各种问题有心理准备。2015年我的朋友吴季加入SAP成都研究院时,Jerry作为他的导师,在本地搭建了一个Java开发环境,花了一周的时间搭建。在那一周里,杰里至少说了十次以下这句话:在我的电脑上没问题。OracleJDK创造了Java编程语言Sun,2009年被甲骨文以74亿美元的白菜价收购后,越来越多的Java初学者将OracleJDK等同于JDK。这也不奇怪,毕竟GoogleJDK是关键词,搜索结果最前面的页面都是www.oracle.com开头的页面:由于Oracle和SAP的关系(SAP从业者都懂),之后甲骨文的Java传出“收费”的消息,一些用过SAP的正在做Java二次开发的从业者不免紧张,但大可不必。还记得在我读本科的时候,一心要干掉Java的微软公司曾经创造了一种叫做J++的编程语言和对应的VisualJ++IDE,我身边认识的同学没有一个是在搞这门语言的。这个J++虽然和Java有相同的语法和关键字,但是它只能运行在微软的操作系统上。后来据说抄袭Java的微软被Sun告上法庭,赔了20亿美元,然后就没有了。有意思的是,后来微软发布了一封公开信:原文如下:这封信是发给OpenJDK社区的。微软首先宣布正式加入OpenJDK社区。动机之一是微软有越来越多的产品和服务需要依赖Java,比如Azure上的JavaRuntime。作为我最近在做的一个项目中使用的SAPCommerceCloudonAzure,它就是这种依赖的受益者。随后在公开信中,微软低调承认甲骨文是OpenJDK项目的领导者。自家团队加入OpenJDK社区后,会从小bug修复和功能backports入手,努力成为优秀的社区公民。果然,男主看到的也是一样的。过去,Jerry的开发团队每加入一个新产品开发大家庭,也是通过修复bug、做downports来掌握开发知识、熟悉流程。信中最后一句话:WelookforwardtoparticipatingthefutureofJava——微软也期待参与Java的未来。那么,这个OpenJDK到底是个什么东西?官网:https://openjdk.java.net/OpenJDK是Sun在2006年底为开源Java而组建的项目,OracleJDK是基于OpenJDK的商业实现。OpenJDK和OracleJDK的关系就像OpenUI5和SAPUI5、Kyma和SAPCloudPlatformExtensionFactory。如果在java-version的输出中看到HotSpot,那就是OracleJDK:onJerry'sAlibabaCloudECS,outputOpenJDK:说了这么多,跟SAP有什么关系呢?可以访问这个公共链接:https://sap.github.io/SapMach...SAPMachine是SAP基于OpenJDK构建的JDK。在前者的基础上,SAP需要对企业级应用的支持。支持性(supportability)和可靠性(reliability)等方面都得到了增强。SAPMachine可以从上面的github链接或者SAP官网下载:像SAP这样基于OpenJDK为自己的企业定制一个JDK在业界是很常见的。比如亚马逊的Corretto,源码地址:https://github.com/corretto和国内阿里巴巴的AJDK:Dragonwell可以说,阿里的方案之所以能够承受阿里双十一这种对高并发、高可用的极高要求自己的JDK在严酷场景下的测试功不可没。下面这段话来自阿里巴巴云栖社区的一个帖子:支持双11每秒17.5万笔单笔交易。阿里巴巴对JVM做了什么?早在2010年,阿里巴巴就开始基于OpenJDK6对JVM进行定制优化。这也是国内首个优化定制开源的服务器版Java虚拟机。从2015年开始,阿里巴巴JVM团队开始对OpenJDK8进行优化定制,力求在稳定性、性能优化、技术前瞻性等方面满足阿里巴巴、蚂蚁金服、菜鸟快速增长的业务需求。定制版本命名为AJDK(AlibabaJDK)。目前,淘宝、天猫、蚂蚁、菜鸟的核心应用几乎全部从OracleJDK切换到AJDK,并通过了双11的考验。希望通过本文的介绍,让大家对几种不同的JDK有一个基本的了解。总结本文从Oracle要对Java收费的消息入手,介绍几个Java初学者容易混淆的术语,JDK、OracleJDK、OpenJDK和SAPJDK的区别和联系。