BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Atmosphere Comet Abstraction Framework Alpha版发布

| 作者 Dio Synodinos 关注 4 他的粉丝 ,译者 张龙 关注 14 他的粉丝 发布于 2009年3月25日. 估计阅读时间: 6 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

AtmosphereGrizzly的升级版)是个基于POJO的框架,其目的在于将Comet带给大众。该Comet Abstraction Framework发布了首个alpha版,InfoQ有幸采访了该框架的创建者Jean-Francois Arcand来了解该框架的一些信息。

Atmosphere Framework的可移植性非常棒,它可以运行在任何基于Java的Web服务器上,包括TomcatJettyGlassFishResinJerseyRESTlet等等,这样我们就无需Servlet 3.0规范,也不需要使用任何特定于容器的push/Comet机制了。

Jean-Francois谈到了创建Atmosphere的动机

当前我们没法编写可移植的Comet应用:JBossWeb有AIO、Tomcat有自己的一套AIO API、Jetty有自己的Continuation API预览版的Servlet 3.0 API、Grizzly有自己的Comet FrameworkGrizzlet API等等不一而足。因此为了支持不同的Comet API,像DWRICEFacesBindows这样的框架都增加了本地支持及抽象层。更糟的是,如果应用直接使用了这些API,那么你就被绑定到了特定的Web服务器上了。如果使用的是Grizzly Comet,情况还不算太糟,但如果使用的是其竞争者,那么你就再也没法使用Grizzly了!

现在Servlet专家组正提议在即将发布的Servlet 3.0规范中增加Comet支持,但要想让所有产品都支持该规范还尚需时日,同时该提议会包括一些容器已经支持的特性子集,如异步I/O(Tomcat及Grizzly支持)、针对并发处理的push操作的容器管理线程池、针对push操作的过滤器等等。如果使用Atmosphere,虽然不能说框架就无需关心本地实现了,但他们可以构建在Atmosphere之上。像Bayeux这样的协议将会免费发布并运行在所有的Web服务器上(通过其本地API)。

综上所述,我开发了Atmosphere,希望填充这么多的沟壑并简化基于Comet的应用的创建,这是根据这两年来我在Grizzly Comet Framework上所获得的经验和反馈而得到的。

官方声明简要介绍了使用Atmosphere的一些前提条件:

要想在Web应用中使用Atmosphere,请从http://download.java.net/maven/2/org/atmosphere/atmosphere-portable-runtime/下载 atmosphere-cpr jar文件并放到WEB-INF/lib目录下,从http://is.gd/ngMm下载context.xml文件(Tomcat支持所必须的文件)并将其放到war文件的META-INF/目录下。你可以通过创建atmosphere.xml来定义AtmosphereHandler,就像war文件的META-INF目录下的http://is.gd/ngM1一样,当然这是可选的。

框架可以自动检测出AtmosphereHandler并用其类名进行映射(参见chat示例来了解更多信息)。

接下来,InfoQ向Jean-Francois问到关于Atmosphere发布的一些信息:

InfoQ:能否介绍一下构成Atmosphere的各个组件么?

现在我们有3个模块。第一个(上周发布)是CPR(Comet Portable Runtime),想使用Comet的Web应用可以借助于CPR来获得可移植性。第二个叫做core,它将CPR引入到了Jersey项目中并支持REST、注解及IoC等等。这样我们就可以轻松构建Comet应用了。最后一个是PlugIn,开发者可以借助它扩展core(使用注解)。我们还需要向Web应用中增加集群功能,也就是说当连接在实例1上挂起时,如果发生了push,那么该连接就会收到通知(如果被注解了)。这样我们就可以集群Comet应用并同时对其进行更新。

InfoQ:Atmosphere的路线图如何,何时发布下一个版本?

我们将在4月底完成core和cpr模块,现在正在开发PlugIn。

InfoQ:你如何看待Atmosphere的发展与Servlet 3.0规范的关系?

Atmosphere不仅会支持Servlet 3.0异步API,而且还会提供3.0规范所没有提及的一些功能。例如,Atmosphere的Broadcaster在挂起的连接之间push/aggregate/filter数据时就非常有用。

可以通过项目主页Twitter邮件列表Jean-Francois的博客找到更多关于Atmosphere的信息。

查看英文原文:The Atmosphere Comet Abstraction Framework Releases Alpha

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

规范性问题呢? by Alex gemini

它还是没搞定规范性问题呀,不会因为它跨容器就选它,尤其是没有完全理由不选一个广泛接受的grizzly . 等到servlet 3.0 又重新洗牌,唉

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT