几种流行Webservice框架性能对比.docx

上传人:桔**** 文档编号:551172111 上传时间:2024-01-06 格式:DOCX 页数:8 大小:43KB
返回 下载 相关 举报
几种流行Webservice框架性能对比.docx_第1页
第1页 / 共8页
几种流行Webservice框架性能对比.docx_第2页
第2页 / 共8页
几种流行Webservice框架性能对比.docx_第3页
第3页 / 共8页
几种流行Webservice框架性能对比.docx_第4页
第4页 / 共8页
几种流行Webservice框架性能对比.docx_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《几种流行Webservice框架性能对比.docx》由会员分享,可在线阅读,更多相关《几种流行Webservice框架性能对比.docx(8页珍藏版)》请在金锄头文库上搜索。

1、几种流行Webservice框架性能对比标签:webservice框架测试soapapache服务器2010-08-04 09:2421360人阅读评论(8)收藏举报分类:Webservice专题(11)版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)+几种流行Webservice框架性能对比1摘要开发webservice应用程序中离不开框架的支持,当open-open网站列举的就有30多种,这对于开发者如何选择带来一定的疑惑。性能Webservice的关键要素,不同的框架性能上存在较大差异,而当前在官方网站、网络资料中可以方便的找到各自框架的介绍,但是很少有针对不同框架性能测试

2、数据。本文选择了比较流行几个框架:Apache Axis1、Apache Axis2、Codehaus XFire、Apache CXF等,采用java作为测试用例,通过本机和远程两种进行测试方式,对这几种框架进行了性能测试,并对测试结果分析和性能比较,最后并对性能优异的框架进行了推荐。关键词:Axis1、Axis2、XFire、CXF、Spring、SOAP、StAX、WSDL2框架介绍2.1Apache Axis1Axis本质上就是一个SOAP引擎(Apache Axis is an implementation of the SOAP),提供创建服务器端、客户端和网关SOAP操作的基本框

3、架。但Axis并不完全是一个SOAP引擎,它还包括:l是一个独立的SOAP服务器。l是一个嵌入Servlet引擎(例如Tomcat)的服务器。l支持WSDL。l提供转化WSDL为Java类的工具。l提供例子程序。l提供TCP/IP数据包监视工具。2.2Apache Axis2Apache Axis2相比Apache Axis1更加有效、更加模块化、更加面向xml,支持容易插件模块扩展新功能和特性,例如安全和可靠。Apache Axis2是基于Apache AXIOM,它是一个高性能、pull-based XML对象模型。Apache Axis2的关键特性:l解析xml更快。采用自己的对象模型和

4、StAX (Streaming API for XML)。l更低的内存占用。l支持热部署。新服务加入到系统,无需重启服务。l支持异步webservice、lMEP支持,灵活支持在WSDL 2.0定义的Message Exchange Patterns (MEPs)l更加灵活。引擎给开发人员提供了充足的自由度可扩展客户头信息处理、系统管理、l更加稳定性。l传输框架不依赖于具体协议。为集成和传输协议(SMTP, FTP, message-oriented middleware, etc)有一个简单和抽象,引擎核心是完全独立于具体的传输协议。l支持WSDL。支持WSDL1.1、WSDL2.0。l方便

5、集成其他组件(Add-ons)。几个web services已经被集成,包括:WSS4Jforsecurity (Apache Rampart),Sandeshafor reliable messaging,Kandulawhich is an encapsulation of WS-Coordination, WS-AtomicTransaction and WS-BusinessActivity.l良好的扩展性。2.3Codehaus XFireXFire核心是一个轻量的基于STAX消息处理模型,用来与SOAP消息交互,它支持不同类型的绑定机制、容器和传输协议。支持webservice标准

6、- SOAP, WSDL, WS-I Basic Profile, WS-Addressing, WS-Security, etc.l高性能SOAP STACKl可插拔绑定POJOs, XMLBeans, JAXB 1.1, JAXB 2.0, and Castor supportl通过Java1.5和1.4(Commons attributes JSR 181 syntax)使用JSR 181 API配置服务l支持多中传输协议- HTTP, JMS, XMPP, In-JVM, etc.l可嵌入的和直观的APIl支持Spring, Pico, Plexus, and Looml支持JBIl客

