对于大型公司项目平台选择j2ee的几层认识(二)

简介:

对于大型公司项目平台选择j2ee的几层认识(二)
Posted on 2010-06-01 13:32 HAL9000 阅读(3055) 评论(52) 编辑 收藏 所属分类: 技术


如前面所述的,由于很多人已经被洗过脑,还有其他很多操作上的考虑,大家都会很自觉地配合IBM的营销攻势,而且我们也衷心相信:在IBM等软件和硬件的支持下,我们的一个个系统步入了“高档系统”的行列。把.net平台留给了孩子们玩去吧。

其实,IBM,以及其他一些高端厂商(Oracle, BEA等)做承接的项目,大部分的活计是直接再转包给其他国内的小厂商的,他们自己所需要做的,基本只限于“规划、咨询、建议、项目管理方法论”等一些又高端又阳春白雪的工作。

不过说实话,这些大厂商的总结能力真不是盖的,你听了他们的咨询师的课之后,大部分会感觉自己醍醐灌顶,狠不得把自己的所有的系统都推倒了重来!甚至狠不得把自己的业务方式都来个大变革。不过另一方面,这些高瞻远瞩的规划,一般也会与现实社会有很大的距离,要么是客户不接受,要么是监管不接受,要么是现实不接受。无论如何,听听绝对有好处,就当开阔了思路了。

既然远景做不到,那么近景能做一些就做一些也是好的。首先就要听这些大厂的话,选择SOA, 或是SAAS, 或是别的什么概念来做这些项目, 当然,听IBM他们说,这些项目的都需要J2ee来支持,而最好的J2ee应用中间件,当然是IBM自己的websphere什么的。其实都没所谓.net好还是Java好,无关乎技术。对于厂商来说,这都无非是一件武器,用来对抗微软的武器罢了,因为MS真得太令人害怕了,需要这么多厂商来一起对抗它。

为什么MS令人害怕?因为以下的几个原因。
1. MS是一个程序员的公司,而IBM是一个营销员的公司。MS有实实在在的技术,但是明显在市场头脑方面差人一等,因此总是在战略上慢几拍,但是后发的产品很强大。
2. MS一直不停地研发。相信学MS技术的人都有感觉,就是他的主导技术基本上不到三年就要整个推掉重来一次,比如从ado到linq,再到现在的那个什么Ado.net entity framework的东西。每一代技术都更强大,但是翻新得让人追不上。这种技术创新的能力,是十年不变的java阵营很害怕的。而且下一代的WPF、WCF等平台的高度和技术能力是其他厂商难以达到的。
3. MS有着令人难以置信的软件产品线,从操作系统到游戏,甚至是机器人仿真和开发包!在每一个战线上,他都有产品(可能是原型级的)可以用来对抗全世界厂商。
4. MS正在蚕食下一代程序员。

因此,java联盟必须努力抗击MS, 他们其实对java的低效率心知肚明,但是他们已经选择了这个武器和这个招牌,因此只好做足文章,把数据库、应用服务器全部用java写成——当然可以用。这就够了。

但是效率太低,无论懂不懂技术都能看出来系统慢。那么也没问题的,只要几台P590上线,也就快多了。

技术上也对此准备了解释:是的,j2ee是用于对付大批量用户的应用平台,在少用户的情况下,效率上不明显。但是当用户量上升到海量级别时,这个系统的响应曲线一定是平缓的。而“.net一类”的响应曲线必然是陡峭的。这叫做“吞吐量”。

我们得到了安慰,为我们的预算支出找到了解释。每个人都满意了。至于什么时候我们会用上百万并发的吞吐量?也许永远也不会,不过备着这个能力也好。

一度我也很相信这个含义不明的“吞吐量”指标,实际上的情况如何?有个例子可以参考:公司里有一个系统很关键,用户并不是很多,这个系统由IBM规划,orcale实施,运行在一个oracle cluster上,数据库的存储用的是HP的11000,应用服务器用两台单独的590,全部资源都划为一个分区来跑。在每个月初会有几百人在里面干活,系统要把上千万条数据做转换、抽取和导入(ETL),每到这个时候,系统就会慢得几乎不能干活,登录页都需要十几秒才会响应。听说硬件组的人为了加快效率,都把这个数据库的存储移到最快的硬盘条带上了,还是很慢。每次登录这个系统,我都能感觉到IBM和oracle的庞大重量全部压在我的鼠标上。

