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"
    class="org.jboss.remoting.transport.Connector">
    <property name="invokerLocator">
      <value-factory bean="ServiceBindingManager"
        method="getStringBinding">
        <parameter>
          jboss.remoting:type=Connector,name=DefaultEjb3Connector,handler=ejb3
        </parameter>
        <parameter>
          <null />
        </parameter>
        <parameter>socket://${jboss.bind.address}:${port}</parameter>
        <parameter>
          <null />
        </parameter>
        <parameter>3873</parameter>
      </value-factory>
    </property>
    <property name="serverConfiguration">
      <inject bean="ServerConfiguration" />
    </property>
  </bean>

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

这里还有个 各种协议的性能比较,应该是JBoss Socket作为缺省协议的理由吧。
EJB基于RMI, 真理还是谎言?_第1张图片

你可能感兴趣的:(jboss,socket,servlet,ejb,网络协议)