写点什么

Java EE 8 终于给出即将完成的迹象

2017 年 4 月 18 日

Java EE 8 终于给出即将完成的迹象。Oracle 在近期的博客帖子中,更新了 Java 社区中 Java EE 8 的相关活动情况,其中给出了最新的发表时间表:

  • 公开评审(Public Review):2017 年 4 月或 5 月间;
  • 提议最终草案(Proposed Final Draft):2017 年六月;
  • 最终发布(Final Release):2017 年七月。

2017 年 2 月 21 日,Java EE 规范牵头人(spec lead) Linda DeMichiel JSR 366 (即 Java EE 8)的各位专家发了一封电子邮件,信中介绍了为最终完成 Java EE 8 的发布,作为规范牵头人是如何严格遵照时间表去完成 JSR 的。要点包括:

由于 Oracle 最近转让了实现“MVC 1.0”规范 JSR 371 )的牵头责任,因此在 Java EE 8 中将不包括该 JSR。

IBM 的 Java EE 架构师 Kevin Sutter 在给 DeMichiel 的一封电子邮件中,询问了Servlet 4.0 需要 ALPN 这一问题将如何解决。ALPN(应用层协议协商,Application-Layer Protocol Negotiation)是一个 TLS 扩展,其中包括了“问候”消息交换中的协议协商,计划在 Java SE 9 中加入。DeMichiel 是这样回答的:

我知道有人曾提出将该支持(或至少是所需的 API)向后移植到 Java SE 8 中,只是我尚未看到任何书面内容。但是我们还是必须要去推动它,虽然当前的规范自提出后就被破坏了。

完成 Java EE 8 绝非易事。在过去的一年中,对于 Oracle 完成 Java EE 8 的承诺得到了广泛的关注。在 2013 年发布 Java EE 7 之后的一段时间内,Oracle 对 Java EE 8 规划的表现出了十足的热情。当年的 JavaOne 大会主题就定为“给 Java 一个未来”。Oracle 在 2013 年 11 月的博客帖子中是这样说的:

在发布 Java EE 7 和 GlassFish Server Open Source Edition 4 之后,我们开始规划 Java EE 8 路线图,并通过 JavaOne Strategy 的主题演讲进行了宣讲。总而言之,我们的兴趣主要集中在改进对 HTML5 的支持、云计算,以及调查对 NoSQL 的支持等方面。对于大家想在 Java EE 8 中看到的改进,社区和客户为我们提供了一些很棒的反馈。

简单的说,Oracle 对 Java EE 的未来做出了承诺。Java EE 7 已正式发布,有关 Java EE 8 的规划工作也已开始。

也正是在同一博客帖子中,Oracle 宣布对 Oracle GlassFish Server 的商业支持做出了关键更改:

对于 Oracle GlassFish Server,Oracle 将不再进一步发布提供商业支持的主版本,即不再发布 Java EE 7 支持的 Oracle GlassFish Server 4.x。

Oracle 建议现有的 Oracle GlassFish Server 客户启动向 Oracle WebLogic Server 迁移的规划,这是一个技术和新许可的自然前向迁移路径。

Oracle 将继续提供对 GlassFish Server Open Source 版的支持。

新的 Java EE 8 规范( JSR 366 )于 2014 年 9 月构建,其中提出了最初的发布计划:

  • 组成专家组(Expert Group):2014 年第三季度;
  • 早期草案(Early Draft):2015 年第一季度;
  • 公开评审:2015 年第三季度;
  • 提议最终草案:2015 年第四季度;
  • 最终发布:2016 年第三季度。

但是从那时起,Oracle 的热情看上去有所减退。2015 年 6 月,Oracle 通过博客帖子更新了 Java 社区状态:

我们为自己的设置的目标是在 JavaOne 2016 旧金山大会前完成该项工作。虽然以 JavaOne 大会为平台发布重大事宜是我们所喜闻乐见的,但是在组建专家组中的各种延迟以及对我们规范牵头人在时间上的其它要求,已经导致发布日期稍向后延。我们会严格遵守对于 Java EE 平台工作透明度所做出的承诺。这里我们公开宣称,现在更改工作完成的目标时间期限为 2017 年上半年。

