商业J2EE中间件价值何在?

开发 后端
本文作者分析了商业J2EE中间件的价值,作者对商业J2EE中间件的价值表示深深的怀疑,称找不到花钱购买它理由。

当年曾在一家规模较大的国内软件公司干过,发现客户的IT投资可分为四大部分:硬件、数据库、中间件、业务软件,其中业务软件比值***(因为要投入人月实施),剩下硬件、数据库、中间件的比例大约是2:2:1.5。这个比例纯粹是我个人观察,并且这些客户规模都很大,不具有典型性。

硬件不用说,肯定是必要的,而且一分钱一分货,基本上还算明明白白。数据库因为存放着企业核心数据,宝贝万分,多花一点钱似乎也是应该的。而中间件呢,厂商宣称很有必要,很有价值,优点很多,其中有两点是必提的:对J2EE规范的完全支持、强大的可用性和可扩展性。而对规范支持必然会浓黑重彩的写上一笔的就是对EJB的支持。
 
当时公司的产品只需要JSP和Servlet即可,特别是后台业务逻辑,与今天的Hibernate有点相似,基本上就是POJO,根本不需要EJB。我们通常都会明白地告诉客户不会用到EJB,但奇怪的是每一个客户***采购时,要么会买Websphere,要么会买Weblogic,甚至相当一部分客户并不会问我们要建议,直接就选定了。当时Without EJB的旗帜还刚刚举起,国内响应的不多,而我也远谈不上资深,虽然有点小疑惑,但一直认为是自己见识太浅。

后来碰到了一个客户,IT部门技术力量很强,愿意为省钱折腾,选择了Tomcat,先是一台PC Server,后来慢慢的扩展到了5台PC Server做Tomcat的集群。这件事让我***次觉得花几十万块钱去买中间件似乎不值。但有朋友告诉我,要换角度思考,这样太折腾,一个技术水平高的IT人员一年的成本差不多就够买中间件的钱了。

再后来Spring横空出世,渐成潮流,我也慢慢地见识了很多的人和很多的公司,用EJB的不多,少数有用的基本上也都有抱怨,有想换的心思。同时WebSphere、Weblogic也玩得很熟了,发现他们出错的时候一点都不比Tomcat少(尤其是Websphere,连自带jdom、xerces都会出问题,必需要更换),而且出了问题还很难找。印象深刻的一点是出了莫名其妙的问题的话,我们会先去WebSphere的Bug列表中去找,然后再怀疑产品代码。性能上也没有表现出优势,可扩展性和所谓可用性这个一时半会没有结论,我只能说我感觉,感觉Tomcat这样的开源软件也不比他们差,那个5个Tomcat集群的客户的核心业务系统就运行得很好。

这时候我已经很怀疑商业中间件的价值了,和同事们聊天发现大家其实都有这种感觉,当时我们为商业中间件为什么这么成功,以至于客户总是会买它找了一个理由:一个预算不是特别紧张的企业,他的IT人员通常愿意购买价值高昂的的商业软件,因为他从个人角度上找不到要用开源软件的理由,使用开源软件的话,如果将来出现问题,他要承担技术决策失误的责任,但如果是商业软件的话,他将会有一个非常好的说辞,“IBM和Bea的产品都搞不定,别的就更不用说了”。

J2EE中间件厂商开始异口同声推出SOA的新概念,当时我就觉得是不是EJB不足以成为用户购买中间件的理由,厂商们要开始炒作新概念了?我承认我目前对SOA一知半解,但我从06年开始观察,经常也找些相关文章读读,06年过去了,07年也过去了,奥运开完了,09年到了,但我看到依然是“缺乏有说服力的成功案例”云云。

也许我错误地看待了SOA,但我现在对商业中间件的价值表示深深的怀疑,我找不到花钱购买它理由。

 

【编辑推荐】

  1. J2EE事务并发控制策略总结
  2. J2EE项目登录方式的改进设计与实现
  3. J2EE中XML配置文件的读取处理
  4. J2EE常见的四种架构类型
  5. J2EE框架入门 对Spring初学者的学习建议
责任编辑:佚名 来源: JavaEye
相关推荐

2009-06-23 08:06:46

J2EE体系架构J2EE模型J2EE设计模式

2009-06-10 14:10:23

J2EE学习J2EE是什么

2009-06-10 13:37:06

J2EE可伸缩性J2EE灵活性J2EE维护

2009-06-11 17:06:11

J2EE历史Java EE概述

2009-06-23 16:48:26

J2EE常见问题J2EE平台

2009-06-22 17:05:41

Java EEJava企业应用

2009-06-18 16:13:14

J2EE开发

2009-06-22 16:21:02

J2EE线程

2009-06-18 15:54:57

J2EE下使用JNDI

2009-06-22 17:34:40

J2EE架构

2009-06-23 08:12:48

J2EE调用存储过程

2019-01-08 16:26:43

Java EEJ2EEJakarta EE

2009-06-23 16:50:24

2009-06-25 13:22:00

J2EE常用Jar包

2009-06-23 16:52:55

J2EE缩写名词

2009-06-10 13:30:32

J2EE四层模型客户层Web层

2009-06-08 21:34:09

J2EEJ2SEJ2ME

2011-05-16 14:07:58

J2EE

2009-06-11 17:19:47

J2EE设计模式Template

2009-06-19 17:03:44

J2EE学习
点赞
收藏

51CTO技术栈公众号