看到这个标题,不知道内行人是不是要晕倒,但是我这里要特别声明:
本文是针对刚刚入门得新手而做,在学习 EJB过程中会因为RMI得调用而影响EJB以后得学习,感觉没有必要。但是RMI在EJB中又占有很重要得成份。故而夸张得用此标题。
正文:
解惑1:what is RMI?
RMI:指Remote Method Invocation (远程方法调用)。
说到远程方法调用,就应该说一下计算机通信技术。计算机通信技术到目前为止主要有3种:一、Socket 二、RPC 三、RMI
Socket在Java基础中已经学习,但是那只是皮毛而已。Socket得深入学习要对计算机通信底层技术非常熟悉,才会将Socket得代码写的非常好。否则Socket会让你痛不欲生。
RPC和RMI差不多,主要都是屏蔽了底层得具体实现。而者区别主要在于:
RPC是远程过程调用。
RMI是远程方法调用。
解惑2:RMI实现过程。
简言之,RMI机制在实现过程中,会产生2个对象,分别是:Stub和Skeleton。
Stub在客户端,Skeleton在服务器端。Stub做为远程对象在客户端得代理,客户端在调用远程对象得过程,其实是调用Stub对象中相应得方法。随后Stub调用远程对象中相应得方法。
Skeleton会根据Stub传过来得信息进行解码,然后调用对应得方法。在方法调用完成后,会返回给Stub一个处理结果。Stub在将处理结果返回给调用他的客户端。
这样RMI就完成了基本得调用循环。