这一推迟直接导致前 Oracle 布道者 Reza Rahman 组建了一个称为“ Java EE 守护者”社区组织,目标是让一切恢复正轨。正如 InfoQ 在 2016 年 6 月所报道的:

随着去年 Oracle 对 Java 布道者进行裁员,以及更早前宣布将暂时停止继续为 GlassFish Server 发布大型版本更新并对相关支持进行限制,一群 Java 标准的支持者开始以“Java EE 守护者”的身份自居,并通过一个章程宣告他们将努力拯救 Java EE。

Java EE 守护者是名副其实的 Java 权威人士,其成员包括“Java 之父”James Gosling、前任技术传教士 Reza Rahman,以及其他很多知名的 Java 技术人员。

几乎与此同时,另一个称为“ MicroProfile ”的新组织也成立了,其中集合了 Red Hat IBM Tomitribe Payara 等企业,组织的章程是“借助 Java EE 技术创建独立于软件企业的微服务框架”,目标是在 2016 年 12 月发布一个最初的版本。

看上去,Java EE 守护者和 MicroProfile 社区的各项工作已引起了 Oracle 的关注。正如 2016 年 7 月 InfoWorld 所报道的:

退一步说,Oracle 意在使未来的 Java 提供云端支持。

有谣言称 Java EE 计划已被 Oracle 置于次要的位置,这引发了一场对 Oracle 管理组织 Java EE 不满的风暴,已有两个独立的组织考虑规划脱离 Oracle 推进 Java EE。Oracle 的高层对近期的批评声音给出了反馈,声称 Oracle 并非是想让 Java 萎缩,而是在考虑如何重启该平台以更好地适合企业的发展方向,尤其是在云端,

InfoQ 在 2016 年 8 月曾做出报道

在最近的一次采访中,Oracle 产品开发总裁 Thomas Kurian 宣布了 Java EE 8 的一系列改进。此举被认为是为了平息近期的批评(比如那些来自 Java EE 守护者的批评)和工作分歧(如 MicroProfile )。目前的信息还很少,更多细节会在 JavaOne 2016 大会上公布。

Java 开发社区越来越担心 Java EE 的未来发展。此前,在今年 5 月,JCP 执行委员会曾考虑向 Oracle 发出正式申请,要求他们针对其 Java EE 承诺和计划作出公开答复。虽然在会议时记录了下来,但该申请未获批准。实际上,它变成了一份非正式的申请。之后大约一个月,Java EE 守护者们提交了一份 change.org 请愿书,希望以此激励 Oracle,让他们不要把 Java EE 搞砸了。截至目前,签名者已达 3300 人。

在 2016 年 9 月,Oracle 给出了对 JCP 执行委员会(Executive Committee)的工作策略。InfoQ 对此做出了报道

Anil Gaur 是 Oracle 集团负责 Java EE 和 WebLogic Server 的副总裁。他受邀在上一次的JCP 执行委员会会议上发表了演讲,透露了有关Java EE 未来发展的一些信息。他所传达的信息和 Oracle 之前的说法一致:企业编程正在发生变化,Oracle 希望适应这种变化。然而,执行委员会成员后续的提问突出了 Oracle 计划里的缺陷。

大约六个周之前,在 Oracle 产品开发总裁 Thomas Kurian 就有关Java EE 的话题接受了采访之后,我们很明显可以知道,Oracle 正在制定一个可以将Java EE 带回正轨的方案。就是在这种背景下,8 月9 日,Gaur 在最近的JCP EC 会议上口头介绍了Oracle 的Java EE 策略。Gaur 在演讲中表示,Oracle 知道企业编程正在发生什么变化,采用分布式架构的应用程序越来越多。为此,Gaur 重点介绍了若干有望添加到Java EE 8 的技术,以便为开发人员带来实实在在的好处。他提供了一个技术列表,听上去和Kurian 在采访中所给出的列表非常相似:HTTP/2、配置、状态管理、最终一致性、多租户、O-Auth 和OpenID 连接。不过,在提问环节,IBM 运行时技术项目负责人Steve Wallin 对于在短时间内实现这样一项革命性的变革提出了质疑。同时,他申明,IBM 已经通过自己的努力在当前的Java EE 平台上实现了快速云部署(可能是指 Bluemix )。

不过,或许他没提供的信息才是最有趣的。在口头介绍结束后,执行委员会成员进行了提问,以期更好地了解 Oracle 的计划,其中有一个问题是,新版本什么时候可用。Gaur 承认,Java EE 8 的交付日期会“变化”,但没有提供更多的细节。不过,有迹象表明,部分新功能可能会基于 Java SE 9,那意味着需要延期很长的时间。

JavaOne 2016 大会披露出为添加对微服务和云端应用的支持,Java EE 8 的发布将进一步推迟到 2017 年底。计划中还包括将于一年后发布 Java EE 9。

也是在 JavaOne 2016 大会期间,据《Register》报道

为适合开发和部署中的盛行做法,目前有 10 个 Java EE 8 的项目正经历“主要改进”。这一修订工作将会影响到 Bean Validation、CDI、JAX-RS、JSF、JSON-P 和 Servlet。

Oracle 并未给出 Java EE 8 最近一次推迟的原因,但是很多人揪住了 Oracle 在今年的开发过程中擅离职守这一把柄。工程师和规范牵头人并未提供与 Java 社区其他成员的交流,他们的代码提交数也显著的下降。Oracle 被迫站出来发布一个声明,坚称它依然会负起 Java 的责任。

Java EE 8 将支持以下特性:分布式数据流、HTTP/2、键值对,使用 OAuth 和 OpenID Connect 系统管理密钥的一种标准方法、支持 Docker 在任一单个容器中打包一个以上物件(Artifact)、统一的事件模型、服务中事务和多租用管理的一致性。

为简化编码,将在 Java EE 9 中引入 Java SE 8 的 Lambda。在 Java EE 8 中没有实现的特性也将会滚动到 Java EE 9 中。

Oracle 正就社区成员想要在 Java EE 9 中看到的特性征求意见。

Oracle 继续鼓励开发人员对 JSR 工作做出贡献,为此他们发布了第二次“采纳JSR”(Adopt-a-JSR)网络广播

Gartner

Gartner 在 2016 年 11 月发布的一份报告中,预测了 Java EE 将会消亡。在报告的摘要中指出:

数字信息业务要求应用平台提供新的特性和能力。由于 Java EE 以及类似于 ASP.NET 这样的三层框架却没有赶上这趟车,应用负责人必须构建策略迁移到支持云端原生应用的候选平台。

该报告引发了一场争议,一些著名的Java 技术领袖也参与其中,包括 Reza Rahman Kito Mann Josh Juneau Ryan Cuprak 等人。

Java EE 软件企业

一些在企业自身的开发中使用了核心 Java EE 规范的软件厂商,例如 Red Hat Pivotal 等,被迫对 Java EE 8 的延期寻求变通方案。正如 InfoQ 在 2016 年 7 月所报道,在 Servlet 4.0 API 中将不会包括发布 Spring 5 。当 Pivotal 的 Spring Data 项目负责人 Oliver Gierke接受 JAXenter 采访时,他是这样解释的:

对我们而言,Java EE 8 中最重要的部分在于 Servlet 4.0 API 及其对 HTTP 2.0 的支持。某种程度上,可以预见的是在我们最终正式发布 Spring 5 之前,一切都尚无定论,我们目前正在与最主要的 Servlet 容器实现者(Tomcat、Jetty、Undertow)密切合作,以确保我们能在第一时间使用由他们所提供的原生 API,实现对 HTTP 2.0 的支持。

Red Hat 的 JBoss EAP 平台架构师 Jason Greene 在 2016 年 10 月接受了InfoQ 的采访。当被问及Java EE 8 和Java 9 的推迟是否会应用影响到 WildFly WildFly Swarm JBoss EAP 的进一步开发时,他解释说:

WildFly 和 JBoss EAP 已经远远超越了 EE 标准,并在进行继续完善。当某一规范的开发出现延误后,我们会将精力专注于其他感兴趣的领域。话虽如此,我们依然希望整个标准能够跟上业界发展步伐,因此我们很乐意与 MicroProfile 开发领域的其他重量级选手进行合作。

