`

Web Service修炼之一XFire入门1

 
阅读更多

Web Service修炼之一XFire入门

一、XFire知识

1Web Service架构

     web Service是独立的、模块化的应用,能够通过因特网来描述、发布、定位以及调用。在Web Service的体系架构中包括三个角色:服务提供者(Service Provider)、服务请求者(Service Requestor)、服务注册器(Service Registry)。角色间主要有三个操作:发布(Publish)、查找(Find)、绑定(Bind)。

2Web Service协议标准

    简单对象访问协议(SOAP

       SOAPSimple Object Access Protocol的缩写,是一种基于XML的不依赖传输协议的表示层协议,用来在分散或分布式的应用程序之间方便地以对象的形式交换数据。在SOAP的下层,可以是HTTP/HTTP,也可以是SMTP/POP3,还可以是为一些应用而专门设计的特殊的通信协议。

    SOAP包括三个主要部分:

      SOAP封装结构:定义了一个整体框架,以表示消息中包含什么内容,谁来处理这些内容以及这些内容是可选的或是必需的。

            SOAP编码规则:定义了用以交换应用程序定义的数据类型的实例的一系列机制。

      SOAP RPC表示:定义了一个用来表示远程过程调用和应答的协定。

    Web Service描述语言(WSDL

           WSDLWeb Service Des cription Language的缩写,该语言将网络服务定义成一个能交换消息的通信端点集,为分布式系统提供了帮助文档,同时也可作为自动实现应用间通信的解决方案。

    统一描述、发现和集成协议(UDDI

      UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。

3、XFire 概述

    XFire 是 codeHaus 组织提供的一个开源框架,它构建了 POJO 和 SOA 之间的桥梁,主要特性就是支持将 POJO 通过非常简单的方式发布成 Web 服务,这种处理方式不仅充分发挥了 POJO 的作用,简化了 Java 应用转化为 Web 服务的步骤和过程,也直接降低了 SOA 的实现难度,为企业转向 SOA 架构提供了一种简单可行的方式。

    XFire 目前最新的版本是 1.2.6,目前支持的特性主要包括:

· 支持将 Web 服务绑定到 POJO、XMLBeans、JAXB1.1、JAXB2.0 和 Castor;

· 支持基于 HTTP、JMS、XMPP 等多种协议访问 Web 服务;

· 支持多种 Web 服务业界重要标准如 SOAP、WSDL、Web 服务寻址(WS-Addressing)、Web 服务安全(WS-Security)等;

· 支持 JSR181,可以通过 JDK5 配置 Web 服务;

· 高性能的 SOAP 实现;

· 服务器端、客户端代码辅助生成;

· 对 Spring、Pico、Plexus 等项目的支持等。

4、XFire优点

    XFire是与Axis2 并列的新一代WebService平台。之所以并称为新一代,因为它:
1、支持一系列Web Service的新标准--JSR181WSDL2.0 JAXB2WS-Security等;
2、使用Stax解释XML,性能有了质的提高。XFire采用Woodstox Stax实现;
3、容易上手,可以方便快速地从pojo发布服务;
4Spring的结合;
5、灵活的Binding机制,包括默认的Acegis,xmlbeans,jaxb2,castor
XFireAxis1性能的比较
1XFireAxis1.32-6
2XFire的响应时间是Axis1.31/21/5

5、XFireAxis2比较

    虽然XFireAxis2都是新一代的WebService平台,但是Axis2的开发者太急于推出1.0版本,所以1.0还不是一个稳定的版本,它的开发者宣称1.1版本即将推出,希望1.1版本会是个稳定的版本。在XFire捐献给apache后有人认为Axis2将会灭亡。其实在很多人眼里,Axis2并不是pojo形式,现在也好象XFireAxis更有市场,也有很多人开始从Axis转向XFire
据说,XFire确实比Axis2简单很多

     AXIS VS CXF
     SOA领域,我们认为Web ServiceSOA体系的构建单元(building block)。对于作过WebService的开发人员来说,AXISCXF一定都不会陌生。这两个产品都是Apache孵化器下面的Web Service开源开发工具。 Axis2的最新版本是1.3CXF现在已经到了2.0版本。

这两个框架 都是从已有的开源项目发展起来的。Axis2是从Axis1.x系列发展而来。CXF则是XFireCeltix项目的结合产品。Axis2是从底层全部重新实现,使用了新的扩展性更好.

   通过一个比较矩阵来比较Axis2CXF变得有现实的意义。这两个项目都开发不够成熟,但是最主要的区别在以下几个方面:
     1. CXF支持 WS-AddressingWS-PolicyWS-RMWS-SecurityWS-I Basic ProfileAxis2不支持WS-Policy,但是承诺在下面的版本支持。
     2. CXF可以很好支持SpringAxis2不能
          3.AXIS2支持更广泛的数据并对,如XMLBeansJiBXJaxMeJaxBRI和它自定义的数据绑定ADB。注意JaxMEJaxBRI都还是试验性的。CXF只支持JAXBAegis。在CXF2.1
     4. Axis2支持多语言-除了Java,他还支持C/C++版本。

      Axis2允许自己作为独立的应用来发布Web Service,并提供了大量的功能和一个很好的模型,这个模型可以通过它本身的架构(modular architecture)不断添加新的功能。有些开发人员认为这种方式对于他们的需求太过于繁琐。这些开发人员会更喜欢CXF

      CXF更注重开发人员的工效(ergonomics)和嵌入能力(embeddability)。大多数配置都可以API来完成,替代了比较繁琐的XML配置文件, Spring的集成性经常的被提及,CXF支持Spring2.0CXF's APISpring的配置文件可以非常好的对应。CXF强调代码优先的设计方式(code-first design),使用了简单的API使得从现有的应用开发服务变得方便。

       建议:如果你需要多语言的支持,你应该选择AXIS2。如果你需要把你的实现侧重JAVA并希望和Spring集成,CXF就是更好的选择,特别是把你的Web Service嵌入其他的程序中。如果你觉得这两个框架的新特性对于你并没有太大的用处,你会觉得Axis1也是不错的选择,你应该继续使用它知道你有充分的理由去更换它。

  • 大小: 53 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics