首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

EJB基于RMI, 真谛还是谎言

2012-11-08 
EJB基于RMI, 真理还是谎言?很早以前就听高手说过EJB基于RMI, 最近也有美国同事说基于RMI的EJB远程调用会有

EJB基于RMI, 真理还是谎言?
很早以前就听高手说过EJB基于RMI, 最近也有美国同事说基于RMI的EJB远程调用会有问题。

but, 看了一些JBoss文档之后,There always a different answer:

首先JBoss Application Server5的EJB是JBoss EJB3实现.
在JBoss EJB3的参考文档里面指出JBoss EJB3是基于JBoss Remoting的
而JBoss Remoting的首页里面就指出, 它是的传输协议支持很多:
  Socket (SSL Socket)
  RMI (SSL RMI) //二奶身份
  HTTP(S)
  Bisocket (SSL Bisocket)
  Servlet (SSL Servlet)

从deploy/ejb3-connectors-jboss-beans.xml来看JBoss的EJB缺省配置:

  <bean name="org.jboss.ejb3.RemotingConnector"    />    </property>  </bean>

这里表明,缺省配置是jboss socket方式,而不是RMI. 在JBoss EJB3的wiki里面有配置EJB3为其他协议的指南。

这里还有个各种协议的性能比较,应该是JBoss Socket作为缺省协议的理由吧。
1 楼 kimmking 2009-05-12   ejb可以基于rmi,不是必须基于rmi

远程调用,说白了都一样,就是序列化,网络传输,反序列化。
不管是com/com+,soap,webservice,rmi,.net remoting.

同种runtime的,可以native的二进制序列化,序列化的效率高。
文本的序列化(xml/json/自定义格式)的方式,可以跨平台和语言,一般基于中间类型。序列化的效率低,数据量也偏大。

网络传输可以使socket/http/或是自定义协议的。
明显socket数据冗余最小,效率最高。rmi其实是socket上的自定义协议。
http明显要走http的报文,文本的方式最合适,实现最简单,开发和部署方便。




2 楼 lovejavaei 2009-05-12   我感觉
Socket (SSL Socket)
  RMI (SSL RMI) //二奶身份

  Bisocket (SSL Bisocket)
  Servlet (SSL Servlet)

应该都是socket

  HTTP(S)
类似于web service,进行文本交互。

虚拟机和虚拟机之间的恶交互无外乎这两种。 3 楼 xiaoyu 2009-05-12   不基于RMI的话, 如果两个不相同的EJB容器要交互怎么办? 4 楼 steeven 2009-05-12   xiaoyu 写道不基于RMI的话, 如果两个不相同的EJB容器要交互怎么办?

在client端引入JBoss Client目录下面的包吧?

热点排行