【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

Grizzly 与新的 Atmosphere Comet 框架:采访项目领导者 Jean-Francois Arcand

  • 2008-07-14
  • 本文字数:2685 字

    阅读完需:约 9 分钟

Grizzly 框架已经用在很多产品中了,如 GlassFish Sailfin RESTlet OpenESB 等等,通过采取 Java 新的 I/O API (NIO)它使得开发者能够编写出可伸缩的服务器端应用。Grizzly 的下一代—— Atmosphere 是一个基于 POJO 的框架,它的目标是将 Comet 带给大家。Jean-Francois 向 InfoQ 谈到了这一新变化。

InfoQ: 你能否向我们介绍一下使用 Grizzly 这样的框架的好处以及通常人们使用它的方式吗?

Jean-Francois Arcand (JFA): 编写可伸缩的客户端或者服务器端应用不是一件容易的事情。使用 Grizzly 框架的好处就在于你可以不用考虑底层的 NIO 细节就能构建强大的应用。Grizzly 使你能以非常简单的方式编写应用,从而加快客户 / 服务器应用的开发速度。Grizzly 社区也很活跃,他们回答问题的速度非常快,这使得开发体验也非常好。对于任何开源项目来说,活跃的社区总是一剂催化剂,这几年下来我们不断成长并且从社区中学到了很多。

InfoQ: 在新发布的 1.8 版中,Grizzly 框架包装了各种可以共存或者独立安装的模块。你能否简要描述一下这些模块以及当前发布的总体架构?

JFA: Grizzly 模块可分成两类:第一类是 NIO 框架及其扩展。NIO 框架可用来构建强大的服务器端应用。例如,我曾在爱立信(通过 Sailfin 项目)从事 Grizzly 框架模型上的 SIP 协议支持。SIP 协议支持 TLS、UDP 及 TCP 作为传输层,因此唯一可行的方案就是采用 Grizzly 框架。另一个例子是 Sun 的 Shared Shell 产品,它也构建在 Grizzly 框架之上。第二类我称之为嵌入式组件,如 http、jruby 及 comet 扩展。他们能直接使用,也能以嵌入式的方式使用。一个好的例子就是 GlassFish v3,它是构建在 http 模块之上的。我们还有一个实验性的功能不完全的 Servlet 容器(尚未完成),它可被用于测试目的(比如通过 junit)。Jersey 项目使用它完成自动化测试,到目前为止,作为一个微型的类似于 Servlet 容器的实验品,它的用处还是非常大的。

InfoQ: 很多开源项目都使用了 Grizzly,无论在 Sun 内部还是外部,其中最著名的当属 GlassFish 应用服务器。你能否再举一些例子来说明该框架的强大?

JFA: 因为开源,所以很难说出谁在使用你的东西。我知道的有下面这些:(Sun 外部)4homemedia.com、RESTlet、Jetty、Alt-mobile、Mediafed/blog-city、T-mobile、Yahoo Brazil、Bindows Ajax 框架等等。(Sun 内部)GlassFish、JXTA、Phobos、JavaCaps open-esb http binding、Jersey、GlassFish v3 Grail 实现、 Netbeans、Sailfin、Sun Shared Shell、Sun Instant Messenger,构建在 Grizzly 的 JRuby on Rail 扩展之上的 GlassFish JRuby gems。ICEFaces 和 DWR 提供支持的用于客户端的 Grizzly Comet。也许还有很多,但他们不告诉我们 :-)

InfoQ: 你怎样看待 Grizzly 所面对的来自 Tomcat 或者 Jetty 的竞争?

JFA: Grizzly 与 Tomcat/Jetty 的主要区别在于后者完全支持 Servlet 2.5 规范,而 Grizzly 还没有 :-)。Grizzly 的优势在于嵌入式领域。我认为一个容易定制的小型 http 运行很有市场。而这也是 Grizzly 优于 Jetty/Tomcat(更小、容易扩展等等)的地方。Jetty 是该领域的领导者,但是我们看到越来越多的应用从 Jetty 迁移到了 Grizzly 上。Grizzly 的一个优点是其异步的请求处理机制,这可在 http 层进行定制。这种机制非常适合小型的异步代理。Grizzly 的 http 扩展使你能编写基于 Comet 的应用而无需 Servlet 支持,有时我们需要这样。

InfoQ: Servlet 3.0 规范(JSR 315)要为 Comet 提供继承支持,你怎么看待这一点?

JFA: 对,Servlet 3.0 准备为 Comet 添加官方的 API 支持。他们主要在讨论挂起 / 继续请求的方式。

InfoQ: 你能否向我们介绍一下 Atmosphere 框架及其产生的驱动力吗?

JFA: 两年前我曾发表了一篇关于 Grizzly Comet 框架的博文,从那时起我就打造了一个关于它的社区。Grizzly Comet 框架的一个缺点是它只能与 Grizzly 运行时和 GlassFish 协同工作,这是个严重的限制。很多人曾建议该框架支持其他容器,如 Tomcat、Jetty 以及 Resin。因此,Atmosphere 的目标就是吸收 Grizzly Comet 框架的精华(一个叫做 Grizzlet 的组件)并支持所有容器(无论支持 Comet 与否)。不必等到 Servlet 3.0 规范发布人们就能编写轻巧的 Comet/Ajax 推应用(Push application)。它还会提供 Servlet 3.0 规范之外的很多东西。

InfoQ: Grizzly 和 Atmosphere 对 Bayeux 的发布 / 订阅协议的支持如何?

JFA: Bayeux 实现可以构建于 Atmosphere 之上。但是现在,我将专注于 Atmosphere 本身,并打造一个关于它的社区。一旦 1.0 版发布,我们就会留意能否在其上应用 Bayeux 协议。

