请教并讨论BMP和CMP的选择和使用问题
UB 2003-04-08 12:09:52 一个BEA的技术人员(行业技术支持),曾经跟我们讨论过,说BEA也"不推荐"用户使用CMP(就是最好不用).
在数据量很大时,CMP(容器管理的EntityBean),在性能上有些问题,这在BEA自己也是承认的,当然,EJB这种技术本身也在发展之中,会不断的改善。
过去,一般会把所有表,都做成CMP,让容器管理,实现对象化,会有很多好处,但是,这种做法,显然是“细粒度”的的处理方法,对应用服务器,对服务器的压力很大,而且,把很多应该是给数据库做的事情让应用服务器作了,这个应用服务器很大压力,(BEA的人说这其实是浪费了数据库的能力,如ORACLE)。(这里,怎样协调(关系型)数据库的应用和EJB的应用是另一个我很想知道的话题。)
现在,公司在尝试用BMP来做,用BMP+DAO+VO(ValueObject),来比较他和CMP的性能差异。具体就是,BMP-->DAO-->DAOimplements-->VO,(中间套用Facade做接口)。这样做实现“粗粒度”,灵活性。用VO做轻量级的数据访问对象。
现在想问,有没有人做过这些比较,性能差异有多少?各位在选择使用BMP和CMP的时候有些什么原则和方法?
还有,想问一下,有没有人对JDO比较熟悉,可以介绍一下?
本人还在学习阶段,很多问题不太清楚,希望各位能详细说明。谢谢。