CN109783066B - 一种dds内部实体数据关联和处理的实现方法 - Google Patents
一种dds内部实体数据关联和处理的实现方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 238000012545 processing Methods 0.000 title claims abstract description 16
- 238000012544 monitoring process Methods 0.000 claims abstract description 22
- 238000012360 testing method Methods 0.000 claims description 22
- 238000004891 communication Methods 0.000 claims description 6
- 230000001960 triggered effect Effects 0.000 claims description 5
- 230000009191 jumping Effects 0.000 claims description 4
- 238000011161 development Methods 0.000 abstract description 4
- 230000008878 coupling Effects 0.000 abstract description 3
- 238000010168 coupling process Methods 0.000 abstract description 3
- 238000005859 coupling reaction Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Images
Landscapes
- Telephonic Communication Services (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种DDS内部实体数据关联和处理的实现方法,通过创建一个内部控制数据的QoS策略INNER_CTRL_DATA,再基于DDS内置主题,通过回调函数触发实现消息处理和数据监听。本发明解决了现有技术实现中数据结构信息管理不易、开发复杂以及代码耦合性强等问题,提高了软件的开发效率,降低了软件设计的难度。
Description
技术领域
本发明涉及一种基于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策略参数
表2 INNER_CTRL_DATA_TYPE枚举定义说明
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)所述主题对应的新的数据读取者。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110740182B (zh) * | 2019-10-21 | 2022-05-06 | 中国航空工业集团公司沈阳飞机设计研究所 | 一种基于dds技术的动态数据通信方法及设备 |
Citations (5)
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 | 中国航空无线电电子研究所 | 分布式实时通信中间件 |
-
2018
- 2018-11-21 CN CN201811388281.7A patent/CN109783066B/zh active Active
Patent Citations (5)
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)
Title |
---|
基于DDS的飞机协同设计数据分发系统;钱哨;《信息与电脑》;20170131;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109783066A (zh) | 2019-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021088641A1 (zh) | 数据发送方法、处理方法、接收方法及其设备、存储介质 | |
CN109617829B (zh) | 一种业务请求数据的处理方法、装置及系统 | |
CN109547243B (zh) | 一种基于dds的跨网段通信方法 | |
CN111930525B (zh) | Gpu资源使用方法、电子设备及计算机可读介质 | |
US20240152395A1 (en) | Resource scheduling method and apparatus, and computing node | |
CN109783066B (zh) | 一种dds内部实体数据关联和处理的实现方法 | |
CN107391274A (zh) | 离线消息的处理方法及装置 | |
CN116414534A (zh) | 任务调度方法、装置、集成电路、网络设备及存储介质 | |
CN112445861A (zh) | 信息处理方法、装置、系统及存储介质 | |
CN109783248A (zh) | 数据访问方法、装置、计算机设备以及存储介质 | |
KR101888131B1 (ko) | Dds-dbms 연동 도구의 실시간 변경 데이터 발간 서비스 수행 방법 | |
CN110730300A (zh) | 相机控制方法、装置、存储介质和终端 | |
CN112380411B (zh) | 敏感词处理方法、装置、电子设备、系统及存储介质 | |
CN112019452B (zh) | 一种业务需求的处理方法、系统及相关装置 | |
CN116346842A (zh) | 跨生态设备管控方法、装置、存储介质及电子设备 | |
CN115883639A (zh) | 一种web实时消息推送方法及装置、设备、存储介质 | |
CN113486099A (zh) | 一种内存计算服务框架及实现系统 | |
Aldred et al. | Understanding the challenges in getting together: The semantics of decoupling in middleware | |
CN111857804A (zh) | 离线任务的处理方法、装置、电子设备及存储介质 | |
US20070258480A1 (en) | Resource management system and method | |
US20060265626A1 (en) | Method for dynamic reprogramming dataflow in a distributed system | |
CN115474189B (zh) | 通知数据采集方法、通信核心网、计算机装置及存储介质 | |
CN116028209B (zh) | 资源调度方法、电子设备及存储介质 | |
CN113747100B (zh) | 音视频通话方法、装置、存储介质及电子设备 | |
CN110366157B (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. |