Java EE 6 提案的重大改进:概要和拓展性

  • Scott Delap
  • 高昂

2007 年 7 月 5 日

话题:Java语言 & 开发

Java EE 6(JSR 316)的提案已经发布。InfoQ 在之前的文章中已经涵盖了开发者社区对于即将到来的 JavaEE 发布版的一些设想。此次发布版的两大主题是可扩充性和概要:

……这个新发布版本致力于欢迎并支持那些技术,将它们包含在整个 Java EE 愿景中,同时继续简化 Java 开发平台,以更好的服务于更多的开发者。为此,我们给新版本提出两项目标 —— 拓展性和概要。

拓展性(Extensibility)

对于 Java EE 平台来说,并不适宜在没有限制的情况下,把所有 Web 开发和企业应用开发者认为有趣且有用的技术都包含进来。相反,我们认为应该让更多技术清晰地叠放在 Java EE 应用服务器上层,或者作为应用服务器的插件。通过增加拓展功能点并提供更多的服务接口,这些额外的功能可以简洁高效地加载到平台实现上面,让它们跟平台内建的设施一样便于开发者使用。

概要(Profiles)

Java EE 的范围已经延伸的如此广泛,以至失去了原先所遵循的价值观。为了重新将 Java EE 的目标定位到特定类型的开发者和应用程序,我们提案引入 Java EE 平台“概要”。像是 JCP 定义的那样,概要将会引用 Java EE 平台,并且可能包含 Java EE 平台技术的一个子集,以及不属于 Java EE 基础平台的一些附加 JCP 技术。除了定义 Java EE 基本平台规范,这个规范还将定义在概要中引用 Java EE 平台技术的规则。

这个专家组同时也会定义 Java EE Web 概要的第一个版本——面向 Web 应用开发的 Java EE 平台子集。这个概要将为 Java EE 平台提供一个更平缓的入门,同时只提供被大多数 Web 应用开发者所需要的技术,而不是那些有时会使得开发者产生迷惑的企业级技术……

该提案还主张使用概要配置来减少日益膨胀的 Java 平台规模。有人建议,在 Java SE 专家组中使用的过程同样可以应用在 Java EE 之上:

  1. 平台的第 N 个发布版本的纲领性专家组(Umbrella Expert Group,UEG)可以提议移除指定的特性。该发布版本的规范将上述提案记录在案。
  2. 第 N+1 发布版本的 UEG 专家组有权决定是否在本发布版中移除该特性,是作为必要的成份将其保留,还是保持其“有待取消”的状态让下一个 UEG 专家组来决定。

提案列举了一系列 JSR 提议作为 Java EE 6 新特性的候选,例如 JSR-237《应用服务器的工作管理器》和 JSR-299《Web Beans》等。除此之外,还有此前列入的技术如 Servlets,EJB 和 JSF 等内容。诸如 JSR-168《Portlet 规范》,JSR-170《Java 内容仓库 API》,JSR-225《XQuery Java API(XQJ)》等众多应用程序接口,则被推迟到未来的发布版本再考虑。

Interface 21 的 CEO Rod Johnson 就新的提案撰写了长篇评论,宣布他们将支持 JSR 的提案:

Java EE(长期以来一直被称作 J2EE)在创造 Java 中间件市场中扮演了重要的角色。然而,在将近十年的过程中,存在于这个平台上的严重问题已经出现,例如:
  • 对符合 Java EE 规范的服务器的需要被夸大了,它们支持一系列庞杂的功能,然而对于广大用户来说,只有很少一部分人对这些功能感兴趣
  • 企业需求已经发生改变,因为 J2EE 原先“为所有应用建立统一模型的”理念已经显得越来越不适应形势了
  • 事实上,由于开发框架(尤其是开放源代码框架)的出现,企业级 Java 应用开发的能力已大大加强,使得开发者更具有生产力并且应用产品更具有效率和可维护性
  • 来自于 Ruby on Rails 甚至是.NET 等开发框架的新生挑战,表明在追求快速变化和创新的时代里,每隔 2-3 年才慢悠悠地发布一个版本将会给整个平台带来危险。
Java EE 6 对平台进行了重要的修正,有潜力解决所有这些问题。同时它也有可能解决另外的问题:事实上,如果 Java EE 开发商需要确保那些大多数消费者从没使用的功能,即意味着他们很难跟上规范的新变化,对于平稳地升级来说将是个重大挑战,而且在 Java EE 市场上有新加入竞争者的可能性几乎是零。最后一点说的是,在用户看来,责任重大并不是 EE 厂商慢吞吞的借口。此时此刻,就我所知,BEA 是市场上所有领导厂商中唯一获得 J2EE 认证的,尽管 Java EE 5 规范已经发布了一年多;这充分证明了发布一个新平台版本的困难性。Java EE 5 最有价值的部分,比如说 JPA,在 WebLogic 最终版发布前几个月就已经完成,但由于在一些大多数 WebLogic 用户可能从来不会使用的的部分还存在技术问题,而无法发布一个正式版的产品……我认为,企业 Java 社区应该欢迎 Java EE 6 的到来,也应该欢迎 Sun 公司与时俱进,为加强企业级 Java 整体平台所采取的举措。在 J2EE/Java EE 中有许多很好的特性,但一些因素导致这些特性变得复杂晦涩起来。相信 Java EE 6 将会改变这一切!

查看英文原文:Profiles & Extensibility Major Refactorings in Proposed Java EE 6

Java语言 & 开发