7、户端和服务端stub代码生成l支持JAX-WS early access2.4Apache CXFApache CXF是一个开源服务框架。CXF可用前端编程APIs开发服务,比如:JAX-WS and JAX-RS,主要特性包括:l支持Web services标准。包括:SOAP、the WSI Basic Profile、WSDL、WS-Addressing、WS-Policy、WS-ReliableMessaging、WS-Security、WS-SecureConversation和WS-SecurityPolicy.l支持不同类型前端开发模型。CXF实现了JAX-WS APIs,支持J

8、AX-RS开发。l容易使用。CXF设计的简洁和直观,具有简洁APIs迅速的构建基于代码的服务,Maven插件使得工具集成更加容易、JAX-WS API支持、Spring 2.x XML使得配置更加容易。l支持二进制和遗留协议。CXF被设计为可插拔的架构,在不同的传输协议结合下,不仅支持XML,也支持非XML类型绑定,例如:JSON和CORBA。3测试准备表格1测试基本元素测试条件描述主机环境A测试机:CPU:1.60GHz;内存:1.37GB测试机:CPU:1.83GHz;内存:1GWeb服务框架axis1 1.3axis2 1.2xfire 1.2.6应用环境jdk 1.4、spring 2

9、.x客户端代码public void testgetVersion() throws java.lang.Exception String url = http:/localhost:8081/boss/services/Calculate;/客户端初时化时间long startTime = System.currentTimeMillis();/客户端stub代码分别是axis1/axis2/xfire/cxf框架wsdl2java生成CalculateCalculateHttpportStub stub = new CalculateCalculateHttpportStub(url);l

10、ong endTime = System.currentTimeMillis();System.out.println(client init time is: + (endTime - startTime);/连续调用10次for (int i = 0; i 10; i+) long startTime1 = System.currentTimeMillis();String ret = stub.getVersion().get_return();long endTime1 = System.currentTimeMillis();System.out.println( + i + ela

11、psed time is: + (endTime1 - startTime1) + ms);System.out.println(stub.getVersion() is: + ret);服务端代码public String getVersion()注:接口无任何业务逻辑,只返回一个字符串:Hello;测试方法本机接口测试,客户端和服务端都在A测试机上进行;远程接口测试,A测试机作为客户端,B测试机作为服务器。本次测试是在局域网内完成。结果精度数字精确到小数点后两位名词解释服务器端:部署到服务器的程序。客户端:发起请求调用服务器上webservcie的程序。客户端初时化时间:发起接口调用时,初

12、始化客户端java对象所需时间。例如:CalculateCalculateHttpportStub stub = new CalculateCalculateHttpportStub(url); /由框架wsdl2java生成客户端stub表格2在端对端性能上,一个客户端驱动程序使用了一个胖客户端Web服务堆栈来发送和接受SOAP请求Webservice服务端Webservice客户端Webservice stackSOAP over HTTP4性能测试4.1测试方法本次假定在相同网络、主机环境条件下进行测试,因此性能的差别主要是由不同框架实现机制的所决定。l采用两种方式测试:本机测试、远程测

13、试。l服务器端分别采用:axis1、axis2、xfire、CXF,对于选定的服务器端,用不同框架对应的工具包wsdl生成客户端stub代码进行测试。l服务端接口内部没有复杂业务逻辑,客户端调用时,仅仅返回一个字符串。l每次运行,采用java循环方式调用10次服务端接口,并记录下从发起到返回结果的时间。4.2测试结果限于篇幅,本文仅提供了:以CXF框架为服务端的详细测试结果,及其各个框架的综合后测试结果。表格3以CXF作为服务端测试详细结果本机测试结果(单位:ms)服务器端cxf客户端cxfaxis1客户端初始化第1组第2组第3组第4组第5组第1组第2组第3组第4组第5组254725942563257825632569422422407406421415.6连续10次调用接口测试第1组第2组第3组第4组第5组第1组第2组第3组第4组第5组1297281281282266281.42342192192342192252000151501600163016160016151616040000000001551600001516150060151501600016070000016161601681500000001509000015161516016100161615000016010次平均值32.8

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号