Apache 最近宣布了 Apache CXF 2.0 的发布。 Apache CXF 提供了一套创建 SOA 服务的基础设施框架,用户由此可以按照自己喜欢的编程模式,利用 Apache CXF 提供的简单易用工具(包括 Maven 插件),创建适合 SOA 环境的任何 WEB 服务,包括 SOAP/HTTP 服务及 REST/HTTP 服务。Apache CXF 可扩展的插拔式架构不但支持 XML 消息格式和 HTTP 通信协议,而且还支持基于其他通信协议如 IIOP 和非 XML 消息格式如 CORBA CDL 或 JSON。
Apache CXF 项目是由 Objectweb Celtix 和 Codehaus XFire 在一年前合并成立的。Objectweb Celtix 是由IONA 公司赞助、于2005 年成立的开源Java ESB 产品,XFire 则是业界知名的SOAP 堆栈。合并后的Apache CXF 融合该两个开源项目的功能精华,提供了实现SOA 所需要的核心ESB 功能框架,包括SOA 服务创建,服务路由,及一系列企业级QoS 功能。此次发布代表了Apache CXF 开发人员及社区用户一年的努力结果,并标志 Apache CXF 软件的进一步成熟,成为实现SOA 的优秀技术解决方案之一。
Apache CXF 实现了 JCP 及 Web 服务的主要技术标准,大大方便了用户使用不同编程模式进行 SOA 服务开发,并为企业遗留系统的集成提供了可扩展性。Apache CXF 支持的主要技术标准及功能包括:
- 多种技术标准。Apache CXF 完全实现了多个 JSR 标准,包括 JAX-WS 2.0(JSR-224) 、Java Web 服务元数据(JSR-181)、和 SAAJ (JSR-67)。Apache CXF 2.0 发布还通过了 JAX-WS 2.0 TCK,成为开源社区继 JAX-WS RI 之后的第一个通过 JAX-WS TCK 的 SOAP 堆栈。Apache CXF 还实现了多个 Web 服务标准,为用户实现企业级的 Web 服务提供了广泛的支持,这些 Web 服务标准包括 SOAP 1.1、SOAP1.2、MTOM/XOP 、WSDL 1.0、WS-Addressing、WS-ReliableMessaging 、WS-Policy,WS-Security 及 WS-I Basic Profile。
- 多种编程模式。为方便用户按照自己喜欢的方式创建 web 服务,Apache CXF 提供了多种 web 服务开发模式。除了完全支持 JAX-WS 各种编程模式如 client/server、同步、异步 、单程及动态调用接口,Apache CXF 还支持 JavaScript 及 ECMAScript 4 XML(E4X) 编程。Spring 用户可以很容易地按照 Spring 编程方式快速创建并部署 web 服务。传统的 Java 开发人员则可以通过注释(Annotation)方便地进行 web 服务开发,喜欢 POJOs 的 Java 开发人员更可直接配置并部署基于 POJOs 的 web 服务。更值得一提的是,通过 Apache Yoko,用户不需要任何 CORBA 编程知识就可以轻松地把现有 CORBA 应用转化为 web 服务,或开发客户端与现有 CORBA 应用直接交互。
- 多种通信协议及消息格式。Apache CXF 支持多种通信传输协议,包括 HTTP/HTTPS、JMS、 Servlet 及同一 JVM 内通信,并提供了 SOAP 或纯 XML 通信消息格式 (payload) 支持。同时,Apache CXF 具有创新意义的 REST/HTTP 支持也大大方便了用户创建真正符合 REST 风格的 web 服务。对于那些需要重用 IT 遗留系统的用户来说,Apache CXF 可扩展的插拔式架构允许定制开发并混合使用任何类型的通信协议及通信消息格式。
- 支持多种容器部署。基于 Apache CXF 的 web 服务可以单独运行,也可部署在多种容器里,包括轻量级容器如 Tomcat 及 Spring ,JEE 容器如 Geronimo, JBOSS, WebLogic 等。同时,Apache CXF web 服务还可以服务引擎方式部署于 JBI 容器如 ServiceMix 或 OpenESB 。SCA 容器如 Apache Tuscany 的支持也在计划之中。
目前,与 Apache CXF 类似的开源项目有 Apache Axis2 , JBOSS ESB 和 Sun 的 Metro 项目。据 Apache CXF 社区宣称,Apache CXF 以其性能和插拔式架构的优势正与其他开源项目区别开来,引起许多 SOA 编程高级用户的注意。
作者简介:林伯仲, IONA 科技公司亚太研发中心研发经理。他和他的北京同事目前致力于 SOA 基础架构软件研发,并共同参与多个 SOA 及 Web 服务开源项目,包括 Eclipse STP 和 Apache CXF 等。
评论