几种流行webservice框架性能对比

上传人:第*** 文档编号:32633091 上传时间:2018-02-12 格式:DOCX 页数:7 大小:40.37KB
返回 下载 相关 举报
几种流行webservice框架性能对比_第1页
第1页 / 共7页
几种流行webservice框架性能对比_第2页
第2页 / 共7页
几种流行webservice框架性能对比_第3页
第3页 / 共7页
几种流行webservice框架性能对比_第4页
第4页 / 共7页
几种流行webservice框架性能对比_第5页
第5页 / 共7页
点击查看更多>>
资源描述

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

1、几种流行 Webservice 框架性能对比1 摘要开发 webservice 应用程序中离不开框架的支持,当 open-open 网站列举的就有 30 多种,这对于开发者如何选择带来一定的疑惑。性能 Webservice 的关键要素,不同的框架性能上存在较大差异,而当前在官方网站、网络资料中可以方便的找到各自框架的介绍,但是很少有针对不同框架性能测试数据。本文选择了比较流行几个框架:Apache Axis1、Apache Axis2、Codehaus XFire、 Apache CXF 等,采用 java 作为测试用例,通过本机和远程两种进行测试方式,对这几种框架进行了性能测试,并对测试结果

2、分析和性能比较,最后并对性能优异的框架进行了推荐。关键词:Axis1、Axis2、XFire、CXF、Spring、SOAP、StAX、WSDL2 框架介绍2.1 Apache Axis1Axis 本质上就是一个 SOAP 引擎(Apache Axis is an implementation of the SOAP),提供创建服务器端、客户端和网关 SOAP 操作的基本框架。但Axis 并不完全是一个 SOAP 引擎,它还包括: 是一个独立的 SOAP 服务器。 是一个嵌入 Servlet 引擎(例如 Tomcat)的服务器。 支持 WSDL。 提供转化 WSDL 为 Java 类的工具。

3、提供例子程序。 提供 TCP/IP 数据包监视工具。2.2 Apache Axis2Apache Axis2 相比 Apache Axis1 更加有效、更加模块化、更加面向 xml,支持容易插件模块扩展新功能和特性,例如安全和可靠。Apache Axis2 是基于Apache AXIOM,它是一个高性能、pull-based XML 对象模型。Apache Axis2的关键特性: 解析 xml 更快。采用自己的对象模型和 StAX (Streaming API for XML)。 更低的内存占用。 支持热部署。新服务加入到系统,无需重启服务。 支持异步 webservice、 MEP 支持,灵

4、活支持在 WSDL 2.0 定义的 Message Exchange Patterns (MEPs) 更加灵活。引擎给开发人员提供了充足的自由度可扩展客户头信息处理、系统管理、 更加稳定性。 传输框架不依赖于具体协议。为集成和传输协议( SMTP, FTP, message-oriented middleware, etc)有一个简单和抽象,引擎核心是完全独立于具体的传输协议。 支持 WSDL。支持 WSDL1.1、WSDL2.0 。 方便集成其他组件(Add-ons )。几个 web services 已经被集成,包括:WSS4J for security (Apache Rampart),

5、 Sandesha for reliable messaging, Kandula which is an encapsulation of WS-Coordination, WS-AtomicTransaction and WS-BusinessActivity. 良好的扩展性。2.3 Codehaus XFireXFire 核心是一个轻量的基于 STAX 消息处理模型,用来与 SOAP 消息交互,它支持不同类型的绑定机制、容器和传输协议。支持 webservice 标准- SOAP, WSDL, WS-I Basic Profile, WS-Addressing, WS-Security,

6、 etc. 高性能 SOAP STACK 可插拔绑定 POJOs, XMLBeans, JAXB 1.1, JAXB 2.0, and Castor support 通过 Java1.5 和 1.4(Commons attributes JSR 181 syntax)使用 JSR 181 API 配置服务 支持多中传输协议- HTTP, JMS, XMPP, In-JVM, etc. 可嵌入的和直观的 API 支持 Spring, Pico, Plexus, and Loom 支持 JBI 客户端和服务端 stub 代码生成 支持 JAX-WS early access2.4 Apache C

7、XFApache CXF 是一个开源服务框架。 CXF 可用前端编程 APIs 开发服务,比如:JAX-WS and JAX-RS,主要特性包括: 支持 Web services 标准。包括: SOAP、the WSI Basic Profile、WSDL、WS-Addressing、WS-Policy、WS-ReliableMessaging、WS-Security、WS-SecureConversation 和WS-SecurityPolicy. 支持不同类型前端开发模型。CXF 实现了 JAX-WS APIs,支持 JAX-RS 开发。 容易使用。CXF 设计的简洁和直观,具有简洁 AP

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

9、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);long e

10、ndTime = 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 + elaps

11、ed 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 测试方法本次假定在相同网络、主机环境条件下进行测试,因此性能的差别主要是由不同框架实现机制

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

14、始化第 1组第 2组第 3组第 4组第 5组 第 1组第 2组第 3组第 4组第 5组 2547 2594 2563 2578 2563 2569 422 422 407 406 421 415.6连续 10 次调用接口测试第 1组第 2组第 3组第 4组第 5组 第 1组第 2组第 3组第 4组第 5组 1 297 281 281 282 266 281.4 234 219 219 234 219 2252 0 0 0 15 15 0 16 0 0 16 3 0 16 16 0 0 16 15 16 16 0 4 0 0 0 0 0 0 0 0 0 15 5 16 0 0 0 0 15 16

15、 15 0 0 6 0 15 15 0 16 0 0 0 16 0 7 0 0 0 0 0 16 16 16 0 16 8 15 0 0 0 0 0 0 0 15 0 9 0 0 0 0 15 16 15 16 0 16 10 0 16 16 15 0 0 0 0 16 0 10 次平均值 32.8 32.8 32.8 31.2 31.2 32.16 29.7 29.7 28.2 29.7 28.2 29.61后 9 次平均 3.444 5.222 5.222 3.333 5.111 4.467 7 8.667 7 7 7 7.333值远程测试结果(单位:ms)服务器端 cxf客户端 cxf axis1客户端初始化第 1组第 2组第 3组第 4组第 5组 第 1组第 2组第 3组第 4组第 5组 2703 2547 2578 2563 2531 2584 406 406 422 407 422 412.6连续 10 次调用接口测试第 1组第 2组第 3组第 4组第 5组 第 1组第 2组第 3组第 4组第 5组 1 344 281 281 281 297 296.8 219 234 235 234 687 321.82 0 0 16 16 16 16 0 15 16 16 3 0 16 0 0 0 62 16 0 0 0 4 16

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 职业教育

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