AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

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:531699
用户头像

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

关注

评论

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

Linux ls命令:查看目录下文件

芯动大师

Redis 7.0 源码调试环境搭建与阅读技巧

码哥字节

redis redis 底层原理

🎊OpenTiny Vue 3.11.0 发布:增加富文本、ColorPicker等4个新组件,迎来了贡献者大爆发!

Kagol

自定义过滤器配置 Shiro 认证失败返回 json 数据

emanjusaka

Java shiro

软件开发全文档整理(获取原件)

金陵老街

项目管理 软件文档

Mac可用的GTD任务管理软件Omnifocus Pro 3

展初云

Mac软件 任务管理软件 GTD

博睿数据亮相GOPS全球运维大会上海站!

博睿数据

国内有哪些做的比较好的云教室厂商?

青椒云云电脑

云教室 云教室厂商 云教室解决方案

Mac电脑专业批量文件重命名 MetaRename中文激活版

胖墩儿不胖y

Mac软件 重命名工具 重命名软件

Mac系统清理和优化软件 CleanMyMac X

展初云

CleanMyMac X Mac软件 系统优化工具

产研团队必看!3款在线白板工具助你轻松改善工作!

彭宏豪95

产品经理 科技 产品研发 在线白板 效率软件

StarRocks 荣获 InfoWorld 2023 年最佳开源软件

StarRocks

Mac可用的流程图和图形设计软件OmniGraffle Pro 7

展初云

Mac 流程图绘制工具

Kafka 在分布式系统中的 7 大应用场景

越长大越悲伤

Java kafka

SQLSmith: Databend 如何利用随机化测试检测 Bug

Databend

跨语言高性能 RPC 框架 Focus 架构解析

dinstone

RPC 高性能 跨语言 focus

数科公司新动向,借助外部力量寻求增长突破

用友BIP

数科公司

腾讯Ckafka队列使用测评

查拉图斯特拉说

kafka 消息中间件

如何选择向量数据库|Weaviate Cloud v.s. Zilliz Cloud

Zilliz

非结构化数据 Zilliz 向量数据库 zillizcloud

3DCAT+东风日产:共建线上个性化订车实时云渲染方案

3DCAT实时渲染

汽车虚拟仿真 汽车3D可视化

Python 继承和子类示例:从 Person 到 Student 的演示

小万哥

Python 程序员 软件 后端 开发

EMQ 获第八届 “创客中国” 物联网中小企业创新创业大赛一等奖

新消费日报

关于亚马逊 CodeWhisperer 的测试反馈

亚马逊云科技 (Amazon Web Services)

#人工智能 云上探索实验室 Amazon CodeWhisperer

云教室如何部署?云教室使用教程

青椒云云电脑

云教室 云教室厂商

Kubernetes跨StorageClass迁移,切换Rainbond默认SC

北京好雨科技有限公司

云原生 #Kubernetes# 企业号10月PK榜

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