一种LVC-DE分布式合成环境的远程过程调用实现方法技术

技术编号:35854490 阅读:18 留言:0更新日期:2022-12-07 10:40
本发明专利技术提供了一种LVC

【技术实现步骤摘要】
一种LVC

DE分布式合成环境的远程过程调用实现方法


[0001]本专利技术涉及分布式通信领域,具体而言,涉及一种LVC

DE分布式合成环境的远程过程调用实现方法。

技术介绍

[0002]LVC

DE分布式环境用于将分布在不同区域的、隶属于不同单位的各类真实的SL、虚拟的SV或构造的SC试验资源互联在一起,支持信息共享、资源共用和重用以及系统间的互联互通互操作,并可根据试验任务的要求组合使用各类资源快速构建大规模分布式试验系统。
[0003]随着LVC

DE分布式环境的应用,分布式试验系统大规模、分散控制和动态改变的特点要求各试验参与者之间采用具有动态性和松散耦合特性的灵活通信和交互机制。目前,LVC

DE分布式环境采用对象管理组织SObject Manage Group, OMG的数据分发服务SData Distribution Service, DDS规范,实现了基于发布/订阅SPublish/Subscribe, P/S的多点数据通信。然而,单一的通信方式并不能满足大规模分布式试验的交互需求,即试验过程中试验资源之间不仅需要发布/订阅式的松耦合通信,也需要请求/应答式的紧耦合通信,如:装备管控过程中对于远程试验装备发送操控指令并等待装备返回状态,此时使用发布/订阅的通信方式不能很好地实现请求/应答语义。远程过程调用SRemote Procedure Call, RPC采用客户机/服务器SClient/Server模式实现进程间的同步机制,能够提供请求/应答的通信方式。因此,为了扩展LVC

DE分布式环境的应用领域,需要在现有发布/订阅通信机制的基础上,扩展实现请求/应答通信机制,满足试验领域对多种通信方式的需求,因此我们对此做出改进,提出一种LVC

DE分布式合成环境的远程过程调用实现方法。

技术实现思路

[0004]本专利技术的目的在于:针对目前存在的
技术介绍
提出的问题,为了实现上述专利技术目的,本专利技术提供了以下技术方案:一种LVC

DE分布式合成环境的远程过程调用实现方法,包括以下步骤:S1对象模型方法及参数解析,LVC

DE分布式合成环境的远程方法调用以TENA对象模型中的方法为依据,本专利技术通过解析“${模块名称}.tdl”TENA对象模型描述文件S其示例伪代码获取其中描述远程过程调用的TENA对象模型方法及其参数;S2客户端调用对象实例方法,客户端使用LVC

DE分布式合成环境中间件invokeObjectInstanceMethod函数完成对对象实例方法的调用,以启动远程过程调用;S3服务端对象实例方法回调,在服务端通过DDS主题接收到方法调用通知时,LVC

DE分布式合成环境中间件使用objectInstanceMethodCallback函数向上层应用传递对象实例方法调用,以完成远程过程调用;S4远程过程调用的数据结构,在LVC

DE分布式合成环境实现远程过程调用过程中,客户端和服务端之间使用DDS主题传递方法调用及返回值;S5接口设计,客户端使用调用对象实例方法函数,将一个其想要调用某个对象实
例某个方法的消息推送给LVC

DE分布式合成环境中间件。中间件将远程方法调用信息提供给服务端。
[0005]作为本专利技术优选的技术方案,S1对象模型方法及参数解析,S1

1选择TENA对象模型描述文件,保存该对象模型描述文件路径地址;S1

2按照路径地址打开TENA对象模型描述文件,读取文件全部内容;S1

3按照行对TENA对象模型描述文件每行的结构标识进行判断;S1
‑4‑
1如果结构标识为局部类、类、消息等类型,转至步骤S1

5;S1
‑4‑
2如果结构标识为枚举类型,保存枚举名称和枚举内容,存储在数据结构内,转至步骤S1

3;S1
‑4‑
3如果结构标识为结束符,转至步骤S1

7;S1

5在类/局部类/消息结构处理分支内,对结构内每行内容的类型标识进行判断;S1
‑6‑
1如果内容标识为数据,将数据的类型和名称存储在数据结构内,转至步骤S1

5;S1
‑6‑
2如果内容标识为方法,将方法返回类型、名称、参数输入输出类型、参数数据类型、参数名称、错误值类型和错误值名称存储在数据结构内,转至步骤S1

5;S1
‑6‑
3如果内容标识为结束符,转至步骤S1

3;S1

7按照继承、聚合关系对数据结构重新梳理形成TENA对象模型列表。
[0006]作为本专利技术优选的技术方案,S2客户端调用对象实例方法,包括以下步骤:S2

1输入参数输入对象实例ID、对象实例方法名称和方法输入参数的名称与当前值;S2

2判断对象实例是否存在,存在执行S2
‑3‑
1,不存在执行S2
‑3‑
2;S2
‑3‑
1判断对象实例是否存在调用的方法名称,存在执行S2
‑4‑
1,不存在执行S2
‑4‑
2;S2
‑3‑
2对象实例不存在,抛出异常;S2
‑4‑
1通过DDS主题向对象实例所在的服务端发送方法调用通知,通知内容包含对象实例ID、对象实例方法名称、方法输入参数的名称与当前值和方法调用模式;S2
‑4‑
2对象实例不存在该方法名称,抛出异常;S2

