最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

Pete Muir 谈 Seam 3、RichFaces 4 及来到 Infinispan 的动因

  • 2011-02-22
  • 本文字数:3146 字

    阅读完需:约 10 分钟

Red Hat 的 JBoss 部门将在未来几个月内进行大量更新,包括发布新版本的 Web 应用框架 Seam 以及 JSF 组件库 RichFaces。InfoQ 有幸采访到了 Red Hat 的首席软件工程师 Pete Muir 以深入了解未来的发展变化以及他从 Seam 团队来到 Infinispan 数据网格团队的前前后后。

InfoQ:首先恭祝你来到了 Infinispan 团队。为什么会来到这个团队中呢?

多谢。我所遇到的大多数人,特别是软件工程师,都有这样一种工作循环周期:一开始他们非常喜欢自己所从事的项目,随着时间的不断流逝,这种热情逐渐消退。我决定寻求新的挑战,因为我深深地感觉到自己在 Seam 和 Weld 团队中的热情即将消失殆尽。Infinispan 则是个很正常的选择,我曾经在硕士论文中研究过数据网格,Red Hat 也在不断地增加对 Infinispan 的投资力度,这与公司的目标是非常一致的。

InfoQ:对于 Infinispan,你有何计划呢?

从个人角度来说,我首先要从虚拟结点(virtual node)着手。Infinispan 使用了一致的 hash wheel 以确保在分布式环境下实现确定、快速以及低代价的数据查询。然而,虽然有很多技术可以保证均匀分布(比如使用 MurmurHash 和一些 spreader),但用户依然说拥有少量结点的数据网格并没有表现出良好的数据分布型(这会导致某些结点的过载,包括处理与数据存储),而拥有大量结点的网格却没有这个问题。虚拟结点则可以解决这个问题,因为它会在每个物理结点上提供多个节点。 Infinispan 5 中还有其他很多激动人心的改进,且容我介绍两个。

首先就是已经在 Alpha 2 中所提供的 MapReduce。从本质上来说,Infinispan 提供了无限的线性内存数据的可伸缩性,但无法执行大量计算的数据网格就好比是开着法拉利,但却没有驾照一样。我们听到了来自于用户的批评之声:缺少对 Big Data 字段的检测、现有的分布式执行框架过于复杂;我们将精力主要放在了简化上,但却不会牺牲功能和众多的特性。感兴趣的读者可以在 Vladimir 的博客上了解到关于 Infinispan MapReduce 的更多信息。

我们还在开发 Hibernate OGM(Object-Grid Mapper)。Hibernate OGM 重用了 Hibernate Core 引擎,但却将实体存到了 Infinispan(最终是以键 / 值对的形式存储)而非关系数据库中。你可以像在 JPA/Hibernate(同样的映射,同样的 API)中一样映射并操纵实体。Hibernate OGM 支持 CRUD 操作和大多数的 JPA 映射。我们还开发了查询支持,它以 JP-QL 的子集开始,随着时间的推移还会不断增加新的内容。该项目尚处于早期阶段,但长期的目标是支持大多数的 JPA 功能。感兴趣的读者可以从 http://community.jboss.org/wiki/HibernateOGMGeneralInformations 检出项目并了解详细信息。如果你想尽快上手,那么请通过论坛联系 Emmanuel 或是 Sanne。

InfoQ:我知道你将成为 CDI 1.1 的专家组领导,是这样的么?对于 CDI 1.1 来说,你有何计划呢?

我将担任 CDI 1.1 的专家组领导——事实上,我刚刚完成该 JSR 提案的首个草案,正打算在公布前收集一些反馈信息。我们认为 CDI 1.0 已经在社区中产生了积极的影响,很多人都能从目前的功能中实现自己需要的东西。然而,CDI 1.0 还有一些小的瑕疵;总的来说分为两类——有一些是在 CDI 1.0 发布时我们就已经知道的了,但我们却没时间探求正确的解决方案;当然了,还有一些则是意料之外的情况。CDI 1.1 旨在解决这些瑕疵,同时标准化社区所开发的大多数流行的扩展。我们并不打算增加任何新的功能。其中的一些亮点列举如下: - 对拦截器与装饰器的全局排序,还支持以全局方式实现组件的替换。

  • 用于管理内建上下文的 API,这样就可以在 JSF 之外使用内建的对话上下文实现。
  • 支持在 Java EE 容器外启动的嵌入式模式。
  • 构造方法级别的 Bean 声明。
  • 静态注入。
  • 引入了来自于 Seam Solder 的 @Unwraps。
  • 对 Portable Extensions SPI 诸多细小的增强。
  • 客户端控制的上下文。
  • 在 Java EE 平台下对 CDI 更好的支持。
  • 针对 Servlet 事件发送 CDI 事件。
  • 应用生命周期事件。

