应用程序服务器与Web服务基准比较.docx
《应用程序服务器与Web服务基准比较.docx》由会员分享,可在线阅读,更多相关《应用程序服务器与Web服务基准比较.docx(39页珍藏版)》请在课桌文档上搜索。
1、应用程序服务器与Web服务基准比较J2EE与.NET应用程序服务器与Web服务基准比较Middleware公司,2002年10月Middleware公司简介2002MiddIeWare公司目录表序言比较是公正的吗?修订过的JavaPetStore利用新的企业功能扩充PetStore改进的JavaPetStore应用程序改进后的.NETPetStore2.0新的实现的比较状态/高速缓冲存储数据的一个比较扩展的基准Web应用程序基准24小时分布式事务基准价格性能度量Web服务基准测试实验室与测试软件产品测试Microsoft.NET测试前.NET协调与优化配置需要的时间.,NET协调与优化配置.J
2、2EE测试前J2EE协调与优化配置需要的时间J2EE协调与优化配置Web应用程序基准测试测试方法24小时分布式基准Web服务基准Web服务基准直接Web服务请求WEB服务基准一远程SOAP客户端请求附录1代码行对比附录2Web应用程序基准的基准数据关闭图片下载吞吐量数据事务响应时间(秒)打开图片下载.吞吐量数据(每秒的图片与页面的数量)附录324小时分布式事务基准的基准数据附录4Web服务基准的基准数据来自于负载源的Web服务直接SOAP激活吞吐量(每秒的响应次数)响应时间(秒)Web服务远程SOAP客户端调用吞吐量(每秒的响应次数)响应时间(秒)附录5J2EE应用程序服务A的协调Web基准分
3、布式事务基准Web服务基准附录6J2EE应用程序服务器B的协调Web基准分布式事务基准Web服务基准附录7.NET1.0/WINDOWS2000服务器协调基本全局变量的修改:Web基准分布式事务基准Web服务基准附录8.NET1.1/WINDOWS.NET服务器2003协调基本全局配置的改变:Web基准分布式事务基准Web服务基准序言这篇报告包含了由MiddleWare公司得出的基于JaVaPetStOre最新实现的一系列广泛的新基准结果。这一新的实现在性能与伸缩性上都作了广泛的优化,测试是在两台先进的、市面上能够买得到的J2EE应用程序服务器上进行的。新的实现同时还扩展到支持两个物理数据库之
4、间分布式习惯XA事务。此外,实现中还增添了一项基于XML的Web服务与Web服务客户程序。为了基准的比较,MiCroSo丘也已经向MiddIeWare公司提供了相应功能的修订过的.NETPelShop2.0应用程序,该应用程序遵循相同的规范,同时MiddleWare已经完成了对它的审查工作。这个实现包含通过由COM+服务的.NET组件支持分布式事务;同时具有修订的J2EE实现中相应的Web服务功能。本文全面阐述两种新实现的性能与伸缩性广泛基准的比较结果。比较是公正的吗? 难道J2EE版本不能够重新编写,对其进行优化以实现更好的性能? 假如NET版本不使用贮存程序,而是使用与J2EE版本里相同的
5、动态SQL,那么其性能会发生什么变化呢? 对比是否可信?尽管原始的比较使用的硬件是类似的,但并不是相同的,同时比较是由OraCle与MiCrOSoft各自的实验室完成的,使用的是不一致版本的MerCUryLoadRunner负载测试软件与不一致的测试台。修订过的JaVaPetStore熟知基于Web的J2EE应用程序服务器的MiddleWare公司,根据JaVa社区的反馈信息与企业开发者公布在TheSerVerSide上的反馈信息,使用J2EE与EJB从新创建了JaVaPe【Slore,对其性能进行了充分的优化,确保新的实现仅仅包含执行应用程序所需要的代码,而没有那些只是用来说明J2EE特征的
6、代码。同时MiddleWare公司将PelStore应用程序的功能扩展到支持重要的新的企业功能,这些功能包含分布式、习惯XA事务与基于XML的Web服务。这一新的应用程序已经被作为MiddleWare的JaVaPelStore2.0公布在TheSerVerSide上。同时MiCrOSOfl也将他们的.NETPetShop升级至J2.O版,增添了支持分布式事务与Web服务的功能,在.NET应用程序中使用所有的动态SQL来代替贮存程序。MiCrOSoft已经将这个新的.NETPetShop2.0版本公布在MSDN上,供.NET开发者在创建他们自己的n层Web应用程序的时候作为一个蓝图使用,同时Mi
7、CroSOft也在SerVerSide上公布了源代码。MiddIeWare公司在新的实现中完成了一系列广泛的基准,使用的是与应用程序服务器与数据库后端系统相同的硬件,同时使用了相同的测试台。本文包含了这些有MiddleWare公司执行同时验证的测试的结果。这些测试包含广泛的J2EE应用程序服务器协调与优化,都是在2002年6月至J9月的四个月的时间内进行的。MiddIeWare公司颁布的基准的基本规则包含:1 .J2EE与.NET实现在功能上务必100%的相同,在行为上没有任何的区别。2 .两个实现都务必是根据最佳实践代码准则创建的,这样现实中的消费者在创建他们自己的应用的时候能够遵循每一项有
8、效设计模式服务。3 .每一个应用程序在逻辑上都务必是三层实现,使用分割好的组件来封装中间层商业与数据访问逻辑。4 .应用程序务必设计得使它们都能够跨多中间层应用程序服务器群集来缩小。5 .基准务必与能够响应现实世界产品配置的现实的应用程序服务器与数据库配置设置一起运行。利用新的企业功能扩充PetStore.为了使新的基准更加易于充分懂得,J2EE与.NET中的PetStore2.0应用程序需要扩展重要的新的企业功能,其中包含:分布式事务。在原始的SUn的JaVaPelStore中,所有的数据库事务都发生在单个的数据库中,而在PelSlOre2.0基准中,关于每一条命令,都有一项分布式的事务在两
9、个不一致的物理数据库之间执行,命令信息放在一个数据库中,而存货统计在另外一个数据库中进行。假如事务中有任何一部分失败,那么整个事务就会再从头开始。创建这样的应用程序与基准的目的是对使用JTA事务服务的J2EEEJB与通过利用COM+事务的.NET服务处理的.NET事务的性能进行对比。Web服务。PelSIore2.0包含有一项以XML格式提供命令信息的Web服务,这些信息包含所有命令的全面内容与每一条特殊命令的排列项。Web服务在SoAPLl上工作。除了Web服务本身外,PelSIore2.0还包含一个用来调用Web服务在浏览器中显示结果的简单的客户程序包。改进的JaVaPetStOre应用程
10、序JavaPetStOre应用程序通过许多途径来改进增加其性能。修订后的应用程序仍然保持具有EJB基础的设计模式,类似由J2EE升级而成的可缩放n层企业应用程序。然而,许多性能上的改进对应用程序进行了完全的性能优化,下面将全面的介绍这些性能的优化。事务边界的改进:尽管大部分原始的PetStore应用程序遵循应用程序的标准访问模式,调用一个EJB会话,这样完成一个事务就需要调用所有需要的EJB实体。改进后这种方法并没有在所有的情况下连续,由于它会导致原始的实施中某些性能的退步。比如,在某一类别所包含的产品报表中,三种各包含有三列的产品需要九次事务才能完成,而不是一次。在改进后的MiddIeJav
11、aPetStore2.0中,所有的事务边界都被修改以最小化事务次数为EJB实体实现了一种Read-MOSuy模式:在原始的PelStOre中,所有的实体都是读写式。这种模式开发简单,但是效率低下,由于每一次操作都会导致读写数据库一次,即使是对静态数据的操作也是如此。为了减轻这个问题的影响,有些适当的实体块被以一种Read-MoSUy的模式重新实现。在这种模式中,EJB实体被分成两个部分:一部分为只读模式,其状态储存在事务边界中,另一部分为写模式;两部分实体都分享一个引用,这个引用指向代表它们的数据的通用数据结构。只读实体块界面包含有访问方法,而写实体块界面包含有改变方法;所有的数据库读的方法都
12、包含在只读模式日B中,比如ejbLoad(),所有的写数据库方法都包含在写模式EJB中,比如ejbStore().此外,在整个实体中添加了isModifkd()方法,该方法能够写入数据库这样所有不必要的数据库更新都能够避免。改进了数据库索引的使用:改进后在通常的搜索方面都能够使用索引,比如搜索产品的名字与样品ID。此外,原始PelSIOre的表格生成脚本中的一个要紧关键字被忽略了,而这个关键字往往使得全面目录的访问非常的慢。去掉多余的JNDl查找与调用初始化:每一个数据资源与EJB原参考都储存在应用程序服务器的JNDl服务中。在原始的PeISlOre中,每次在这些参考被使用的时候,系统都要找出
13、JNDI初始背景,然后在JNDl中查找相应的参考。两者都仅仅只需要做一次就能够了。代码的改变使得所有不必要的JNDl调用都省去了。动态类只有一次初始化:在PeIStore中使用的一种在编译的时候载入不知名的类的设计模式就是用来显示JaVa的灵活性的。它通过查找将要作为字符串使用的类的名字,使用forName()操作来为该类生成实例来完成。然而,进程的灵活性的代价就是执行上的高耗费。那些类的名字在编译时已经明白的情况下,程序将这一过程移除同时类的名字被编码。在其余的情况下,程序确保类的查找与确定只执行一次,然后只有在此类生成新的实例的时候再次执行。就像前面提到的一样,还有许多其他的改进:包含广泛
14、的使用JDBC预定义的语句,对字符串处理的重大改变与其它的重大改进。然而,上面全面列出的这些改变带了了性能上的最大的改观。基于J2EE应用程序服务器A比较性的性能数据,与SUn公司最初实施的JaVaPetStOre相比,这些优化大致对性能提高了17倍。这一数据是根据对进行性能平衡(对分布式事务的支持,数据的高速缓存)后原始SUnJavaPetSlOre与新的MiddIeWareJ2EEPelStore2.0的比较得出的。新的实施与旧的实施相比,性能上的提高见下表:图L原始的SimJavaPetStOre与优化后的EJBJavaPetStore2.0峰值吞吐量的比较PeakThroughput4
15、x550MHzCPUApplicationServer改进后的.NETPetStore2.0与JaVaPetSIOre类似,.NETPetShop2.0的体系结构是由MiCroSofl推出的3层逻辑结构,其目的是为了创建基于NET的可缩放的企业应用程序。然而,在某些关键的地方,代码基础已经作了最新的改进,同时做了性能上的提高。最要紧的改变包含:1 .关于所有的数据库访问,使用动态SQL代替贮存程序。这样就消除了关于性能的提高是通过加入编译过的贮存程序,牺牲了数据库的轻便实现的争论。2 .在命令布置中使用了分布式事务。3 .使用一种基于SoAP的Web服务来返回命令的全面信息与调用客户页面。4
16、.使用数据转发器操纵代替数据栅格操纵来提高性能。5 .使用简单的数据高速缓冲存储器在中间层数据缓冲存储器中缓冲静态只读产品信息。新的实现的比较改进后的JaVaPetStOre实现仍然保持忠实于SUn微系统公布的MOdeI-VieW-COn【roller体系结构,充分利用包含会话块与实体块的J2EE核心特征的优势。在对软件进行上面全面列出的为优化性能而做出的广泛修改的同时,软件方面由SUn微系统推荐的基本设计模式与广泛应用的面向对象的开发方式仍然保持完整无缺。这一体系结构使得用户界面与中间层商业逻辑与数据访问逻辑完全分离,后端进程被封装在不一致的EJB中。类似的,.NETPelShop2.0也使
17、用了完全面向对象的n层体系结构,为中间层与数据访问目标实施了C#类。这样它就实现了通过使用ASP.NETWeb表单将Ul与中间层商业逻辑完全的分开,而ASP.NETWeb表单则通过使用一种Code-behind模式(服务器端的代码通过封装与客户端HTML分开)将HTML与客户端单元与服务器端进程单元完全分开。Web表单模式利用了框架中提供的ASP.NET服务器操纵的优势,为大部分的UI/外观单元服务,比如列表,网格等。反过来,服务器操纵激活用C#语言书写的封装在单独的.NET集合(封装的、可重复使用的组件)中的中间层对象,这些中间层间接的通过封装在数据访问逻辑中的单独的一套数据库访问类在访问数
18、据库。状态/高速缓冲存储数据的一个比较为了使得呈现在用户面前的数据库信息尽量是最新的,务必确保两种实现有相同的行为。基本上来说,核心静态产品数据通常每24小时从数据库更新一次(尽管搜索仍然会查询数据库关键字来确定高速缓冲存储器中的什么记录需要显示,但是要紧是在运行测试的时候在中间层高速缓冲存储器查找),而消费者数据与用户目录却需要在每一位用户登录的时候都访问数据库,同时从数据库中更新帐单信息,这也是结帐过程的一部分。此外,所有产品全面目录的数量务必精确响应所有显示这些信息的应用程序页面更新后的数据库信息。JaVa版使用实体块来维持状态数据库信息;而.NET版使用.NET中间层高速缓冲存储器来储
19、存静态(只读)产品信息,高速缓冲存储器每24小时更新一次。考虑到数据的过时,这种配置在产品间具有相同的欣慰。在这一基准中,尽管.NET与J2EE应用程序服务器都被测试出支持页面输出高速缓存,但是动态页面输出缓存并没有使用。这样的决策的目的是强调中间层应用程序逻辑处理的性能。扩展的基准这一基准包含有三套单独的测试,这些测试能够为两个应用程序.NET与J2EE性能与缩放性特征提供一个公平全面的概括。这三套基准包含:1. Web应用程序基准2. 24小时基准分布式事务基准3. Web服务基准Web应用程序基准这一基准联系应用程序大部分的基本功能,在使用OraCle与MiCrOSofl的测试中,两个应
20、用程序的工作量相似,但并不相同。测试的目的是得到应用程序在低用户负载量到高用户负载量的过程中吞吐量曲线与测量响应时间,不给两种产品施压以测定他们分别在2个、4个与8个CUP应用程序服务器的配置下能够支持的用户数量的极限。测试脚本在有10秒缓冲时间的情况下执行(在OraCle的原始基准中,使用了20秒的缓冲时间,这就意味着与新的基准相比,在相同用户负载量的情况下,服务器所承受的压力只有一半)。页面输出高速缓冲存储也被停止,这样保证服务器务必处理收到的每一条请求。不一致用户负载量下的数据点都被单独的测量,同时测量ramp-up、settledown数据收集与rampdown时间来测定结果的精确性(
21、每一个单独数据点的总执行时间都超过1小时)。为了得到更多的信息,这套基准以两种不一致的方式执行:a.关闭图片下载:这样只有基本应用程序服务器引擎被使用到。这一测试能够显示产品操作包含服务器端脚本、会话状态管理、对象激活与数据库连通性在内的应用程序逻辑的良好程度。b.打开图片下载:模拟一个浏览器高速缓冲存储器这样,每个访问站点的用户在一次脚本重复期内都需要下载每一张单独的图片一次。这一测试能够显示应用程序服务器作为Web服务器/应用程序服务器的综合工作的合适程度。注意,这一基准的结果不能与过去OraCIeandMiCroSofi公布的PeIShoP的基准数据比较,由于使用了不一致的测试脚本与缓冲
22、时间,同时在应用程序的某些功能方面也与原始的PetShOP基准有差别。24小时分布式事务基准设计这一基准的目的是为了对每一个测试产品的分布式事务执行能力进行测试。测试脚本包含用户登录、然后单独的处理一条100条项目的命令。命令中每一条项目结帐过程的完成包含这个过程的最后一步就是用来激活一次分布式事务的命令的实际布置,脚本的最后是退出。每一个用户在一个用户会话中都会完成100次单独的分布式事务。测试会在每一个产品能够产生峰值吞吐量的用户负载下运行,同时持续24小时来观察这种吞吐量是否可持续。价格性能度量除了绝对性能度量外,每个产品基于4-CPU配置在24小时的运行中的价格度量也被计算出来了。这一
23、度量是以每次事务每秒花费的美元数来计算的。花费包含中间层的硬件的开销、应用程序服务器软件许可证开销(以4-CPU配置的每个产品的公布价格来计算)再加上用于应用程序服务器的操作系统的购买价格。价格度量中没有包含数据库许可证费与接下来的支持保护费用。Web服务基准这一基准测量为J2EE与.NET服务的Web服务的性能特征。测试包含两个基本的配置:a.Web服务的直接激活使用I(X)台分布式的物理计算机,每一台模拟多用户生成直接SoAP调用来激活Web服务。这一基准测试应用程序服务器处理SoAP请求的能力与作为Web服务提供者的能力。测试实验室与测试软件由MerCUry交互式代表在实验室里安装与配置
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 应用程序 服务器 Web 服务 基准 比较

链接地址:https://www.desk33.com/p-437868.html