您的位置:首页 > 其它

自己实现RMI(一)基本原理

2012-08-28 15:42 357 查看
RMI,即远程过程调用。在java中,利用RMI机制可以调用远程java虚拟机上面的对象,而且调用时跟调用本地对象一模一样。

虽然java类库里面有现成的RMI可以用,但是效率很低,基本上很难满足实际需要。至少,在一些要求快速调用远程对象的情况下,库里面的RMI基本上就是摆设。

参考RMI的基本原理,我自己实现了一套RMI方案。从原理上讲,实现过程是这样的:支持RMI的虚拟机上都运行着一个server线程,线程根据接收到的消息为其他虚拟机提供服务。当A虚拟机上对象a需要调用B虚拟机上的b对象时,对象a将调用参数序列化成字符串或者byte数组,然后通过A发送给虚拟机B,虚拟机B收到请求后反序列化得到参数,然后调用b相应的方法,最后将返回值序列化返回给虚拟机A上的对象a。

这整个过程,有三个关键的技术要点:

1.对象的查找或者索引,以及回调方法。

2.对象的序列化与反序列化。

3.底层socket通信

额外的技术要点:

1.序列号后数据压缩与解压
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: