本发明属于分布式通信技术领域,尤其涉及一种基于反射内存卡的OpenDDS分布式通信方法。

背景技术:

随着分布式系统复杂程度的不断增加和研发规模的迅速扩大,系统集成的难度和风险都在大幅提高。提供实时系统数据分发服务的OpenDDS是用于分发实时应用程序的网络中间件,它简化了分布式应用程序的开发、部署和维护,其以数据为中心的发布订阅模式极大地降低了在网络上发送数据所需的时间消耗,为大容量传输网络提供了针对时间关键数据快速且可预见的分发。此外,OpenDDS规范还定义了大量的QoS策略,使得系统可以很好地配置和利用系统资源,协调可预测性和执行效率之间的平衡,以支持复杂多变的数据流需求。

OpenDDS使用规范的IDL接口初始化和控制服务,是建立在CORBA上的应用框架,其中的信息传输分为远程调用和数据传输两部分,远程调用是分布式通信的主要技术,在分布式通信中起到重要作用,默认情况下传输介质为网卡,基于UDP的DIOP协议无需连接,通信效率高。

技术实现要素:

为了降低网络间通讯的时延,屏蔽子网内部频繁通讯对整个网络中其他设备的干扰,本发明提出了一种基于反射内存卡的OpenDDS分布式通信方法。

本发明所采用的技术方案是:

一种基于反射内存卡的OpenDDS分布式通信方法,包括:

S0:在分布式通信计算机中安装反射内存卡,设置每个硬件节点号,并设定相应数据传输地址;

S1:在DIOP协议工程中加载反射内存卡驱动,在DIOP接收器中创建监控反射内存卡函数,通过判断指定地址写入标志是否置位,判断监控数据是否已经写入反射内存,监控到有数据写入时,则进入步骤S2;

S2:将写入标志清除,通过socket向本机地址发送1字节数据触发反应器,所述反应器监视到事先注册在其中的socket有数据到来,进而能够回调事先注册在所述反应器中的事件处理函数接收数据;

S3:在DIOP传输器接收函数中从所述反射内存卡的指定地址中读出数据,并将其读取标志置位;

S4:在DIOP传输器写入函数中判断指定地址读取标志是否置位,如果置位,则表示已读,进入步骤S5;

S5:在所述DIOP传输器写入函数中向指定地址写入数据,并将读取标志清除,将写入标志置位;

S6:重新编译DIOP工程。

较佳的,通过所述DIOP传输器接收函数和所述DIOP传输器写入函数获得相关数据和通信信息,将不同通道的数据映射到所述反射内存卡的同一片地址上。

较佳的,通过使用数据读写标识符控制所述反射内存卡中数据的读写顺序,实现不同进程数据的时序同步。

较佳的,所述步骤S6中,在OpenDDS中配置和加载改进的DIOP协议,其中包括:将DIOP工程加入到OpenDDS应用链接库中,通过服务配置器动态加载DIOP协议:在应用路径下创建配置文件,输入动态加载命令,在DCPS服务器端声明DIOP端点,在命令行输入相关参数即可运行程序。

本发明的有益效果是:

以数据为中心的OpenDDS拥有较高的通信效率,同时结合QoS策略控制服务行为,增加了通信的灵活性;

反射内存卡允许系统中所有节点同时读取共享的内存数据,无需通信协议,减少了网络中不必要的数据,提高了数据的传输效率,是一种非常适合实时分布式网络应用的底层硬件;

采用较为方便的修改DIOP协议,使得远程调用数据通过反射内存卡传输,同样实现了高效的通信;

将反射内存卡和发布/订阅模式结合,提供了一种高带宽、低延时的网络通信解决方案,更好地满足分布式系统实时性、可靠性的通信要求。

当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。

附图说明

图1为本发明在CORBA远程调用中的通信示意图;

图2为CORBA远程调用基于DIOP的通信流程图;

图3为本发明基于反射内存卡的OpenDDS分布式通信方法的总体结构图;

图4为本发明使用反射内存卡替换UDP的过程示意图;

图5为本发明使用标志位完成进程同步过程示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。

本发明提出了一种基于反射内存卡的OpenDDS分布式通信方法,在OpenDDS已支持的DIOP协议中快速实现数据重定向至反射内存卡。依据自适配通信环境中反应器监控硬件数据到来并完成通知的机理,以及反射内存卡相关API函数实现相应功能,将本通过DIOP协议完成远程调用的通信使用反射内存卡实现,完成了OpenDDS中基于DIOP协议下使用反射内存卡传输数据。

本发明的技术方案是首先研究OpenDDS架构和使用方法,从中研究OpenDDS的通信原理,其中包括分布式系统CORBA中的远程对象通信和数据传输部分,CORBA中对象请求代理之间的远程调用结合UDP生成DIOP协议,如图1和图2所示;再通过研究自适配通信环境中反应器的事件监控和分离机制,了解触发方法;最后使用反射内存卡替换原有的DIOP中的数据传输,并在反应器的架构下进行相应的数据监控,实现基于反射内存卡的OpenDDS通信方法,如图3所示。

本发明提出的一种基于反射内存卡的OpenDDS分布式通信方法,包括:

S0:在分布式通信计算机中安装反射内存卡,设置每个硬件节点号,并设定相应数据传输地址。

S1:在DIOP协议工程中加载反射内存卡驱动,在DIOP接收器中创建监控反射内存卡函数,通过判断指定地址写入标志是否置位,判断监控数据是否已经写入反射内存,监控到有数据写入时,则进入步骤S2。

步骤S1中,反射内存卡函数位置既要在数据接收端用于监控网卡数据的socket已经建立并完成监听端口绑定之后,又要在数据发送端给接收端发送第一帧数据之前,发送端还未向对方发送任何数据时创建该线程,以确保接收端能及时准确地监控到发送端写入反射内存卡的所有数据。

S2:如图4所示,将写入标志清除,通过socket向本机地址发送1字节数据触发反应器,反应器监视到事先注册在其中的socket有数据到来,进而能够回调事先注册在反应器中的事件处理函数接收数据。

S3:如图5所示,在DIOP传输器接收函数中从反射内存卡的指定地址中读出数据,并将其读取标志置位。

S4:如图5所示,在DIOP传输器写入函数中判断指定地址读取标志是否置位,如果置位,则表示已读,进入步骤S5。

S5:如图5所示,在DIOP传输器写入函数中向指定地址写入数据,并将读取标志清除,将写入标志置位。

步骤S3、步骤S4和步骤S5中,通过DIOP传输器接收函数和DIOP传输器写入函数获得相关数据和通信信息,将不同通道的数据映射到反射内存卡的同一片地址上。

步骤S3、步骤S4和步骤S5中,通过使用数据读写标识符控制反射内存卡中数据的读写顺序,实现不同进程数据的时序同步。

S6:重新编译DIOP工程。

步骤S6中,在OpenDDS中配置和加载改进的DIOP协议,其中包括:将DIOP工程加入到OpenDDS应用链接库中,通过服务配置器动态加载DIOP协议:在应用路径下创建配置文件,输入动态加载命令,在DCPS服务器端声明DIOP端点,在命令行输入相关参数即可运行程序。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

反射内存 延时_一种基于反射内存卡的OpenDDS分布式通信方法与流程相关推荐

  1. aes子密钥生成c语言_一种基于流密码算法的子密钥生成方法与流程

    本发明涉及一种用于分组加解密算法的子密钥的生成方法. 背景技术: 随着信息技术的发展,信息安全性的问题却愈来愈显得突出,保证信息安全的一个重要技术就是密码学.密码学在信息安全技术中扮演着基础的角色,是 ...

  2. python应用如何实现升级_一种基于Python实现BMC批量升级的方法与流程

    本发明涉及BMC批量升级,尤其涉及一种基于Python实现BMC批量升级的方法. 背景技术: 随着现代服务器主板技术的发展,主板设计形态复杂多变.无论是设计成本还是后期使用过程中的维护成本都很高.如何 ...

  3. 电容屏物体识别_一种基于触摸屏触摸点的物体识别方法与流程

    本发明涉及触摸屏触摸点物体识别技术领域,具体为一种基于触摸屏触摸点的物体识别方法. 背景技术: 多触点触摸屏支持多个触点同时输入,通过触摸屏的点的特征,进行物体识别是一个成熟的技术,以下简称物体识别为 ...

  4. 企业微信推送消息延迟_一种基于企业微信的消息推送方法与流程

    本发明涉及消息推送技术领域,特别涉及一种基于企业微信的消息推送方法. 背景技术: 随着微信公众号的普及,微信企业号也越来越受到人们的关注.而腾讯公司在微信企业号的基础上又进行了进一步的升级,提供了类似 ...

  5. 机器人测钢卷直径_一种基于关节机器人的冷轧钢卷卷芯焊接方法与流程

    本发明涉及冶金技术领域,特别涉及一种基于关节机器人的冷轧钢卷卷芯焊接方法. 背景技术: 在冷轧罩式退火工序,钢卷采用立式吊具吊运,为防止钢卷卷芯松动导致卷芯钢带损坏和抽芯故障,必须将钢卷卷芯内圈焊接固 ...

  6. led的伏安特性曲线 matlab实现_一种基于MATLAB的分析避雷器伏安特性的方法与流程...

    本发明属于电力电子技术领域,涉及一种基于MATLAB的分析避雷器伏安特性的方法. 背景技术: 目前,我国±1100kV特高压直流输电工程建设正在稳步推进,特高压直流系统用金属氧化物避雷器是直流输电系统 ...

  7. 航测大数据量处理_一种基于动态航测的图像大数据分析方法与流程

    本发明涉及数据处理技术领域,具体为一种基于动态航测的图像大数据分析方法. 背景技术: 数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,提取有用信息和形成结论而对数据加以详细研究和概括总结的 ...

  8. plc控制可调节阀流程图_一种基于PLC神经外科引流控制系统及方法与流程

    本发明属于医疗辅助技术领域,尤其涉及基于PLC神经外科引流控制系统及方法. 背景技术: 神经外科手术患者在做完手术后通常需要安置不同的引流管进行各种引流,这是一种常用的神经外壳急救手段,根据导管末端位 ...

  9. code epi 光场_一种基于EPI的光场图像超分辨的方法与流程

    本发明属于计算机数字图像处理技术领域,具体涉及一种基于epi的光场图像超分辨的方法. 背景技术: 在实际生活中,我们身边的物体和场景都是三维的.传统的相机只能采集到空间光线的强度信息,丢失了光线的方向 ...

最新文章

  1. html5的video怎么把里面的控制器移出来_日产Pro-Pilot的ADAS控制器拆解
  2. ACMNO.25 C语言-间隔输出 写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格。如输入1990,应输出1 9 9 0。 输入 一个四位数 输出 增加空格输出
  3. 发文平台对文章发布的基本要求
  4. 将本地工程上传到github
  5. iptables规则备份和恢复、firewall的zone的操作、service的操作
  6. 公文转成电子文档需要注意的事项
  7. 如何在springboot中使用PageHelper分页插件
  8. Python笔记-类的单例模式及重载打印
  9. Android学习点点滴滴之获取正在运行的进程
  10. 拓端tecdat:Python金融时间序列模型ARIMA 和GARCH 在股票市场预测应用
  11. python 电力系统时域仿真_电力系统暂态计算_时域仿真方法
  12. 遭遇希捷硬盘“固件门”,经销商仅赔了新硬盘,原来硬盘中数据全部丢失,郁闷。。。...
  13. 微信小程序开发系列 (三) :微信小程序如何响应用户点击事件和微信平台 API 的使用方法介绍
  14. C语言实现埃拉托斯特尼筛法
  15. hadoop3新特性
  16. sqrt函数java_Java BigDecimal sqrt()用法及代码示例
  17. js Date 获取 年 月 日
  18. Java枚举的打印_如何在java中打印所有枚举值?
  19. 外网打点(信息收集)
  20. OpenGL的函数(GL)

热门文章

  1. 基于C++的opencv中Mat矩阵运算方法总结
  2. Vim插件EasyGrep使用简介
  3. 话说校验和(checksum)
  4. MyBatis-Plus 之通用Service
  5. 3499元起!乐视超级电视引爆量子点电视普及大潮
  6. 正胶显影液/正胶稀释剂/SU8 显影液/RD-HMDS/OMNICOAT光刻胶配套
  7. WIN10远程协助无法控制的解决方法
  8. 简单五子棋算法——初级篇
  9. 摘自 寂地《踮脚张望的时光》
  10. 【23M1W1】菊厂入职前的一些小复习