发表于: 2017-11-08 23:31:08

1 713


今天完成的事情:

今天完成的事情:

1.分布式:

2.rmi

RMI:远程方法调用(Remote Method Invocation)。能够让在某个java虚拟机上的对象像调用本地对象一样调用另一个java 虚拟机中的对象上的方法。

RMI(即Remote Method Invoke 远程方法调用)。在Java中,只要一个类extendsjava.rmi.Remote接口,即可成为存在于服务器端的远程对象,供客户端访问并提供一定的服务。JavaDoc描述:Remote 接口用于标识其方法可以从非本地虚拟机上调用的接口。任何远程对象都必须直接或间接实现此接口。只有在远程接口(扩展 java.rmi.Remote 的接口)中指定的这些方法才可远程使用。 

注意:extendsRemote接口的类或者其他接口中的方法若是声明抛出了RemoteException异常,则表明该方法可被客户端远程访问调用。 

同时,远程对象必须实现java.rmi.server.UniCastRemoteObject类,这样才能保证客户端访问获得远程对象时,该远程对象将会把自身的一个拷贝以Socket的形式传输给客户端,此时客户端所获得的这个拷贝称为存根,而服务器端本身已存在的远程对象则称之为骨架。其实此时的存根是客户端的一个代理,用于与服务器端的通信,而骨架也可认为是服务器端的一个代理,用于接收客户端的请求之后调用远程方法来响应客户端的请求。 

http://blog.csdn.net/a19881029/article/details/9465663

RMI远程调用步骤:

1,客户对象调用客户端辅助对象上的方法

2,客户端辅助对象打包调用信息(变量,方法名),通过网络发送给服务端辅助对象

3,服务端辅助对象将客户端辅助对象发送来的信息解包,找出真正被调用的方法以及该方法所在对象

4,调用真正服务对象上的真正方法,并将结果返回给服务端辅助对象

5,服务端辅助对象将结果打包,发送给客户端辅助对象

6,客户端辅助对象将返回值解包,返回给客户对象

7,客户对象获得返回值

对于客户对象来说,步骤2-6是完全透明的

demo搞出来的,今天好迷啊

明天计划完成的事情:明天还是搞任务8吧

遇到的问题:对rmi还是不太了解

收获:没收获,上午好不容易搞了个demo,下午废了.今天太迷了,明天调整一下.



返回列表 返回列表
评论

    分享到