近日 Caucho 宣布将在其下一个版本的轻量级应用服务器 Resin 4.0 中支持 Java EE 6 Web Profile。与一些大厂商的产品相比,Resin 的速度非常快,通过对 Java EE 6 Web Profile 的支持可以让 Resin 的模块化之路更进一步。
Java EE 6 Profiles 是这样一种机制:规范所描述的技术并不包含完整的 Java EE 6 认证功能集。这么做的原因很实际:完整的认证意味着实现的负担会很重,而很多人并不需要具备向后兼容的完整功能栈以及很少用到的一些 API(比如 JCA)。
Web Profile 就是这样一种 Profile。Web Profile 规范支持很多技术:如 Web 层的 JSF 2、Facelets、JSP 以及 Servlets 3.0;还支持 Bean Validation、用于持久化的 JPA 2、用于事务管理的 JTA、用于业务层服务的 EJB 3.1 Lite 以及描绘了通用组件模型的 CDI。EJB 3.1 Lite 规范是对 EJB 3.1 规范的一种裁剪,它连接了 Web 应用栈,但却不支持其他很多特性,如 JAXRS(REST 端点)、SOAP、RMI/CORBA、对 EJB 2.x 的向后兼容、异步服务以及 Message Driven Bean。
虽说如此,但实现者可以随意突破这种限定,比如说 Resin 就通过 Caucho 的 Hessian 技术(不是 RMI 和 SOAP)公开了一个远程层并提供了一个最简单、但却非常高效的 JMS 实现,同时还提供了对 Message Driven Bean 的支持。EJB 3.1 Lite 容器也将支持异步方法、调度方法等功能。
InfoQ 有幸采访到了 Caucho EJB 3.1 Lite 容器的工程部领导 Reza Rahman(同时也是 Java EE 6 和 EJB 3.1 的专家组成员)以了解 Caucho Resin 的未来发展方向。他说 Caucho 计划创建一个轻量级的应用服务器,如果有可能,提供规范以外的功能。Caucho 正在吃自己的狗粮——将整个服务器构筑在 CDI 组件模型之上。最终,容器所提供的所有服务将会搭建在自己实现的 CDI 上—— CanDI 。这些服务的客户端将感觉不到任何差异,对于实现来说,EJB 组件与常规的 CDI Bean(使用了 EJB 模型)也没有什么不同。事实上,凭借 Resin EJB 3.1 Lite 容器,我们可以在 EJB 之外使用 EJB service 注解。这种架构反映了 Java EE 6 规范正在将不同的服务转换为统一的组件模型这个大趋势。Rahman 说:“我们看到遗留的 EJB 组件模型正在消亡,但对于 EJB 规范来说还有更好的方式来处理业务服务”。
在被问到 Caucho 是否会为 Resin 实现完整的 Java EE 6 认证时,Rahman 明确回答说他们不会这么做,因为将不再使用老式 API,同时 Caucho 会保证 Resin 的竞争优势,必要时会进行革新。
Rahman 强调 Caucho 非常看重社区的反馈,同时也鼓励人们都来尝试一下 Resin。Caucho 还提供了一个名为 Quercus 的 PHP 实现,获得了很好的反馈。除了 Web Profile 之外,Caucho 还致力于将 Resin 推上云端。
评论