Caucho Resin 通过 Java EE 6 Web Profile 的官方认证

阅读数:748 2011 年 6 月 12 日

话题:JavaDevOps语言 & 开发架构

Caucho 公司的Resin,从 4.0.17 版本开始,成为兼容 EE 6 Web Profile 实现的认证产品。该公司透露了他们取得认证的目的,实现细节可参照免费的 PDF 白皮书

基本思想是,在复用已经通过认证的其他必需技术的模块的同时,为核心 API 开发自定义的实现。所以,Resin 开发了自己的 CDI 实现(即 CanDI),作为其服务器的核心部分。他们还有自己的定制 Servlet 3.0 和 EJB 3.1 精简版的实现。其他的组件(JSF2/Facelets、JPA 和 Bean Validation)则直接取自 Oracle 的 GlassFish 引用实现。

CanDI是服务器的完整组成部分,因为 Resin 自身就使用了它。Caucho 在每个规范(JSR-299 上下文和依赖注射)中都是个积极的参与者,他们以 CanDI 的形式提供自己的实现也就不足为奇了。这是 JSR-299 规范的第三份实现,前者分别有来自 Apache 的OpenWebBeans和红帽 JBoss 部门的WeldSeam 3就是基于 Weld 构建的。

Caucho 已经决定在 CanDI 和 EJB 精简版中添加一些 Web Profile 没有的功能:

Profile 并没有禁止厂商根据自己的需要添加新的 API 和功能。稍后我们将谈到,我们已经决定在 Web Profile 之上添加少量的 Java EE API 和功能。尤其是,我们看到了增加支持计划、异步处理、消息、消息驱动 Bean 和基于 Hessian 的远程访问等功能的价值。

因此,除了标准的 @ApplicationScoped、@SessionScoped、@RequestScoped 和 @ConversationScoped 之外,CanDI 增加了 @TransactionScoped 和 @ThreadScoped 等额外扩展。它还明确支持Spring和 Seam 3 Web 应用程序。

在 EJB 3.1 精简版的实现中,除了 Web Profile 必须要求的功能之外,也增加了额外的功能。Resin 支持 EJB 计划(@Schedule、@Timeout)、异步处理(@Asynchronous)、消息驱动 Bean(@MessageDriven)和基于 Hessian 的远程访问(@Remote)。 Hessian是一个自定义的二进制通信协议(基于 HTTP),专注于网络性能,也是由 Caucho 开发的。

Caucho 将继续支持 EE 6 Web Profile,他们也是第一个提供兼容标准的轻量级应用服务器的公司。Caucho 认为这在以前的 Java EE 版本中是不可能的,因为轻量级服务器和完全兼容常常是水火不容的:

只能选择其一,要么创建轻量级 Java 应用服务器,要么去达到完全兼容标准。而 Resin 过去选择的是和 Tomcat 及 Jetty 一样的路线,即轻量级实现。

查看英文原文:Caucho Resin is Officially Certified Against the Java EE 6 Web Profile