5等待反馈信息,收到反馈信号执行S2
‑6‑
1,超过10s未收到反馈信号执行S2
‑6‑
2;S2
‑6‑
1输出方法输出参数名称与当前值对集合、输出方法返回值、输出异常参数名称与当前值对集合,完成对该实例方法的调用;S2
‑6‑
2方法调用超时,抛出异常。
[0007]作为本专利技术优选的技术方案,S3服务端对象实例方法回调,S3

1LVC

DE分布式合成环境中间件通过DDS主题收到方法调用通知;S3

2解析DDS主题中的方法调用通知内容,得到以下对象实例方法调用信息:对象实例ID、对象实例方法名称、方法输入参数的名称与当前值和方法调用模式;S3

3判断方法调用模式,若是单项模式执行步骤(3
‑4‑
1),若是正常模式执行步骤(3
‑4‑
2);
S3
‑4‑
1调用服务端方法实现接口函数objectInstanceMethod本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种LVC

DE分布式合成环境的远程过程调用实现方法,其特征在于,包括以下步骤:S1对象模型方法及参数解析,LVC

DE分布式合成环境的远程方法调用以TENA对象模型中的方法为依据,本发明通过解析“${模块名称}.tdl”TENA对象模型描述文件S其示例伪代码获取其中描述远程过程调用的TENA对象模型方法及其参数;S2客户端调用对象实例方法,客户端使用LVC

DE分布式合成环境中间件invokeObjectInstanceMethod函数完成对对象实例方法的调用,以启动远程过程调用;S3服务端对象实例方法回调,在服务端通过DDS主题接收到方法调用通知时,LVC

DE分布式合成环境中间件使用objectInstanceMethodCallback函数向上层应用传递对象实例方法调用,以完成远程过程调用;S4远程过程调用的数据结构,在LVC

DE分布式合成环境实现远程过程调用过程中,客户端和服务端之间使用DDS主题传递方法调用及返回值;S5接口设计,客户端使用调用对象实例方法函数,将一个其想要调用某个对象实例某个方法的消息推送给LVC

DE分布式合成环境中间件,中间件将远程方法调用信息提供给服务端。2.根据权利要求1所述的一种LVC

DE分布式合成环境的远程过程调用实现方法,其特征在于,S1对象模型方法及参数解析,S1

1选择TENA对象模型描述文件,保存该对象模型描述文件路径地址;S1

2按照路径地址打开TENA对象模型描述文件,读取文件全部内容;S1

3按照行对TENA对象模型描述文件每行的结构标识进行判断;S1
‑4‑
1如果结构标识为局部类、类、消息等类型,转至步骤S1

5;S1
‑4‑
2如果结构标识为枚举类型,保存枚举名称和枚举内容,存储在数据结构内,转至步骤S1

3;S1
‑4‑
3如果结构标识为结束符,转至步骤S1

7;S1

5在类/局部类/消息结构处理分支内,对结构内每行内容的类型标识进行判断;S1
‑6‑
1如果内容标识为数据,将数据的类型和名称存储在数据结构内,转至步骤S1

5;S1
‑6‑
2如果内容标识为方法,将方法返回类型、名称、参数输入输出类型、参数数据类型、参数名称、错误值类型和错误值名称存储在数据结构内,转至步骤S1

5;S1
‑6‑
3如果内容标识为结束符,转至步骤S1

3;S1

7按照继承、聚合关系对数据结构重新梳理形成TENA对象模型列表。3.根据权利要求1所述的一种LVC

DE分布式合成环境的远程过程调用实现方法,其特征在于,S2客户端调用对象实例方法,包括以下步骤:S2

1输入参数输入对象实例ID、对象实例方法名称和方法输入参数的名称与当前值;S2

2判断对象实例是否存在,存在执行S2
‑3‑
1,不存在执行S2
‑3‑
2;S2
‑3‑
1判断对象实例是否存在调用的方法名称,存在执行S2
‑4‑
1,不存在执行S2
‑4‑
2;S2
‑3‑
2对象实例不存在,抛出异常;S2
‑4‑
1通过DDS主题向对象实例所在的服务端发送方法调用通知,通知内容包含对象实例ID、对象实例方法名称、方法输入参数的名称与当前值和方法调用模式;S2
‑4‑
2对象实例不存在该方法名称,抛出异常;S2

5等待反馈信息,收到反馈信号执行S2
‑6‑
1,超过10s未收到反馈信号执行S2
‑6‑
2;
S2
‑6‑
1输出方法输出参数名称与当前值对集合、输出方法返回值、输出异常参数名称与当前值对集合,完成对该实例方法的调用;S2
‑6‑
2方法调用超时,抛出异常。4.根据权利要求1所...

【专利技术属性】
技术研发人员:吴若无冯润明邰宁许雄韩慧陈翔汪亚曾勇虎汪连栋
申请(专利权)人:中国人民解放军六三八九二部队
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1