专栏名称: 聊聊架构
在这里煮酒聊架构。
目录
相关文章推荐
夕小瑶的卖萌屋  ·  RAG 架构图解:从基础到高级的7种模式 ·  昨天  
夕小瑶的卖萌屋  ·  RAG 架构图解:从基础到高级的7种模式 ·  昨天  
架构师之路  ·  预防DNS劫持+IP直通车优化 | ... ·  2 天前  
架构师之路  ·  谁能告诉我:软件测试到底有没有出路? ·  2 天前  
架构师之路  ·  分布式系统一致性为什么难做? | ... ·  3 天前  
架构师之路  ·  PHP使用local-proxy的一种思路! ... ·  4 天前  
51好读  ›  专栏  ›  聊聊架构

Gartner有关Java EE正在消亡的报告是否太言过其实了?

聊聊架构  · 公众号  · 架构  · 2017-01-11 09:35

正文

Gartner发布了一份分析报告“应用程序平台市场指南”。在应用程序平台市场的“明显转变”部分,该报告指出,Java EE的“收入下滑”。这份报告迅速被Java EE的主要竞争对手Pivotal拿来发布在自己的网站上。

根据Garnter的报告:

数字业务方案需要应用程序平台提供新的特性和功能,而Java EE已经跟不上发展的步伐了。

负责应用程序基础设施现代化的应用程序负责人应该制定一种新的策略,以应对Java EE的衰退。

到2019年,在所有新增的业务应用程序中,部署在Java EE应用程序服务器中的将不足35%。

这份报告出自Ann Thomas和Aashish Gupta之手。Thomas是一位著名的Gartner分析师,从1988年开始一直从事学术研究及成果发表,而Gupta在2011年参加工作之初就是一名研究人员。这份报告排除了技术存在互补性的常见部署场景。

不出所料,这份报告在某些方面备受争议。前Oracle Java EE传教士Reza Rahman现在是Java EE Guardians的负责人,他告诉InfoQ:

很容易理解,这不是一份技术报告,而且,它似乎也不承认这样一个现实,那就是,如果有什么脱离了传统的三层模型和框架,那么它经常也是和Java EE共存于应用程序技术栈。

作家、技术专家兼咨询顾问Kito Mann做了进一步的说明:

Java EE并不是一个不可分割的单一整体;它是一个标准集,你可以选取你想使用的部分。即使是Pivotal的Spring Boot也是建立在一些核心的Java EE规范基础上,如Servlet、JPA和Bean Validation。

据Rahman介绍,数据驱动的Gartner报告与当时行业自主的调查报告相矛盾:

这大体上是一份“数据驱动”的报告,只是没有清楚地说明数据的质量、来源和数量。

所幸,我们确实有公开的数据可以反驳这份报告,我们对数据来源、质量和数量的了解更多一些。我们在Java EE Guardians的网站上策划了多项调查。

流行软件JRebel和XRebel的制造商ZeroTurnaround独立开展了自己的年度行业调查,他们的调查结果与Java EE Guardian的结论一致。

Rahman用一张图表汇总了结果,分版本说明了Java EE的增长。

Java Community Process成员、作家兼终身企业技术专家Josh Juneau告诉InfoQ:

我粗略地看了这份报告,并特别留意了说“Java EE衰退”的部分。显然,这份报告主要是面向这个市场中新来乍到的管理和开发团队;那些人对Java EE或者所有那些构建和部署企业级应用程序的可用选项不熟悉。该报告描绘了Java EE已过时的画面,但我认为,大部分社区成员和企业客户都会说,情况不是这样。

虽然在最近几个月/年里,构建企业级应用程序所采取的开发策略有一个明显的变化,但标准的Java EE应用程序在这个市场中仍然占有一席之地……而且,在将来许多年都是如此。也就是说,针对最新的发展趋势,通过不断地发布新的标准,Java EE会在这个市场中继续发挥作用。由于在整个2016年Oracle都非常的安静,Java EE的下一个版本存在不确定性(仍然存在)。不过,在2017年,Oracle将和社区一起推动Java EE的发展,并将继续为这个平台带来新的标准。如果你看下JSR邮件列表,就会发现,有关那些计划在Java EE 8中发布的规范的活动开始增加。

微服务和云的迅速发展也不可忽视。不过,那是两个领域,可能不会跟每个企业客户都有关系,会有许多客户永远不会将应用程序部署到云环境,而只是需要保留对企业应用程序的完全控制权。对于这些客户而言,当前的Java EE应用程序服务器方法最合适不过了。

使用应用程序服务器策略开发基于服务的应用程序也是可能的。微服务的“胖JAR”部署并不适合所有的人……在许多情况下都不适用。在开发任何企业级应用程序之前,都需要思考一下……为手头的任务选择最好的工具和策略。企业客户不应该仅仅因为云是一个趋势就选择微服务或者转向云,但那份报告反驳了这一观点。

最后,Java EE本来就不是一个为市场带来新技术和新策略的突破性、革命性平台。它是一个始终如一的标准环境,稳定、有效、可靠。Java EE基于已证实的标准,而微服务还没有达到一个可以标准化的点;这项开发技术还在发展之中。

但Juneau提醒说:

我认为,当Java EE 8发布的时候,它将为采用更为标准的方法构建微服务和云部署铺平道路。如果Java EE 9仍然可以按照预计发布时间发布,那么我相信,Java EE的目标是为部署微服务和基于云的应用程序提供一个稳定的标准环境,并继续为过去多年来那些已经基于可靠的Java EE技术栈构建的应用程序提供一个优秀的平台。也就是说,社区和JCP专家组需要保持警惕,跟上Java EE的步伐,确保它没有偏离目标。社区中有许多人已经知道诸如此类的报告,它们被起草用来说明Java EE正在衰退。这份报告利用了关键词和新策略……它并不适合需要一个可靠的标准方法的企业客户。

技术作家兼JavaOne明星工程师Ryan Cuprak告诉InfoQ:

这份报告令人疑惑——我不知道作者是否完全懂得他们正在比较/分析的技术。

这份报告的目的是通过Java EE攻击Oracle/IBM。注意,这篇文章并没有讨论成本节省、成功、恰当的项目类型、供应商锁定等问题。

Java EE很有价值,并将继续发展。大多数Java开发人员每天都使用Java EE,他们甚至都没有注意到。如果你正在使用JAX-RS实现一个微服务,那么你就使用了Java EE的组件。当一个平台被广泛地使用着,你不能说它正在消亡。你不能因为自己没有为一个小型的部门应用程序购买WebLogic,就说你没有从使用Java EE或其中的一部分获益。

Reza Rahman补充道:

显然,微服务和云在Java EE的规划中;对于加快Java EE 8和Java EE 9进度的承诺,那是Oracle JavaOne主题演讲的重点内容。

Java EE供应商也正在发挥他们的作用,既有像WildFly Swarm、Payara Micro这样的产品,也有像MicroProfile这样的联合方案。

至于平台比较,老实说,对于统治服务器端多年的Java,断言它在不远的将来就会失去在服务器端的统治地位并不可信。如果真是这样,那么Java EE和Spring真是目前为止仅有的两个可行选项吗?我已经提供了许多资源,我们已经证明,在服务器端Java中,Java EE仍将是使用最广泛的API集合。

除此以外,像Pivotal这样的公司已经争论了多年,但那些基本的事实那么多年来一直没变,而且,短时间内那似乎也不会有什么变化。至于收入,与Oracle通过Java EE相关产品获得的收入相比,Pivotal通过Spring获得的收入微乎其微。这还不算IBM、Red Hat及其他Java EE供应商的收入。如果将各种较小的、基于一个或多个Java EE API(如JMS提供程序)构建产品的供应商的收入都计算在内,那么Java EE的回报就更高了。

作为一个专注于开放标准的Java EE社区,我们仍然强大、充满生机,并不断发展。多年来,我们一直如此,这就是为什么我们可以得到Oracle的承诺。

InfoQ还同技术作家、演讲家和终身技术专家Alex Theedom进行了交谈:

因为重量级的膨胀而在为新兴应用程序架构提供支持时变得缓慢,Java EE的这个名声已经过时多年了。早在2009年,Adam Bien就展示了如何轻松地实现只有几KB的WAR部署。然后,在2013年,Arun Gupta展示了Java EE应用程序与Spring相比是如何显而易见的轻量级。Java EE开发高效且轻量级,经常只需要一个依赖;对其他框架而言,这可不容易。

每个人的日程上都有微服务和云,Oracle也明确地给出了承诺。企业Java的下一个版本(也就是Java EE 8,JSR366)包含了支持云基础设施和微服务的特性。除了Oracle的支持外,许多供应商和社区负责人也都在Java EE的发展进程中发挥了重要的作用,通过类似MicroProfile这样的方案,供应商、社区负责人和用户组一起合作,成功地将Java EE推进了微服务领域。

Java EE社区以及包括Payara、Tomitribe、IBM和Redhat在内的公司都在Java EE上投入了时间、精力和资源,以确保它向着社区希望的方向发展,而它也正在发展。有多少其他的生态系统从每天使用它的用户哪里获得了如此多的支持和贡献?

说Java EE过时、不重要及不适合原生云应用程序,说明他们对Java EE社区中正在发生的事情不了解,因为在我看来,它健康地活着,并且蓬勃地发展着。

JCP执行委员会成员Werner Keil提到了一批正在积极酝酿中的重要JSR,包括CDI、JSON-P和JAX-RS这三个MicropPofile用到的JSR。这些JSR让计划在2017年底发布的Java EE 8进入了微服务和云领域。为了在Servlet 4中支持HTTP 2,JSON-B接近完成,新的JSR 375(Java Security API)最近通过了更新投票,应该会有助于标准化现在仅以专有方式提供的Java EE安全机制。

Rahman还暗示说,这份报告得到了赞助,在同Pivotal交流时,他们否认了这种说法。

此外,Pivotal产品副总裁Ian Andrews告诉InfoQ:

关于Java EE以及传统应用服务器的使用下滑,业内有许多讨论。但是,真实的情况是原生云架构的崛起。Gartner每天都在全球范围内和CEO及CIO进行交谈,他们已经敏锐地意识到这种向原生云的重要转变,并建议他们的客户针对已有的应用程序组合推行一种现代化的策略。关于原生云架构的崛起,Gartner的独立研究和其他顶级研究公司(如Forrester和Redmonk)的调查结果类似。

在过去的3年中,我们在Pivotal见证了Spring Boot和Spring Cloud作为原生云应用程序构建块的迅速流行。Spring Boot 2016年11月单月下载量达1002万次,同期增长425%,这就是明证。我们希望帮助更多的组织使用我们的Spring技术,采用原生云架构实现关键应用程序的现代化。

阿里巴巴是如何做CI/CD的?

杭州,本周四,免费沙龙,最后15个名额,聊聊阿里巴巴是如何做持续集成的。特邀阿里技术专家之岳、许晓斌、鲁小川和一佛,他们将结合自身经验和实践案例,分享阿里云效平台从生态规划,到CI/CD流程,再到自动化测试,最后总结形成研发需求闭环的整个技术实现过程,帮助参会者了解阿里云效的强大功能和提效价值,从而获得解决研发问题的一些思路。点击阅读原文,了解详情。