应用程序服务器与Web服务基准比较.docx
《应用程序服务器与Web服务基准比较.docx》由会员分享,可在线阅读,更多相关《应用程序服务器与Web服务基准比较.docx(38页珍藏版)》请在三一办公上搜索。
1、Middleware公司J2EE和.NET 应用程序服务器与Web服务基准比较Middleware公司,2002年10月Middleware公司简介Middleware公司致力于提供先进的企业Java技术培训与咨询服务。公司成立于1998年,其宗旨是帮助企业向Java平台转移来促进电子商务项目的成功。公司协助世界上一些最大型的机构例如BEA、Oracle、Cisco、Nextel、MetLife、Sterling Commerce、Standard&Poors以及许多其它企业在Java专家的指导下熟练掌握平台,减少风险,维持成本效益。这些专家都是有着雄厚的开发经验以及强大的服务器方面技术的资深
2、工程师,同时他们还是该领域著名的带头人。公司的服务包括Java2、EJB、J2EE和XML-Web服务的现场培训,体系结构咨询以及遍布世界课程培训。这些课程在北美以外的地方都拿到了课件许可证。Middleware 公司同时创建了网站TheServerS并一直维护着该网站,这个网站是目前领先的在线J2EE社区。 2002 Middleware公司目录表序言比较是公正的吗?修订过的Java Pet Store利用新的企业功能扩充Pet Store.改进的Java Pet Store应用程序改进后的.NET Pet Store2.0新的实现的比较状态/高速缓冲存储数据的一个比较扩展的基准Web应用程
3、序基准24小时分布式事务基准价格性能度量Web服务基准测试实验室与测试软件产品测试Microsoft .NET测试前.NET协调以及优化配置需要的时间.NET协调与优化配置.J2EE测试前J2EE协调以及优化配置需要的时间.J2EE协调与优化配置Web应用程序基准测试测试方法24小时分布式基准Web服务基准Web服务基准直接Web服务请求WEB服务基准远程SOAP客户端请求附录1代码行对比附录2Web应用程序基准的基准数据关闭图片下载吞吐量数据事务响应时间(秒)打开图片下载吞吐量数据(每秒的图片与页面的数量)附录324小时分布式事务基准的基准数据附录4Web服务基准的基准数据来自于负载源的We
4、b服务直接SOAP激活吞吐量(每秒的响应次数)响应时间(秒)Web服务远程SOAP客户端调用吞吐量(每秒的响应次数)响应时间(秒)附录5J2EE应用程序服务器A的协调Web基准分布式事务基准Web服务基准附录6J2EE应用程序服务器B的协调Web基准分布式事务基准Web服务基准附录7 .NET 1.0/WINDOWS 2000 服务器协调基本全局变量的修改:Web基准分布式事务基准Web服务基准附录8.NET 1.1/WINDOWS.NET 服务器2003协调基本全局配置的改变:Web基准分布式事务基准Web服务基准序言2001年5月,Sun微系统将JavaTM Pet Store作为基于J2
5、EETM的Web应用程序的示范实现推出。Sun公司宣布,Java Pet Store应用程序阐述了一些最好的J2EE开发经验,为客户在创建他们自己企业的Web应用程序时提供了一个可参考的设计模型。Sun公司在 Pet Store网址的维护。Java Pet Store 是众多领先的J2EE应用程序服务器中的一个基础的例子。2001年11月,Microsoft 宣布它已经利用Microsoft .NET Framework和C#重新实现了Java Pet Store,以此来表明.NET平台相对于J2EE的优越性。.NET Pet Shop与Sun Java Pet Store功能上是相同的,但它
6、是利用Microsoft改进的体系结构创建的,这个体系结构是为基于ASP.NET和.NET通用语言运行时(CLR)的n层Web应用程序开发的。Microsoft已经发布了.NET Pet Shop的基准信息,以此来表明在高用户负载下,.NET Pet Shop在性能上比Java同类产品有明显的提高。这一基准比较的结果是基于对.NET Pet Shop性能与Oracle-发表的运行在Oracle9iAS上的Java Pet Store基准性能的比较。最新的基于.NET Pet Shop1.5的比较可以从下面的网址获得: IBM和Oracle坚持认为目前的比较并没有实际意义,因为Sun的Pet S
7、hop应用程序蓝图还没有进行性能优化,因此并不表示它就是基准。这篇报告包含了由Middleware公司得出的基于Java Pet Store最新实现的一系列广泛的新基准结果。这一新的实现在性能和伸缩性上都作了广泛的优化,测试是在两台先进的、市面上可以买得到的J2EE应用程序服务器上进行的。新的实现同时还扩展到支持两个物理数据库之间分布式适应XA事务。此外,实现中还增添了一项基于XML的Web服务和Web服务客户程序。为了基准的比较,Microsoft也已经向Middleware公司提供了相应功能的修订过的.NET Pet Shop 2.0应用程序,该应用程序遵循相同的规范,并且Middlewa
8、re已经完成了对它的审查工作。这个实现包括通过由COM+服务的.NET组件支持分布式事务;同时具有修订的J2EE实现中相应的Web服务功能。本文详细阐述两种新实现的性能与伸缩性广泛基准的比较结果。比较是公正的吗?从最初开始,许多Java开发者坚持认为原始的比较是无效的,因为Sun的版本在开发效率和性能上都没有进行优化。Java开发者指出,Microsoft实现经过了专门的性能优化,并且与Sun的版本使用的是不同的体系结构。例如,Java开发者指出Microsoft在他们的实现中使用SQL服务器贮存程序(Sun的Java版本使用的是动态SQL,这样使得数据库移动更加方便),这是这两种不同实现的关
9、键区别,这一区别使得.NET版本比Java同类产品运行更加快速。对于这一点,Microsoft坚持认为Sun的应用程序是被作为一个J2EE企业设计最佳实践模板推出的,因此,完全有理由认为应用程序在可伸缩性已经作过了相当好的调整。Microsoft指出它也采用类似的方法将所有.NET Pet Shop源代码作为.NET企业设计模板的最好实践发布;它使用贮存程序的原因基于这样的一个事实,那就是许多的企业DBA为了控制的方便更趋向于将查询封装在贮存程序,同时许多人甚至不接受在应用程序中的动态SQL。然而,网上的Java开发者例如TheServerS却提出了合法性的问题,例如: 难道J2EE版本不能够
10、重新编写,对其进行优化以实现更好的性能? 如果.NET版本不使用贮存程序,而是使用与J2EE版本里相同的动态SQL,那么其性能会发生什么变化呢? 对比是否可信?尽管原始的比较使用的硬件是类似的,但并不是相同的,并且比较是由Oracle和Microsoft各自的实验室完成的,使用的是不同版本的Mercury LoadRunner负载测试软件和不同的测试台。修订过的Java Pet Store精通基于Web的J2EE应用程序服务器的Middleware公司,根据Java社区的反馈信息以及企业开发者公布在TheServerSide上的反馈信息,使用J2EE和EJB从新创建了Java Pet Stor
11、e,对其性能进行了充分的优化,确保新的实现仅仅包含执行应用程序所需要的代码,而没有那些只是用来表明J2EE特征的代码。同时Middleware公司将Pet Store应用程序的功能扩展到支持重要的新的企业功能,这些功能包括分布式、适应XA事务以及基于XML的Web服务。这一新的应用程序已经被作为Middleware的Java Pet Store 2.0公布在TheServerSide上。同时Microsoft也将他们的.NET Pet Shop升级到2.0版,增添了支持分布式事务与Web服务的功能,在.NET应用程序中使用所有的动态SQL来代替贮存程序。Microsoft已经将这个新的.NET
12、 Pet Shop 2.0版本发布在MSDN上,供.NET开发者在创建他们自己的n层Web应用程序的时候作为一个蓝图使用,同时Microsoft也在ServerSide上公布了源代码。Middleware公司在新的实现中完成了一系列广泛的基准,使用的是与应用程序服务器和数据库后端系统相同的硬件,并且采用了相同的测试台。本文包括了这些有Middleware公司执行并且验证的测试的结果。这些测试包括广泛的J2EE应用程序服务器协调与优化,都是在2002年6月到9月的四个月的时间内进行的。Middleware公司颁布的基准的基本规则包括:1. J2EE与.NET实现在功能上必须100%的相同,在行为
13、上没有任何的区别。2. 两个实现都必须是根据最佳实践代码准则创建的,这样现实中的消费者在创建他们自己的应用的时候可以遵循每一项有效设计模式服务。3. 每一个应用程序在逻辑上都必须是三层实现,使用分割好的组件来封装中间层商业和数据访问逻辑。4. 应用程序必须设计得使它们都能够跨多中间层应用程序服务器群集来缩小。5. 基准必须与能够响应现实世界产品配置的现实的应用程序服务器和数据库配置设置一起运行。6. 所有的基准应用程序源代码、数据负载以及测试脚本(包括.NET和J2EE)都必须公布在S上,这样客户可以复制并验证其结果。在基准中使用的源代码、数据库结构以及测试脚本可以从下面的网得到: 。利用新的
14、企业功能扩充Pet Store. 为了使新的基准更加易于充分理解,J2EE和.NET中的Pet Store 2.0应用程序需要扩展重要的新的企业功能,其中包括: 分布式事务。在原始的Sun的Java Pet Store中,所有的数据库事务都发生在单个的数据库中,而在Pet Store 2.0基准中,对于每一条命令,都有一项分布式的事务在两个不同的物理数据库之间执行,命令信息放在一个数据库中,而存货统计在另外一个数据库中进行。如果事务中有任何一部分失败,那么整个事务就会再从头开始。创建这样的应用程序与基准的目的是对使用JTA事务服务的J2EE EJB与通过利用COM+事务的.NET服务处理的.N
15、ET事务的性能进行对比。 Web 服务。Pet Store 2.0包含有一项以XML格式提供命令信息的Web服务,这些信息包括所有命令的详细内容和每一条特殊命令的排列项。Web服务在SOAP1.1上工作。除了Web服务本身外,Pet Store 2.0还包含一个用来调用Web服务在浏览器中显示结果的简单的客户程序包。改进的Java Pet Store应用程序Java Pet Store应用程序通过许多途径来改进增加其性能。修订后的应用程序仍然保持具有EJB基础的设计模式,类似由J2EE升级而成的可缩放n层企业应用程序。然而,许多性能上的改进对应用程序进行了彻底的性能优化,下面将详细的介绍这些性
16、能的优化。 事务边界的改进:尽管大部分原始的Pet Store应用程序遵循应用程序的标准访问模式,调用一个EJB会话,这样完成一个事务就需要调用所有需要的EJB实体。改进后这种方法并没有在所有的情况下延续,因为它会导致原始的实施中某些性能的退步。例如,在某一类别所包含的产品报表中,三种各包含有三列的产品需要九次事务才能完成,而不是一次。在改进后的Middle Java Pet Store 2.0中 ,所有的事务边界都被修改以最小化事务次数 为EJB实体实现了一种Read-Mostly模式:在原始的Pet Store中,所有的实体都是读写式。这种模式开发简单,但是效率低下,因为每一次操作都会导致
17、读写数据库一次,即便是对静态数据的操作也是如此。为了减轻这个问题的影响,有些适当的实体块被以一种Read-Mostly的模式重新实现。在这种模式中,EJB实体被分成两个部分:一部分为只读模式,其状态保存在事务边界中,另一部分为写模式;两部分实体都分享一个引用,这个引用指向代表它们的数据的通用数据结构。只读实体块界面包含有访问方法,而写实体块界面包含有改变方法;所有的数据库读的方法都包含在只读模式EJB中,例如 ejbLoad(),所有的写数据库方法都包含在写模式EJB中,例如ejbStore()。此外,在整个实体中添加了isModified()方法,该方法可以写入数据库这样所有不必要的数据库更
18、新都可以避免。 改进了数据库索引的使用:改进后在一般的搜索方面都可以使用索引,例如搜索产品的名字以及样品ID。此外,原始Pet Store的表格生成脚本中的一个主要关键字被忽略了,而这个关键字往往使得详细目录的访问非常的慢。 去掉多余的JNDI查找和调用初始化:每一个数据资源与EJB原参考都储存在应用程序服务器的JNDI服务中。在原始的Pet Store中,每次在这些参考被使用的时候,系统都要找出JNDI初始背景,然后在JNDI中查找相应的参考。两者都仅仅只需要做一次就可以了。代码的改变使得所有不必要的JNDI调用都省去了。 动态类只有一次初始化:在Pet Store中使用的一种在编译的时候载
19、入不知名的类的设计模式就是用来显示Java的灵活性的。它通过查找将要作为字符串使用的类的名字,使用forName()操作来为该类生成实例来完成。然而,进程的灵活性的代价就是执行上的高耗费。那些类的名字在编译时已经知道的情况下,程序将这一过程移除同时类的名字被编码。在其余的情况下,程序确保类的查找和确定只执行一次,然后只有在此类生成新的实例的时候再次执行。就像前面提到的一样,还有许多其他的改进:包括广泛的使用JDBC预定义的语句,对字符串处理的重大改变以及其它的重大改进。然而,上面详细列出的这些改变带了了性能上的最大的改观。基于J2EE应用程序服务器A比较性的性能数据,与Sun公司最初实施的Ja
20、va Pet Store相比,这些优化大致对性能提高了17倍。这一数据是根据对进行性能平衡(对分布式事务的支持,数据的高速缓存)后原始Sun Java Pet Store与新的Middleware J2EE Pet Store 2.0的比较得出的。新的实施与旧的实施相比,性能上的提高见下表:图1.原始的Sun Java Pet Store与优化后的EJB Java Pet Store 2.0峰值吞吐量的比较改进后的.NET Pet Store2.0和Java Pet Store类似,.NET Pet Shop 2.0的体系结构是由Microsoft推出的3层逻辑结构,其目的是为了创建基于.NE
21、T的可缩放的企业应用程序。然而,在某些关键的地方,代码基础已经作了最新的改进,同时做了性能上的提高。最主要的改变包括:1. 对于所有的数据库访问,使用动态SQL代替贮存程序。这样就消除了关于性能的提高是通过加入编译过的贮存程序,牺牲了数据库的轻便实现的争论。2. 在命令布置中使用了分布式事务。3. 使用一种基于SOAP的Web服务来返回命令的详细信息以及调用客户页面。4. 使用数据转发器控制代替数据栅格控制来提高性能。5. 使用简单的数据高速缓冲存储器在中间层数据缓冲存储器中缓冲静态只读产品信息。新的.NET Pet Shop 2.0以及其完全体系结构白皮书可以从下面的网址下载: 新的实现的比
22、较改进后的Java Pet Store实现仍然保持忠实于Sun微系统发布的Model-View-Controller体系结构,充分利用包括会话块与实体块的J2EE核心特征的优势。在对软件进行上面详细列出的为优化性能而做出的广泛修改的同时,软件方面由Sun微系统推荐的基本设计模式以及广泛应用的面向对象的开发方式仍然保持完整无缺。这一体系结构使得用户界面与中间层商业逻辑以及数据访问逻辑完全分离,后端进程被封装在不同的EJB中。类似的,.NET Pet Shop 2.0也采用了完全面向对象的n层体系结构,为中间层和数据访问目标实施了C#类。这样它就实现了通过使用ASP.NET Web表单将UI与中间
23、层商业逻辑完全的分开,而ASP.NET Web表单则通过使用一种code-behind模式(服务器端的代码通过封装与客户端HTML分开)将HTML和客户端单元与服务器端进程单元完全分开。Web表单模式利用了框架中提供的ASP.NET服务器控制的优势,为大部分的UI/外观单元服务,例如列表,网格等。反过来,服务器控制激活用C#语言书写的封装在单独的.NET集合(封装的、可重复使用的组件)中的中间层对象,这些中间层间接的通过封装在数据访问逻辑中的单独的一套数据库访问类在访问数据库。状态/高速缓冲存储数据的一个比较为了使得呈现在用户面前的数据库信息尽量是最新的,必须确保两种实现有相同的行为。基本上来
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 应用程序 服务器 Web 服务 基准 比较

链接地址:https://www.31ppt.com/p-2022334.html