java pet store

转自:http://blog.youkuaiyun.com/gaulhor/archive/2007/03/20/1535280.aspx

相信大家常常会看到很多统计数字,来自各家厂商、各种传播媒体、各个政治团体,但是数字虽然会说话,却常常各说各话。前阵子出现一篇比较微软.NET和Java J2EE架构执行效率的报告,常常被微软阵营拿来当成打击J2EE的证据。例如以下这段话﹕

"而据微软宣称,Visual Studio.Net能支持25种语言,和Java相比具有节省2/3程序代码、效能快28倍,承载六倍的使用者的功能"
- 摘自台湾CNet 2002年四月二日新闻专区

这样超能力的.NET效能报告到底来自何方?其真实性为合?本周我就来
从头开始讲讲这个精采故事的始末。

J2EE (Java 2 Enterprise Edition)是Java技术在企业运算上的应用,之中包含多种运算标准,EJB组件架构、JDBC数据库运算、JMS讯息传递、Java Servlets/JSP等Web组件程序等等,功能强大但是内容博大精深,为了让使用者可以有一个设计J2EE架构应用程序的模板,Sun做出一套系统名为 "Java Pet Store"。这个线上宠物店的范例是针对已经熟悉Java程序设计和J2EE观念的人,提供一个用正规方式设计出来的系统,让要用J2EE架构的人有一个参考的依据。

这个范例一出来,很快就被用来当成比较各家J2EE兼容产品的依据。最先是在去年的JavaOne大会上,受邀参加主题演讲的Oracle大老板Larry Ellision重炮轰击在他之前刚讲完下台的BEA,公开宣称Oracle的J2EE Application Server (Oracle9iAS) 的执行效能是BEA WebLogic的三倍,同时也是IBM WebSphere
的两倍。接下来IBM和BEA都站出来反击,例如BEA在去年七月也公布一项效能数据,数据上显示WebLogic Server 6.1的执行效率是IBM WebSphere的四倍,并且比Oracle的产品快上54%等等。这种情况其实是正常的,Java标准的精神原本就是各家厂商合作制定技术标准,然后再来根据这个标准来比赛谁的产品做得好。但是正当各家J2EE厂商比较得正热闹的时候,却半路杀出一个程咬金,微软有个网站叫做GotDotNET公布一份报告,宣称他们用同样的架构运用.NET技术做出同一套系统,结果就是本文一开头的那一段︰"和Java相比具有节省2/3程序代码、效能快28倍,承载六倍的使用者的功能"。这个数字一公布,就常常被微软以及微软的经销商们拿来当成.NET远远超越J2EE的证据。

这种惊人的数据当然引起J2EE阵营的质疑,于是大家仔细去看到底这些数字是
怎么产生的,很快地就被发现其中大有文章。这个.NET版本的宠物店系统已经被从头到尾改装过,整个架构都跟原先Java Pet Store不一样。根据网络上来自各方的整理,主要的不同点有以下几个﹕

1. Java Pet Store用的架构设计是所谓的MVC design pattern。MVC是Model-View-Controller的简写,是design pattern的一种,源自Smalltalk。以往开发这种大型应用程序常常把不同用途的各部分程序都混在一起,造成项目成员分工不清,系统也很难维护。MVC design pattern则是将对象分成三类,Model对象专门用来包装应用程序的状态,View用来负责屏幕上的展现,Controller则负责定义应用程序的各种动作和反应。Java宠物店系统利用MVC Pattern设计整个系统架构,将各层的对象清楚地分开。.NET的宠物店则是完全采用自己定义的架构,所以在一开始就和原来的范例完全不一样。

2. 在资料存取方面,.NET宠物店大量使用数据库中的store procedure。但是在原来的Java宠物店中,这些商业逻辑的工作是放在中间层组件中的。把这些工作放到store procedure里也许可以增加一些执行效率,但是却牺牲了程序的弹性和把各种工作都放进store procedure里, 带来的缺点是维护不易。而且对于某些阳春型的数据库系统 (例如MySQL),它根本就没有store procedure的功能。