InfoQ:去年年底在 Twitter 和各大博客(比如这个)上有很多关于 Weld(JSR-299,CDI 参考实现)中的内存与性能问题的讨论。我知道那个时候你正在改进这些问题。现在的进展如何了?

我们已经取得了重大的进展!现在大家已经能够看到在内存使用、启动时间以及运行期性能上的改进了。度量结果表明部署时如果只有少量几个 bean,那么启动时间将提高两倍,如果 bean 的数量非常多,那么启动时间就会提升 10 倍以上。无论部署时有多少个 bean,内存使用都会提升了 4 倍。运行期性能的改进提升了 40%,我们欣喜地看到 Weld 与其他 CDI 实现和 DI 领域的其他解决方案相比,要么不分伯仲,要么更高一筹。 这些改进都会融入到 Weld 1.1.0 中(包含在 JBoss AS 6 和 GlassFish 3.1 当中),我们计划对 Weld 1.2(将包含在 JBoss AS 7 中)进行更多的改进,特别是在内存使用上。对于 Weld 来说,最终的目标是让每个 bean 占据 1k 内存空间。

InfoQ:据我了解,很多团队在迁移到 JSF 2 之前都在等待着 Seam 3 和 RichFaces 4。我相信 RichFaces 4 会在下个月发布,但你知道 Seam 3 何时会发布么?在这期间,会向 Seam 2 中增加 JSF 2/Facelets 2 支持么?

我们同样计划在 3 月份完成 Seam 3 的开发工作。现在已经发布了 Beta 1 版,其中包含了 Seam 3 的所有模块,列举如下: - Seam Security,除了 Java EE 规范所提供的那些特性外,还增加了增强的认证与授权支持。此外,还增加了联合身份特性,可以实现与 OpenID 和 SAML 的无缝集成。

  • XML Configuration,可以通过 XML 配置基于 CDI 的应用。
  • Seam Faces,增加到了 JSF 2 的特性当中,向其他 Seam 模块提供了重要的 JSF 集成点。
  • Seam Catch,向开发者提供了统一、健壮的异常处理流程。
  • Seam Wicket,使用 Apache Wicket 实现 CDI 组件模型与其他 Seam 模块的集成。
  • Seam International,为基于 CDI 的应用提供了本地化服务。
  • Seam Remoting,这是一个基于 Ajax 的框架,用于从网页中直接调用 CDI Bean。

我们刚刚发布了 Seam 2.2.1,其主要目标是对运行 JSF 1.2 的 JBoss AS 6 上的 Seam 2 提供良好的支持。我们一直在讨论是为 Seam 2 增加 JSF 2(这会延缓 Seam 3 的开发工作)支持还是坚持目前的 JSF 1.2 支持。目前,我们计划发布 Seam 2.3,它会对 JSF 2 提供完全的支持。同时,各大社区的成员也都站了出来,创建了 Seam 2.2 的分支,该分支将与 JSF 2 协同工作,比如这个地址 https://github.com/heyoulin/seam2jsf2 ,我们对社区成员的努力表示由衷的谢意!

InfoQ:RichFaces 4 有哪些新特性呢?

RichFaces 4 是面向 JSF 2 中新的 Ajax 特性的一个版本。其主要特性列举如下: - 完整的 JSF 2.0 支持与扩展。

  • 真正与 Bean Validation(JSR-303)或标准的 JSF 验证器集成的客户端验证。
  • 大量经过重新设计以及优化的组件。
  • 统一的 dataTable 设计提供了良好的灵活性和易用性。
  • 支持 Google App Engine。
  • 高级的 Ajax 请求队列支持。
  • 动态资源支持。

InfoQ:我想问的一个问题是:JBoss AS 6 只通过了 Java EE 6 Web Profile 认证,为何不支持整个 Java EE 6 规范呢?这个举动对于 EE 6 市场意味着什么呢?

AS 6 的目标旨在尽快通过 Web Profile TCK,这样我们就能尽快使用完整的 JBoss 运行时进行一些新的、激动人心的技术(如 CDI)开发了。由于 AS 6 构建在 AS 5(这是完整的 EE 5 实现)代码基之上,因此 AS 6 还会包含额外的 JSR。 人们不应该过于强调这一点——我们并不会背离 EE,只不过想加速脚步,因为我们看到 Java EE 6 有很多激动人心的东西——搞定 JBoss Web Profile 服务器是个重要的里程碑,你会看到我们会基于此实现完整的 EE 6 认证,以此作为 AS 7 的社区路线图,然后会在今年底发布全面支持 Red Hat 产品的服务器。

查看英文原文: Pete Muir Discusses Seam 3, RichFaces 4, and His Move to Infinispan

2011-02-22 04:031898
用户头像

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

关注

评论

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

史上最全知识图谱建模实践(上):本体结构与语义解耦

可信AI进展

深度学习 nlp 知识图谱 NLP 大模型

车内语音识别技术在智能驾驶中的应用与前景

来自四九城儿

听GPT 讲Rust源代码--compiler(33)

fliter

万界星空科技注塑行业MES解决方案

万界星空科技

mes 万界星空科技 注塑MES 注塑行业

爆火《幻兽帕鲁》被指用AI缝合宝可梦,开发者自曝传奇经历:是人类的奇迹

Openlab_cosmoplat

MQTT over QUIC 白皮书:下一代车联网消息传输标准协议

EMQ映云科技

车联网 mqtt QUIC QUIC协议 mqtt broker

Argo CD 可观测性最佳实践

观测云

ArgoCD

车内语音识别数据在智能驾驶中的应用与挑战

来自四九城儿

车内语音识别技术:智能驾驶的核心要素

来自四九城儿

聚道云软件连接器助力某半导体行业公司实现访客管理自动化

聚道云软件连接器

案例分享

智慧工地建设与低代码开发: 优化建筑行业的效率与安全

不在线第一只蜗牛

低代码 项目开发 智慧工地 数智转型

EOS系统合约总体介绍

BSN研习社

区块链 EOS

8个可替代Visio的绘图软件推荐!每一款都堪称神器。

彭宏豪95

效率工具 流程图 在线白板 绘图软件 Visio

低代码助力企业转型可视化

EquatorCoco

低代码 数字转型

微服务架构与低代码开发:加速应用开发的完美结合

快乐非自愿限量之名

架构 微服务 低代码 应用开发

直播预告|原生 vs 跨端,聊聊鸿蒙应用开发的真实感受

小红书技术REDtech

鸿蒙 前端 开发 跨端开发 小红书

左耳听风 - 技术领导力「读书打卡 day 17」

Java 工程师蔡姬

读书笔记 程序员 个人成长 职业发展 技术领导力

听GPT 讲Rust源代码--compiler(34)

fliter

您有一份OpenHarmony开发者论坛2023年度总结,请查收~

OpenHarmony开发者

OpenHarmony

对接50+快递商,快递鸟电子面单API助力商家多平台批量打单发货

快递鸟

快递物流 快递

2023 IoTDB Summit:Dr. Julian Feinauer《Apache IoTDB 在德国工业和关键基础设施中的应用》

Apache IoTDB

海外云手机三大优势

Ogcloud

云手机 海外云手机 云手机海外版 国外云手机

这么做,开发打造高水平国际体育赛事直播观看平台

软件开发-梦幻运营部

EMQ 发布MQTT over QUIC 白皮书:下一代车联网消息传输标准协议

新消费日报

小游戏选型(一):游戏化设计助力直播间互动和营收

音视频开发_AIZ

音视频开发 小游戏 小游戏开发 小游戏运营 直播间

车内语音识别数据在智能驾驶中的价值与应用

来自四九城儿

车内语音识别技术:智能驾驶的革新之源

来自四九城儿

适用于跨境电商的海外云手机

Ogcloud

云手机 海外云手机 云手机海外版 国外云手机

小游戏选型(二):第三方社交小游戏厂家对比,即构/声网/融云/云信等

音视频开发_AIZ

游戏开发 音视频开发 小游戏 小游戏开发 直播间

车内语音识别技术:重塑智能驾驶的未来

来自四九城儿

软件供应链安全继续强化:SBOM清单基座规范SBOMit启动制订

sender_is_sender

软件开发生命周期 软件供应链安全 软件物料清单(SBOM) in-toto

Pete Muir谈Seam 3、RichFaces 4及来到Infinispan的动因_Java_Charles Humble_InfoQ精选文章