这个例子并不是为了证明j2ee很慢。相反,我认为这个系统的慢一定出现在软件的设计上,那种级别的慢法,一定是要有数量级上的性能提升才会有用,java与C++相比,也不过是10倍以内的效率之差,不会慢到二十秒出现登录页,再过二十秒才能登录进去。因此,一定是与软件、数据库的设计很有关系,也就是与开发者的水平有关系,只有那样才会导致几百上千倍的效率区别。

因此,用什么技术效率高什么的,只是一个建立在“完全相等条件下进行比较”这个前提下的一种说法而已,现实中,你没有办法忽略具体设计人员的个人水平造成的影响。就算是有严格的数据证明说什么技术比另一个什么技术快,也不能保证“这个项目”就一定会“吞吐量大”。其实这就是一个营销手法,它在我们遇上巨额费用支出是否合理的问题时,提供自我心理安慰的理由。

既然说到了这个项目,我就用这个项目做例子,继续说我的第二层认识吧。

本文转自jiahuafu博客园博客,原文链接http://www.cnblogs.com/jiahuafu/archive/2010/07/02/1769914.html如需转载请自行联系原作者

jiahuafu

相关文章
|
6月前
|
数据可视化 搜索推荐 BI
深度解析好用项目管理工具的功能优势
在选择项目管理工具时,重点在于全面的功能和高性价比。好工具应具备资源利用图(避免过度分配或闲置资源),团队协作功能(促进沟通与进度追踪),质量管理(如问题跟踪和自定义工作流),项目规划和跟踪(甘特图支持),任务管理(任务分解和依赖关系),以及费用跟踪。Zoho Projects、Microsoft Project、Jira等工具各有价格差异,例如,对于50个用户,Microsoft Project最贵,Zoho Projects最实惠,性价比高,适合中小企业。
79 2
|
自然语言处理 Java Go
项目总监必看:如何利用Git深度统计团队代码贡献?多语言实践教程揭秘!
项目总监必看:如何利用Git深度统计团队代码贡献?多语言实践教程揭秘!
334 0
|
8天前
|
Java 开发工具 Android开发
搭建大型源码阅读环境——使用 OpenGrok
RTFSC 是程序员成长的必修课,营造舒适的环境至关重要。本文介绍了阅读大型源码(如 AOSP)的工具选择,重点推荐了免费开源的 OpenGrok。OpenGrok 提供快速搜索、版本历史查看、语法高亮等功能,适用于特大型项目。文章还详细讲解了 OpenGrok 的安装和配置步骤,帮助读者高效阅读源码。
43 6
|
3月前
|
Java XML Maven
跨越时代的飞跃:Struts 2 升级秘籍——从旧版本无缝迁移到最新版,焕发应用新生!
【8月更文挑战第31天】随着软件技术的发展,Struts 2 框架也在不断更新。本文通过具体案例指导开发者如何从旧版平滑升级到 Struts 2.6.x。首先更新 `pom.xml` 中的依赖版本,并执行 `mvn clean install`。接着检查 `struts.xml` 配置,确保符合新版本要求,调整包扫描器等设置。审查 Action 类及其注解,检查配置文件中的弃用项及插件。更新自定义拦截器实现,并验证日志配置。最后,通过一系列测试确保升级后的系统正常运行。通过这些步骤,可以顺利完成 Struts 2 的版本升级,提升应用的安全性和性能。
178 0
|
6月前
|
前端开发 Java 应用服务中间件
架构篇:Tomcat 高层组件构建一个商业帝国
架构篇:Tomcat 高层组件构建一个商业帝国
331 6
|
存储 缓存 运维
【平台开发】门户网站系统架构设计关键点
【平台开发】门户网站系统架构设计关键点
264 0
|
开发框架 Java 中间件
java程序设计与j2ee中间件技术/软件开发技术(I)-实验一-你好世界
java程序设计与j2ee中间件技术/软件开发技术(I)-实验一-你好世界
191 2
java程序设计与j2ee中间件技术/软件开发技术(I)-实验一-你好世界
|
存储 测试技术 数据库
「机会和方案」TOGAF建模:项目环境图
「机会和方案」TOGAF建模:项目环境图
|
机器学习/深度学习 数据采集 并行计算
脑补出新视角,一个统一的NeRF代码库框架已开源
脑补出新视角,一个统一的NeRF代码库框架已开源
319 0
|
存储 消息中间件 SQL
云原生景观:应用程序定义和开发层解决了什么问题?如何解决的?
云原生景观:应用程序定义和开发层解决了什么问题?如何解决的?
142 0
云原生景观:应用程序定义和开发层解决了什么问题?如何解决的?