RMI只是一种技术而已。
EJB是一个框架。EJB可以用到CORBA,RMI等一系列技术。

解决方案 »

  1.   

    EJB就是个远程接口调用,比较单一,属于较低层的技术,TCP/IP之上就是RMI,且RMI在
    服务器端的调度和优化不如EJB,事务控制要你自己做,没有状态持续。简单的应用可以
    用RMI,比较简单。EJB是服务器端的逻辑事务组件,有事务控制、调度、优化、状态等
    高级属性,都由EJB服务器统一控制,不用你编程去管理,属于企业计算范围,属于真正
    的服务器组件技术,客户端的调用接口用的是RMI。
      

  2.   

    RMI 不能提供事务处理,所以 EJB 使用 RMI/IIOP(在 IIOP 之上的 RMI)来解决这个问题。当然,执行的效率比纯 RMI 要差些了。所以 BEA 自己修改了 Sun 的 RMI 实现,推出了 T3 协议。由于 T3 不符合 J2EE 标准,所以 Sun 好像取消了 BEA 的 J2EE 资格。但是 BEA 升级到 RMI/IIOP(JDK1.3 内嵌)就没问题了。
      

  3.   

    rmi是种协议,J2EE用rmi over iiop,iiop是corba用的协议,是OMG定义的,是标准,非常健壮,用rmi/iiop就可以使ejb to corba ,或者corba to ejb,iiop并且被很多firewall支持,rmi/iiop,rmi与iiop的关系相当与IP over ATM中,IP与ATM的关系。ATM是低层的,IP似乎高层的。
      

  4.   

    ejb有个容器管理,rmi可没有,
    ejb的基础是rmi和iiop,
    可不能将他们比较