3. 在数据库方面,.NET宠物店采用ADO.NET的Sql DataReaders来存取微软SQL Server的资料。但是如果数据库换成其它厂牌的产品,比如说 Oracle、
Sybase或是DB/2,虽然还是可以用 ADO.NET透过 OLE DB以及ODBC等方式来存取,但是在效率上就不可能跟在Microsoft SQL Server上一样了。所以Java宠物店是一个不管使用各家产品皆可行的展示,.NET宠物店则是在各方面都采用自家产品/技术的产物。

4. 另外.NET宠物店还有一个最快速提升效率数字的方法,就是去更改SQL的
query statement,让传回来的资料笔数少一些。这招果然有立竿见影的效果 :)

简单来说,这个.NET版本宠物店和Java宠物店的最大差别在架构设计。Java宠物店的目的是展示一个具扩充性的企业运算架构,就是采用三层(3-Tiers)式设计,资料展现层在最外面,中间是执行企业运算逻辑的中间层组件,后端就单纯是存放资料的关系型数据库。如此一来工作分得很清楚干净,各司其职。而微软的.NET宠物店其实就类似传统的两层式(2-Tiers)设计,

另外Java宠物店当初的用意也只是当成一个J2EE架构设计的模板,并没有特别针对加速执行效能作额外的设计。但是.NET宠物店完全以执行效能出发,为此不惜重新量身订作,虽然系统跑起来外观和功能一样,但是里头完全不是那么回事。如果用它来展示.NET也可以做出一套相同的宠物店系统那倒无妨,但是如果用执行效率来作文章,那就有些不公平了。

近来最新的发展是Sun的Java/XML部门总裁Rich Green在JavaOne大会上宣布,Oracle和IBM又针对Java宠物店在不更动架构下做了效能提升,结果比.NET宠物店快上18到22倍。比如说在中间层的EJB组件之中,它们使用 isModified() 方式来避免不需要的数据库更新动作,这个小更动就大幅提升了整体的执行效率。而且为了系统的架构弹性和程序可移植性,在这个新版的系统中仍然没有像.NET版本一样使用store procedure。Oracle的这篇最新报告和原始码可以在下列网站下载﹕

http://otn.oracle.com/tech/java/oc4j/content.html

另外在TheServerSide网站上也有一位先生发起在不牺牲原来架构和弹性的前提下,来做一套也在执行效能上作最佳化的无敌终极版Java宠物店。也有人干脆仿效.NET宠物店的方式,干脆弄一套两层式(2-Tiers)的Java版宠物店,和用微软的范例系统 "北风数据库" 同时摆在网站上让人做线上比较。它们的网址分别是︰

http://www.javelinsoft.com/petstore
http://www.javelinsoft.com/northwind

相信这个宠物店大战还没完,J2EE各家厂商、网络上Java阵营的支持者、加上.NET阵营,都会继续改进自己做的系统,并公布更加梦幻的数据。一般使用者要注意的就是不要被简单的数字所蒙骗,不要跟着瞎起哄。要看看到底它做了哪些修改才得到这样的效能提升,而且效能不是一切,系统的稳定度、架构的弹性和程序可移植性、程序维护上面的难易度,都是要一并考量的因素。而且既然要比赛,立足点就得公平,不然好比奥运游泳比赛,大家都照规矩在水中划手踢腿游,但是偏偏有一个人为了速度,在屁股上装个推进器往前射,然后再来自己宣称打破世界纪录,还有一帮人在旁边跟着鼓掌叫好,这样子就不太对了。

下面是本文中提到的文章网址,有兴趣进一步研究的朋友可以自行参考﹕

Java宠物店的原始网址 (包含所有文件和范例程序代码)﹕
http://java.sun.com/blueprints/code/index.html#java_pet_store_demo

