Atmosphere Comet Abstraction Framework Alpha版发布

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

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

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

当前我们没法编写可移植的Comet应用:JBossWeb有 AIO、Tomcat有自己的一套 AIO API、Jetty有自己的 Continuation API及 预览版的Servlet 3.0 API、Grizzly有自己的 Comet Framework及 Grizzlet API等等不一而足。因此为了支持不同的Comet API,像 DWR、 ICEFaces及 Bindows这样的框架都增加了本地支持及抽象层。更糟的是,如果应用直接使用了这些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

你可能感兴趣的:(Atmosphere Comet Abstraction Framework Alpha版发布)