InfoQ: 关于 Atmosphere,Grizzly 有何打算呢?新框架能完全代替旧的吗?

JFA: Atmosphere 仅仅是将 comet 从 Grizzly 迁移到了新项目中。最近我们将 grizzly-jruby 扩展迁移到了叫做 GlassFish scripting 的新项目中了。Atmosphere 将成为一个新项目的第二个扩展。

Grizzly 的主要组件、NIO 框架及其 http 扩展仍旧保留在 Grizzly 下。我们现在正从事于 Grizzly 2.0 的开发(有新的领导,所以我能专注于 Atmosphere)并且很多活动也要在其上展开了。

InfoQ: Atmosphere 和 Grizzly 的下一个版本发布的时间表是怎样的?

JFA: Grizzly 2.0 将在今年 12 月发布。至于 Atmosphere,主要看 web 社区反映和参与的程度如何了。因为现在关于 Comet API 还没有一个标准,还需要很多特定于容器的代码,社区的帮助会加快进度并提高稳定性。到目前为止,我可以确定的是 0.1 版(我开始的提议和第一版)会在明年夏天发布。

InfoQ: 有支持这个新框架的新工具发布吗?或许 NetBeans 插件可以?

JFA: 确实,IDE 支持非常值得关注。我还想有 Maven 支持。

InfoQ: 你如何看待 Grizzly 和 Atmosphere 项目的不断发展,最后能提供可伸缩的应用和 Comet 编程范式吗?

JFA: Atmosphere 的一个好处就是它使我能将 Grizzly Comet 的性能与其他容器进行比较。我想 Grizzly 会从中受益,因为通过与其他框架比较发现的任何性能问题都会有助于改进 Grizzly。

Grizzly 社区可能会继续独立于 Atmosphere 发展,因为嵌入式市场也在不断发展,grizzly 就是为数不多的非常方便的嵌入式容器之一。我最近看到的一个示例就是运行在 iPhone 之上的 grizzly comet,我对此惊讶不已。我相信在未来几年中越来越多的惊喜会涌现出来。

InfoQ: Jean-Francois,非常感谢你接受我们的采访。

你可以访问 http://www.infoq.com/news/2008/01/comet-scalability 以了解关于 Comet 和反向 Ajax 的更多信息。

查看英文原文: Grizzly and the New Atmosphere Comet Framework: Q&A with Project Lead Jean-Francois Arcand

2008-07-14 00:531573
用户头像

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

关注

评论

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

从源码全面解析 ArrayBlockingQueue 的来龙去脉

做梦都在改BUG

Java 源码 ArrayBlockingQueue

Matlab实现粒子群算法

Shine

三周年连更

华为云大数据BI方案为房地产行业数字化发展赋能

轶天下事

云计算,

华为云大数据BI解决方案,助力企业数字化运营

轶天下事

macOS 13 Ventura (苹果最新系统) v13.3.1正式版

Rose

macOS Ventura 苹果系统下载 Mac最新系统

华为云大数据BI解决方案,助力企业数字化运营

平平无奇爱好科技

华为云CDN赋能企业数字化转型

YG科技

浅谈华为云CDN在互联网领域的应用场景落地

YG科技

NFT加密钱包交易系统开发搭建技术

薇電13242772558

NFT

华为云桌面,如何为企业构建新型工作方式

平平无奇爱好科技

摆脱终端束缚,华为云桌面助力企业数字化转型

平平无奇爱好科技

跨平台应用开发进阶(五十五):uni-app 获取设备信息及 APP 报无相应权限问题分析及解决

No Silver Bullet

uni-app 跨平台应用开发 三周年连更 问题分析及解决 设备信息

灵活高效,华为云桌面实现随时随地办公

YG科技

面试官:介绍一下什么是缓存雪崩、缓存击穿、缓存穿透?

做梦都在改BUG

Java redis 缓存穿透 缓存击穿 缓存雪崩

率失真函数的性质

timerring

信息论与编码

【直播回顾】数字化转型成为银行业发展的关键(下)

易观分析

数字化转型 银行

华为云桌面——云端上“最卷的云”

平平无奇爱好科技

华为云CDN加速,赋能企业数字化转型升级

YG科技

THREE.JS实现炫酷的3D简历网站

知心宝贝

前端 后端 3D ThreeJS 三周年连更

面试还不懂JVM调优,看这篇就够了

程序员小毕

程序员 面试 后端 架构师 jvm调优

4月26日-30日,KaiwuDB 在数字中国等你!

KaiwuDB

数字中国 KaiwuDB

华为云OBS,助力企业海量、安全、高可靠、低成本数据存储

轶天下事

云计算,

中国信通院“OSCAR开源生态建设沙龙”成功召开

中国IDC圈

开源

AlDente免费版,限制 Macbook 最大充电量,保护电池健康

Rose

AlDente Mac版 AlDente macOS 充电量阈值

Spring Boot之log4j2基础使用入门|超级详细,建议收藏

bug菌

Spring Boot log4j2 三周年连更

华为云桌面随需而至,让办公数字化触手可及

平平无奇爱好科技

复旦MOSS大模型开源了「中国版ChatGPT」,Github和Hugging Face同时上线

肥晨

三周年连更

华为云虚拟专用网络VPN常见问题解答

YG科技

达芬奇18补丁版下载 支持m1/m2/intel/win

Rose

DaVinci Resolve 18 达芬奇18破解版 视频剪辑调色软件

Linux面试必备

袁袁袁袁满

三周年连更

PHP 中数组是如何灵活支持多数据类型的?

架构精进之路

php 数组 后端 三周年连更

Grizzly与新的Atmosphere Comet框架:采访项目领导者Jean-Francois Arcand_Java_Dio Synodinos_InfoQ精选文章