[发明专利]一种基于OpenDDS的远程方法调用实现方法有效
申请号: | 201910625524.2 | 申请日: | 2019-07-11 |
公开(公告)号: | CN110321236B | 公开(公告)日: | 2022-10-25 |
发明(设计)人: | 杨京礼;张天瀛;姜守达 | 申请(专利权)人: | 哈尔滨工业大学 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;H04L67/133 |
代理公司: | 哈尔滨市松花江专利商标事务所 23109 | 代理人: | 时起磊 |
地址: | 150001 黑龙*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 opendds 远程 方法 调用 实现 | ||
1.一种基于OpenDDS的远程方法调用实现方法,其特征在于,具体包括以下步骤:
步骤一、针对需调用的远程方法,根据IDL接口描述语言进行服务的定义与表示,得到服务的定义与表示文件;
步骤二、进行服务的映射:将服务定义与表示文件中的内容转换为OpenDDS通信过程中连接客户端和服务器的主题信息;
步骤三、分别在客户端和服务器的头文件和源文件中定义实现远程方法调用的逻辑:
(1)客户端程序通过发布者文件调用客户端服务管理器类文件,客户端服务管理器类文件再调用客户端服务类文件完成远程方法的发送和应答信息的接收;
(2)服务器程序通过订阅者文件调用服务端服务管理器类文件,服务端服务管理器类文件再调用服务端服务类文件完成远程方法的接收和应答信息的发送;
步骤四、将客户端和服务器文件进行MPC工程化处理生成VC项目工程文件,然后该将VC项目工程文件经过VC编译器生成客户端和服务器的可执行文件;
步骤五、分别运行客户端和服务器的可执行文件,即能够实现客户端调用远程方法并返回应答信息的过程;
步骤一中所述服务的定义与表示文件中包括该远程方法的模块和接口的定义,接口中包含行为函数、各自的输入输出参数以及返回值的类型;步骤二中所述进行服务的映射具体包括以下过程:
步骤二一、遵循DDS-RPC规范内的服务映射文件内容,将步骤一中的服务的定义与表示文件映射为包括请求和应答服务接口的idl文件,该文件内包含主题名映射和数据类型映射;
步骤二二、遵循DDS-RPC规范内的服务映射文件内容,生成包括请求和应答消息头的idl文件;
步骤三中所述客户端程序包括DDS-RPC客户端服务管理器类、客户端服务类;
DDS-RPC客户端服务管理器类:通过远程服务调用接口输入远程服务的相关参数,并向用户输出服务从远程返回的相关参数;
客户端服务类:通过DDS-RPC客户端服务管理器的管理,完成服务参数的发送和接收过程;
步骤三中所述服务器程序包括DDS-RPC服务器端服务管理器类、服务器端服务类;
DDS-RPC服务器端服务管理器类:通过远程服务实现接口初始化服务并向本地通知远程服务请求,接收返回的服务应答参数;
服务器端服务类:通过DDS-RPC服务端服务管理器的管理,完成服务参数的发送和接收过程;
所述步骤五具体包括以下过程:
步骤五一、初始化服务:服务器程序初始化DDS-RPC服务器模块,包括初始化服务器名称、服务器ID、对象实例的服务应答ID、服务方法名称列;DDS-RPC服务器模块查询中间件系统管理服务的域ID,创建域参与者、服务的请求与应答主题、DDS实体信息,并进入等待服务请求信息状态;
步骤五二、调用远程服务:客户端程序向DDS-RPC客户端模块传递需调用远程服务的服务器名称、服务器ID、对象实例的服务请求ID、对象实例的服务方法名称、对象实例的服务请求参数;DDS-RPC客户端模块查询中间件系统管理服务的域ID,创建域参与者、服务的请求与应答主题、DDS实体信息;DDS-RPC客户端模块查询发布者和订阅者的发现匹配情况,若服务的发现匹配完成,则DDS-RPC客户端模块的数据写入者发送请求主题实例数据,并进入等待需调用服务应答信息状态;
步骤五三、通知需调用远程服务请求:DDS-RPC服务器模块查询发布者和订阅者的发现匹配情况,若服务的发现匹配完成,则DDS-RPC服务器模块的数据读取者接收请求主题实例数据;DDS-RPC服务器模块通知服务器程序接收需调用远程服务请求,使得服务请求在本地实现,并向服务器程序返回请求成功的信息;
步骤五四、返回需调用服务应答信息:服务器程序返回给DDS-RPC服务器模块需调用服务应答信息,并将DDS-RPC服务器模块服务请求信息中的服务请求ID加入服务应答信息中,实现请求与应答关联;DDS-RPC服务器模块的数据写入者发送应答主题实例数据;
步骤五五、返回需调用服务应答信息:DDS-RPC客户端模块的数据读取者监听器监听来自相同主题的需调用服务应答信息,若监听到应答信息,则DDS-RPC客户端模块应答主题的数据读取者接收应答主题实例数据;DDS-RPC客户端模块的应答主题的数据读取者读取到应答主题实例数据中的服务请求ID与请求主题实例数据中的服务请求ID作对比,满足一致性则完成请求与应答关联机制;DDS-RPC客户端模块向客户端程序返回需调用服务应答信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工业大学,未经哈尔滨工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910625524.2/1.html,转载请声明来源钻瓜专利网。