写点什么

修剪 Java EE

  • 2009-04-15
  • 本文字数:1411 字

    阅读完需:约 5 分钟

Java EE 平台成功的一个重要原因就是其广泛的覆盖面,但其涵盖的众多 API 和技术也是广大开发者和厂商所面临的一个难题。对于想要构建 Java EE 应用服务器的新厂商来说,整个规范使其很难介入该领域;而对于 Java EE 新手来说,为数众多的 API 和缩写词也使其茫茫然不知所措。这也是导致 Java EE 如此复杂的一个重要原因,同时一些新手会觉得 Java EE 并不适合开发简单的系统,比如基本的 CRUD Web 应用,他们总觉得 Java EE 是用来开发复杂系统的。鉴于此,Java EE 6 的一个目标就是通过 3 种不同的技术来解决这些问题——配置(profile)修剪(pruning)及扩展(extensibility)。

Profile 可以是 Java EE 平台技术的一部分,也可以是额外的 JCP 技术(并不属于基础的 Java EE 平台),抑或两者兼而有之。它们能给厂商带来很多好处,因为其可以降低厂商开发 Java EE 兼容产品的门槛,同时对 Java EE 平台新手也能起到帮助作用。随着 Profile 概念的逐步规范化,Java EE 引入了第一个 Java EE profile——Web Profile,InfoQ之前的文章对此进行过详细的报道。

与此同时,Java EE 6 API 的移除工作也被提到了议事日程,所谓API 移除,意即对于厂商和开发者来说,这些API 的重要程度相对比较低,我们称其为修剪。该过程由几个步骤组成:首先在发布包中将其声明为候选者,同时在Javadoc 中也将其标识出来;然后根据社区的反馈来决定是否在下一个发布中将其放到可选组件中。

对Java EE 6 早期草案的审阅提出了两个修剪项。第一个是JAX-RPC[即 JSR 101 ,Java APIs for XML-Based RPC],它定义了通过 RPC 来访问 SOAP web services 的客户端 API,同时也定义了实现 web service 端点的技术。JAX-RPC 存在很多局限性,最明显的就是 JAX-RPC 服务端点和处理器既不支持 web service 注解,也不支持注入。随着 Java EE 5 的发布,其 API 已经被 JAX-WS 所替代。第二个是 JAXR[即 JSR 93 ,Java API for XML Registries],它提供了一种标准的方式来访问不同类型的 XML Registry 以进行绑定、部署及探测 web service,同时还包含了对 ebXML Registry 和 UDDI Registry v2.0 规范的绑定。尽管 JAXR 的替代者尚未出现,但其使用上却存在着很多限制。

对 Java EE 6 公开草案的审阅又增加了两个 API 修剪项。已经被 Java Persistence API[以前作为 JSR 220 ,Enterprise JavaBeans 3.0 的一部分] 成功取代的 EJB 2.x Container Managed Persistence 以及 Java EE Application Deployment[ JSR 88 ],后者定义了部署工具的运行环境和 Java EE 应用服务器所提供的插件组件之间的接口。理论上凭借该 API,我们可以使用相同的部署工具将任何 Java EE 应用部署到任何 Java EE 兼容的环境中,但遗憾的是,厂商对其的支持实在是太弱了。

与 JSR 88 类似,专家组也在考虑移除 Java EE Management[ JSR 77 ],它向管理工具提供了 API 以查询 Java EE 应用服务器的当前状态、部署的应用等等。使用这些 API 构建的服务器管理工具可以跨厂商运行,这样就可以切换应用服务器而无需改变管理工具和过程,还可以管理多个 Java EE 服务器所构成的网络,而网络中可以包含多个厂商实现。与 JSR-88 一样,厂商对该 API 的支持力度也很弱。

随着 API 的裁剪,专家组希望减少那些使用量少的 API,转而提供更多的扩展点。我们应该可以使用这些接口和插件点轻松创建平台的扩展技术,同时保持很好的集成性,这么做也会使规范本身重获新生。

查看英文原文: Pruning The Deadwood from Java EE

2009-04-15 01:153181
用户头像

发布了 88 篇内容, 共 272.0 次阅读, 收获喜欢 9 次。

关注

评论

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

第 13 周 系统架构作业

心在那片海

外星人?他们在哪儿呢?「幻想短篇 10/28」

道伟

28天写作

长期主义是一种生活态度

JiangX

28天写作 价值 长期主义

绩效管理,上下同心者胜(二)

一笑

管理 绩效 28天写作

敏捷开发需要内外兼修

Bruce Talk

敏捷开发 Agile

HDFS中的常用压缩算法及区别

王知无

大数据 hdfs

十三、数据应用二

Geek_28b526

架构师训练营 4 期 第3周

引花眠

架构师训练营 4 期

英雄惜英雄-当Spark遇上Zeppelin之实战案例

王知无

大数据 spark

Flink1.12集成Hive打造自己的批流一体数仓

王知无

大数据 flink

【计算机内功修炼】七:高并发高性能服务器是如何实现的

码农的荒岛求生

高并发 事件驱动 高性能 Event Driven 高并发优化

架构师课程--第十三周作业

孤星

十三周总结

水浴清风

如何 debug hive 源码,知其然知其所以然

王凯

hive 源码分析

Soul 网关源码阅读(六)Sofa请求处理概览

Java 源码阅读 网关

最长公共前缀字符串, RxSwift的概念详细解析, 极客大学认识产品经理 John 易筋 ARTS 打卡 Week 35

John(易筋)

ARTS 打卡计划 最长公共前缀字符串 RxSwift的概念详细解析 极客大学认识产品经理 极客大学产品经理训练营

你不可不知的任务调度神器-AirFlow

王知无

spark 数据可视化 airflow

Spring-Spring整合MyBatis原理分析

魔曦

产品训练营第一周作业

孤星

项目管理系列 (5)-沟通规划

Ian哥

项目管理 沟通与管理 28天写作

HTML(一)——html相关介绍

程序员的时光

程序员 28天写作

架构师训练营第2期 第13周总结

月下独酌

架构师训练营第2期

面试官:Netty的线程模型可不只是主从多Reactor这么简单

中间件兴趣圈

reactor Netty nio 中间件 线程模型

第 13 周 系统架构总结

心在那片海

ClickHouse在大数据领域企业级应用实践和探索总结

王知无

大数据 Clickhouse

Springboot 中的切面AOP处理

武哥聊编程

Java aop springboot SpringBoot 2 28天写作

软件架构-缓存技术

看山

缓存 架构

新名词意味着什么?

lidaobing

28天写作 名词

Hbase性能优化百科全书

王知无

大数据 HBase

架构师训练营第2期 第13周命题作业

月下独酌

架构师训练营第2期

HDFS杂谈:Xattrs扩展属性

罗小龙

hadoop hdfs 28天写作

修剪Java EE_Java_Charles Humble_InfoQ精选文章