Sun有关这个Java宠物店系统的FAQ︰
http://java.sun.com/blueprints/qanda/faq.html

解说 MVC Pattern的文件︰
http://java.sun.com/blueprints/patterns/j2ee_patterns/model_view_controller/index.html

.NET版本宠物店的网址︰
http://www.gotdotnet.com/team/compare/petshop.aspx

Oracle版本Java宠物店的网址﹕
http://otn.oracle.com/tech/java/oc4j/content.html

BEA版本Java宠物店的网址﹕
http://www.bea.com/press/releases/2001/0709_benchmark_bea-ibm-oracle.shtml

IBM对.NET提出的响应︰
http://www-3.ibm.com/software/webservers/studio/msnetreview.html



Trackback: http://tb.blog.youkuaiyun.com/TrackBack.aspx?PostId=1535280


本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/tan_jianhui/archive/2008/03/12/2172273.aspx
jps1.1.2(java petstore)+J2EE_Petstore详解 立即下载

相关推荐

java版本的petshop【PetStore】

为了和。net 竞争,java阵营开发出了 java版的petshop, 名字叫【PetStore】。 学习企业框架 ssh ssi 不可错过

J2EE .NET宠物店大战

J2EE .NET宠物店大战 (2002.04.26)   来自:Java周刊          相信大家常常会看到很多统计数字,来自各家厂商、各种传播媒体、各个政治团体,但是数字虽然会说话,却常常各说各话。前阵子出现一篇比较微软.NET和Java J2EE架构执行效率的报告,常常被微软阵营拿来当成打击J2EE的证据。例如以下这段话﹕"而据微软宣称,Visual Studio.Net能支持

ToB公司的战略与经营 3142

混合示教长短时记忆网络的车辆轨迹预测研究

论文"混合示教长短时记忆网络的车辆轨迹预测研究"中数据处理及MTF-LSTM模型实现代码,模型在Pytorch框架下实现。

ColinFhz的博客 1448

J2EE宠物商店

J2EE 是Java技术在企业运算上的应用,它包含多种运算标准,如EJB组件架构、JDBC数据库运算、JMS信息传递、Java Servlets/JSP等Web组件程序等,功能强大且内容博大精深。为了让使用者可以有一个设计J2EE架构应用程序的模板,Sun做出一套系统名为“Java宠物商店(Pet Store)”。这个网上宠物店的范例是针对已经熟悉Java程序设计和J2EE概念人员的。这个系统是使

赵小刀的文字吧 2167

本地部署DeepSeek连接MATLAB:打造私有化AI编程助手全攻略

大型语言模型(LLM)通过理解自然语言生成代码、解释技术概念,其核心原理是基于海量数据训练的Transformer架构。这项技术为工程计算和数据分析带来了效率革命,尤其在代码生成、调试辅助和文档自动化等场景价值显著。开源模型如DeepSeek-coder凭借优秀的代码理解能力,结合Ollama提供的本地化部署方案,实现了完全离线、低延迟的私有化部署。通过配置国内镜像加速下载,并利用MATLAB内置的HTTP通信函数构造API请求,工程师可以在熟悉的MATLAB环境中直接调用本地模型,处理数据清洗、算法验证等

weixin_30239339的博客 519

电商订单系统设计简析(一)

电商所有模块中,订单系统作为最为核心的模块,决定了整个流程能不能顺畅的执行,起着承上启下的作用。相信很多PM都不陌生,到了一家电商公司,总会觉得公司现有的流程有不少问题,因为问题来自四面八方,一下子摸不着到底是哪里出了问题,PM就跟补丁师傅一样,遇到一个补一个。其实很多日常开发和测试提得需求都是表面需求,而这些表面上呈现出的各种问题,都是源自于流程上的不完整或者流程上某个环节上的缺失导致的。订单系...

