CN104243606B - 一种c/s模式的dds通信系统及方法 - Google Patents

一种c/s模式的dds通信系统及方法 Download PDF

Info

Publication number
CN104243606B
CN104243606B CN201410513521.7A CN201410513521A CN104243606B CN 104243606 B CN104243606 B CN 104243606B CN 201410513521 A CN201410513521 A CN 201410513521A CN 104243606 B CN104243606 B CN 104243606B
Authority
CN
China
Prior art keywords
data
middleware
module
buffering area
server
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
CN201410513521.7A
Other languages
English (en)
Other versions
CN104243606A (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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN201410513521.7A priority Critical patent/CN104243606B/zh
Publication of CN104243606A publication Critical patent/CN104243606A/zh
Application granted granted Critical
Publication of CN104243606B publication Critical patent/CN104243606B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种C/S模式的DDS通信系统及方法,在标准DDS通信系统上实现的C/S模式的DDS通信系统,新增的服务器实现了数据发布者和数据订阅者之间的分离,数据发布者不再直接将数据发往数据订阅者,数据订阅者的身份和地址对于数据发布者而言是透明保密的,DDS通信系统的安全性大为提高,实现了数据发布者和数据订阅者之间的分离,数据订阅者不再公开身份和地址;服务器可以对数据进行检测,有效的降低了P2P模式下DDS通信系统中垃圾数据带来的安全隐患。

Description

一种C/S模式的DDS通信系统及方法
技术领域
本发明涉及数据通信领域,尤其涉及一种C/S模式的DDS通信系统及方法。
背景技术
DDS是工业数据分发标准,在标准中数据是终端到终端的,即machine-to-machine简称m2m。目前所实现的DDS通信系统中,均为P2P(Peer to Peer,即对等网络)通信模式,数据发布(Data Publish)之后由数据订阅端(Data Subscribe)接接收,是传统的点对点的通信模式。该模式实现的通信系统灵活性和扩展性差,需要数据发布时必须指定数据订阅端的IP和Socket,难以实现动态的终端加入。现有的DDS通信系统中,在有内部网络情况下,比如有路由存在时,外部网络直接发布数据到内部网络,给内部网络带来很大的安全问题。
发明内容
针对现有DDS通信系统的缺陷,同时增强系统的功能,本发明提供了一种C/S模式的DDS通信系统及方法。
为了解决上述技术问题,本发明的技术方案如下:
一种C/S模式的DDS通信系统,包括数据发布者、数据发布者对应的中间件、数据订阅者、数据订阅者对应的中间件,还包括服务器,所述服务器设置在数据发布者对应的中间件与数据订阅者对应的中间件之间,所述服务器包括监听模块中间件、缓冲区模块、配置模块、发布模块中间件;
所述监听模块中间件用于监听从数据发布者发布的数据,当数据发布者没有接入系统或者数据发布者没有数据发布时,监听模块处于等待状态;
所述缓冲区模块用于存储监听模块中间件接收到的数据,并提供给发布模块中间件读取;
所述发布模块中间件用于将数据发布给数据订阅者,当缓冲模块中的缓冲区没有数据时处于等待状态;
所述配置模块包含两类配置:监听配置、发布配置;监听配置用于配置监听模块中间件,发布配置用于配置发布模块中间件。
一种C/S模式的DDS通信方法,,包括如下步骤:
21)在数据发布者对应的中间件与数据订阅者对应的中间件之间配置服务器;
22)初始化服务器包括对服务器进行配置和中间件初始化:服务器配置分为监听模块中间件的配置和发布模块中间件的配置,包括服务器IP、IP类型、Socket端口设置、以及其中中间件的配置选项,在修改完成服务器配置后,启动服务器进程进行中间件初始化,中间件的初始化根据配置文件中的Socket端口向操作系统申请相应的端口号,以及分配中间件的缓冲区,如果申请端口号失败,则服务器启动失败,如果成功,则完成服务器初始化;
23)缓冲区模块的申请和设置包括缓冲区的申请和配置:首先申请缓冲区,如果失败,退出服务器进程,如果成功,进行申请的缓冲区配置;配置缓冲区是对缓冲区的读写权限进行配置,在监听模块中间件接收到数据之后,通过线程往缓冲区写入数据,此时进行控制写操作,读权限针对发布模块中间件,如果缓冲区不为空,发布模块中间件读取其中数据;
24)监听模块中间件工作过程包括初始化、监听以及写往缓冲区三步:初始化过程包括监听模块中级件的Topic设置,如果有多种Topic,则需监听多种数据;在监听模块中间件启动之后,一直处于监听状态,如果收到数据,则写往缓冲区,如果没有数据到达,则继续监听;写缓冲区是监听模块中间件在接收到数据之后的工作过程,如果有多个Topic,为了防止多个数据同时到达的情形,需要对缓冲区进行写保护操作;
25)发布模块中间件工作过程包括初始化、查询缓冲区和发布数据三步:初始化过程包括发布模块中间件的Topic设置、发布数据的属性设置,如果有多种Topic,则需对不同的Topic进行不同的属性设置;在发布模块中间件启动后,一直对缓冲区进行查询操作,一旦发现缓冲区不为空,读取缓冲区中数据,并进行数据发布。
本发明的有益效果在于:在标准DDS通信系统上实现的C/S模式的DDS通信系统,新增的服务器实现了数据发布者和数据订阅者之间的分离,数据发布者不再直接将数据发往数据订阅者,数据订阅者的身份和地址对于数据发布者而言是透明保密的。DDS通信系统的安全性大为提高,实现了数据发布者和数据订阅者之间的分离,数据订阅者不再公开身份和地址;服务器可以对数据进行检测,有效的降低了P2P模式下DDS通信系统中垃圾数据带来的安全隐患。
附图说明
图1为本发明实施例的工程流程示意图;
图2为服务器详细设计示意图。
具体实施方式
下面将结合附图和具体实施例对本发明做进一步的说明。
本发明的主要思想:P2P的DDS通信模式作为基本的DDS的通信模式,直接以数据为中心(Data-Centric)进行实时数据发布订阅,具有高效率高实时性的优点,同时P2P的模式也存在终端不便于管理、不能动态加入、通信双方安全隐患等问题。C/S模式的通信方式可以很好的解决上述问题,同时又具有DDS通信高效的优点。
C/S模式的实现原理:P2P的DDS模型中发布者直接将数据发布出去,订阅者如果在监听相同主题(Topic)的数据,则可以接收该数据。在C/S利用现有的DDS模型,增加一个服务器进行管理。服务器的具体实现:服务器中的监听模块监听来自发布者的数据,当Topic一致时,接收该数据,并将数据存储到缓冲区,这样每一个发布者只需要知道服务器的IP和Socket端口即可,不需要知道每个订阅的地址,能有效的隔离了发布者和订阅者,保证了订阅者的安全;服务器中的发布模块在检测到缓冲区有数据时,进行数据发布,订阅者接收相同Topic的数据,如果订阅者能接收到服务器的广播数据,则直接采用广播方式,不需要修改服务器配置模块中发布配置;如果不能接收到广播数据也只需要将该订阅者加入到服务器配置模块中的发布配置中,与P2P模式相比,只需修改服务器配置即可,方便的实现了动态加入。同时,C/S模式允许服务器可以接收多种Topic,这样可以将不同的发布者的数据进行集中式处理,再由服务器发布给订阅者。
如图1所示,本发明提供的C/S模式DDS通信模型,在基本的P2P模式下,增加服务器,整个系统包括若干数据发布者、数据订阅者、每个发布者和订阅者都有对应的中间件,服务器包含监听模块中间件、缓冲区模块、配置模块、发布模块中间件。
如图2所示,本发明中服务器主要有四个步骤:初始化服务器、缓冲区模块的申请和配置、监听模块启动、发布模块启动。
初始化服务器的工作过程包括:服务器配置和中间件初始化。服务器配置包括监听模块中间件的配置和发布模块中间件的配置,其中需要设置的项包括:服务器IP、IP类型(IPv4或者IPv6)、Socket端口设置、以及其中一些中间件的配置选项,比如中间件缓冲区大小等。在修改完成服务器配置后,启动服务器进程进行中间件初始化。中间件的初始化主要是根据配置文件中的Socket端口向操作系统申请相应的端口号,以及分配中间件的缓冲区,如果申请端口号失败,则服务器启动失败,如果成功,则完成服务器初始化。
缓冲区模块的申请和设置包括缓冲区的申请和配置,缓冲区的实现方式有多种,比如共享内存、管道等,不管选用哪种实现方式均需要进行申请和配置两步。本实施例以管道作为缓冲区,首先申请缓冲区,即初始化匿名管道,如果失败,退出服务器进程,如果成功,进行申请的缓冲区配置;配置缓冲区主要是对缓冲区的读写权限进行配置,在监听模块中间件监接收到数据之后,只能有一个线程能往缓冲区写入数据,此时可以用信号量等方式进行控制写操作,读权限针对发布模块中间件,如果缓冲区不为空,发布模块中间件读取其中数据。
监听模块中间件工作过程包括初始化、监听以及写往缓冲区三步。初始化过程包括监听模块中间件的Topic设置,如果有多种Topic,则需监听多种数据;监听过程是监听模块中间件的主要工作过程,在监听模块中间件启动之后,一直处于监听状态,如果收到数据,则写往缓冲区,如果没有数据到达,则继续监听;写缓冲区是监听模块中间件在接收到数据之后的工作过程,如果有多个Topic,为了防止多个数据同时到达的情形,需要对缓冲区进行写保护操作。
发布模块中间件工作过程包括初始化、查询缓冲区和发布数据三步。初始化过程包括发布模块中间件的Topic设置、发布数据的属性设置,如发布数据的生存周期等,如果有多种Topic,则需对不同的Topic进行不同的属性设置;查询缓冲区是发布模块中间件的主要工作过程,在发布模块中间件启动后,一直对缓冲区进行查询操作,一旦发现缓冲区不为空,读取缓冲区中数据,并进行数据发布。
服务器在整个DDS通信中一直处于工作状态,只有在出错或者人为停止时才会退出。在没有接收到数据时,监听模块中间件一直处于监听状态,发布模块中间件处于查询缓冲区状态。
在服务器工作过程中,数据发布者可以动态加入,只要数据发布者的发布的数据Topic在服务器能接收的范围内即可,此时只需对服务器发布者配置加以修改即可;同时订阅者也可以动态加入,只要服务器发布配置中存在该订阅者的地址(广播或者P2P能到达)。
本发明解决了P2P模式下DDS通信系统的安全隐患和灵活性差的缺点,目前可以适用于多种领域。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明构思的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明保护范围内。

Claims (2)

1.一种C/S模式的DDS通信系统,包括数据发布者、数据发布者对应的中间件、数据订阅者、数据订阅者对应的中间件,其特征在于,还包括服务器,所述服务器设置在数据发布者对应的中间件与数据订阅者对应的中间件之间,所述服务器包括监听模块中间件、缓冲区模块、配置模块、发布模块中间件;
服务器中的监听模块中间件监听来自数据发布者的数据,当监听相同主题一致时,接收该数据,并将数据存储到缓冲区;当数据发布者没有接入系统或者数据发布者没有数据发布时,监听模块处于等待状态;有效的隔离了发布者和订阅者,保证了订阅者的安全;
所述缓冲区模块用于存储监听模块中间件接收到的数据,并提供给发布模块中间件读取;
所述发布模块中间件用于将数据发布给数据订阅者,当缓冲模块中的缓冲区没有数据时处于等待状态;
所述配置模块包含两类配置:监听配置、发布配置;监听配置用于配置监听模块中间件,发布配置用于配置发布模块中间件。
2.一种C/S模式的DDS通信方法,其特征在于,包括如下步骤:
21)在数据发布者对应的中间件与数据订阅者对应的中间件之间配置服务器;
22)初始化服务器包括对服务器进行配置和中间件初始化:服务器配置分为监听模块中间件的配置和发布模块中间件的配置,包括服务器IP、IP类型、Socket端口设置、以及其中中间件的配置选项,在修改完成服务器配置后,启动服务器进程进行中间件初始化,中间件的初始化根据配置文件中的Socket端口向操作系统申请相应的端口号,以及分配中间件的缓冲区,如果申请端口号失败,则服务器启动失败,如果成功,则完成服务器初始化;
23)缓冲区模块的申请和设置包括缓冲区的申请和配置:首先申请缓冲区,如果失败,退出服务器进程,如果成功,进行申请的缓冲区配置;配置缓冲区是对缓冲区的读写权限进行配置,在监听模块中间件接收到数据之后,通过线程往缓冲区写入数据,此时进行控制写操作,读权限针对发布模块中间件,如果缓冲区不为空,发布模块中间件读取其中数据;
24)监听模块中间件工作过程包括初始化、监听以及写往缓冲区三步:初始化过程包括监听模块中级件的Topic设置,如果有多种Topic,则需监听多种数据;在监听模块中间件启动之后,一直处于监听状态,如果收到数据,则写往缓冲区,如果没有数据到达,则继续监听;写缓冲区是监听模块中间件在接收到数据之后的工作过程,如果有多个Topic,为了防止多个数据同时到达的情形,需要对缓冲区进行写保护操作;
25)发布模块中间件工作过程包括初始化、查询缓冲区和发布数据三步:初始化过程包括发布模块中间件的Topic设置、发布数据的属性设置,如果有多种Topic,则需对不同的Topic进行不同的属性设置;在发布模块中间件启动后,一直对缓冲区进行查询操作,一旦发现缓冲区不为空,读取缓冲区中数据,并进行数据发布。
CN201410513521.7A 2014-09-29 2014-09-29 一种c/s模式的dds通信系统及方法 Active CN104243606B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410513521.7A CN104243606B (zh) 2014-09-29 2014-09-29 一种c/s模式的dds通信系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410513521.7A CN104243606B (zh) 2014-09-29 2014-09-29 一种c/s模式的dds通信系统及方法

