写点什么

修剪 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:153223
用户头像

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

关注

评论

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

Redis一主二从环境搭建

京茶吉鹿

nosql redis

Kubernetes 本地持久化存储方案 OpenEBS LocalPV 落地实践上——使用篇

江湖十年

k8s 后端 #Kubernetes# Go 语言

为了减少延迟和卡顿,我对 MySQL 查询做了这些优化处理...

Java你猿哥

MySQL sql ssm MySQL优化 优化SQL

华为运动健康服务Health Kit 6.10.0版本新增功能速览!

HarmonyOS SDK

HMS Core

数字化转型困局?华为云提供多款解决方案助力制造业企业上云加速转型

与时俱进的时代

iOS SKAN 4.0 时代的广告追踪优化:掌握隐私友好的营销策略

37手游iOS技术运营团队

SKAdNetwork SKAN IDFA ATT App Tracking Trans

【分布式技术专题】「单点登录技术架构」一文带领你好好认识以下Saml协议的运作机制和流程模式

码界西柚

分布式 SAML SSO 单点登录

四川农信:与先进科技融合,更好服务广大用户|客户之声

OceanBase 数据库

数据库 oceanbase

DevOps infra | 互联网、软件公司基础设施建设(基建)哪家强?

laofo

DevOps 研发效能 持续交付 infra 平台工程

AI时代要用俄罗斯套娃思考模式

FN0

AIGC

前端工程化实战:React 的模块化开发、性能优化和组件化实践

兴科Sinco

性能优化 前端工程化 React Native 前端模块化 组件化开发

MySQL自增ID用完了怎么办?4种解决方案!

Java你猿哥

Java MySQL sql 后端 ssm

包装了三年工作经验的我,被同事发现居然连这些Maven的操作都不懂

Java你猿哥

maven ssm 架构师 Java工程师

流程图哪个软件好用?10款好用的流程图软件推荐:boardmix、Visio、Miro…

彭宏豪95

效率工具 职场 工具 流程图 在线白板

Django笔记六之外键ForeignKey介绍

Hunter熊

Python django 外键 ForeignKey

数据散、管理难和上云难,看华为云解决制造业数字化转型难题

与时俱进的时代

“程序员”即将失业 | 社区征文

六月的雨在InfoQ

程序员 ChatGPT GPT-4 三周年征文

NCCL源码解析②:Bootstrap网络连接的建立

OneFlow

人工智能 深度学习

如何高效清洗数据?试试这款神器

博文视点Broadview

一文吃透Arthas常用命令!

程序员大彬

Java JVM

潮起风来,政企DICT “跃升”之乘风破浪篇

鲸品堂

DT IT 企业号 4 月 PK 榜 ct

“成本刺客”防不胜防,如何应用亚马逊云科技驾驭云成本

Lily

成立数科公司之余,央国企推进数智化转型还需要底座支撑

用友BIP

火了!阿里资深架构师总结的春招Java岗核心笔记,GitHub标星20k

Java你猿哥

Java ssm 面经 Java工程师 java核心知识

技术同学如何做好向上管理

老张

职场新人 向上管理

多库多表场景下使用 Amazon EMR CDC 实时入湖最佳实践

亚马逊云科技 (Amazon Web Services)

Java

谈谈现在编程行业的热门话题| 社区征文

魏铁锤

三周年征文

AI日课@20230409:对话式用户界面

无人之路

ChatGPT

ChatGPT会在三年内终结编程吗?| 社区征文

芯动大师

程序员 ChatGPT 三周年征文

Java概述与基础知识

timerring

Java

五面阿里巴巴拿offer后定级P6:分享Java面经及答案总结

Java你猿哥

Java 面试 面经 春招 Java八股文

修剪Java EE_Java_Charles Humble_InfoQ精选文章