【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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

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

关注

评论

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

带你掌握Redis数据类型:string和Hash

华为云开发者联盟

redis string hash 数据类型

云原生背景下的应用安全建设

火线安全

云原生 云安全

【C语言】结构体

謓泽

C语言 结构体 3月月更

数字化时代,银行如何建设管理小程序平台促进线上金融业务发展?

FinClip

小程序 银行

深度剖析数仓CN增量备份技术

华为云开发者联盟

华为云 备份 GaussDB(DWS) 备份容灾 CN增量备份

web前端培训:js算法面试es6实现

@零度

JavaScript ES6

加入XTransfer,和技术大咖一起大展身手!

XTransfer技术

程序员 招聘 跨境支付

Apache Flink 在移动云实时计算的实践

Apache Flink

大数据 flink 开源 编程 实时计算

MongoDB常见问题解答:时间与时区

MongoDB中文社区

mongodb

JAVA只要掌握内部类,多继承和单继承都不是问题

华为云开发者联盟

Java jdk 多继承 内部类 单继承

ZStack 与龙蜥操作系统完成兼容性认证,共同打造安全可信的云+OS技术生态

OpenAnolis小助手

云计算 开源 操作系统 云平台

福昕软件与中国船级社签署框架合作协议,共建数字船舶发展新高地

联营汇聚

恒源云(Gpushare)_UNIRE:一种可以共享标签空间的方法

恒源云

OpenCV 计算机视觉 服务器

高级IO模型之kqueue和epoll

程序那些事

Java io nio 程序那些事 3月月更

车辆GPS定位整套管理系统,轨迹播放,车辆管理,电子围栏,报警记录,数据库/人员定位/宠物定位/物流跟踪/资产定位

andy_zf

Java Java web GPS

数字化背景下,为何J2PaaS低代码平台,能成为企业技术升级的优选?

J2PaaS低代码平台

低代码 数字化 企业数字化转型 低代码平台 企业级低代码平台

直播系统聊天技术(七):直播间海量聊天消息的架构设计难点实践

WorkPlus

大数据培训:Kafka存储结构及Log清理机制

@零度

大数据 kafka log

什么是SDK,它是怎样威胁我们的隐私?

郑州埃文科技

科创人·弘玑Cyclone CEO高煜光:从RPA到超自动化,以客户需求构建战略纵深

科创人

NFT卡牌盲盒游戏系统开发搭建

薇電13242772558

NFT

【数据库】云数据库rds是什么意思?有什么优势?

行云管家

数据库 云数据库 RDS

记某核心MongoDB集群索引优化实践

MongoDB中文社区

mongodb

fastposter v2.5.1 发布 轻松在线作图

物有本末

45个 GIT 经典操作场景,专治不会合代码

程序员小富

git

【云计算】云计算六大优点简单说明

行云管家

云计算 IT 企业上云 IT运维

基于大数据的医疗健康疾病筛查及风险评估系统

andy_zf

医疗方案 医疗AI 医疗信息化

不会Netty,你永远是个Java菜鸟

博文视点Broadview

深度文 | 一文看懂云原生时代 DevOps 如何选型

星汉未来

运维 云原生 降本增效

TiDB 5.4 发版丨新功能解读

PingCAP

云开发在教育应用开发、运维全流程实践

阿里云云效

云计算 阿里云 DevOps 云原生 开发

修剪Java EE_Java_Charles Humble_InfoQ精选文章