Publications (2)

Publication Number Publication Date
CN104243606A CN104243606A (zh) 2014-12-24
CN104243606B true CN104243606B (zh) 2018-05-08

Family

ID=52230934

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410513521.7A Active CN104243606B (zh) 2014-09-29 2014-09-29 一种c/s模式的dds通信系统及方法

Country Status (1)

Country Link
CN (1) CN104243606B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106899645B (zh) * 2015-12-21 2019-10-18 北方信息控制集团有限公司 一种不稳定网络环境下的dds数据交互方法
CN109302435B (zh) * 2017-07-25 2021-03-16 腾讯科技(深圳)有限公司 消息发布方法、装置、系统、服务器及计算机可读存储介质
CN109361694B (zh) * 2018-11-22 2021-11-30 北京未尔锐创科技有限公司 一种网络通信方法
CN109788044A (zh) * 2018-12-28 2019-05-21 中国船舶重工集团公司第七二三研究所 一种基于rti dds驱动的通信中间件
CN110266783B (zh) * 2019-06-13 2022-02-22 中国铁道科学研究院集团有限公司通信信号研究所 一种基于dds的铁路ctc系统通信平台

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6901447B2 (en) * 1997-03-17 2005-05-31 Vitria Technology, Inc. Event driven communication system
CN101477635A (zh) * 2008-12-12 2009-07-08 华南理工大学 一种基于轻量级ale的嵌入式rfid中间件
CN101848236A (zh) * 2010-05-06 2010-09-29 北京邮电大学 具有分布式网络架构的实时数据分发系统及其工作方法
CN102684891A (zh) * 2011-03-10 2012-09-19 株式会社日立制作所 数据分发系统及数据分发服务器
CN103166975A (zh) * 2013-04-03 2013-06-19 上海航天测控通信研究所 一种dds通信系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6901447B2 (en) * 1997-03-17 2005-05-31 Vitria Technology, Inc. Event driven communication system
CN101477635A (zh) * 2008-12-12 2009-07-08 华南理工大学 一种基于轻量级ale的嵌入式rfid中间件
CN101848236A (zh) * 2010-05-06 2010-09-29 北京邮电大学 具有分布式网络架构的实时数据分发系统及其工作方法
CN102684891A (zh) * 2011-03-10 2012-09-19 株式会社日立制作所 数据分发系统及数据分发服务器
CN103166975A (zh) * 2013-04-03 2013-06-19 上海航天测控通信研究所 一种dds通信系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"基于DDS的数据分发中间件的设计与实现";冯国良;《中国优秀硕士学位论文全文数据库 信息科技辑》;20130215(第02(2013)期);第8,16-18,62-70页及表2.1,图2.2 *
"基于发布/订阅机制的传感器数据分发系统的设计与实现";徐涛;《中国优秀硕士学位论文全文数据库 信息科技辑》;20111215(第02(2013)期);第14,35-38,67-78页及图3-6 *

