浏览 6522 次
锁定老帖子 主题:EJB基于RMI, 真理还是谎言?
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-05-11
最后修改:2009-05-11
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作为缺省协议的理由吧。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-05-12
ejb可以基于rmi,不是必须基于rmi
远程调用,说白了都一样,就是序列化,网络传输,反序列化。 不管是com/com+,soap,webservice,rmi,.net remoting. 同种runtime的,可以native的二进制序列化,序列化的效率高。 文本的序列化(xml/json/自定义格式)的方式,可以跨平台和语言,一般基于中间类型。序列化的效率低,数据量也偏大。 网络传输可以使socket/http/或是自定义协议的。 明显socket数据冗余最小,效率最高。rmi其实是socket上的自定义协议。 http明显要走http的报文,文本的方式最合适,实现最简单,开发和部署方便。 |
|
返回顶楼 | |
发表时间:2009-05-12
我感觉
Socket (SSL Socket) RMI (SSL RMI) //二奶身份 Bisocket (SSL Bisocket) Servlet (SSL Servlet) 应该都是socket HTTP(S) 类似于web service,进行文本交互。 虚拟机和虚拟机之间的恶交互无外乎这两种。 |
|
返回顶楼 | |
发表时间:2009-05-12
不基于RMI的话, 如果两个不相同的EJB容器要交互怎么办?
|
|
返回顶楼 | |
发表时间:2009-05-12
xiaoyu 写道 不基于RMI的话, 如果两个不相同的EJB容器要交互怎么办?
在client端引入JBoss Client目录下面的包吧? |
|
返回顶楼 | |