野蛮非先生的博客 9554

java petshop_终于把betterpetshop配置运行起来了!

1.其实配置很简单,就是直接将压缩文件包解压到eclipse的工作目录下如:workspace就可以了,然后在打开eclipse建立一个名为petshop的tapestry web Project项目,需要注意的是默认的生成的文件夹名为context,而在betterpetshop中,作者将其命名为petshop,其实只要看看web.xml文件就知道如:petshoporg.apache.tape...

weixin_32429413的博客 198

工业相机,大恒,面振相机8脚电源线和I/O触发接口线,颜色和接法说明和触发软件设定

上图: 说明一下,工业相机有TTL逻辑电平触发,也有光耦触发等。 这里一般我们用电路板驱动,就用GPIO触发模式, 这里,准备了两个GPIO触发模式,为LINE2,LINE3都可以选择,然后有一个GPIO_GND 如果,你只有一个触发接口,那么如图,选两个就好了。 实际接法如图。 ...

山云的专栏 1万+

java petshop_有谁玩过sun的JavaPetShop(一个J2EE的例子),希望有人答我。

下载地址http://java.sun.com/j2ee/download.html#blueprints在linux上安装后:============================================================配置文件如下:============================================================linux:/us...

weixin_42549723的博客 155

基于FPGA的FIR数字滤波器设计

clear;close all fc=1/4;fs=5/16; %输入给定指标 Rp=3;As=60;Fs=2; f=[fc,fs];m=[1,0]; %计算remezord函数所需参数f,m,dev dev=[(10^(Rp/20)-1)/(10^(Rp/20)+1),10^(-As/20)]; [N,fo,mo,W]=remezord(f,m,dev,Fs); %确定remez函数所需参数 hn=remez(N,fo,mo,W);...

FPGA/MATLAB学习教程/源码/项目合作开发 9455

面试提问:数据开发中如何通过指标拆解来指导SQL编写?(附拆解模板)

摘要:指标拆解是一种高效的数据分析方法,通过将复杂业务指标分解为可执行的原子指标,指导SQL查询的编写。核心步骤包括:明确指标定义、拆解原子指标、定位数据源、确定分组维度、构建中间表。文章提供了指标拆解模板和实际案例(如用户留存率计算),并总结了拆解带来的5大好处:逻辑清晰、易于调试、可复用、降低错误率、便于协作。最后强调"一定义、二拆解、三定位、四分步、五合并"的口诀,适用于数仓开发、BI报表等场景。

石榴姐yyds 268

Java Pet Store

J2EE学习的比较棒的入门案例! 呵呵 已经升级到2.0 全新的web2.0尝试 多加学习啊!

GIS行迹--专注于GIS的发展 234

rk3568 修改开机动画

bootanimation.zip是一个Android设备启动时播放的动画文件,它包含了一系列的图片和描述文件,用于描述动画的播放顺序和持续时间。

weixin_35723192的博客 2730

Java Pet Store 2.0介绍

Java Pet Store 2.0    Java Pet Store 2.0是sun公司根据java蓝本实现的一个简单参考应用.该应用系统用来展示说明如何在Java EE 5平台上开发ajax的web2.0应用.该应用全部代码使用BSD-style许可开源,因此你可以运行它并且可以将其应用于自己的系统中.    Java Pet Store 2.0是构建欲java EE5平台上的ajax we

yq76034150的专栏 4436

RK356x U-Boot研究所(命令篇)3.12 mtd命令的用法

RK356x U-Boot研究所(命令篇)3.12 mtd命令的用法

Systemcall名屋 1689

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Java Pet Store 2.0体验

        Java Pet Store 2.0火热登场,加入了wen2.0元素,构建于java EE5之上,部署简单,性能大大提升,我截了两张图片以飨读者,当然大家可以自己玩玩.       1.首页:2.宠物页面:                感觉起来,确实舒服了很多.........

yq76034150的专栏 5489

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

J2EE宠物商店(Java Pet Store)

J2EE 是Java技术在企业运算上的应用,它包含多种运算标准,如EJB组件架构、JDBC数据库运算、JMS信息传递、Java Servlets/JSP等Web组件程序等,功能强大且内容博大精深。为了让使用者可以有一个设计J2EE架构应用程序的模板,Sun做出一套系统名为“Java宠物商店(Pet Store)”。这个网上宠物店的范例是针对已经熟悉Java程序设计和J2EE概念人员的。

zhoudm2005 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

java pet store 下载_Java" Pet Store Demo 1.3.2问题求助!

我得到这样一段文字说明,我按上边的说法,却在执行cloudscape.bat-start 的时候保错说j2ee路径设置无效,请教改怎样配置安装,我想这个文档中可能有错误,谢谢指正!以下是文字说明:Java" Pet Store Demo 1.3.2 > 安装演示版> Java BluePrints安装演示版这部分内容介绍如何安装 Java Pet Store Demo系统要求:在安装演...

weixin_39600704的博客 257

[转]J2EE Java Pet Store 与 .NET PetShop

转自:http://blog.csdn.net/gaulhor/archive/2007/03/20/1535280.aspx相信大家常常会看到很多统计数字,来自各家厂商、各种传播媒体、各个政治团体,但是数字虽然会说话,却常常各说各话。前阵子出现一篇比较微软.NET和Java J2EE架构执行效率的报告,常常被微软阵营拿来当成打击J2EE的证据。例如以下这段话﹕"而据微软宣称,Visual

剑晖(广州)的专栏 3288

J2EE Java Pet Store 与 .NET PetShop

[转]J2EE Java Pet Store 与 .NET PetShop 分类: 转载收藏 软件开发 2008-03-12 10:01 1695人阅读 评论(2) 收藏 举报 转自:http://blog.csdn.net/gaulhor/archive/2007/03/20/1535280.aspx 相信大家常常会看到很多统计数字,来自各家厂商、各种传播媒体、各个

lionzl的专栏 1318

偶有时间看起了 Java Pet Store

感觉真的不错啊!!!转载一小段:CatalogDAOFactory /* * Copyright 2002 Sun Microsystems, Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modifica

1138

java petshop 源代码_J2EE Java Pet Store 与 .NET PetShop

2008-03-12 10:011695人阅读评论(2)相信大家常常会看到很多统计数字,来自各家厂商、各种传播媒体、各个政治团体,但是数字虽然会说话,却常常各说各话。前阵子出现一篇比较微软.NET和Java J2EE架构执行效率的报告,常常被微软阵营拿来当成打击J2EE的证据。例如以下这段话﹕"而据微软宣称,Visual Studio.Net能支持25种语言,和Java相比具有节省2/3程序代码、...

weixin_39801158的博客 259

Java Pet Store 2.0 应用程序简介

 使用 Ajax 创建用于无缝数据交互的 Web 2.0 web 应用程序是一项复杂的任务,Ajax 是一种包含(但不仅限于)Asynchronous JavaScript 和 XML 的技术。为了帮助您准确理解什么是 Web 2.0,以及 Ajax 如何改善用户体验,Java BluePrints 程序 小组开发了 Java Pet Store 2.0 参考应用程序。通过探索 Pet Sto...

programloverjack的专栏 136

Java Pet Store 开始全面使用 Web 2.0 技术

Java Pet Store 开始全面使用Web 2.0 技术 伴随着Java EE 5 SDK(下载) 的发布,最新的 Pet Store (最初版) 开始全面启用 Web 2.0 技术。 Sean 和 Geertjan 都曾经对此有所介绍。 Alexis 还制作了一个短片向您展示怎样在 NetBeans...

java 209
上一篇: hibernate 大批量插入
下一篇: spring 2.5
kakarot_java
博客等级 码龄19年 0粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值