Java Web服务的性能评估:开发人员的观点外文翻译资料

 2022-01-23 09:01

Performance Evaluation of Java Web Services: A Developerrsquo;s Perspective

Sanjay Ahuja, Je-Loon Yang

Abstract

As the population of the Internet grows rapidly the development of web technologies becomes extremely important. For the evolvement of Web 2.0, web services are essential. Web services are programs that allow computers of different platforms on the web to interactively communicate without the need of extra data for human reading interfaces and formats such as web page structures. Since web service is a future trend for the growth of internet, the tools that are used for development is also important. Although there are many choices of web service frameworks to choose from, developers should choose the framework that fits best to their application based on performance, time and effort for the framework. In this project, we chose four common frameworks to compare them in both qualitative and quantitative metrics. After running the tests, the results are statistically analyzed by SAS.

Keywords: Web Service, Framework, Performance, Java, Developer

1. Introduction

For going on trips to other states or countries, the person usually requires to buy airplane tickets, rent a car, and make reservations for hotels to stay at. When dealing with airplane tickets, most of the time the person even has to buy several tickets for some stops instead of a ticket that takes the person directly to the final destination. Looking up the airplane arrival and departure times to connect each flight might take hours of searching and planning. What if there was a virtual agent that could do this all in just a few seconds? So usually people would look for agents to do this for them. But what if this agent was actually is actually a virtual agent online. If the per- son just enters the location he wants to start from, the destination, the desired time for departure or arrival, and all the information required into the computer, in a snap, the computer shows all the results for the person to choose from and purchase the tickets. Even better, such virtual agents could have possibilities to also show information of the car rentals and hotels at the destination and reserve them for you. By using this type of virtual agent, could save much effort and time and can also be more accurate than human agents. Such technology relies on the development and widespread of web services.

Instead of developing a web service application from scratch, there are many open source frameworks that make development much easier. Which of these frame- works would be a better choice for web service application development? This study compares four popular open source frameworks both qualitatively and quantitatively by doing several tests and analysis. The four frameworks are Apache Axis, JBossWS, XFire, and Hessian. More introductions of web services are done in Section 2. Section 3 describes the four frameworks that are used in this study. In Section 4, the metrics that are used to measure the frameworks are explained in more detail. Section 5 introduces the statistical analysis methods that are use to analyze the measured results. In Section 6, the test results are shown and analyzed. The conclusions are in Section 7.

2. Web Service Frameworks

Since web services are designed to transfer data in common ways, several companies and groups developed web service frameworks for the convenience of web service developers so that they do not need to write a complete web service from scratch. Some of the popular frame- works are Apache Axis, JBossWS, Codehaus XFire, and Caucho Hessian. In this section, these frameworks are going to be introduced.

2.1. Apache Axis

Apache Axis (Apache Extensible Interaction System) is an open source, Java and XML based Web service framework created by the Apache Software Foundation (ASF). The foundation is a non-profit corporation that mainly produces software for network use, such as serv- ers and frameworks for servers. Their projects are well known to be collaborative, consensus based development process and free or open source software. The Apache Axis package has an implementation of a SOAP server and APIrsquo;s for generating and deploying web service applications. The SOAP engine constructs SOAP processors like clients, servers, and gateways. This allows the servers and clients to communicate through SOAP messages. The API supports a variety of languages. Besides the Java version, a C implementation is also available. It allows developers to construct their application in a variety of ways. The easiest method only requires changing the file name extension from “.java” to “.jws”. The downside of such a method is lacks flexibility for further configuration.

2.2. JBossWS

JBossWS is JBoss#39; implementation of J2EE compatible web services. The framework is designed to fit better in the overall JBoss architecture and is generally more suitable for the specific J2EE requirements for web services. Instead of using the traditional Apache server for this framework, JBoss has a server of its own, and is suggested that the framework is used on this server to get best performance. Similar to ASF, the JBoss community is a group of people that focus on open source projects. Their projects emphasize on the development of Java Enterprise Middleware, which are software that act like bridge between applications, operating systems or both.

2.3. Codehaus XFire

Codehaus XFire is a next-generation java SOAP frame- work. It is a free and open source SOAP framework that allows you to implement web services with great ease and simplicity. It also provides many features identified in web service specifications, which are not yet available in most commercial or open source tools. It is claimed to have higher perform

全文共22605字,剩余内容已隐藏,支付完成后下载完整资料


Java Web服务的性能评估:开发人员的观点

Sanjay Ahuja,Je-Loon Yang

摘要

随着互联网人口的飞速增长,Web技术的发展变得越来越重要。对于Web 2.0技术的发展,web服务是不可缺少。web服务是指允许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的实现,用于生成和部署Web服务应用程序。SOAP引擎构造SOAP处理器,如客户端,服务器和网关。这允许服务器和客户端通过SOAP消息进行通信。该API支持多种语言。除Java版本外,还提供C 实现。它允许开发人员以各种方式构建他们的应用程序。最简单的方法只需要将文件扩展名从“.java”更改为“.jws”。这种方法的缺点是缺乏进一步配置的灵活性。

2.2.JBossWS

JBossWS是JBoss的J2EE兼容Web服务实现。该框架旨在更好地适应整个JBoss体系结构,通常更适合Web服务的特定J2EE要求。JBoss没有使用传统的Apache服务器来构建这个框架,而是拥有自己的服务器,并且建议在此服务器上使用该框架以获得最佳性能。与ASF类似,JBoss社区是一群专注于开源项目的人。他们的项目强调Java Enterprise Middleware的开发,这些软件就像应用程序、操作系统或两者之间的桥梁。

2.3.Codehaus XFire

Codehaus XFire是下一代java SOAP框架。它是一个免费的开源SOAP框架,允许用户轻松简单地实现Web服务。它还提供了Web服务规范中标识的许多功能,这些功能在大多数商业或开源工具中还无法使用。而且据说它具有更高的性能,因为它建立在基于低内存StAX(Streaming API for XML)的模型之上,但没有数据可以用来记录这一事实。

2.4.Hessian

Hessian二进制Web服务协议使开发Web服务变得简单和可用,而无需大型框架,因此开发人员无需花费更多时间和精力来学习一系列的协议。

由于它是一种二进制协议,因此无需使用附件扩展协议就能很好地发送二进制数据。像手机PDA这样的J2ME设备可以使用Hessian以更好的性能连接到Web服务,因为它是一种小型协议。 Hessian以Hessian布料命名,这是英国的Burlap术语。它之所以这样命名是因为粗麻布简单,实用且有用,但却是非常普通的材料,这就像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时间,这会减少计划执行其他任务的时间。使用较少CPU的框架将允许服务器有更多时间来执行其他任务。

3.5.源代码行

框架中使用的源代码行(SLOC)可以指示框架的透明度和抽象性。框架的主要目的是通过不必从头开始编写整个代码来节省开发人员的时间和精力。因此,框架所需的代码行越少,该框架节省的时间和精力就越多。但是,代码行不能过于精确,因为某些行可能很长而某些行很短。因此,文件的数量和文件的大小也是一个考虑因素。

4.统计分析方法

在检索测试数据以比较性能之后,我们需要一种方法来分析结果。通过简单地计算平均响应时间并将它们制成图表进行分析是不足的。看看1.5秒和1.6秒的平均响应时间,我们无法确定这是否有很大差异。因此,需要统计分析方法来判断差异是否显著。在该项目中,采用一般线性模型(GLM)[9]和双向方差分析(双向ANOVA)来进行统计分析。此外,统计分析系统(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个不同的情况各自添加20次测试,将得到由SAS计算的400个数据集。除了客户数量外,还要考虑数据的大小。通过发送五种不同大小的数据,将得到二十种情况,总共有400个数据集。通过记录调用Web服务之前的时间,并在接收到请求的数据之后立即记录时间,然后减去时间差来测量响应时间。

5.1.结果

5.1.1.客户端情景

为了测试不同场景中的四种不同框架,创建了用于发送数据的Web服务应用程序。 基于用于测试四个框架的性能的客户端数量的五个场景:1个客户端、5个客户端、10个客户端、15个客户端和20个客户端,每个客户端检索1MB的数据。记录每个方案和每个框架的平均响应时间以供分析。结果如图1所示。通过计算吞吐量的结果,图2显示了每个场景和框架的每秒平均客户端数。

图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所示。

图3.数据大小情况下的延迟

图4.数据大小情况下的吞吐量

图4显示了每个框架的最有效数据大小方案。在发送2MB或更多数据后,所有框架都会达到最佳性能。Apache Axis平均为3.617 MB/s,JBossWS为1.287 MB/s,Codehaus XFire为1.240,Resin Hessian为1.017。

从上面的所有图表中可以看出,Apache Axis在所有情况下都具有最佳性能,但应由SAS进行进一步的分析。

5.2.分析

显然,响应时间的长短在很大程度上取决于框架的选择、传输的数据量以及从Web服务调用任务的客户端数量。这使得这三个因素对测试结果很重要,即响应时间。但在进行进一步分析之前,我们必须使用GLM模型来确定这三个因素的相互作用是否也是重要因素。如果没有相互作用,我们可以使用Tukey方法进行多重比较,直接看出哪个框架在所有情况下都有更好的性能,哪个更差;如果相互作用是重要因素,那么我们需要逐个分析结果。

5.2.1.客户端情景

首先分析客户端场景的结果,我们使用SAS系统来查看每个因素的重要性。事实证明,不仅客户数量和框架选择是重要因素,而且它们之间的相互作用也是如此。这意味着如果其中一个框架明显快于某些场景中的其他框架,则该框架不一定比其他场景中的框架快。因此,SAS无法直接比较所有场景中的所有框架。

在这种情况下,使用来自一般线性模型(GLM)过程的成对比较。在第一场景中将第一个框架与第二个框架进行比较,然后将第一至第三、第一至第四、第二至第三、第二至第四和第三至第四框

全文共8481字,剩余内容已隐藏,支付完成后下载完整资料


资料编号:[672]

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。