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 部门的 Weld , Seam 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
评论