RMI,EJB,JAVA Socket 网络编程的杂七杂八

java  的应用开发,很多是基于网络B\S架构的。这样就都会用到计算器网络通信的基本服务,如果只是浏览器通过网络与JAVA应用程序进行通信,那只是webkit 与应用服务器进行通信(大多通过HTTP协议)。 但是在JAVA分布式 应用中,各应用系统与要借助于计算机网络 进行互相通信。基本都是通过java socke 进行通信。


在java的开发中不可避免的遇到java网络编程,RMI,EJB的使用,他们的关系是什么呢?

      RMI,远程方法调用(Remote Method Invocation)是Enterprisrmi ejbe JavaBeans的支柱,是建立分布式Java应用程序的方便途径。
      RMI是非常容易使用的,但是它非常的强大。RMI的基于特定接口,RMI构架基于一个重要的原理:定义接口和定义接口的具体实现是分开的。

RMI基本原理

        要实现网络机器间的通讯,首先得来看看计算机系统网络通信的基本原理,在底层层面去看,网络通信需要做的就是将流从一台计算机传输到
    另外一台计算机,基于传输协议和网络IO来实现,其中传输协议比较出名的有http、tcp、udp等等,http、java rmitcp、udp
    都是在基于Socket概念上为某类应用场景而扩展出的传输协议,网络IO,主要有bio、nio、aio三种方式,
    所有的分布式应用通讯都基于这个原理而实现,只是为了应用的易用,各种语言通常都会提供一些更为贴近应用易用的应用层协议。

       由此可知RMI底层采用网络编程的,既RMi基于套接字编程的,RMI是EJB远程调用的基础,仅用RMI技术就java ejb可以实现远程调用,
       使用EJB是为了实现组件,事物,资源池,集群等功能。



  可以把RMI 理解为一种由JAVA基于socket实现的,用于JAVA应用程序在网络间进行通信的协议,它与socket 不同的是,它可以将
  象使用用本地机器上的JAVA类一样来使用远程机器上的应该程序。
  ejb可以基于rmi,不是必须基于rmi

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值