从开发人员的角度看Java Web服务外文翻译资料
2022-09-07 14:49:39
Communications and Network, 2010, 2, 200-206
doi:10.4236/cn.2010.23029 Published Online May 2010 (http://www.SciRP.org/journal/cn)
Performance Evaluation of Java Web Services: A Developerrsquo;s Perspective
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
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
- 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 destina- tion. 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.
Web Service Frameworks
Since web services are designed to transfer data in com- mon 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.
S. AHUJA ET AL. 201
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 lan- guages. 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.
JBossWS
JBossWS is JBoss 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 ser- vices. 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 sof
剩余内容已隐藏,支付完成后下载完整资料
从开发人员的角度看Java Web服务
Sanjay Ahuja, Je-Loon Yang
摘要:
随着互联网的人数与日俱增,网络技术的发展就显得非常重要,对于Web 2.0的演变,Web服务的改变是值得关注的。Web服务允许不同平台的计算机在网络上交互式通信,而不需要额外的特定的读入接口和格式的转化例如网页结构。由于Web服务是互联网的成长未来的趋势,这时用于开发的工具也很重要。虽然有Web服务框架的许多选择可供选择,开发者应该选择基于性能,时间和结构的框架,也就是最适合他们的应用程序的框架。在这个项目中,我们选择了几种常见的框架,他们定性和定量指标进行比较。运行测试后,结果进行统计采用SAS分析。
关键词:Web服务架构,性能,Java,开发者
1 介绍
为了去其他国家或地区,一个人通常需要购买飞机票,租一辆车,并入住接受预订的酒店。对于机票的这个环节,许多人需要购买好几张票给中转站,而不是一张直接把他们带到终点目的地的票。计算好飞机到达和离开时间来预留每一个航班可能需要搜索和规划的时间。如果可以的话,能不能通过一个虚拟代理在短短的几分钟里做到这一切?所以,通常人们会寻找做这个的来代理他们。但是,如果这个代理竟是实际上是一个虚拟代理上网。如果一个人刚计算出他想从目的地出发或到达所需的时间,以及所有需要进入计算机的信息,在一个单元开始的位置,那么电脑就显示所有结果给人选择并购买门票。更妙的是,这种虚拟代理可能也显示目的地的汽车租赁和酒店的信息,并保留它们。通过使用这种类型的虚拟代理,可以节省大量的精力和时间,甚至是比人来调控更准确。这种技术依赖于Web服务的发展和普及。
一个web服务应用程序的开发并不是从头开始的,有许多开源框架供你使用,使开发变得容易。那么在这些框架中哪一个是web服务应用程序开发的最好选择呢?本文通过做几次测试和分析稳定性以及定量比较几大流行的开源框架。
2 Web 服务框架
由于Web服务设计为很常见的方式传输数据,所以有几家公司和集团开发了提供给Web服务开发人员的Web服务框架,使他们不必从头开始编写一个完整的Web服务。一些流行的框架是Apache Axis,JBossWS,Codehaus XFire和Caucho Hessian。在本节中,将介绍这些框架。
Apache Axis
Apache Axis(可扩展交互系统)是一个开源的框架,是由Apache软件基金会(ASF)创建一个开源的Java和基于XML的Web服务框架。该基金会是一个非营利性的公司,它主要生产用于网络功能的软件,如服务器和框架服务器。他们的项目中众所周知的是合作,基于共享的开发过程和免费或开源软件。Apache Axis包装了具有SOAP服务器和API用于产生和部署Web服务应用程序的实现。SOAP引擎构造SOAP处理器像客户端,服务器和网关。这使得服务器和客户端通过SOAP消息进行通信。该API支持各种语言。除了Java版本,一个C 实现也可以。它还允许开发者使用各种方法。最简单的方法只需要从“.java”文件扩展名改变为“.jws”。但这样的方法是不利的,缺少进一步配置灵活性。
JBossWS
JBossWS是JBoss实现J2EE兼容的Web服务。该框架的设计更适合在整个JBoss架构,通常为Web服务,这种框架具体要求对J2EE更合适。而不是使用传统的Apache服务器,JBoss有自己的一个服务器,并且建议在框架用于在该服务器上以获得最佳的性能。类似ASF,JBoss的社区是一组专注于开源项目的人。他们的项目强调的Java企业中间件,这是像应用程序,操作系统或两者之间的桥梁软件的开发。
Codehaus Xfire
Codehaus XFire是下一代的java SOAP框架。这是一个自由和开源的框架,SOAP,使您可以非常方便和简单实现Web服务。它还提供了Web服务许多规范化的功能,在大多数的商业或开源工具这还不能使用。据称,这是因为它是建立在低内存的StAX(API用于XML)模型,但没有数据记录这个模型有更高的性能。
Hessian
Hessian二进制Web服务协议,使开发Web服务简单实用而不需要大的框架,使开发人员并不需要花更多的时间和精力来学习协议的规则,既然是一个二进制协议,它运作良好,对发送二进制无需任何数据来扩展带附件的协议。像手机使用的iPad J2ME设备可以使用Hessian以更好的性能连接到Web服务,因为它是一个小协议。Hessian在黑森州,这是英国粗麻布长期而得名。它被命名这种方式,因为粗麻布是简单,实用,有用的,但极其普通的材料,这就好比Hessian协议的特点。
3评估标准
在这个部分比较四个框架时,考虑到不同的因素。一些指标来确定性能和效率;而有些是显示透明性和抽象的指标。本节介绍这些指标。
延迟
在网络方面,延迟是它需要多少时间要发送回请求数据的概念。这包括对请求被发送到服务器,在服务器上处理该任务花费的时间,和时间的结果被发送回的时间。网络延迟受许多因素的影响,如传播,传输,调制解调器和路由器处理和存储延迟等等。传播的是它需要的对象,诸如数据,从一个位置中的光的速度传送到另一个的时间。传输距离如光纤或无线网络的介质的延迟。调制解调器和路由器需要时间来检查数据包的报头。存储延迟花费的是在实际硬件存储器上,如硬盘驱动器,用于存储所接收的数据的时间。在这部分中,等待时间与不同的情况下,如请求1,2,3,4,和5 MB的数据,和1,5,10,15,20的客户端同时请求数据的测试。通过对比这样的测试的结果,可以发现各自的特点,并为每个框架进行比较。
吞吐量
吞吐量是客户端或数据的特定时间单元内处理的量,例如一秒钟。这是高度相关的等待时间,由于具有高延迟的场景将导致低吞吐量和低延迟场景将导致高的吞吐量。然而,通过查看图的延迟,我们只能告诉响应时间的趋势,而我们可以通过查看吞吐量图确定的框架的最有效的方案。
内存使用情况
在计算中,存储器是数据存储到临时存储的数据为计算机的计算。有各种各样的存储器,诸如高速缓冲存储器,快闪存储器,随机存取存储器(RAM),虚拟存储器等存储器,它们都限定在服务器,由于成本和空间。使用较少的内存框架将有利于让服务器有高容量的优势。
源代码行数
在一个框架中使用的代码的源极线(SLOC)可以指示框架的透明度和抽象。框架的主要目标是通过不必从头开始编写整个代码,以节省开发者的时间和精力。因而所需的框架的代码少,就需要更多的时间和精力。然而,行代码不可能完全准确,因为虽然有些线短一些行可能会很长。所以文件的文件的数量和尺寸也是一个考虑因素。
4 统计分析方法
检索的测试数据进行性能的比较后,我们需要一个方法来分析结果。通过简单地计算平均响应时间,使它们成为一个图是不足够分析的。看着时间1.5秒与1.6秒的平均响应,我们不能肯定这是一个很大的差别与否。因此,需要的统计分析方法来告诉如果该差值显著与否。在该项目中,一般线性模型(GLM)和双向方差分析(双向ANOVA)被用于统计分析。另外,统计分析系统(SAS)被用作用于辅助所需的统计分析的计算工具。
SAS系统
SAS系统是有各种各样统计模块和程序的统计分析软件。他们使用的第四代编程语言(4GL),用于他们的代码和程序由三个主要组成部分- 数据步骤,过程步骤以及宏语言。数据步骤是输入数据,像在代码中插入数据或者从数据文件中读取。过程步骤是使用的统计方法和模型来分析被在数据步骤中读取的数据。宏语言是用来减少的被反复使用整个程序中的功能冗余。
GLM模型
所述GLM模型是在一般情况下使用的统计线性模型。它是许多统计分析,如检验,方差分析,协方差分析(ANCOVA)等,了解GLM模型的工作原理是两个变量的情况下,最简单的案例的基础。此分析的目的是利用一种方法来精确地描述在此图中的信息。使用GLM模型,我们试图找到一条直线最接近所有的点。此线将被写为:y = B0 B1X E,其中y是在Y轴变量,x是X轴变量,b0为截距(y的值当x等于0),B1是直线的斜率,和e是误差。通过解决B0和B1,我们可以得到关于描述的情节点这一直线信息。在其他情况下,有两个以上的变量,该公式可以扩展为:y = B0 b1x1 b2x2 b3x3 ... bnxn E,其中n是的情况的变量数。解决这样的问题的机制是相同的。
5 结果与分析
为了得到SAS分析的最佳结果,每一种情况下被测试二十次。由于有五个不同量的四个框架进行了测试,有二十不同的情况。添加20个测试时间为二十个不同的情况,会导致400数据设置由SAS计算。除了客户端的量,数据的大小也被考虑。用也五种不同的数据大小的送出,将有20例,总的400个数据集。响应时间通过记录时间权调用Web服务和记录被接收后的要求的数据,然后减去的时间差为之前测量的结果。
客户端方案
对于不同的场景测试四种不同的架构,创建Web服务应用程序发送出去的数据。基于客户端的四个框架性能测试量的五种情景是1客户端,5个客户,10个客户,15个客户和20个客户端的数据检索每1MB。平均响应时间为每个场景,每个框架被记录以供分析。结果如图1所示。通过计算结果可以通过,图2示出每秒平均客户端为每个方案和框架。
图2显示了每个框架的最有效的客户端方案。 Apache Axis的可以用10个客户以上到达的情景后处理每秒4.993的客户数据。Hessian可以处理每秒4.807客户那些相同的场景。将JBossWS处理与每秒0.943的客户在每一个情况下。 Codehaus XFire的似乎是最有效的,可以解决5个客户端的情况下,处理约2.892用户每秒。从上面的所有图表,Apache Axis的在所有情况下有最佳性能,但进一步的分析应该由SAS完成。
分析
显然,响应时间量速度依赖于框架的选择,数据量转移,以及从web服务调用任务的客户端的数量。这使得这三个因素的试验结果,这是响应时间显著。但在做进一步的分析之前,我们必须使用GLM模型,以确保如果三个因素的相互作用也是显著的因素。如果交互都没有,我们可以使用杜克的方法做多重比较,并直接看到它的框架在各种情况下具有更好的性能,并具有差值;如果相互作用显著的因素,则不是我们需要通过案例的结果的情况下进行分析。
客户端方案
首先分析客户端方案的得来结果,我们使用的SAS系统看看各因素的重要性。事实证明,不仅客户机的数量和框架是显著的选择因素,还有它们之间的相互作用。这意味着,如果一个框架比其他的在一些某些情形下显著更快,框架不一定会在其它情形更快。因此,SAS无法直接比较,从一般线性模型(GLM)过程中的所有scenarios.A成对比较所有的框架在这种情况下使用。第一框架相比于第二个在第一种情况,则在第一至第三,第一至第四,第二至第三,第二至第四和第三到第四位。所以就在每个场景中比较。
表1应的时间,即当我们在寻找在1-客户端方案读取的情况下,我们忽略在5客户端10的客户端,15的客户端,和20的客户端脚本中的数据。具有较低字母组具有较低的响应时间,这意味着更好的性能。在1 - 客户端的情况下,所有的框架放入A组,这意味着他们都有大约在此情况下相同的性能。在5客户的情况下,将JBossWS放入B组,而其它的是在A组这意味着在这种情况下,将JBossWS具有比其他性能差,而其他仍然有大约相同。在过去的三个场景,Apache Axis和Hessian比Codehaus XFire的更快,Codehaus XFire的比将JBossWS更快。
Table 1. 响应时间比较。.
1 Client |
5 Clients |
10 Clients |
15 Clients |
20 Clients |
|
Apache Axis |
A |
A |
A |
A |
A |
Hessian |
A |
A |
A |
A |
A |
JBossWS |
A |
B |
C |
C |
C |
Codehaus XFire |
A |
A |
B |
B |
B |
Table 2. 内存和CPU使用率.
Memory 剩余内容已隐藏,支付完成后下载完整资料 资料编号:[146609],资料为PDF文档或Word文档,PDF文档可免费转换为Word |