粗粒度是可以从local Bean来解决的,也是ejb2.x出来的一个原因,即解决了CMP粗粒度问题又可以解决网络传输的问题,当然也又些负面的缺点了,那就是这个local Bean不能被其他应用所共享,就是分布性大打折扣。
2pc中的嵌套事务在EJB中真正支持是没有的,老实说。不过嵌套事务不是f非用不可,即是有这样的需求上下文,在sessionBean中使用扁平事务模拟也可以解决现实中的需要,怎么说容易明白点呢,就是用多个扁平事务来层层包含来模拟嵌套,A事务中的B也用扁平事务,然后B中如果又C的话继续使用扁平事务,这样的话可以达到我们需要。还有了嵌套事务在应用中出现不多。

在此我基本上把我对EJB的一些了解跟其他道友一起共享了,当然我会有自己的局限,希望其它道友也能一起分享各自的经验。

EJB3.x出来带来那些新的变化,我们拭目以待。

从我的实际经验来看,的确大多数应用不需要ejb,(为了多赚钱另当别论). 我觉得在做项目的时候可以不考虑所谓的将来的扩展性,特别是那些很虚所谓的远景规划,真的在有需求的时候可以在通过各种手段如refactor,有效地来扩展改进系统,象IT这种尚处在急剧变化的技术,想要达到所谓的一步是非常难或者说是不可能的事。当你真的需要扩展事,好得多的新技术出现了如ejb3.0就表现得比以前的版本成熟的多,你那时候再用也是不迟啊。我知道有个公司在ejb在前几年的业务量很小的情况下,在it人员的怂恿下不顾当时业务量很小的现实,使用了ejb和多台当时先进的sun服务器,结果呢现在这个公司的业务量也仅仅是一台好点的dell服务器就可以担当了。总之,根据当前的需求来决定系统不失为是一种稳妥经济的方法。
2718281828说的也是一种agile的开发理念:YAGNI.
每次谈到这个问题,大家包括我都很激动,只要说出真实的感受就可以,EJB问题很多,因为大家对其期望很多,EJB在改进改良,同时又兼顾以前版本,这些都是标准的力量。

好像大家讨论有些跑题,实际上,确实项目规模对于是否使用EJB比较关键,这比以前盲目讨论“我们是否需要EJB”要进步多,因为使用任何技术都是有场景和前提的。

对于EJB,我感觉只有具有一定的Web开发经验以及掌握设计模式后才可以能够驾驭它,它是一个良种烈马,当然驯服它正成为趋势。

EJB对于普通程序员过分高了,现在有Spring这样的台阶,普通Web程序员可通过学习使用Spring,逐步理解一个复杂系统需要的中间件技术,到时,再使用EJB,会发现有一个自然顺理成章的过渡。

当然理解了EJB,就发现Spring很简单。至少我是这样,我曾经花一个上午看了其原文说明,再翻阅源码,基本对其使用有了了解,并且帮助别人整合了EJB对Spring的调用。

于我而言,使用SessionBean可以,但实体Bean是不会使用的.
知识门槛太高,部署麻烦,而且很可能跟container有关.
偶还是很喜欢XP中的:
简单设计-->频繁重构.
前面那位先生说80%的项目不需要分布式,我只想问一句话,你那个80%是怎么来的?
  "我们理性的使用ejb,还说80%的系统是不需要分布式的,然后我又迷惑了,我们开发的系统到底在这80%里面呢,还是在另外20%里面"
   我个人认为,从控制成本的角度上讲,如果不用EJB做分布,也能完成软件功能,那80%的范围是很有道理的,有多少个系统需要分布了或集群了,再说集群也是可以模糊的啊(看在你在哪一层模糊了),这个道理就象到底有一个人需不需要住100平方的房子一样,那要化很多前装修和建造,然而100平方的房子还是越造越多!其实50个平方就足够了
>有多少个系统需要分布了或集群了
软件关心的是发展性,就象你买股票是看中它的未来增长性。

你的软件现在不需要集群,不代表它将来不需要,只管现在是不负责任的,现在我们很多公司做项目是这样,畸形反而成为了理由了。

不关心软件质量,就不必用J2EE,学习模式,Delphi除了这些问题不是很好吗?

非常感谢bang老师的回复.
但是我只是想补充一点"为什么,6岁的小孩子要给他买15岁的衣服,让他先预备者穿了?"
发展性一样通需求一样难一预料?发展性到底是技术的发展还是需求的发展了?如果是需求的发展性,那么明知道没有"银弹",其不是自说自话吗?
如果是技术的发展性由有那几家公司可以预料了!就想预测未来一样困难,
_____________
建议先学占卜,再学JAVA
说一下个人的看法。
技术的优劣其实是很清晰的,ejb和spring各有各个好处,也各有缺限,比如ejb的侵入式编程模型,spring的无法做服务集群。

主导一个软件设计的是软件需求的本身。就像手机一样,有人觉得功能强大如p910才好,有人觉得三星d508就不错。软件也一样,先不要问ejb或者spring能提供你什么,而是要明白目前这个项目的需求需要什么。在without ejb中也详细提到了spring的限制以及在什么时候要使用ejb,作者的口气并没有论坛里的那些人那么嚣张。当spring就适合的时候,真的没有必要用ejb,但如果你的项目本身很大要很好的伸缩性健壮性的时候,ejb则是不二选择。

对于banq不断地提到说用ejb开发项目也很快的时候,我想提一点,你在这个行业这么久而且有很好的框架支持,甚至明白很多很多的设计与实现上的best practice,所以你能做得很快。然而对于一个入门级甚至一两年经验的java程序员来说,开发一个项目,使用ejb成功的机会真的很小。很多写了几年java程序的人还只是jsp+jdbc。

记得better,faster,lighter java的作者说过,如果开发一些简单的应用,delphi,vb是最好的选择,而非java.就像你8个小时开发的那个东东,我用delphi也用不了8个小时。只是因为简单。只是因为熟练。

技术无优劣,需求最重要。

有个问题,什么我每次发现都要重新登陆?
EJB支持的是分部式计算还是分步式计算,我有点糊涂,请指点下。
花了半个小时终于看完了。菜鸟个人观点:
EJB肯定有他的优点而且很好很强大。
缺点肯定也有。
至于80% 20%什么的
现实中我猜想:真正领会到EJB的人比较少,所以…………
你可以问我,真正领会JAVA 。net ??
如果对于正常来说:一个人(不是指你也不是我)普普通通的人花同样的时间来学习EJB和JAVA 或.net
EJB学的会相对笨重,你也不要说你就喜欢研究EJB,我就喜欢研究JAVA
如果你这样说那以上就当我白说。
顺便在说二句:
我不是学习计算机专业的。从开始接触JAVA和EJB从0开始学起到现在,肯定很烂。可是学习的程度还是JAVA大于EJB(程度是会的多少)或者说我什么都不会!
每次来这个论坛不单单是学习到知识,感觉更多的是哲理就是脑子里面有点像叛逆-以前从没有过的冲动。
现实中我猜想:真正领会到EJB的人比较少,所以…………
你可以问我,真正领会JAVA 。net ??
如果对于正常来说:一个人(不是指你也不是我)普普通通的人花同样的时间来学习EJB和JAVA 或.net
EJB学的会相对笨重,你也不要说你就喜欢研究EJB,我就喜欢研究JAVA
如果你这样说那以上就当我白说。

支持Jdoin