webService学习记录(2)

来源:互联网 发布:下软件的应用 编辑:程序博客网 时间:2024/04/29 18:54

几种流行Webservice框架性能对比

http://blog.csdn.net/ck4438707/article/details/53610124

JAVA开发Web Service几种框架介绍

http://blog.csdn.net/apicescn/article/details/42965785/


目前开发Web Service的几个框架:

Axis,axis2,Xfire,CXF以及JWS(JAX-WS

前面几项都为开源项目

以axis2与cxf所最为常用,官方有更新

Axis与XFire已随着技术不断的更替慢慢落幕,都已不再更新。


XFire与Axis1性能的比较 
1、XFire比Axis1.3快2-6倍 
2、XFire的响应时间是Axis1.3的1/2到1/5

XFire比Axis更有市场,XFire比Axis2简单很多


Axis2是从Axis1.x系列发展而来。Axis2是从底层全部重新实现,使用了新的扩展性更好模块架构。 

CXF则是XFire和Celtix项目的结合产品。CXF也重新的深化了XFire和Celtix这两个开发工具。

Axis2的开发方式类似一个小型的应用服务器,Axis2的开发包要以WAR的形式部署到Servlet容器中,比如Tomcat,通过这些容器可以对工作中的Web Service进行很好的监控和管理。Axis2允许自己作为独立的应用来发布Web Service,并提供了大量的功能和一个很好的模型,有些开发人员认为这种方式对于他们的需求太过于繁琐,从而会更喜欢CXF。

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


1、JWS是Java语言对WebService服务的一种实现,用来开发和发布服务。而从服务本身的角度来看JWS服务是没有语言界限的。但是Java语言为Java开发者提供便捷发布和调用WebService服务的一种途径。


2、Axis2是Apache下的一个重量级WebService框架,准确说它是一个Web Services / SOAP / WSDL 的引擎,是WebService框架的集大成者,它不但能制作和发布WebService,而且可以生成Java和其他语言版WebService客户端和服务端代码。这是它的优势所在。但是,这也不可避免的导致了Axis2的复杂性,使用过的开发者都知道,它所依赖的包数量和大小都是很惊人的,打包部署发布都比较麻烦,不能很好的与现有应用整合为一体。但是如果你要开发Java之外别的语言客户端,Axis2提供的丰富工具将是你不二的选择。

3、XFire是一个高性能的WebService框架,在Java6之前,它的知名度甚至超过了Apache的Axis2,XFire的优点是开发方便,与现有的Web整合很好,可以融为一体,并且开发也很方便。但是对Java之外的语言,没有提供相关的代码工具。XFire后来被Apache收购了,原因是它太优秀了,收购后,随着Java6 JWS的兴起,开源的WebService引擎已经不再被看好,渐渐的都败落了。

4、CXF是Apache旗下一个重磅的SOA简易框架,它实现了ESB(企业服务总线)。CXF来自于XFire项目,经过改造后形成的,就像目前的Struts2来自WebWork一样。可以看出XFire的命运会和WebWork的命运一样,最终会淡出人们的视线。CXF不但是一个优秀的Web Services / SOAP / WSDL 引擎,也是一个不错的ESB总线,为SOA的实施提供了一种选择方案,当然他不是最好的,它仅仅实现了SOA架构的一部分。

注:对于Axis2与CXF之间的关系,一个是Axis2出现的时间较早,而CXF的追赶速度快。


如何抉择: 
1、如果应用程序需要多语言的支持,Axis2 应当是首选了; 
2、如果应用程序是遵循 Spring 哲学路线的话,Apache CXF 是一种更好的选择,特别对嵌入式的 Web Services 来说; 
3、如果应用程序没有新的特性需要的话,就仍是用原来项目所用的框架,比如 Axis1,XFire,Celtrix或 BEA 等等厂家自己的 Web Services 实现,就别劳民伤财了。


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