技术开发 频道

Java Web服务在未来一年内的发展



  向互操作性进发

  JAX-WS 2.0 直接支持 XOP/MTOM,而并不是其他新的 WCF 技术。不过,在 Sun 声明的与 Microsoft 互操作性承诺中,他们宣布将开发 WCF 中包含的其他技术的 Java 开放源代码版本。这些开放源代码实现将作为大型项目“GlassFish”的一部分进行开发,此项目涵盖了作为 Sun 的应用服务器(包括 JAX-WS 2.0 和 JAXB 2.0 参考实现)的一部分使用的所有技术。

  在这些新的开放源代码项目成形之前,我们需要拭目以待。在 Sun 所公布的时间表中,将在 2006 年中期提供一些可用的东西,因此在本系列的后续文章中将能够提供更多的详细信息。

  Apache 方法

  Apache 项目数年来已在 Web 服务方面进行了大量的工作,其主要精力放在 Java 平台开发上。Apache 当前的 Java SOAP Web 服务生产平台是第三代 Axis 框架。Axis 得到了广泛的使用,这既包括开发人员下载并直接使用,也包括将其作为 SOAP 引擎嵌入到若干不同的应用服务器中。Axis 通常被认为是使用最广泛的 Java SOAP Web 服务平台。

  不过,Axis 也有一些缺点。首先,它是基于 JAX-RPC 1.0 标准设计的,而后者在很大程度上约束了 Axis 体系结构,限制了其灵活性。随着为了以 SOAP 处理核心为基础构建新技术而对扩展的需求的增加,这个有限的灵活性就越来越成问题了。同时,转向 doc/lit SOAP 服务也带来了对更好模式支持的需求,对 Axis 代码而言,这在当时是非常不实际的。到 2004 年中期,Axis 团队认为需要重新进行编写工作,要在进行重新编写工作中应用通过实现 Axis 获得的经验,并同时提供更好的灵活性,以便将来进行扩展。

  “救世主”Axis2

  Axis2 是 Axis 的后续版本。它设计为轻量 SOAP 处理引擎(尽管对于 JAX-WS 2.0,Axis2 也包含一些对 REST 的支持),可以采用很多方式进行扩展。与原来的 Axis 不同,Axis2 并不刻意对实现任何特定 API 进行约束(尽管一些 JAX-WS 2.0 支持级计划使用 Axis2 核心代码的包装)。Axis2 的开发工作已经持续了一年多,不久就将投入生产。

  Axis2 最好的特性之一就是为 SOAP 消息使用的 AXIOM 对象模型。XML 对象模型存在的时间几乎和 XML 本身一样长,最早的版本是来自 W3C 的 DOM 标准。AXIOM 和其他 XML 对象模型不同的地方在于,它利用新的 XML 解析器提供的灵活性来允许按需构造对象模型。这意味着,只有为实际需要通过模型访问的 XML 文档部分构建对象模型才会带来性能损失。

  另一个主要 Axis2 特性是对可插入数据绑定的支持。此特性允许您选择最简单的方式来处理 SOAP 文档的 XML 有效载荷,对生成的代码进行自定义,以使用所选择的方法。可能的选择包括,直接使用 AXIOM,使用与原来的 Axis 相似的简单数据绑定方法,或使用 XMLBeans、JiBX 或 JAXB 2.0 等专用数据绑定框架。

  扩展 Axis2

  尽管 Axis2 仍然在开发中,不过已经有了一系列在 Axis2 基础上实现 SOAP 扩展的项目。这些项目包括 WCF 所支持的所有主要技术以及 Microsoft 计划在加载项(即独立计价的)应用程序中的一些扩展。Axis2 的体系结构允许使用一个称为模块 的组件方便地开发此类扩展。

  WS-Addressing 和 WS-Security 模块当前包含在基础 Axis2 分发中(在将来将可能作为独立部分下载,或者甚至成为独立的项目,因为这些模块和核心 Axis2 代码之间并没有紧密耦合关系)。WS-ReliableMessaging 支持正在通过 Sandesha 项目开发,而 WS-Trust 和 WS-SecureConversation 正在通过 WSS4J 项目开发(已经提供了 WS-Security 实现)。WS-AtomicTransaction 和 WS-Coordination 正在通过 Kandula 项目进行实现。

  小联盟

  除了 Sun 和 Apache 这些著名的组织之外,在开放源代码开发领域外仍然有一些其他创新 Web 服务项目在进行。其中一个就是我自己的 JibxSoap 项目,该项目是以我的 JiBX XML 数据绑定框架为基础构建的 SOAP 和 REST 引擎。JibxSoap 的主要优点在于其出众的速度——在以前的测试中,其使用标准 SOAP 消息的性能几乎能与 Java RMI 性能匹敌。XFire 是另一个 SOAP 引擎,该引擎允许选择使用数据绑定框架;XFire 也具有出色的性能结果。JibxSoap 和 XFire 都有可能在下一年投入生产使用。

  考虑到开发源代码开发的速度,无疑将在 2006 年期间出现一些其他的新 Java 框架。即使这些框架不能达到 Sun 和 Apache 那样的受欢迎程度,但能够以更简单(或更快)的方式实现相同的目标,所以仍然具有很大的影响力。

  展望

  现在,我已经在本文中对 2006 年的 Java Web 服务发展进行了介绍,在后续文章中,我将更详细地对各个开放源代码 Java 框架进行讨论。下一篇文章中,我们将讨论 Axis2,对其体系结构和基础 AXIOM 对象模型进行分析。我还将讨论 AXIOM 中包含的 XOP/MTOM 附件支持以及数据绑定框架如何访问此附件。以后的文章将讨论 Axis2 数据绑定后备选项和性能,以及其他 Java Web 服务框架的详细信息和性能。敬请关注此系列的每篇新文章,以了解最新的详细信息。
0
相关文章