应用程序服务器与Web服务基准比较

上传人:re****.1 文档编号:564489119 上传时间:2022-08-07 格式:DOCX 页数:39 大小:648.80KB
返回 下载 相关 举报
应用程序服务器与Web服务基准比较_第1页
第1页 / 共39页
应用程序服务器与Web服务基准比较_第2页
第2页 / 共39页
应用程序服务器与Web服务基准比较_第3页
第3页 / 共39页
应用程序服务器与Web服务基准比较_第4页
第4页 / 共39页
应用程序服务器与Web服务基准比较_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《应用程序服务器与Web服务基准比较》由会员分享,可在线阅读,更多相关《应用程序服务器与Web服务基准比较(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 .使用数据转发器操纵代替数据栅格操纵来提高性能。5 .使用简单的数据高速缓冲存储器在中间层数据缓冲存储器中缓冲静态只读产品信息。新的实现的比较改进后的JaVaPetStOre实现仍然保持忠实于SUn微系统公布的MOdeI-VieW-COn【roller体系结构,充分利用包含会话块与实体块的J2EE核心特征的优势。在对软件进行上面全面列出的为优化性能而做出的广泛修改的同时,软件方面由SUn微系统推荐

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

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