CN112667387B - 一种基于dds的持久型数据对象同步的设计模型 - Google Patents
一种基于dds的持久型数据对象同步的设计模型 Download PDFInfo
- Publication number
- CN112667387B CN112667387B CN202110277954.7A CN202110277954A CN112667387B CN 112667387 B CN112667387 B CN 112667387B CN 202110277954 A CN202110277954 A CN 202110277954A CN 112667387 B CN112667387 B CN 112667387B
- Authority
- CN
- China
- Prior art keywords
- dds
- data
- data object
- memory
- layer
- 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
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及一种基于DDS的持久型数据对象同步的设计模型,包括发送侧和接收侧,发送侧和接收侧均有用户应用层及DDS协议层,用户应用层和DDS协议层之间为数据同步层;数据同步层包括内存管理器、消息调度器和DDS交互器;发送侧的内存管理器用于为发送侧的用户应用层提供内存分配和释放接口;接收侧的内存管理器用于处理数据对象;消息调度器为用户应用提供了消息触发接口;DDS交互器负责根据数据同步层的业务需要,直接调用DDS接口。本发明在现有DDS协议层和用户应用层层之间抽象出数据同步层,并使其独立于DDS协议层进行内存管理和消息调度,极大简化了开发过程。
Description
技术领域
本发明涉及一种基于DDS的持久型数据对象同步的设计模型,属于通信电子计算机领域。
背景技术
DDS的全称是Data Distribution Service,即数据分发服务,是对象管理组织(OMG)在2004年正式发布的一个专门为实时系统设计的数据发布订阅标准。DDS最早应用于美国海军,解决舰船复杂网络环境中大量软件升级的兼容性问题,目前已经广泛应用于国防、民航、工业控制、汽车等领域,成为分布式实时系统中数据发布订阅的标准解决方案。
DDS提供了一项出色的技术,可以集成由单独组件构建的应用程序,距离应用程序更近。DDS在应用程序主题、应用程序数据类型、与应用程序相关的QoS(例如可靠性,持久性,优先级,截止日期)方面提供了更高级的接口,并处理了诸如发现端点和建立通信之类的较低级别的细节。
数据分发服务(DDS)依赖于QoS的使用。QoS(Quality of Service)是一组控制DDS服务行为的特性。QoS由互相单独的QoS策略组成。DDS为应用程序提供QoS策略来控制大量的非功能性的应用程序属性,如数据可用性、数据交付、数据及时性和资源使用情况。DDS实体的语义和行为,例如主题、数据reader和数据writer,可以通过可用的QoS策略进行控制。这些策略控件和端到端属性被视为订阅匹配的一部分。
数据分发服务(DDS)为我们提供了一种跨应用、跨进程的数据交互方式,但是我们在实现持久型数据的传输时可能会遇到很多细节的问题,比如:数据内存如何分配、控制和释放;发送端和接收端的数据如何保持同步和联动;数据发送阻塞后如何处理;向接收端连续多次发送键值相同的数据,如何进行消息合并处理;发送端删除释放数据时,接收端如何联动删除数据;数据发送端发送了一些数据后,接收端才启动,如何处理;对端异常退出如何处理等等。
作为一种中间件标准,虽然DDS提供了完善的互操作性协议以及足够丰富的QoS特性,但是考虑到上述种种细节问题,想要实现稳定可靠的持久型数据对象同步,必然会涉及到内存分配管理,消息调度,以及大量而复杂的QoS参数配置。当多个用户应用都需要考虑这些细节问题时,开发过程就会变得复杂而又沉重。
发明内容
本发明要解决的技术问题是:提出一种基于数据分发服务的持久型数据对象同步设计,实现持久型数据对象同步,同时简化接口,便于开发。
为了解决上述技术问题,本发明提出的技术方案是:一种基于DDS的持久型数据对象同步的设计模型,包括发送侧和接收侧,所述发送侧和接收侧均有用户应用层及DDS协议层,所述发送侧的用户应用层为数据源端,所述发送侧的用户应用层为数据目的端,所述发送侧的DDS协议层为发布者及与之对应的数据发送器,所述接收侧为订阅者及与之对应的数据阅读器;所述发送侧的DDS协议层与所述接收侧的DDS协议层联通;所述用户应用层和所述DDS协议层之间为数据同步层,所述数据同步层与所述用户应用层及所述DDS协议层联通;所述数据同步层包括内存管理器、消息调度器和DDS交互器;
所述发送侧的内存管理器用于为发送侧的用户应用层提供内存分配和释放接口;
所述接收侧的内存管理器用于为新的数据对象分配内存和关联数据源端、更新已分配内存的数据对象、删除已分配内存的数据对象;
所述消息调度器为用户应用提供了消息触发接口,以便实现创建数据对象、删除数据对象、更新数据对象的操作;
所述DDS交互器负责根据数据同步层的业务需要,直接调用DDS接口,实现创建和关联DDS实体、发送和读取报文、获取相关DDS实体的信息、配置QoS参数的功能。
上述方案的进一步改进是:当内存分配接口被调用时,需要指定当前数据对象的类型;所述发送侧的内存管理器检查和刷新当前数据对象类型的使用计数,如果超出了预设的规格,则返回错误;如果未超出预设的规格,内存管理器分配内存时,会申请额外的长度作为预载,用于储存数据同步层的内部业务信息。
上述方案的进一步改进是:当内存释放接口被调用时,所述发送侧的内存管理器会等待消息调度器通知目的端删除释放数据对象后,再释放该侧的内存;同时刷新当前数据对象类型的使用计数。
上述方案的进一步改进是:所述接收侧为数据对象分配内存时,申请额外长度作为预载,用于存储数据同步层的内部业务信息,并完成数据目的端的数据对象与数据源端的数据对象的关联。
上述方案的进一步改进是:当接收侧的内存管理器接收到更新的数据后,为对应的数据对象查找相应内存并刷新。
上述方案的进一步改进是:当接收侧的内存管理器接收到删除信息后,查找对应的数据对象的内存并调用数据对象删除回调通知发送侧的用户应用层,之后释放接收侧的内存。
上述方案的进一步改进是:所述消息调度器会根据传输优先级进行调度,
1)先发送删除消息,再发送更新消息;
2)发送删除消息时,先发送优先级低的,再发送优先级高的;
3)更新消息时,先发送优先级高的,再发送优先级低的;
所述消息调度器对同一数据的连续多次操作进行合并处理;
当DDS协议层返回发送超时或者连接状态异常时,消息调度器会以指数退避的形式,安排当前消息至后续的调度中去。
上述方案的进一步改进是:所述传输优先级在发送侧确定,通过DDS的Qos特性加以实现。
本发明的有益效果是:本发明在现有DDS协议层和用户应用层层之间抽象出数据同步层,使其主要负责内存管理、消息调度和DDS交互的作用,使得本发明涉及了数据同步联动、内存管理、规格限制、消息调度、异常处理等功能。并使数据同步层独立于DDS协议层进行内存管理和消息调度,并将复杂的DDS接口调用抽象为简洁而友好的接口,极大简化了开发过程。
附图说明
图1是本发明实施例的设计模型示意图。
具体实施方式
实施例
本实施例的一种基于DDS的持久型数据对象同步的设计模型,如图1所示,包括发送侧和接收侧,发送侧和接收侧均有用户应用层及DDS协议层,发送侧的用户应用层为数据源端,发送侧的用户应用层为数据目的端,发送侧的DDS协议层为发布者及与之对应的数据发送器,接收侧为订阅者及与之对应的数据阅读器;发送侧的DDS协议层与接收侧的DDS协议层联通;用户应用层和DDS协议层之间为数据同步层,数据同步层与用户应用层及DDS协议层联通;数据同步层包括内存管理器、消息调度器和DDS交互器;
发送侧的内存管理器用于为发送侧的用户应用层提供内存分配和释放接口;
接收侧的内存管理器用于为新的数据对象分配内存和关联数据源端、更新已分配内存的数据对象、删除已分配内存的数据对象;
消息调度器为用户应用提供了消息触发接口,以便实现创建数据对象、删除数据对象、更新数据对象的操作;
DDS交互器负责根据数据同步层的业务需要,直接调用DDS接口,实现创建和关联DDS实体、发送和读取报文、获取相关DDS实体的信息、配置QoS参数的功能。
本实施例的当内存分配接口被调用时,需要指定当前数据对象的类型;发送侧的内存管理器检查和刷新当前数据对象类型的使用计数,如果超出了预设的规格,则返回错误;如果未超出预设的规格,内存管理器分配内存时,会申请额外的长度作为预载,用于储存数据同步层的内部业务信息。
本实施例的内存管理器在发送侧和接收侧的区别;
在发送侧,内存管理器为用户应用提供了内存分配(MALLOC)和释放(FREE)接口。
用户调用内存分配接口时,需要指定当前数据对象的类型。内存管理器检查和刷新当前数据对象类型的使用计数。如果超出了预设的规格,则返回错误;如果未超出预设的规格,内存管理器分配内存时,会申请额外的长度作为预载,用于储存数据同步层的内部业务信息。
用户调用内存释放接口时,内存管理器会等待消息调度器通知目的端删除释放数据对象后,再释放内存。同时也会刷新当前数据对象类型的使用计数。
在接收侧,内存管理器接收到新数据后,为数据对象分配内存,同样也会申请额外的长度作为预载,并完成本端(目的端)数据对象和源端数据对象的关联。随即调用数据对象接收回调通知用户应用。
内存管理器接收到更新的数据后,为数据对象查找相应的内存并刷新。随即调用数据对象接收回调通知用户应用。
内存管理器接收到删除信息后,查找相应数据对象的内存并调用数据对象删除回调通知用户应用,最后释放内存。
本实施例的消息调度器为用户应用提供了消息触发(NOTIFY)接口。
无论是创建数据对象、删除数据对象或是刷新数据对象,发送侧的应用皆可以调用消息触发接口,用于告知消息调度器开始调度。
消息调度器会根据用户注册的传输优先级进行调度,
1)先发送删除消息,再发送更新消息;
2)发送删除消息时,先发送优先级低的,再发送优先级高的;
3)更新消息时,先发送优先级高的,再发送优先级低的;
消息调度器对同一数据的连续多次操作进行合并处理;
当DDS协议层返回发送超时或者连接状态异常时,消息调度器会以指数退避的形式,安排当前消息至后续的调度中去。
本实施例需要对用户进行定义和注册;
在发送侧,用户需要注册发送端身份、发送数据类型、数据对象规格和传输优先级等。数据同步层根据数据类型做业务区分,并根据数据对象规格分配内存,而传输优先级则是通过利用DDS的QoS特性加以实现。
在接收侧,用户同样需要注册接收端身份、接收数据类型、数据对象规格。接收端只能接收到数据类型匹配的数据对象,否则会被DDS协议层或数据同步层过滤掉。
接收侧的用户还可以根据需要注册以下回调函数:
1.数据对象接收回调:即数据同步层收到有效数据后通知用户应用进行处理。
2.数据对象删除回调:即数据同步层感知到源端的数据对象删除后通知用户应用进行处理。
本实施例的DDS交互器负责根据数据同步层的业务需要,直接调用DDS接口,包括:创建和关联DDS实体,发送和读取报文,获取相关DDS实体的信息,配置QoS参数等。
DDS交互器根据用户注册的角色创建发布者或订阅者,并为每一种数据类型创建一个主题,一个数据发送器或数据阅读器。
DDS交互器从DDS协议层获取DDS实体信息,包括对端的连接状态,报文发送状态等,并反馈给消息调度器。
DDS交互器使用DDS协议层的数据发送器进行发送,使用take接口进行接收。之所以使用take而不是read,是因为take成功后可以释放掉DDS协议层中的缓存。
DDS交互器的另一个重要任务就是充分使用DDS的QoS特性,并且向用户应用屏蔽这些负责的QoS配置。DDS交互器所使用的QoS特性主要包括:
LIVELINESS:用于数据发送端和接收端之间的保活。消息调度器感知到保活超时后会暂缓调度,并会在连接恢复后重新开启调度。
DURABILITY:当数据发送端先于接收端启动,并且已经发布了一些数据对象时,需要保证接收端能够接收到历史数据。
HISTORY:发送侧的DDS协议层需要保存所有的数据,直到接收侧的DDS交互器将数据从接收侧的DDS协议层取出。
RELIABILITY:设置可靠的连接模式,保证发送端的数据不会因为空间不足而导致丢失。
RESOURCE_LIMITS:通过合理的资源配置,优化数据传输的性能。
本发明不局限于上述实施例的具体技术方案,除上述实施例外,本发明还可以有其他实施方式。对于本领域的技术人员来说,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等形成的技术方案,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于DDS的持久型数据对象同步的装置,包括发送侧和接收侧,所述发送侧和接收侧均有用户应用层及DDS协议层,所述发送侧的用户应用层为数据源端,所述接收侧的用户应用层为数据目的端,所述发送侧的DDS协议层为发布者及与之对应的数据发送器,所述接收侧为订阅者及与之对应的数据接收器;所述发送侧的DDS协议层与所述接收侧的DDS协议层联通;其特征在于:所述用户应用层和所述DDS协议层之间为数据同步层,所述数据同步层与所述用户应用层及所述DDS协议层联通;所述数据同步层包括内存管理器、消息调度器和DDS交互器;
所述发送侧的内存管理器用于为发送侧的用户应用层提供内存分配和释放接口;
所述接收侧的内存管理器用于为新的数据对象分配内存和关联数据源端、更新已分配内存的数据对象、删除已分配内存的数据对象;
所述消息调度器为用户应用层提供了消息触发接口,以便实现创建数据对象、 删除数据对象、更新数据对象的操作;
所述DDS交互器负责根据数据同步层的业务需要,直接调用DDS接口,实现创建和关联DDS实体、发送和读取报文、获取相关DDS实体的信息、配置QoS参数的功能。
2.根据权利要求1所述的基于DDS的持久型数据对象同步的装置,其特征在于:当内存分配接口被调用时, 需要指定当前数据对象的类型;所述发送侧的内存管理器检查和刷新当前数据对象类型的使用计数,如果超出了预设的规格,则返回错误;如果未超出预设的规格,内存管理器分配内存时,会申请额外的长度作为预载,用于储存数据同步层的内部业务信息。
3.根据权利要求1所述的基于DDS的持久型数据对象同步的装置,其特征在于:当内存释放接口被调用时,所述发送侧的内存管理器会等待消息调度器通知目的端删除释放数据对象后,再释放该侧的内存;同时刷新当前数据对象类型的使用计数。
4.根据权利要求1所述的基于DDS的持久型数据对象同步的装置,其特征在于:所述接收侧为数据对象分配内存时,申请额外长度作为预载,用于存储数据同步层的内部业务信息,并完成数据目的端的数据对象与数据源端的数据对象的关联。
5.根据权利要求1所述的基于DDS的持久型数据对象同步的装置,其特征在于:当接收侧的内存管理器接收到更新的数据后,为对应的数据对象查找相应内存并刷新。
6.根据权利要求1所述的基于DDS的持久型数据对象同步的装置,其特征在于:当接收侧的内存管理器接收到删除信息后,查找对应的数据对象的内存并调用数据对象删除回调并通知发送侧的用户应用层,之后释放接收侧的内存。
7.根据权利要求1所述的基于DDS的持久型数据对象同步的装置,其特征在于:所述消息调度器会根据传输优先级进行调度,
1)先发送删除消息,再发送更新消息;
2)发送删除消息时,先发送优先级低的,再发送优先级高的;
3)更新消息时,先发送优先级高的,再发送优先级低的;
所述消息调度器对同一数据的连续多次操作进行合并处理;
当DDS协议层返回发送超时或者连接状态异常时,消息调度器会以指数退避的形式,安排当前消息至后续的调度中去。
8.根据权利要求7所述的基于DDS的持久型数据对象同步的装置,其特征在于:所述传输优先级在发送侧确定,通过DDS的Qos特性加以实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110277954.7A CN112667387B (zh) | 2021-03-15 | 2021-03-15 | 一种基于dds的持久型数据对象同步的设计模型 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110277954.7A CN112667387B (zh) | 2021-03-15 | 2021-03-15 | 一种基于dds的持久型数据对象同步的设计模型 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112667387A CN112667387A (zh) | 2021-04-16 |
CN112667387B true CN112667387B (zh) | 2021-06-18 |
Family
ID=75399367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110277954.7A Active CN112667387B (zh) | 2021-03-15 | 2021-03-15 | 一种基于dds的持久型数据对象同步的设计模型 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112667387B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130282853A1 (en) * | 2012-04-20 | 2013-10-24 | Electronics And Telecommunications Research Institute | Apparatus and method for processing data in middleware for data distribution service |
CN106357716A (zh) * | 2015-07-17 | 2017-01-25 | 波音公司 | 位于交通工具上的系统以及用于发送消息的方法 |
CN110336867A (zh) * | 2019-06-28 | 2019-10-15 | 东南大学 | 应用dds的数据通信方法、装置 |
CN111048164A (zh) * | 2019-11-25 | 2020-04-21 | 中国医学科学院医学信息研究所 | 一种医学大数据长期保存系统 |
CN111371596A (zh) * | 2020-02-25 | 2020-07-03 | 中国航空无线电电子研究所 | 基于fc-ae总线的数据分发服务软件 |
CN112383452A (zh) * | 2021-01-15 | 2021-02-19 | 奥特酷智能科技(南京)有限公司 | 基于dpdk框架的dds数据传输诊断方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106411972A (zh) * | 2015-07-29 | 2017-02-15 | 中国科学院沈阳自动化研究所 | 一种基于Openflow协议的实时数据分发系统和方法 |
-
2021
- 2021-03-15 CN CN202110277954.7A patent/CN112667387B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130282853A1 (en) * | 2012-04-20 | 2013-10-24 | Electronics And Telecommunications Research Institute | Apparatus and method for processing data in middleware for data distribution service |
CN106357716A (zh) * | 2015-07-17 | 2017-01-25 | 波音公司 | 位于交通工具上的系统以及用于发送消息的方法 |
CN110336867A (zh) * | 2019-06-28 | 2019-10-15 | 东南大学 | 应用dds的数据通信方法、装置 |
CN111048164A (zh) * | 2019-11-25 | 2020-04-21 | 中国医学科学院医学信息研究所 | 一种医学大数据长期保存系统 |
CN111371596A (zh) * | 2020-02-25 | 2020-07-03 | 中国航空无线电电子研究所 | 基于fc-ae总线的数据分发服务软件 |
CN112383452A (zh) * | 2021-01-15 | 2021-02-19 | 奥特酷智能科技(南京)有限公司 | 基于dpdk框架的dds数据传输诊断方法及系统 |
Non-Patent Citations (1)
Title |
---|
基于DCPS的DDS通信中间件的研究;李海浩;《网络安全技术与应用》;20160229;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112667387A (zh) | 2021-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100912213B1 (ko) | 푸시 컨텐츠의 전달 및 프로세싱을 용이하게 하는 장치 및그 연관 방법 | |
US9418132B2 (en) | System for an open architecture deployment with centralized synchronization | |
US8719780B2 (en) | Application server with a protocol-neutral programming model for developing telecommunications-based applications | |
CN112788074B (zh) | 数据发送方法、处理方法、接收方法及其设备、存储介质 | |
US20050262215A1 (en) | Buffering enterprise messages | |
US20120173614A1 (en) | Event broker for an improved application server platform for telecom-based applications | |
US20050256931A1 (en) | Methods and apparatuses for processing messages in an enterprise computing environment | |
US20060288037A1 (en) | Queued system event notification and maintenance | |
WO2017092594A1 (zh) | 一种信息处理方法及装置 | |
CN112685499B (zh) | 一种工作业务流的流程数据同步方法、装置及设备 | |
CN102263830A (zh) | 便于推送内容的后台处理的装置和相关方法 | |
CN112698959A (zh) | 一种多核通信方法和装置 | |
CN105165035B (zh) | 兼具文本消息传输的多媒体消息传输 | |
CN108319509B (zh) | 一种事件管理方法、系统及主控设备 | |
CN111124717A (zh) | 消息投递方法、系统及计算机存储介质 | |
CN110727507A (zh) | 一种消息的处理方法、装置、计算机设备和存储介质 | |
CN112667387B (zh) | 一种基于dds的持久型数据对象同步的设计模型 | |
US7734605B2 (en) | Dynamic quota policy for queuing mechanism | |
KR101888131B1 (ko) | Dds-dbms 연동 도구의 실시간 변경 데이터 발간 서비스 수행 방법 | |
CN107102901B (zh) | 一种任务处理方法和装置 | |
CN108881991B (zh) | 弹幕消息分发方法、装置、设备及存储介质 | |
JP6595419B2 (ja) | Api提供装置及びapiリクエスト制御方法 | |
CN111049938A (zh) | 消息通知方法、装置、电子设备及可读存储介质 | |
CN111404979B (zh) | 业务请求处理的方法、装置及计算机可读存储介质 | |
US7773527B2 (en) | Method and system for dynamically changing quality of service for message communication |
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 | ||
CP02 | Change in the address of a patent holder | ||
CP02 | Change in the address of a patent holder |
Address after: 210012 room 401-404, building 5, chuqiaocheng, No. 57, Andemen street, Yuhuatai District, Nanjing, Jiangsu Province Patentee after: AUTOCORE INTELLIGENT TECHNOLOGY (NANJING) Co.,Ltd. Address before: 211800 building 12-289, 29 buyue Road, Qiaolin street, Pukou District, Nanjing City, Jiangsu Province Patentee before: AUTOCORE INTELLIGENT TECHNOLOGY (NANJING) Co.,Ltd. |