`
steeven
  • 浏览: 316675 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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作为缺省协议的理由吧。
分享到:
评论
4 楼 steeven 2009-05-12  
xiaoyu 写道
不基于RMI的话, 如果两个不相同的EJB容器要交互怎么办?


在client端引入JBoss Client目录下面的包吧?
3 楼 xiaoyu 2009-05-12  
不基于RMI的话, 如果两个不相同的EJB容器要交互怎么办?
2 楼 lovejavaei 2009-05-12  
我感觉
Socket (SSL Socket)
  RMI (SSL RMI) //二奶身份

  Bisocket (SSL Bisocket)
  Servlet (SSL Servlet)

应该都是socket

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

虚拟机和虚拟机之间的恶交互无外乎这两种。
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的报文,文本的方式最合适,实现最简单,开发和部署方便。




相关推荐

    J2EE的EJB和RMI相关PPT和PDF文档

    RMI在J2EE环境中常与EJB结合使用,EJB的远程接口和实现实际上就是基于RMI实现的。客户端通过RMI调用EJB,从而实现分布式计算。 **EJB与RMI的协同工作** EJB利用RMI来实现在网络中的透明调用,客户端通过JNDI(Java ...

    ejb,rmi.rar_AppBarDemo_ejb_j2ee ejb

    EJB(Enterprise JavaBeans)和RMI(Remote Method Invocation)是Java开发中两个重要的概念,尤其是在J2EE(Java 2 Platform, Enterprise Edition)环境中。这两个技术都是Java平台为企业级应用提供服务的核心组件...

    《EJB-RMI入门》

    《EJB-RMI入门》是一本专注于讲解Java企业级应用开发技术的书籍,特别是针对RMI(Remote Method Invocation,远程方法调用)的使用。RMI是Java平台中用于构建分布式应用程序的关键技术,它允许Java对象在不同的Java...

    中间件实验报告和源码COM+corba+EJB+RMI

    本实验报告和源码涵盖了多种中间件技术,包括COM(Component Object Model)、EJB(Enterprise JavaBeans)、CORBA(Common Object Request Broker Architecture)以及RMI(Remote Method Invocation),这些都是在...

    EJB rmi-overview PPT

    - RMI基于TCP/IP协议进行通信,确保了数据的可靠传输。远程对象和客户端之间的交互通过Java虚拟机间的TCP连接进行。 9. **安全性与并发**: - RMI支持多线程并发访问,但安全控制需要开发者额外实现,如认证、...

    ejb-rmi-test

    ejb-rmi-test是一个基于Java技术的测试项目,主要涉及企业级Java Bean(EJB)和远程方法调用(RMI)两大核心技术。EJB是Java平台企业版(Java EE)的核心组成部分,用于构建可部署在服务器端的分布式应用程序,而RMI...

    软件构件与中间件技术(包括RMI,COBAR,EJB)

    - **关键技术**: RMI、CORBA和EJB是三种常用的中间件技术,它们各有特色,适用于不同的应用场景。 - **发展趋势**: 随着云计算和微服务架构的兴起,中间件技术也在不断发展,以适应新的技术和业务需求。

    基于ejb的网络考试系统

    《基于EJB的网络考试系统详解》 网络考试系统是一种高效、便捷的在线评估工具,它使得教育者和学生能够随时随地进行考试与学习。本文将深入探讨一个基于EJB(Enterprise JavaBeans)技术构建的网络考试系统,该系统...

    基于ejb的在线订票系统

    【基于EJB的在线订票系统】是一种使用Enterprise JavaBeans(EJB)技术构建的Web应用程序,主要用于实现网络上的票务预订服务。EJB是JavaEE(Java Platform, Enterprise Edition)的一部分,它提供了一种标准的、...

    EJB方面 ejb pdf

    - **Enterprise JavaBean (EJB)**:是分布式组件,基于Java RMI技术,允许跨进程、跨计算机访问,类似于DCOM。EJB必须部署在支持的容器(如WebSphere、WebLogic)中,用户通过容器间接访问EJB组件,而非直接访问。 ...

    基于Struts+EJB购书系统

    【基于Struts+EJB购书系统】是一种经典的Java企业级应用程序架构,主要用于构建高效、可扩展的网上购书平台。这个系统结合了Struts框架的MVC(模型-视图-控制器)设计模式和EJB(Enterprise JavaBeans)组件技术,以...

    LoadRunner在EJB自动化测试中的应用

    综上所述,LoadRunner在EJB自动化测试中的应用提供了两种有效的测试方法:基于RMI-IIOP的测试适用于远程接口的性能评估,而基于HTTP协议的测试则更适合本地接口的性能测试。这两种方法各有侧重,根据具体的测试需求...

    RMI.rar_Java RMI_java.rmi_java.rmi.Remot_remote

    Java RMI的实现基于Java的序列化机制,这意味着远程方法的参数和返回值都必须是可序列化的。Java RMI还提供了“Stub”和“Skeleton”的概念,Stub作为远程对象在客户端的代理,而Skeleton则在服务器端处理远程方法...

    Java中的EJB编程实例代码

    内容有:简单的EJB、无状态SessionBean、有状态SessionBean、BMP位图实例、cmp实例、Message-Driven Bean、JNDI的使用、112各种EJB之间的调用、B-S结构EJB、 C-S结构EJB、UML建模与J2EE开发、RMI and RMI-...

    rmi原理及应用ppt

    RMI基于RPC进一步发展,支持更多面向对象的特性。 - **分布式对象**:指分布在不同计算机上的对象,它们能够相互通信并协作完成任务。RMI提供了一种简单有效的方式来创建和管理分布式对象。 #### 四、RMI的工作原理...

    Java RMI-IIOP 相关源代码.rar

    这个压缩包“Java RMI-IIOP 相关源代码.rar”包含了相关的源代码示例,适合Java EJB(Enterprise JavaBeans)初学者进行学习和实践。 首先,Java RMI允许Java对象在不同的Java虚拟机之间进行远程调用,就像是本地...

    实战EJB 实战EJB 实战EJB

    ### 实战EJB知识点解析 #### 一、企业JavaBeans (EJB) 技术概览 **什么是企业JavaBeans技术?** 企业JavaBeans (EJB) 是Java平台上的服务器端组件模型,专为构建可扩展、可靠且跨平台的企业级应用程序而设计。...

Global site tag (gtag.js) - Google Analytics