相关资源

查看英文原文: Light at the End of the Long Tunnel for Java EE 8

2017 年 4 月 18 日 19:004222
用户头像

发布了 226 篇内容, 共 61.7 次阅读, 收获喜欢 18 次。

关注

评论

发布
暂无评论
发现更多内容

自研规则/流程引擎-ice接入

迟到的月亮

规则引擎

差点崩溃了,还好有主从复制!8张图带你吃透Redis,网友:起飞了

java专业爱好者

Java redis

智慧平安社区建设解决方案,昆明智能安防小区搭建

13823153121

好家伙,GitHub上这份面经也太干了!足足24W字,满满的都是诚意!

互联网架构师小马

Java GitHub 面试 面试题 面经

真的香!Github一夜爆火被各大厂要求直接下架的面试题库也太全了

Java 白

Java java程序员 java面试 java编程

货运飞船 3D 可视化监管,相隔万里都能得心应手?

一只数据鲸鱼

数据可视化 3D可视化 数字孪生 智慧航天 飞船

智慧公安重点人员管控系统系统开发,情报研判分析平台建设

WX13823153201

Flink+ 数据湖 Iceberg 的体验

Qunar技术沙龙

架构 运维 flink 消费 kafka 后端 flink sql 执行过程

药以安为先,如何用技术升级助力药品质量升级?

WorkPlus Lite

量化交易系统开发app,马丁策略交易软件搭建源码

WX13823153201

想要做音乐玩音乐,有这一个软件就够了!

懒得勤快

IPFS挖矿靠谱吗?IPFS挖矿合法吗?

IPFS老胡

区块链 IPFS

强!上线3天获10w浏览量,京东T8纯手码Redis缓存手册,我粉了

云流

Java 数据库 redis 架构 面试

WICC 2021 召开在即 服务开发者生态是大会主要亮点

融云 RongCloud

抽象工厂模式(Abstract Factory Pattern)

一个大红包

7月日更

美国高通公司发布Snapdragon 700移动平台,为中高端终端提供优质功能

WorkPlus Lite

ipfs矿机怎么获得收益?ipfs矿机怎么操作?

投资矿机v:IPFS1234

ipfs矿机怎么获得收益 ipfs矿机怎么操作

Cisco VPC peer-gateway 对直连BFD邻居建立的影响

Qunar技术沙龙

后端 Cisco BFD

容器化 | 基于 Kubernetes 的新一代 MySQL 高可用架构实现方案

RadonDB开源社区

MySQL Kubernetes 容器化 RadonDB KubeSphere

不愧是阿里内部“SpringCloudAlibaba学习笔记”上线7天就获22w 浏览量!

云流

Java 程序员 架构 面试 微服务

【LeetCode每日一题 Day 3】3. 无重复字符的最长子串

编程熊

程序员 面试 算法 LeetCode 笔试

详解智能优化算法:遗传算法和蚁群算法

华为云开发者社区

算法 遗传算法 智能优化算法 蚁群算法

什么?你们项目没用过主从复制和读写分离?

Java 白

数字新金融到底是什么样的金融

CECBC区块链专委会

全面到哭!BAT内部Java求职面试宝典,应届生必须人手一份

马小轩

面试】

阿里资深架构师谈Java进阶攻略:7大技能+12份进阶笔记+面试150题

马小轩

Java 架构 面试 阿里 程序猿

苹果公司在WWDC会议前意外泄露了新的移动平台

WorkPlus Lite

ipfs官方最新消息是什么?ipfs挖矿的gas费怎么降低?

投资矿机v:IPFS1234

ipfs官方最新消息是什么 ipfs挖矿的gas费怎么降低

中国的区块链技术,究竟发展到哪里了?

CECBC区块链专委会

2种方法将YouTube视频转MP3音频

资源君

分享 教程 经验 youtube转mp3 格式转换

在企业软件中负责任地使用开放源代码

WorkPlus Lite

Java EE 8终于给出即将完成的迹象-InfoQ