英语原文共 7 页,剩余内容已隐藏,支付完成后下载完整资料
Java Web Services的性能评估:开发者的观点
Sanjay Ahuja, Je-Loon Yang
School of Computing, University of North Florida, Jacksonville, Florida, USA
E-mail: {sahuja, n00168553}@unf.edu
Received March 7, 2010; revised July 2, 2010; accepted July 3, 2010
摘要
随着Internet人口的快速增长,Web技术的发展变得各位重要。对于Web 2.0的发展,Web服务必不可少。 Web服务是允许网络上不同平台的计算机进行交互通信,而无需额外的数据以供人工阅读界面和格式,例如网页结构。由于网络服务将会是互联网发展的未来趋势,而且用于开发的工具也很重要。虽然有很多要选择Web服务框架,开发人员应选择应用程序基于性能,时间和精力最适合的框架。在这个项目中,我们选择了四个通用框架,以在定性和定量指标上对它们进行比较。运行测试后,结果由SAS进行统计分析。
关键字:Web服务,框架,性能,Java,开发人员
1.简介
对于去其他州或国家的旅行,人们通常需要购买飞机票,租车和预订酒店住宿。在购买飞机票时,大多数时候,人们必须买几张到特定站点的票,而不是买一张将你直接带到最终目的地的车票。每个航班可能需要花费数小时来搜索与规划,以便查询飞机的到达和离开时间。如果有一个虚拟代理是否可以短短几秒钟就能完成所有这些呢?所以通常人们会寻找代理商为他们做这件事。但是如果这个代理实际上是在线虚拟代理情况又会如何。如果此人刚刚进入他想开始的目的地,所需的出发或到达时间,以及迅速将所有需要的信息输入计算机,计算机将显示该人的所有结果,并从中选择并购买门票。更好的是,这样虚拟代理可能还可以显示目的地的租车和酒店信息并为您保留它们。通过使用这种类型的虚拟代理,可以节省很多精力和时间,也可以比人工代理更准确。这种技术依赖关于Web服务的发展和广泛使用。
而不是从头开发Web服务应用程序,也有许多开源框架会使开发变得容易得多。这些框架中的哪个将是Web服务应用程序的更好选择发展?这项研究通过进行几次测试和分析,比较了四种流行的开放方式定性和定量的开源框架。四个框架是Apache Axis,JBossWS,XFire和Hessian。更多的Web服务的介绍在第2节中进行。第3节描述了被使用在这项研究中的四个框架。在第4节中,用于衡量框架将得到更详细的解释。第5节介绍了统计分析方法,用于分析测量结果。在第6节中,测试结果被显示和分析。结论放在了第7节。
2. Web服务框架
由于Web服务旨在以通用方式传输数据,因此一些公司和团体开发了Web是为了方便Web服务的服务框架开发人员,以便使他们无需从头开始编写完整的Web服务。一些流行的框架是Apache Axis,JBossWS,Codehaus XFire和Caucho Hessian。在本节中,这些框架将会一一介绍。
2.1 Apache Axis
Apache Axis(Apache可扩展交互系统)是一个基于Java和XML的开源Web服务,由Apache Software Foundation(ASF)所创建。该机构是一家非营利性公司,主要生产用于网络的软件,例如服务器和服务器框架。他们的项目众所周知是基于共识的协作开发处理和免费或开源软件。Apache Axis软件包具有SOAP服务器的实现和用于生成和部署网络服务应用程序的API。SOAP引擎构造SOAP客户端,服务器和网关之类的处理器。这允许服务器和客户端通过以下方式进行通信SOAP消息。该API支持多种语言,除了Java版本,还有C 实现也可以。它允许开发人员构建他们的应用程序以多种方式运行。仅仅最简单的方法需要将文件扩展名从“ .java”更改为“ .jws”。这种方法的缺点是缺乏进一步配置的灵活性。
2.2 JBossWS
JBossWS是JBoss兼容J2EE的实现网页服务。该框架旨在更好地适合整个JBoss架构,并且通常更多适用于Web服务的特定J2EE要求,而不是使用传统的Apache服务器。在这个框架中,JBoss拥有自己的服务器,并且建议在此服务器上使用该框架来获取最优秀表现。与ASF类似,JBoss社区是一群专注于开源项目的人。他们的项目着重于Java的开发企业中间件,其功能类似于应用程序,操作系统或两者之间的桥梁。
2.3 Codehaus XFire
Codehaus XFire是下一代Java SOAP框架。它是一个免费的开源SOAP框架,使你可以轻松简单的实现Web服务。它还提供了许多确定的功能在Web服务规范中,但其尚不可用在大多数商业或开源工具中。有更高的性能基于StAX(XML的API流)的模型,是因为它具有较低的内存,但是有没有数据可以证明这一事实。
2.4 Hessian
Hessian二进制Web服务协议使开发Web服务简单易用,无需占用大量框架,以便开发人员无需花费更多的时间和精力来学习字母表协议。由于它是二进制协议,因此能很好地发送二进制数据,无需扩展协议附件。像手机PDA等J2ME设备可以使用Hessian用更好的性能连接到Web服务,因为它是一个小的协议。Hessian原为以粗麻布命名,这是英国的术语为粗麻布。之所以这样命名是因为粗麻布很简单,实用且有用,但极其普通的材料,就像Hessian协议的特征一样。
3. 评估指标
比较这四个因素时要考虑不同的因素。 一些指标是用来确定性能和效率的; 另一些要显示透明和抽象。本节说明这些指标。
3.1 延迟
就网络而言,延迟是如何将数据发送回请求需要花费大量时间。这包括将请求发送到服务器,服务器花费在处理任务上的时间,以及将结果发送回的时间。网络延迟是由许多因素造成的,例如传播,传输,调制解调器和路由器处理以及存储
延误。传播是一个物体花费的时间(例如数据),从一个位置传输到另一个位置光速。传播是来自媒体的延迟(例如光纤或无线网络)。调制解调器和路由器需要一些时间来检查数据包的头部。这存储延迟是实际硬件花费的时间(例如硬盘驱动器)来存储接收到的数据。在这个项目中,在不同的情况下测试了延迟,例如请求1、2、3、4和5 MB的数据,以及1、5、10、15、20个客户端同时请求数据。来自测试的结果,每个框架的确实都可以被找到并进行比较。
3.2 吞吐量
吞吐量是在指一定的时间单位内(例如一秒钟)处理的客户端或数据量。它与延迟高度有关,因为延迟高的场景会导致低吞吐量,并且低延迟情况下会导致高吞吐量。 但是,通过查看延迟图,我们只能说出趋势响应时间,同时我们可以通过查看完整的图形来确定对框架最有效的情况。
3.3 内存使用情况
在计算中,内存是临时存储数据以供计算机计算的数据容量。有者各种各样的内存,例如高速缓存、闪存、内存、随机存取内存(RAM)、虚拟内存等等。无论是哪种内存,由于成本和空间,它们都会在服务器中受到限制。使用更少内存的框架将具有允许更高容量服务器的优势。
3.4 CPU使用率
中央处理器(CPU),也称为处理器,是计算机中用于解释程序指令和过程数据。 虽然当有多个任务时需要完成时,一次只能处理一个任务,而不是先完成任务再去执行下一个任务,故将CPU设计为在执行其他任务之前先切换到其他任务是很有必要的,这样就可以同时执行多个任务。 然而,大型任务可能会占用大量CPU时间,从而减少了为其他任务安排的时间。 使用更少CPU的框架将允许服务器拥有更多时间来执行其他任务。
3.5 源代码行
框架中使用的源代码行(SLOC)可以表明框架的透明性和抽象性。框架的主要目标是保存开发人员的时间和精力,而不必编写从头开始的整个代码。因此,一个框架所需要的代码和越少,存储该框架所需要的时间和精力就更多。但是,代码行不能非常准确,因为有些行可能会很长有些行很短。所以文件的数量和大小也是一个考虑因素。
4.统计分析方法
在检索测试数据以比较性能之后,我们需要一种分析结果的方法。通过简单地计算平均响应时间并使它们转换成图表不足以进行分析。观察平均响应时间为1.5秒和1.6秒,我们不确定这是否有很大的不同。因此,需要使用统计分析方法来判断差异是否显著。在这个项目中,通用线性模型(GLM)[9]和双向分析方差(双向方差分析)用于统计分析。此外,统计分析系统(SAS)[10]是用作辅助所必需统计分析的计算的工具。
4.1 SAS系统
SAS系统是具有以下功能的统计分析软件:各种各样的统计模块和程序。它们使用第四代编程语言(4GL),它们的代码和程序由三个主要部分组成:数据步骤,过程步骤和宏语言。数据步骤用于输入数据,例如在代码中插入数据或从数据文件中读取数据。这程序步骤是使用统计方法模型以分析在数据步骤中读取的数据。宏语言用于减少在整个过程中一次又一次使用的功能程序的冗余程度。
4.2 GLM模型
GLM模型是使用的统计线性模型。在一般情况下,这是许多统计分析的基础,例如t检验,方差分析,协方差分析(ANCOVA)等。理解GLM模型运作最简单的情况是两个变量的情况。该分析的目标是用一种方法精确地描述图表中的信息。我们尝试使用GLM模型找到最接近图中所有点的直线。这条直线可为:y = b0 b1x e,其中y是y轴变量,x是x轴变量,b0是截距(x等于0时y的值),b1是直线的斜率,e是误差。通过求解b0和b1,我们可以获得有关用于描述图中所有点的直线的信息,在其他超过两个变量的情况下,公式可以扩展为:y = b0 b1x1 b2x2 b3x3 ... bnxn e,其中n是情况变量的数量。但是解决此类问题的方法机制是相同的。
5.结果与分析
为了从SAS分析中获得最佳结果,每种情况被测试了二十次。由于使用了五个不同数量的客户端的四个框架,会得到二十种不同的情况。加上对20种不同情况的20次测试时间由SAS计算将可得出400个数据集。除了客户数量外,还考虑了数据大小。响应时间用在调用Web服务之前记录时间,并在请求的数据被接受后立即记录时间,然后减去时间差。
5.1 结果
5.1.1 客户端情况
用于测试不同场景中的四个不同框架,创建Web服务应用程序发送数据。根据大量客户端对于四个框架的测试表现的五种情况,为在每检索1MB数据分别1个客户端,5个客户端,10个客户端,15个客户端和20个客户端。每个场景每种框架下的平均响应时间都会被记录用于分析。结果如图1所示。通过计算吞吐量的结果,图2展现了在每个场景和框架下每秒钟平均客户端的数量。
图2显示了在每种框架下最有效率的客户端场景,在达到10个客户端或者更多的场景下Apache Axis可以处理4.993个客户端。在相同的情况下,Resin Hessian每秒可以处理4.807个客户。JBossWS在每个场景下每秒可以处理0.943个客户端。 Codehaus XFire似乎在5个客户的情况下最有效地工作是每秒处理约2.892个客户。
5.1.2 数据大小情况
至于五个场景的结果和平均吞吐量基于不同数据大小,它们显示在图3和4中。
图4显示了每种框架下最有效的数据大小方案。所有框架会在数据大小达到2MB或者更多时获得最佳性能。Apache Axis的平均速度为3.617 MB / s,JBossWS
速度为1.287 MB / s,Codehaus XFire速度为1.240 MB / s和Rsin Hessian的速度为1.017 MB / s。
从上面的所有图表来看,看起来像Apache Axis在所有情况下均具有最佳性能,但应由SAS进行进一步分析。
5.2 分析
显然,响应时间长短取决于关于框架的选择,传输的数据量以及正在从网络服务调用任务的客户端数量。这使得这三个因素对测试结果很重要,这就是响应时间。但是在进行进一步分析之前,我们必须使用GLM模型,以确保这三者之间的相互链接也同样是重要因素。如果没有相互链接,我们可以使用Tukey方法进行多重比较,然后直
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[405282],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。