CN109783066B - 一种dds内部实体数据关联和处理的实现方法 - Google Patents

一种dds内部实体数据关联和处理的实现方法 Download PDF

Info

Publication number
CN109783066B
CN109783066B CN201811388281.7A CN201811388281A CN109783066B CN 109783066 B CN109783066 B CN 109783066B CN 201811388281 A CN201811388281 A CN 201811388281A CN 109783066 B CN109783066 B CN 109783066B
Authority
CN
China
Prior art keywords
data
dds
ctrl
information
domain
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811388281.7A
Other languages
English (en)
Other versions
CN109783066A (zh
Inventor
袁东
浦勇
吴俊�
王啸
张古今
李敏敏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Huaxun Guorong Technology Co ltd
Original Assignee
南京华讯方舟通信设备有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 南京华讯方舟通信设备有限公司 filed Critical 南京华讯方舟通信设备有限公司
Priority to CN201811388281.7A priority Critical patent/CN109783066B/zh
Publication of CN109783066A publication Critical patent/CN109783066A/zh
Application granted granted Critical
Publication of CN109783066B publication Critical patent/CN109783066B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明公开了一种DDS内部实体数据关联和处理的实现方法,通过创建一个内部控制数据的QoS策略INNER_CTRL_DATA,再基于DDS内置主题,通过回调函数触发实现消息处理和数据监听。本发明解决了现有技术实现中数据结构信息管理不易、开发复杂以及代码耦合性强等问题,提高了软件的开发效率,降低了软件设计的难度。

Description

一种DDS内部实体数据关联和处理的实现方法
技术领域
本发明涉及一种基于DDS的数据监听方法,尤其涉及一种DDS内部实体数据关联和处理的实现方法。
背景技术
随着信息化的建设发展,需要面对多变的海量数据信息,实时、高效、高速的数据交互具有至关重要的地位。因此,建立实时性强、可靠性高、安全性好的信息传输中间件,提高系统互联能力,满足系统内各种信息交换和共享需求,并解决应用软件之间的数据共享和集成问题是亟待解决的问题。
数据分发服务(Data Distribution Service,DDS)是对象管理组织(ObjectManagement Group,OMG)继推出CORBA规范后颁布的实现订阅/发布通信模式、满足实时性要求的软件设计标准和规范,该规范对分布式实时系统中数据发布、传递和接收的接口和行为进行了标准化。DDS纯粹以数据为中心来进行数据分发,并将资源状况、对资源的期待程度、网络状况等都用QoS参数来描述,大大增强了通信的实时性和灵活性,简化了分布式系统中数据的有效发布,为实时环境下以数据为中心的分布式应用提供高效、有用的通信服务。
DDS定义了以数据为中心的发布/订阅机制,以数据为中心的发布/订阅模型基于全局数据空间(Global Data Space)的概念,如图1所示。
DDS规范包括域参与者、发布者、订阅者、数据类型、数据写入者、数据读取者、主题、内置主题和QoS等。在具体的产品实现中,DDS处于操作系统之上、用户应用程序之下,可以很好的屏蔽底层系统、总线的异构等细节,对应用数据提供统一的API接口,具体如下图2所示。
DDS使用域来划分数据通信的子空间,隶属于同一个域的各个域参与者(Participant)可以互相通信,每个域参与者里面可以有一个或多个发布者(Publisher)或订阅者(Subscriber),每个发布者里面可以有一个或多个数据写入者(DataWriter),每个订阅者里面也可以有一个或多个数据读取者(DataReader)。数据写入者通过数据通道将数据发送到相应的数据读取者处,数据读取者则从数据通道中获取自己感兴趣的数据,数据写入者和数据读取者通过主题(Topic)和QoS进行匹配和建立联系,一般每个数据写入者或数据读取者只写入或读取一种类型的数据。
随着DDS越来越多的被使用,对其配套的工具需求较为迫切,尤其对DDS的监控管理工具的诉求较为强烈,需要监控当前各个域下的主题、发布者、订阅者等相关信息。DDS标准中有规定了一些内置主题(比如:DCPSPublication、DCPSSubscription和DCPSParticipant等),我们可以通过内置主题来实现相关的监控管理,但是DDS标准没有规定与内置主题相匹配的内部控制数据的相关QoS策略,当前一般的实现就通过一些全局变量来记录相关数据,这样不但会提高代码的耦合度,而且在多线程的场景下降低处理效率和性能。
发明内容
发明目的:本发明提供了一种实现数据监听的DDS内部实体数据关联和处理的实现方法,创建内部控制数据策略INNER_CTRL_DATA QoS,通过DataReader直接获取数据信息,从而实现基于DDS内部主题的数据监听和管理。
技术方案:本发明所述的一种DDS内部实体数据关联和处理的实现方法,包括步骤:
(1)建立一个基于DDS的通信环境,创建一个ID为a的域,创建域参与者对象test_domain,其中,a的取值范围为0~230;
(2)基于test_domain创建一个用于读数据的订阅者对象test_sub;
(3)通过DDS标准规定的应用程序编程接口获取test_domain的内置订阅者;
(4)通过DDS标准规定的应用程序编程接口获取DDS规范中定义的内置主题对应的数据读取者DataReader的指针信息及QoS策略信息;
优选地,所述内置主题为“DCPSPublication”。
(5)创建并设置DataReader的内部控制数据策略INNER_CTRL_DATA QoS信息,包括用于存储枚举类型的变量inner_type和用于存储订阅者test_sub的地址的字段value;所述枚举类型包括成员变量:表示默认值的“DDS_INNER_CTRL_DEFAULT”、表示订阅者的“DDS_INNER_CTRL_SUB”、表示发布者的“DDS_INNER_CTRL_PUB”、表示数据写入者的“DDS_INNER_CTRL_WRITER”、表示数据读取者的“DDS_INNER_CTRL_READER”、表示保留字段的“DDS_INNER_CTRL_RESERVE”,其枚举值分别为0、1、2、3、4、255;
(6)在DataReader上注册回调函数;
(7)进入监听状态,等待回调函数被触发;
(8)当监听到数据时,DataReader的回调函数被触发,通过解析回调函数的输入参数,获取输入参数的QoS策略的配置信息,判断其中的INNER_CTRL_DATA QoS信息中的inner_type是否赋值为步骤(5)中设定的枚举类型,若是则执行步骤(9),否则跳转至步骤(7);
(9)判断INNER_CTRL_DATA QoS信息中的value字段是否为空,若不为空,则获取到订阅者test_sub信息,执行步骤(10);否则,跳转至步骤(7);
(10.1)获取当前域的主题名称信息;
(10.2)创建并在test_domain上注册动态数据类型;
(10.3)根据步骤(10.1)中的主题名称信息,创建相对应的主题;
(10.4)根据INNER_CTRL_DATA QoS策略信息中value存储的订阅者地址信息,创建步骤(10.3)所述主题对应的新的数据读取者;
(11)在新的数据读取者上设置回调函数,进行当前域和该主题的数据监听、监控和统计。
有益效果:本发明提高了DDS工具软件的开发效率,降低了代码的耦合度,降低了DDS工具软件的设计难度,同时,提高了代码的处理性能。
附图说明
图1是DDS架构图;
图2是DDS中间件位置示意图;
图3是本发明实施例基于DDS内置主题DCPSPublication来监听指定域信息流程示意图;
图4是本发明实施例监听指定域下各个主题消息流程图。
具体实施方式
下面结合附图和实施例对本发明的技术方案作进一步的说明。
如图3所示,以DCPSPublication作为DDS内置主题为例,本发明所述的一种DDS内部实体数据关联和处理的实现方法,包括步骤:
(1)创建一个域ID为10的域参与者(DomainParticipant)对象test_domain;
(2)基于test_domain创建一个订阅者(Subscriber)对象test_sub;
(3)通过DDS的对外接口方法获取test_domain的内置订阅者buildin_sub;
(4)通过DDS的对外接口方法获取内置主题“DCPSPublication”对应的数据读取者(DataReader)buildin_datareader;
(5)通过DDS的对外接口方法获取buildin_datareader当前的QoS值信息;
(6)设置buildin_datareader当前的QoS值中的INNER_CTRL_DATA QoS策略信息,该QoS策略字段定义及说明见表1和表2,把INNER_CTRL_DATA中的type参数设置为DDS_INNER_CTRL_SUB,把value参数设为test_sub的地址信息;
(7)给buildin_datareader设置监听回调函数on_data_available;
(8)buildin_datareader进入监听状态,等待其回调函数on_data_available被触发;
(9)监听到数据时,buildin_datareader的回调函数on_data_available被触发,根据on_data_available的输入参数DataReader获取该数据读取者的QoS值;
(10)根据上一步骤获取的QoS信息,判断INNER_CTRL_DATA QoS策略信息中的type是否为DDS_INNER_CTRL_SUB,若为DDS_INNER_CTRL_SUB则执行下面步骤,否则跳出当前的处理,直接进入监听状态,等待下一个消息到来;
(11)获取INNER_CTRL_DATA QoS策略信息中value携带订阅者信息是否不为空,若不空,执行下一步骤,否则跳出当前的处理,直接进入监听状态,等待下一个消息到来;
(12)获取当前域的主题名称信息;
(13)创建动态数据类型;
(14)在域test_domain上注册上一步骤创建的动态数据类型;
(15)在域test_domain上创建在步骤十二中获取到的主题名称所对应的主题(Topic);
(16)根据INNER_CTRL_DATA QoS策略信息中value携带订阅者信息,创建步骤十五中主题对应的数据读取者(DataReader);
(17)在上一步骤中创建的DataReader上设置相关的监听回调函数;
(18)进入监听状态,这样就可以监听当前域上各个主题的数据信息。
对基于DDS标准中的其他内置主题的数据监测方法,其步骤与上述方法类似,不做赘述。
表1 INNER_CTRL_DATA策略参数
Figure BDA0001873434710000041
表2 INNER_CTRL_DATA_TYPE枚举定义说明
Figure BDA0001873434710000042
Figure BDA0001873434710000051

Claims (4)

1.一种DDS内部实体数据关联和处理的实现方法,其特征在于,包括步骤:
(1)建立一个基于DDS的通信环境,创建一个ID为a的域,创建域参与者对象test_domain,其中,a的取值范围为0~230;
(2)基于test_domain创建一个用于读数据的订阅者对象test_sub;
(3)通过DDS标准规定的应用程序编程接口获取test_domain的内置订阅者;
(4)通过DDS标准规定的应用程序编程接口获取DDS规范中定义的内置主题对应的数据读取者DataReader的指针信息及QoS策略信息;
(5)创建并设置DataReader的内部控制数据策略INNER_CTRL_DATA QoS信息,包括用于存储枚举类型的变量inner_type和用于存储订阅者test_sub的地址的字段value;所述枚举类型包括成员变量:表示默认值的“DDS_INNER_CTRL_DEFAULT”、表示订阅者的“DDS_INNER_CTRL_SUB”、表示发布者的“DDS_INNER_CTRL_PUB”、表示数据写入者的“DDS_INNER_CTRL_WRITER”、表示数据读取者的“DDS_INNER_CTRL_READER”、表示保留字段的“DDS_INNER_CTRL_RESERVE”,其枚举值分别为0、1、2、3、4、255;
(6)在DataReader上注册回调函数;
(7)进入监听状态,等待回调函数被触发;
(8)当监听到数据时,DataReader的回调函数被触发,通过解析回调函数的输入参数,获取输入参数的QoS策略的配置信息,判断其中的INNER_CTRL_DATA QoS信息中的inner_type是否赋值为步骤(5)中设定的枚举类型,若是则执行步骤(9),否则跳转至步骤(7);
(9)判断INNER_CTRL_DATA QoS信息中的value字段是否为空,若不为空,则获取到订阅者test_sub信息,执行步骤(10);否则,跳转至步骤(7);
(10)根据当前域的主题名称信息创建对应的主题,并基于test_sub,通过动态数据类型的方式创建与主题对应的新的数据读取者;
(11)在新的数据读取者上设置回调函数,进行当前域和该主题的数据监听、监控和统计。
2.根据权利要求1所述的一种DDS内部实体数据关联和处理的实现方法,其特征在于:所述数据读取者用于获取数据信息,进行域和主题的数据监听、监控和统计。
3.根据权利要求1所述的一种DDS内部实体数据关联和处理的实现方法,其特征在于:步骤(4)中,所述内置主题为DDS规范中定义的内置主题,包括“DCPSPublication”、“DCPSSubscription”。
4.根据权利要求1所述的一种DDS内部实体数据关联和处理的实现方法,其特征在于:所述步骤(10)包括:
(10.1)获取当前域的主题名称信息;
(10.2)创建并在test_domain上注册动态数据类型;
(10.3)根据步骤(10.1)中的主题名称信息,创建相对应的主题;
(10.4)根据INNER_CTRL_DATA QoS策略信息中value存储的订阅者地址信息,创建步骤(10.3)所述主题对应的新的数据读取者。
CN201811388281.7A 2018-11-21 2018-11-21 一种dds内部实体数据关联和处理的实现方法 Active CN109783066B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811388281.7A CN109783066B (zh) 2018-11-21 2018-11-21 一种dds内部实体数据关联和处理的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811388281.7A CN109783066B (zh) 2018-11-21 2018-11-21 一种dds内部实体数据关联和处理的实现方法

Publications (2)

Publication Number Publication Date
CN109783066A CN109783066A (zh) 2019-05-21
CN109783066B true CN109783066B (zh) 2022-04-22

Family

ID=66495998

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811388281.7A Active CN109783066B (zh) 2018-11-21 2018-11-21 一种dds内部实体数据关联和处理的实现方法

Country Status (1)

Country Link
CN (1) CN109783066B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110740182B (zh) * 2019-10-21 2022-05-06 中国航空工业集团公司沈阳飞机设计研究所 一种基于dds技术的动态数据通信方法及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101848236A (zh) * 2010-05-06 2010-09-29 北京邮电大学 具有分布式网络架构的实时数据分发系统及其工作方法
KR20130055423A (ko) * 2011-11-18 2013-05-28 한국전자통신연구원 데이터 분배 서비스를 위한 미들웨어에서의 QoS를 지원하기 위한 장치 및 방법
CN103166975A (zh) * 2013-04-03 2013-06-19 上海航天测控通信研究所 一种dds通信系统
CN106452841A (zh) * 2016-09-13 2017-02-22 中国电子科技集团公司第三十二研究所 在机器人操作系统中使用传输服务质量的方法
CN108040034A (zh) * 2017-11-15 2018-05-15 中国航空无线电电子研究所 分布式实时通信中间件

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101848236A (zh) * 2010-05-06 2010-09-29 北京邮电大学 具有分布式网络架构的实时数据分发系统及其工作方法
KR20130055423A (ko) * 2011-11-18 2013-05-28 한국전자통신연구원 데이터 분배 서비스를 위한 미들웨어에서의 QoS를 지원하기 위한 장치 및 방법
CN103166975A (zh) * 2013-04-03 2013-06-19 上海航天测控通信研究所 一种dds通信系统
CN106452841A (zh) * 2016-09-13 2017-02-22 中国电子科技集团公司第三十二研究所 在机器人操作系统中使用传输服务质量的方法
CN108040034A (zh) * 2017-11-15 2018-05-15 中国航空无线电电子研究所 分布式实时通信中间件

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于DDS的飞机协同设计数据分发系统;钱哨;《信息与电脑》;20170131;全文 *

Also Published As

Publication number Publication date
CN109783066A (zh) 2019-05-21

Similar Documents

Publication Publication Date Title
CN109617829B (zh) 一种业务请求数据的处理方法、装置及系统
CN111930525B (zh) Gpu资源使用方法、电子设备及计算机可读介质
WO2021088641A1 (zh) 数据发送方法、处理方法、接收方法及其设备、存储介质
US20240152395A1 (en) Resource scheduling method and apparatus, and computing node
CN109783066B (zh) 一种dds内部实体数据关联和处理的实现方法
CN107391274A (zh) 离线消息的处理方法及装置
CN116414534A (zh) 任务调度方法、装置、集成电路、网络设备及存储介质
CN110730300A (zh) 相机控制方法、装置、存储介质和终端
CN109783248A (zh) 数据访问方法、装置、计算机设备以及存储介质
CN112445861A (zh) 信息处理方法、装置、系统及存储介质
KR101888131B1 (ko) Dds-dbms 연동 도구의 실시간 변경 데이터 발간 서비스 수행 방법
CN112380411B (zh) 敏感词处理方法、装置、电子设备、系统及存储介质
CN113486099A (zh) 一种内存计算服务框架及实现系统
CN115883639A (zh) 一种web实时消息推送方法及装置、设备、存储介质
CN113111108A (zh) 文件数据源入库解析接入方法
CN111177625A (zh) 数据获取方法、数据上报方法、终端设备及存储介质
US20060265626A1 (en) Method for dynamic reprogramming dataflow in a distributed system
CN115474189B (zh) 通知数据采集方法、通信核心网、计算机装置及存储介质
CN113747100B (zh) 音视频通话方法、装置、存储介质及电子设备
CN117440069A (zh) 基于数据分发服务的通信方式动态选择方法及装置
CN114331733A (zh) 提高区块链智能合约性能的方法、装置及系统及存储介质
CN116048741A (zh) 一种数据处理的方法、装置和计算设备
CN113901116A (zh) 一种云会员信息管理系统、方法和存储平台
CN114416034A (zh) 一种接口请求处理方法和装置
CN115617541A (zh) 通信方法及事件中枢调度系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220420

Address after: 430073 room 14, 15 / F, unit 2, building 2 and 3, wudahui Park, phase V, National Geospatial Information Industry base, No. 1-1 and-2, wudayuan Fourth Road, Wuhan East Lake New Technology Development Zone, Wuhan, Hubei Province

Patentee after: WUHAN HUAXUN GUORONG TECHNOLOGY CO.,LTD.

Address before: 210000 floor 10, block B, Lianchuang building, No. 18, Jihui Road, Gulou District, Nanjing, Jiangsu Province

Patentee before: CHINA COMMUNICATION TECHNOLOGY (NANJING) Co.,Ltd.