[发明专利]一种基于长连接的双向调用方法及系统有效
申请号: | 201410438611.4 | 申请日: | 2014-08-29 |
公开(公告)号: | CN105282128B | 公开(公告)日: | 2018-10-16 |
发明(设计)人: | 宋子龙;倪顺;朱红松;于楠;孙利民 | 申请(专利权)人: | 中国科学院信息工程研究所 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;G06F9/54 |
代理公司: | 北京轻创知识产权代理有限公司 11212 | 代理人: | 杨立 |
地址: | 100093 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及一种基于长连接的双向调用方法及系统,其方法包括步骤1:本地端发起一个连接请求到远程端;步骤2:本地端和远程端建立连接;步骤3:对远程端连接对象进行序列化,并加载序列化组件对象;步骤4:本地端执行通信线程;步骤5:调用远程方法;步骤6:远程通信线程结束,活跃节点从远程端转移到本地端;步骤7:本地端恢复获得活跃节点,判断当前通信是否完成,如果是,执行步骤8;否则,执行步骤5;步骤8:判断连接是否还存在于远程端,如果是,执行步骤4;否则,执行步骤9;步骤9:关闭连接,清除无效连接对象。本发明通信双方都可以互相调用对方提供的远程对象服务,不会受局域网的限制。 | ||
搜索关键词: | 一种 基于 连接 双向 调用 方法 系统 | ||
【主权项】:
1.一种基于长连接的双向调用方法,其特征在于,具体包括以下步骤:步骤1:本地端作为连接的发起者,多个远程端作为连接的接收者,本地端分别发起连接请求到多个远程端;步骤2:每个远程端接收一个连接请求,本地端和每个远程端都相应的获得一个进行传输字节流的连接对象,本地端和远程端建立连接;步骤3:本地端与远程端协商确定一个序列化协议,并使用该协议包装字节流连接,从而提供一个对象传输的通道;步骤4:远程端将序列化的连接对象发送到本地端,本地端执行通信线程,通信线程内包含栈,当通信线程执行本地代码,通信线程内栈的栈顶节点成为活跃节点;步骤5:调用远程方法,通信线程执行远程代码,远程端出现远程通信线程,活跃节点转移到远程端,本地端进入暂停状态,调用远程方法采用传引用的方法;步骤6:远程通信线程执行完毕,远程通信线程结束,活跃节点从远程端转移到本地端;步骤7:本地端恢复获得活跃节点,判断当前通信是否完成,如果是,执行步骤8;否则,执行步骤5;步骤8:判断连接是否还存在于远程端,如果是,执行步骤4;否则,执行步骤9;步骤9:关闭连接,清除无效连接对象;所述传引用的方法包括:步骤a:本地端在发起对远程端的远程过程调用时,先在本地端检查方法中的所有参数;步骤b:判断参数中是否包括引用对象,如果是,执行步骤c;否则,执行步骤d;步骤c:本地端将此参数发布为远程对象;步骤d:将此调用封装为请求对象和响应对象,并发送到远程端进行处理;步骤e:远程端接收到请求对象并解析,扫描远程引用参数,并将其中作为引用传输的参数用相应的远程对象代替;远程端继续按照正常的过程执行来自本地端的方法调用;步骤f:远程端完成方法调用之后,搜集结果并判断结果是否为远程对象;如果是,执行步骤g;否则,执行步骤h;步骤g:远程端将此结果发布为远程对象;步骤h:将此结果打包为结果对象,设置好与请求对象对应的编号,发送到本地端。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410438611.4/,转载请声明来源钻瓜专利网。