Also Published As

Publication number Publication date
CN104243606A (zh) 2014-12-24

Similar Documents

Publication Publication Date Title
CN104243606B (zh) 一种c/s模式的dds通信系统及方法
US9054958B2 (en) System and method for reducing information loss in an aggregated information handling system
US9930514B2 (en) Predefined wireless pairing
CN102647355B (zh) Lacp协商处理方法、中继节点及系统
US8775580B2 (en) Hard zoning on NPIV proxy/NPV devices
CN105229939B (zh) 无线通信系统中用于用户设备之间的通信的方法和装置
US9882802B2 (en) Auto management of a virtual device context enabled network infrastructure
US20130235774A1 (en) Energy-saving mobile node control method using wireless multi-interfaces
US10374942B2 (en) Link aggregation group management
CN104202364B (zh) 一种控制器的自动发现和配置方法和设备
WO2017037765A1 (en) Traffic-aware group reformation in a multi-group p2p network
CN108462956A (zh) 发现设备后即刻连接的方法和电子设备
CN105389278A (zh) 一种基于can总线的主从机串行通信方法
CN102571507A (zh) 一种唤醒设备的方法、休眠代理设备及系统
TW201735595A (zh) 通訊通道處理方法和系統
WO2013162608A1 (en) Home network packet delivery
WO2019079971A1 (zh) 群组的通信方法及装置、计算机存储介质、计算机设备
WO2018120940A1 (zh) 分布式业务服务系统及集中服务控制方法与其相应的装置
US9300529B2 (en) Communication system and network relay device
CN103728961B (zh) 数据采集方法、中转设备及电袋复合除尘器监控系统
US20130275648A1 (en) Determination of a zoned portion of a service delivery system
CN110192382B (zh) 一种网络通信方法、对等体及系统
CN102316039A (zh) 基于聚合体优先级策略的聚合体逻辑选择的方法及系统
WO2014051555A1 (en) Multicast message update
CN103078801A (zh) 为网络划分域的方法、装置及交换机

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant