论坛首页 Java企业应用论坛

EJB 工作原理

浏览 64014 次
该帖已经被评为精华帖
作者 正文
   发表时间:2004-03-25  
xanada写的非常详细,在看<<服务器组件模式——EJB描述的组件基础设施 >>,不过这书的翻译有点糟糕,读着就想起robbin以前写过一个帖子,于是想翻出来看看,一下就看到你的这个帖子了,呵呵
谢谢~~
0 请登录后投票
   发表时间:2004-03-30  
愤怒的鹰 写道

我觉得这位同志问的比较好,但我还想往深处追究一下:
     EJB specification说它是为了实现企业间分布式事务和计算的良好平台而产生的。我对这里的“企业分布式计算和分布式事务”不太了解,哪些企业间的应用属于“分布式事务,分布式计算”,这在国外的具体表现是那些行业?
那EJB产生之前用的是啥方法解决的它的“分布式事务,分布式计算”,为什么EJB能取而代之它们?
      用一句话说就是“为什么当前的业务需要用到EJB而不是别的?”
          稳定性,高性能,我们该不该用它???



我也有同样的问题。
0 请登录后投票
   发表时间:2004-03-30  
EJB出现之前一般是C++开发的中间件,例如IBM的CICS,BEA的Tuexdo,有很多基于Corba的中间件的。
0 请登录后投票
   发表时间:2005-02-21  
EJB应该说从CORBA那里汲取了很多的营养,是踩着CORBA的肩膀上的。而且RMI是支持和IIOP协作的。要追寻EJB的起源,最好看看CORBA规范。
一味的批评EJB何一味支持EJB都是不好的。但是如果用过CORBA开发企业系统,就知道用EJB开发企业系统不算是痛苦了。
0 请登录后投票
   发表时间:2005-03-08  
好不容易把这个老帖子翻出来。
最近在看关于CORBA的资料,看了RMI的实现方式,基本上是以CORBA的规范为标准的,只是在实现上用了java做为语言工具。
有这么个说法,RMI和CORBA有融合的趋势。我想,应该是这么说吧:OMG利用CORBA提出了分布式应用的标准,RMI是利用了这种规范的具体实现手段。
CORBA为分布式开发提供了标准规范与可以参考的模式,它的贡献已经显而易见了。
研究不深,望老鸟们给于斧正。
0 请登录后投票
   发表时间:2005-03-29  
愤怒的鹰 写道
庄表伟 写道
了不起的工作!
不辞辛劳,详尽明白。

一定会好好学习的!

另外,有没有可能分析一下,这样的工作方式的“所以然”。或者说“不得不然”。再或者有没有“其他的实现方式”。


我觉得这位同志问的比较好,但我还想往深处追究一下:
     EJB specification说它是为了实现企业间分布式事务和计算的良好平台而产生的。我对这里的“企业分布式计算和分布式事务”不太了解,哪些企业间的应用属于“分布式事务,分布式计算”,这在国外的具体表现是那些行业?
那EJB产生之前用的是啥方法解决的它的“分布式事务,分布式计算”,为什么EJB能取而代之它们?
      用一句话说就是“为什么当前的业务需要用到EJB而不是别的?”
          稳定性,高性能,我们该不该用它???


EJB的出现有一个大的背景,就算软件开发的模块化。
理想的状态是,开发出一个符合商业需求的模块,然后就可以被任何一家企业买来进行应用。
而为了提高开发速度,提出了容器管理的概念。即关于分布式的问题,事务的问题,全部交由容器管理,而软件供应商只要关心商业逻辑。
以前的解决方案,不是不能支持。但是基本需要软件开发人员来做这些工作,而EJB的出现,使得开发人员无需太多考虑和商业逻辑无关的东西。
0 请登录后投票
   发表时间:2005-07-08  
楼主写的东西真的不错,对于ejb这几个接口中的关系我一直都很迷惑,也猜到了大体应该是这样,看是还是很模糊的,看了楼主的帖子,很多地方清晰了很多,不过搂住标志方法的方式的确让人感觉很郁闷^_^,如果说这个可以算是ejb的调用框架,那么真正的EnterpriseBean也只是其中为了实现具体功能所调用的一个对象了,虽然它被容器所管理着,相对要有些让人不解的地方。我看你这里对每个方法的调用不是使用内省,而是使用了条件判断的方式,可能这是是固定的容器级方法,而对调用商务方法;应该会使用内省吧。
最后如果在对ejb有所了解就要知道container中的内容了,虽然搂住只简单的写了一句container.preInvoke(this, 0, _EJS_s); 我想容器对bean对象的管理才是ejb的精髓部分吧,还有楼主是怎么看到的这些源码,自己反编译而成的,还是wsad就会直接生成相应的,java文件,不过搂住会去看那些让很乱的stub,skeleton也很不容易了,再次感谢搂住的帖子,不错。
0 请登录后投票
   发表时间:2005-08-11  
可是这个例子竟然是if 判断.可能只是为了好理解吧.
0 请登录后投票
   发表时间:2006-02-14  
bbbb 写道
可是这个例子竟然是if 判断.可能只是为了好理解吧.


WSAD自己生成的skeleton文件就是使用了if判断和switch语句,呵呵
switch (method.hashCode();); {
                case -1550521068: 
                    if (method.equals("_get_EJBHome");); {
                        return _get_EJBHome(in, reply);;
                    }
                case -1415980893: 
                    if (method.equals("updateCancel");); {
                        return updateCancel(in, reply);;
                    }
                case -1335458389: 
                    if (method.equals("delete");); {
                        return delete(in, reply);;
                    }
......
}
0 请登录后投票
   发表时间:2006-02-16  
以前看过几本EJB的书,也只是了解了大概,工作中我尚未用过EJB,所以理解就很浅薄了!今天看了楼主关于EJB的分析,觉得太好了!以前想不明白的问题,在这里很清楚的被楼主展现了!感谢楼主!
0 请登录后投票
论坛首页 Java企业应用版

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