论坛首页 Java企业应用论坛

EJB 完全引错了路——论企业应用的核心问题

浏览 87306 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2004-09-11  
jini 写道
我的總結是.......
真正的企業應用 往往不是技術方面的問題 ( 這我和你是有同樣觀點 )
但是在製作符合企業應用的產品的技術考量
我會希望符合標準 ~~


我觉得这句话的意思已经很明确了。jini就是在说,企业应用关心的是业务系统提供的有价值的信息(和你观点一致),但是当考虑用什么技术来实现的时候,他会优先考虑标准。

而实际上我觉得你对jini的回贴,前面在反驳jini挺EJB的几个观点,这当然没有问题,实际上如果换了我,也会这样反驳,不过最后就偏离到批判一个人的态度上去了,这样就偏题了。
0 请登录后投票
   发表时间:2004-09-11  
>>舉一個例子, 你能夠產生一個 portlet 做出畫面嗎?
>>可以對於各種情況 method-level 設定客戶需求的 security role 嗎 ?

这问题解决起来不要太简单。生成portlet,一个以dynamic proxy实现的facade足以把你注册的任何业务对象发布为web service;方法级的安全控制,基础设施加上Spring AOP就搞定了。关键在于,我不仅考量到这些问题了,我还考量到很有可能我不需要它们,那我干吗要为解决所有这些问题的EJB买单?遇到哪个问题我再找哪个solution,这不是更好?正所谓“逢山开路,遇水架桥”。为什么我敢有这样的自信呢?正由于对EJB的了解。EJB解决的所有问题,除了业务对象分布之外,没有哪个是不能用其他替代品轻松解决的呢。

>>但是在製作符合企業應用的產品的技術考量
>>我會希望符合標準 ~~

恩,想法是很好。不过对比EJB 3.0和2.1,对比WebLogic和WebSphere的EJB实现,我真的不太感觉得到,符合标准又有什么好处。
0 请登录后投票
   发表时间:2004-09-12  
这个帖子的题目比较吓人,我先把其中一些语句抽出来,希望不要打错靶
dlee 写道
企业应用的核心从来都不是什么分布式,现在是而且永远都将是对数据更有效的抽取和利用 ---〉J2EE,特别是 EJB 把我们的方向完全引错了

那么这些大厂极力推崇 EJB 居心何在?

其实大多数情况下我们并不需要做分布式应用

我只是说分布式并不是我们最应该关注的问题,因为绝大多数场合下它并不是客户真正关心的问题


1、
企业的核心问题是赚钱,但是企业的最佳利润方式不是一成不变的,并没有“从来都不是”、“现在是而且永远都将是”这种放之四海而皆准的讲法。例如银行的发展,最初的阶段是抢客户,造成“银行多过米铺”,这个时候银行应用的核心问题就是交易量,系统的交易量越大能够容纳越多的用户,分布式往往就是这个核心问题的核心。过了这个阶段后,开始需要体现客户服务的差异性,全省/国联网、电话银行、网上银行、人工服务台纷纷出现,这时交易量依然是核心问题之一。然后银行需要深挖客户的价值,这时候数据的抽取和利用就成为核心问题了。

dlee所谓的“OLAP、数据仓库、数据挖掘”这些领域,出现的时间比EJB还早。难道在真正的企业应用核心问题浮出水面后,sun公司还纠集一帮IT骗子弄个“J2EE”出来,并顺利地把各大企业都骗了?!

很多企业是首先上了OLTP应用(事务性、产生数据)、然后上OLAP的应用(分析性、研究数据),目前两种类型的应用并存。

2、
这个世界上除了很多很多由一台机器运行的系统外,还是存在不少由多台机器合作运行的系统。

分布式也不是仅仅用于提高性能。在企业发展的过程,新系统需要调用老系统的功能,但是从管理、可靠性等方面考虑,新老系统不能部署在同一台机器,这是很常见的情况;或者一个大系统抽出公用模块独立部署运行,其他子系统分别部署运行,这也是常见的。

卖机器当然想多卖,可买机器也不是呆子。

所以分布式是否为我们最应该关注的问题,还是要看你正在做的是什么应用。不要因为你的客户目前不需要“分布式”,就忽视分布式,进而一棒子把J2EE/EJB也打死了。
0 请登录后投票
   发表时间:2004-09-12  
to flyisland:
银行核心业务使用 EJB 的,举出几个实例来。我不了解银行领域。不过在电信领域几乎没有听说过 EJB 的成功案例。CORBA  到是很多。EJB 没有办法做到全网络分布式对象的精确同步,限制了它在电信领域的应用,服务器之间的精确同步在电信领域是非常重要的。
引用
所以分布式是否为我们最应该关注的问题,还是要看你正在做的是什么应用。不要因为你的客户目前不需要“分布式”,就忽视分布式,进而一棒子把J2EE/EJB也打死了。

前半句我完全同意,后半句,好像我还没有这个力量吧?
这个贴子其实本来的目的是想要讨论框架的设计。EJB 把组件模型和远程访问模型绑死在一起,从设计上说是一个糟糕的模型。你现在不跟我谈设计,一定要跟我谈商业,所以还是打偏了。包括 jini 在内其实都打偏了。
过一段时间即使我把 Rod Johnson 一些有趣的观点拿出来希望获得严肃的讨论,估计仍然会象现在一样很多人只跟我谈商业。而我现在关注的是框架较小的侵入性、拦截、横切关注点、真正的的领域对象(以前听 potian、gigix 说了那么多,这次我总要自己亲自了解一下吧?)。因为我确实很忙,翻译这本书还是抽出自己的休息时间,所以我看我还是歇歇吧。
0 请登录后投票
   发表时间:2004-09-12  
就EJB在银行系统的应用,我请教了阎博士.
引用

据我所知,银行的高级系统可以分成几种,一种为data warehouse 基础之上的portal系统,一种为分布式整合integration系统,一种为即时real time系统。其他的系统有没有,当然有,但没人care。

portal 系统提供contents,每一节content称为一个story。由编辑人员,审批人员,翻译人员等等,需要workflow management。portal系统常常伴随着integration系统和real time系统,提供辅助内容。

portal系统常常伴随着preference marketing,譬如某银行的portal提供29种语言的内容,这些内容根据语言之不同,用户profile只不同而改变。向不同的对象推销不同的产品。portal系统常常要整合不同内容提供商提供的内容,譬如十几家内容提供商所提供的内容,需要以不同的方式(url link, dcom, socket, xml, 其他文本文件,etc.)整合到自己的系统中。

这种系统重要的是对内容管理content management的支持,特别是大量内容,不同语言的内容。ejb可以找到应用,但不是关键技术。

integration系统是交易系统transactional system。譬如一个跨国银行把全球分成几个大区,大区之间的交易需要一个全球整合。这个交易系统往往用于商业银行,交易是近实时的near real time。譬如某个银行的企业银行全球整合系统一年处理的交易总额相当于中国2000年的GDP,一万亿美元。

这种系统中重要的技术在MQ, CORBA。过去常用C编写,现在常用Java/RMI, Java/CORBA, Java/JMS。ejb不是关键技术。

real time系统常常用于股票行或者交易所。根据客户群的不同,这种实时系统的交易时间、报价时间要限制在100毫秒、10秒、一分钟、七分钟等等。这种系统过去使用C++和socket,现在使用Java socket + tibco jms 编写,堪称华尔街的顶级java编程。要提供remote push,必须使用socket编程。像TimesTen这种main memory数据库很重要。类似的技术使用在发电站、飞机场管理,现在在网络游戏中也有。你有这个技术和经历,就可以挣到非常好的薪水,但是要得到这个技术和经历,必须在华尔街摸爬滚打数年以上,亲手做出几个这样的系统才有人信。

这里ejb不符合需要。几乎完全排不上用途。

在我看来,stateful session bean可以提供多个服务器之间的session afinity,是有用处的技术。entity bean可以用到非关系数据库中去,将非关系数据对象化,如果所面对的已经是关系数据库,那么使用entity bean可能会弄巧成拙。一个中等的系统可能会有100个sql 语句,entity bean把这些sql语句包装成对象,形成一百个bean,加上helper class,facade class, 几百个class。它们都可能出错,都需要maintain。这就造成financial crisis。值得吗?不如找一种JDO算了。

总而言之,我看不到哪一种系统非要ejb不可。在很多实际系统中ejb是一种点缀,不是关键技术。做的时间长了,甚至技术都不重要,重要的是对业务的了解。技术值多少钱,1万美元可以在印度找一个程序员。业务值多少钱,有的时候可能就值19万元。加在一起,20万元。做技术,这就到头了。
0 请登录后投票
   发表时间:2004-09-12  
那你说potian又怎么回事呢?他EJB也做过,entity bean也用过,公司换了四五家,你说他的利益该在哪边呢?
我们讨论这些问题能扯上公司利益吗?我觉得可疑。
0 请登录后投票
   发表时间:2004-09-12  
potian?他现在的观点是什么呢?不过我感觉他好像现在比较支持这些轻量级的容器。
without EJB 我翻了翻,很喜欢,很多观点都是我想说的。
0 请登录后投票
   发表时间:2004-09-12  
gigix 写道
那你说potian又怎么回事呢?他EJB也做过,entity bean也用过,公司换了四五家,你说他的利益该在哪边呢?
我们讨论这些问题能扯上公司利益吗?我觉得可疑。

你这几句话说得没有水平,和你的见识不匹配.EJB的问题现在绝对是一个政治问题,技术反倒是其次.potian在这里问题上的观点是一种中立的纯技术的观点,他的利益在于你不管是不是使用EJB,他都可以很好的活着,因为他在两个方面都下了赌注,结果只是哪一边赢得的钱更多的问题.我其实也是一个中立者,因为我在两个方面都没有投资,最后的结果我都不会有什么收获.
在我看来支持EJB一边的种种论据都很可以非议,比如说什么国外在EJB上的投资多么多么大,实际上这点投入在那些公司看来根本就不值得去考虑.因为EJB发展的这几年国外关键业务的构成没有太多的变化,企业也没有很多机会把EJB应用在他们关键的业务上面.而说EJB适合金融和电信等等行业的应用,我们看到的证据恰恰是在这些稳定行业中EJB推广的速度惊人的慢,而且受到的怀疑竟然惊人的多.
0 请登录后投票
   发表时间:2004-09-12  
我的观点也是纯技术的,并且我更愿意从纯技术的角度讨论这个问题。
0 请登录后投票
   发表时间:2004-09-12  
没有办法,你一再把靶子藏起来,我们也就只能一再打偏了。问题是你自己不谈设计,而抛出大而笼统的说法,怎么能怪我不谈设计呢。
dlee 写道
企业应用的核心从来都不是什么分布式,现在是而且永远都将是对数据更有效的抽取和利用 ---〉J2EE,特别是 EJB 把我们的方向完全引错了

那么这些大厂极力推崇 EJB 居心何在?

其实大多数情况下我们并不需要做分布式应用

我只是说分布式并不是我们最应该关注的问题,因为绝大多数场合下它并不是客户真正关心的问题


我的回帖主要是想说明,分布式对于很多企业仍然是“最关心”的主题之一。

而且作为框架设计,了解商业也是必要的,正因为商业上需要“分布式组件”,才会有EJB的发展(尽管它存在很多缺陷)。

说到底,这个讨论比较虚,因为靶子忽隐忽现,变幻不定。企业应用的核心问题?J2EE/EJB的设计缺陷?分布式是否重要?Rod Johnson 一些有趣的观点
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics