简单的网络通讯工具-RMI远程方法调用

Time:2020/03/06 午
备注:项目
RMI结构图
简单的网络通讯工具-RMI远程方法调用

    RMI是一个简易的网络通讯工具,实现本地端方法调用,远端服务器执行及结果返回给本地。

    RMIRMI本地端给出BIO模式和NIO模式两套程序。本地端由RmiProxy和RmiClient构成。使用前做简单配置:

简单的网络通讯工具-RMI远程方法调用

    使用RmiProxy使得使用者在RMI在使用上更贴合传统,通过RmiProxy获取对象调用方法。

简单的网络通讯工具-RMI远程方法调用而在RmiProxy和RmiClient的配合下,完成远端方法执行所需的参数的封装序列化、通讯过程及返回结果一系列操作。

    RMI的远端服务器配合本地端给出了原始BIO模式的RMIServer和基于netty的RMIServer。服务器内置方法池,提供包扫描的方式将RMI方法注入方法池以便服务器处理相关请求调用相应方法。

    RMI在处理RMI方法调用数据序列化采用json方案而非java原生二进制序列化。java原生二进制序列化相比json序列化,序列化后的数据量更大,网络传输过程需要的时间更长。反序列化过程中需要用***和类型进行匹配,相比json直接传入类型信息来说效率低。RMI为了让解析过程更快,将RMI方法执行需要准备数据提取放入方法池,用传过来的数据信息匹配MethodBean,解析json字符串还原参数并进行反射机制调用。通过java自带的方法

简单的网络通讯工具-RMI远程方法调用
解决参数泛型问题
简单的网络通讯工具-RMI远程方法调用
解决方法返回值泛型问题,使得可以涉足于泛型。