CN115964195A - Dds主题的进程通信方式配置方法及装置 - Google Patents
Dds主题的进程通信方式配置方法及装置 Download PDFInfo
- Publication number
- CN115964195A CN115964195A CN202211689420.6A CN202211689420A CN115964195A CN 115964195 A CN115964195 A CN 115964195A CN 202211689420 A CN202211689420 A CN 202211689420A CN 115964195 A CN115964195 A CN 115964195A
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- communication mode
- topic
- theme
- 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.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明涉及自动驾驶技术领域,提供一种DDS主题的进程通信方式配置方法及装置,该方法包括:读取拓扑配置文件中的节点信息;对于同主题下具有发布订阅关系的两个节点,在两个节点各自的所在主机为同一主机的情况下,设置两个节点对应该主题的通信方式为共享内存,在两个节点各自的所在主机为不同主机的情况下,设置两个节点对应该主题的通信方式为套接字;合并每个节点对应各主题的通信方式,以得到每个节点对应各主题最终的通信方式;按节点名称将每个节点对应各主题最终的通信方式写入拓扑配置文件中对应的节点信息。本发明能够简单、便捷地为每个DDS主题选择最佳的进程间传输方式,且满足兼顾跨主机和实时性,又能最大限度地节省系统资源。
Description
技术领域
本发明涉及自动驾驶技术领域,尤其涉及一种DDS主题的进程通信方式配置方法及装置。
背景技术
机器人操作系统(Robot Operating System,ROS)运行时的基本单位是节点(Node),节点为ROS中的通信实体,即运行的进程。进程之间往往需要传递一些信息,进程之间的信息传递看作是节点和节点间的连接关系。若将进程看作图的节点,节点和节点间的连接关系即为图的边,那么运行时的ROS可看作一个图(Graph)。ROS的Graph是ROS2(ROS的第二版本)的核心,由节点及节点间的连接关系组成,节点可以发布主题(topic,即节点间连接关系),也可以订阅其它节点发布的主题。目前,自动驾驶、辅助驾驶和仿真机器人等领域广泛采用此ROS2架构。
现有的自动驾驶系统中可通过声明式编程框架将节点间的连接关系和运行时的部署信息保存到配置文件中,由声明式编程框架定制的工具基于配置文件生成代码和部署文件,开发人员只需实现发布主题和订阅主题的业务即可,极大地简化了ROS节点的开发和部署工作。部署文件以硬件类型分类,每一种硬件类型下有多种场景,每个场景定义了要加载哪些ROS节点以及节点部署在哪台主机。持续集成阶段根据硬件类型,生成该硬件类型所有的场景配置文件(即拓扑配置文件)。
ROS2引入了数据分发服务(Data Distribution Service,DDS)协议,负责节点间的通信。DDS是新一代分布式实时通信中间件协议,采用发布/订阅体系架构,强调以数据为中心,提供丰富的QoS服务质量策略,以保障数据进行实时、高效、灵活地分发,可满足各种分布式实时通信应用需求。发布者与订阅者之间通过主题topic进行匹配,具有相同主题的发布者与订阅者可以直接进行点对点的数据传输。
共享内存和套接字(socket)是常用的两种进程间通信方式,主流的DDS产品都集成了这两种方式,例如:RTI DDS、Fast DDS和Open DDS等。共享内存是最快的传输方式,它省略了若干次内核态与用户态间的数据拷贝,但只适用于互相通信的进程在同一台主机上;socket通信不仅可以跨网络与不同主机的进程间通信,还可以在同主机上进程间通信。因此,DDS主题的传输方式可以设置为共享内存(shmem)、套接字(socket)和共享内存结合套接字(shmem&socket)三种方式。
套接字虽然可以在主机内和主机间通信,但传输时延较大,随着传输消息的变大,传输性能下降明显,严重影响实时性;共享内存的传输时延小,不受传输消息大小的影响,但无法跨主机通信;如果DDS主题的通信采用共享内存结合套接字的方式,即满足了跨主机通信又兼顾实时性,但会造成系统资源的浪费。为满足实时性和节省系统资源,必须为每个主题设置适合的通信方式,然而不同的业务场景,节点可能会部署到不同的主机上,随着业务场景和节点的增加,配置最佳的进程间通信方式成为一项复杂繁琐的任务。
因此,如何简单、便捷地为每个DDS主题选择最佳的进程间传输方式,且满足兼顾跨主机和实时性,又能最大限度地节省系统资源是目前亟待解决的技术问题。
发明内容
本发明提供一种DDS主题的进程通信方式配置方法及装置,用以解决现有技术中存在的上述技术问题。
本发明提供一种DDS主题的进程通信方式配置方法,包括:
读取拓扑配置文件中的节点信息,所述节点信息包括:节点名称、角色、主题和所在主机,同一主题下,所述角色为:发布者或订阅者;
对于同主题下具有发布订阅关系的两个节点,在两个节点各自的所在主机为同一主机的情况下,设置两个节点对应该主题的通信方式为共享内存,在两个节点各自的所在主机为不同主机的情况下,设置两个节点对应该主题的通信方式为套接字;
合并每个节点对应各主题的通信方式,以得到每个节点对应各主题最终的通信方式;
按节点名称将每个节点对应各主题最终的通信方式写入所述拓扑配置文件中对应的节点信息。
根据本发明提供的一种DDS主题的进程通信方式配置方法,对于同主题下具有发布订阅关系的两个节点,在两个节点各自的所在主机为同一主机的情况下,设置两个节点对应该主题的通信方式为共享内存,在两个节点各自的所在主机为不同主机的情况下,设置两个节点对应该主题的通信方式为套接字,包括:
根据节点信息中的主题,对节点进行分组,遍历每个主题下的节点;
在发布者节点和订阅者节点各自的所在主机为同一主机的情况下,设置发布者节点和订阅者节点对应该主题的通信方式为共享内存,在发布者节点和订阅者节点各自的所在主机为不同主机的情况下,设置发布者节点和订阅者节点对应该主题的通信方式为套接字。
根据本发明提供的一种DDS主题的进程通信方式配置方法,根据节点信息中的主题,对节点进行分组,遍历每个主题下的节点,包括:
根据所述主题,对节点进行分组,在主题组内再根据角色将节点分为发布者节点组和订阅者节点组;
对于每个主题组分别遍历发布者节点组和订阅者节点组中的节点。
根据本发明提供的一种DDS主题的进程通信方式配置方法,根据所述主题,对节点进行分组,在主题组内再根据角色将节点分为发布者节点组和订阅者节点组之后,还包括:
生成临时分组文件,所述临时分组文件以主题为主目录,每个主题目录下分别记录发布者节点组和订阅者节点组中的节点名称和所在主机,
所述对于每个主题组分别遍历发布者节点组和订阅者节点组中的节点,包括:
根据所述临时分组文件遍历发布者节点组和订阅者节点组中的节点。
根据本发明提供的一种DDS主题的进程通信方式配置方法,所述拓扑配置文件为Ymal格式文件,节点信息包括:节点名称字段、所在主机字段和连接关系字段,所述连接关系字段包括:所述主题和角色。
根据本发明提供的一种DDS主题的进程通信方式配置方法,读取拓扑配置文件中的节点信息,包括:
读取拓扑配置文件的节点名称字段、所在主机字段和连接关系字段,以获取节点名称、所在主机、主题和角色。
根据本发明提供的一种DDS主题的进程通信方式配置方法,按节点名称将每个节点对应各主题最终的通信方式写入所述拓扑配置文件中对应的节点信息,包括:
从拓扑配置文件的节点名称字段中获取节点名称;
按节点名称将节点对应各主题最终的通信方式写入对应的连接关系字段。
本发明还提供一种DDS主题的进程通信方式配置装置,包括:
文件读取模块,用于读取拓扑配置文件中的节点信息,所述节点信息包括:节点名称、角色、主题和所在主机,同一主题下,所述角色为:发布者或订阅者;
通信方式设置模块,用于对于同主题下具有发布订阅关系的两个节点,在两个节点各自的所在主机为同一主机的情况下,设置两个节点对应该主题的通信方式为共享内存,在两个节点各自的所在主机为不同主机的情况下,设置两个节点对应该主题的通信方式为套接字;
通信方式合并模块,用于合并每个节点对应各主题的通信方式,以得到每个节点对应各主题最终的通信方式;
文件写入模块,用于按节点名称将每个节点对应各主题最终的通信方式写入所述拓扑配置文件中对应的节点信息。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述的DDS主题的进程通信方式配置方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述的DDS主题的进程通信方式配置方法。
本发明提供的DDS主题的进程通信方式配置方法及装置,通过上述步骤可以在持续集成时,自动为每个DDS主题选择最佳的进程间通信方式,在自动驾驶系统中,上述步骤可集成在声明式编程框架中实现,由于是在持续集成时自动配置,配置过程简单、便捷,而且在保证兼顾跨主机及实时性的同时,最大限度地节省系统资源。部署后,运行时,系统(如:自动驾驶系统)调用DDS接口,为每个主题的订阅者和发布者设置传输方式,也就是说在持续集成阶段计算出最佳传输方式,在系统加载时使配置生效。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的DDS主题的进程通信方式配置方法流程示意图;
图2是本发明提供的DDS主题的进程通信方式配置装置结构示意图;
图3是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例的DDS主题的进程通信方式配置方法,如图1所示,包括:
步骤S110、读取拓扑配置文件中的节点信息,所述节点信息包括:节点名称、角色、主题和所在主机,同一主题下,所述角色为:发布者或订阅者。其中,拓扑配置文件中记录的是某一场景的拓扑配置信息,该拓扑配置信息以ROS节点分组(即节点是配置文件的基本单位,或树形结构的第一层节点),主题为节点发布或订阅的主题。示例性地,如下表1所示,为某一场景下的拓扑配置文件。
表1某一场景下的拓扑配置文件
表1中有三个节点,节点名称(name)分别为:FusionModule、PredictionModule和RecorderModule,location表示所在主机,connections表示连接关系(或主题关系),topic_name表示主题,type表示角色,同一主题下,角色类型有两类:发布者(publisher)或订阅者(subscriber)。
其中,对于自动驾驶,随着硬件平台的不断演进,自动驾驶系统会有不同的硬件平台,例如:高配和低配,采用不同品牌的芯片。在不同的硬件平台上,对某一个ROS节点来说,可能部署、也可能不部署,可能部署在不同主机(例如:x86_64主机、arm芯片主机)上。自动驾驶系统也有不同的应用场景,例如:调试场景,会部署一些ROS节点用于数据收集,而这些节点在商用场景时是不会部署。可见,每个硬件有多个场景,例如:调试场景、商用场景和replay场景等,每个场景对应一个如表1的配置文件。
步骤S120、对于同主题下具有发布订阅关系的两个节点,在两个节点各自的所在主机为同一主机的情况下,设置两个节点对应该主题的通信方式为共享内存,在两个节点各自的所在主机为不同主机的情况下,设置两个节点对应该主题的通信方式为套接字。例如上表1所示:DDS主题fusion_result有一个发布者节点FusionModule和两个订阅者节点PredictionModule和RecorderModule,FusionModule和PredictionModule在主机HostA,RecorderModule在主机HostB。对于FusionModule和PredictionModule,两者在同一主机上,因此设置两个节点对应主题fusion_result的通信方式为共享内存(shmem);对于FusionModule和RecorderModule,两者在不同主机上,因此设置两个节点对应主题fusion_result的通信方式为套接字(socket)。
步骤S130、合并每个节点对应各主题的通信方式,以得到每个节点对应各主题最终的通信方式。在自动驾驶系统中,大多数节点都是订阅多个主题,发布一两个主题,根据收到订阅的主题内容决定发布主题的内容,即由于每个节点对于不同主题可能角色不同,而且一个发布者节点发布的主题可能会有多个订阅者节点订阅,一个订阅者节点也可能订阅多个发布者节点发布的不同主题,在步骤S120中设置完成后,节点对应某个主题会被设置为不同的通信方式,因此,需要对通信方式进行合并。具体地,对于每个节点对应某个主题被设置的通信方式若均是套接字(socket)或共享内存(shmem),则其最终的通信方式为套接字(socket)或共享内存(shmem),若在一个发布订阅关系中被设置为套接字(socket),另一个发布订阅关系中被设置为套接字(socket)共享内存(shmem),那么其最终的通信方式为套接字&共享内存(socket&shmem)。
例如:对于上述例子中发布者节点FusionModule对应主题fusion_result的通信方式,由于与其相应的两个订阅者节点在不同主机上而被分别配置为套接字(socket)、共享内存(shmem),合并后发布者节点FusionModule对应主题fusion_result的通信方式设置为套接字&共享内存(socket&shmem)。
步骤S140、按节点名称将每个节点对应各主题最终的通信方式写入所述拓扑配置文件中对应的节点信息,以便于在持续集成时自动为每个DDS主题选择最佳的进程间通信方式。
本实施例的DDS主题的进程通信方式配置方法及装置,通过上述步骤可以在持续集成时,自动为每个DDS主题选择最佳的进程间通信方式,在自动驾驶系统中,上述步骤S110~S140可集成在声明式编程框架中实现,由于是在持续集成时自动配置,配置过程简单、便捷,而且在保证兼顾跨主机及实时性的同时,最大限度地节省系统资源。部署后,运行时,系统(如:自动驾驶系统)调用DDS接口,为每个主题的订阅者和发布者设置传输方式,也就是说在持续集成阶段计算出最佳传输方式,在系统加载时使配置生效。
自动驾驶系统中,声明式编程框架会根据实际运行场景为每一个主题配置最佳的通信方式,相较于所有主题采用共享内存&套接字,主机CPU占用率下降15%-25%,内存使用率下降10%-20%,节省系统资源。
本实施例中,为了更快且有序地对每个节点进行通信方式设置,步骤S120包括:
根据节点信息中的主题,对节点进行分组,遍历每个主题下的节点。按主题遍历发布者节点和订阅者节点,使得整个进程通信方式配置过程按主题有序进行,配置效率更高,而且不易漏掉节点。
在发布者节点和订阅者节点各自的所在主机为同一主机的情况下,设置发布者节点和订阅者节点对应该主题的通信方式为共享内存,在发布者节点和订阅者节点各自的所在主机为不同主机的情况下,设置发布者节点和订阅者节点对应该主题的通信方式为套接字。
进一步地,根据节点信息中的主题,对节点进行分组,遍历每个主题下的节点,包括:
根据所述主题,对节点进行分组,在主题组内再根据角色将节点分为发布者节点组和订阅者节点组。
对于每个主题组分别遍历发布者节点组和订阅者节点组中的节点。
例如:遍历主题fusion_result所有的发布者:
FusionModule与PredictionModule在同一主机上,则使能共享内存;FusionModule与RecorderModule不在同一主机上,则使能套接字。故FusionModule::fusion_result的通信方式为共享内存&套接字。
遍历主题fusion_result所有的订阅者:
PredictionModule与FusionModule同一主机,使能共享内存;故PredictionModule::fusion_result的通信方式为共享内存。
RecorderModule与FusionModule不同主机,使能套接字;故RecorderModule::fusion_result的通信方式为套接字。
本实施例中,根据所述主题,对节点进行分组,在主题组内再根据角色将节点分为发布者节点组和订阅者节点组之后,还包括:
生成临时分组文件,所述临时分组文件以主题为主目录,每个主题目录下分别记录发布者节点组和订阅者节点组中的节点名称和所在主机。
所述对于每个主题组分别遍历发布者节点组和订阅者节点组中的节点,包括:
根据所述临时分组文件遍历发布者节点组和订阅者节点组中的节点。
在对每个节点对应主题设置完通信方式后,还可以将设置的通信方式先写入临时分组文件中,后续根据临时分组文件更新拓扑配置文件。
临时分组文件如表2和3所示,表3中的临时分组文件中写入了通信方式(transport_selection)。通过临时分组文件的方式能够有序的对发布者节点组和订阅者节点组进行遍历,并暂存设置的通信方式,使得整个进程通信方式配置过程不易出错,可靠性更高。
表2设置主题通信方式前的临时分组文件
表3设置主题通信方式前的临时分组文件
本实施例中,所述拓扑配置文件为Ymal格式文件,如上述的表1~3均为Ymal格式文件,节点信息包括:节点名称字段、所在主机字段和连接关系字段(connections),所述连接关系字段包括:所述主题和角色。当然,拓扑配置文件还可以是json、toml等格式。
基于上述Ymal格式文件,读取拓扑配置文件中的节点信息,包括:读取拓扑配置文件的节点名称字段、所在主机字段和连接关系字段,以获取节点名称、所在主机、主题和角色。
基于上述Ymal格式文件,按节点名称将每个节点最终的通信方式写入所述拓扑配置文件中对应的节点信息,包括:
从拓扑配置文件的节点名称字段中获取节点名称;按节点名称将节点对应各主题最终的通信方式写入对应的连接关系字段。具体地,可读取设置通信方式后的临时分组文件,即上表3中的内容,根据主题和节点名称读取通信方式,将通信方式写入拓扑配置文件中相同主题和节点名称对应的连接关系字段中。写入通信方式后的拓扑配置文件如下表4所示:
表4写入通信方式的拓扑配置文件
下面对本发明提供的DDS主题的进程通信方式配置装置进行描述,下文描述的DDS主题的进程通信方式配置装置与上文描述的DDS主题的进程通信方式配置方法可相互对应参照。
如图2所示,本发明的DDS主题的进程通信方式配置装置,包括:
文件读取模块210,用于读取拓扑配置文件中的节点信息,所述节点信息包括:节点名称、角色、主题和所在主机,同一主题下,所述角色为:发布者或订阅者。
通信方式设置模块220,用于对于同主题下具有发布订阅关系的两个节点,在两个节点各自的所在主机为同一主机的情况下,设置两个节点对应该主题的通信方式为共享内存,在两个节点各自的所在主机为不同主机的情况下,设置两个节点对应该主题的通信方式为套接字。
通信方式合并模块230,用于合并每个节点对应各主题的通信方式,以得到每个节点对应各主题最终的通信方式。
文件写入模块240,用于按节点名称将每个节点对应各主题最终的通信方式写入所述拓扑配置文件中对应的节点信息。
本发明提供的DDS主题的进程通信方式配置装置,通过上述模块可以在持续集成时,自动为每个DDS主题选择最佳的进程间通信方式,在自动驾驶系统中,上述步骤S110~S140可集成在声明式编程框架中实现,由于是在持续集成时自动配置,配置过程简单、便捷,而且在保证兼顾跨主机及实时性的同时,最大限度地节省系统资源。部署后,运行时,系统(如:自动驾驶系统)调用DDS接口,为每个主题的订阅者和发布者设置传输方式,也就是说在持续集成阶段计算出最佳传输方式,在系统加载时使配置生效。
可选地,通信方式设置模块220包括:
分组遍历模块,用于根据节点信息中的主题,对节点进行分组,遍历每个主题下的节点。
分组设置模块,用于在发布者节点和订阅者节点各自的所在主机为同一主机的情况下,设置发布者节点和订阅者节点对应该主题的通信方式为共享内存,在发布者节点和订阅者节点各自的所在主机为不同主机的情况下,设置发布者节点和订阅者节点对应该主题的通信方式为套接字。
可选地,分组遍历模块具体用于:
根据所述主题,对节点进行分组,在主题组内再根据角色将节点分为发布者节点组和订阅者节点组。
对于每个主题组分别遍历发布者节点组和订阅者节点组中的节点。
可选地,分组遍历模块还具体用于:
生成临时分组文件,所述临时分组文件以主题为主目录,每个主题目录下分别记录发布者节点组和订阅者节点组中的节点名称和所在主机。
根据所述临时分组文件遍历发布者节点组和订阅者节点组中的节点。
可选地,所述拓扑配置文件为Ymal格式文件,节点信息包括:节点名称字段、所在主机字段和连接关系字段,所述连接关系字段包括:所述主题和角色。
可选地,文件读取模块210具体用于读取拓扑配置文件的节点名称字段、所在主机字段和连接关系字段,以获取节点名称、所在主机、主题和角色。
可选地,文件写入模块240具体用于从拓扑配置文件的节点名称字段中获取节点名称;按节点名称将节点对应各主题最终的通信方式写入对应的连接关系字段。
图3示例了一种电子设备的实体结构示意图,如图3所示,该电子设备可以包括:处理器(processor)310、通信接口(Communications Interface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储器330中的逻辑指令,以执行DDS主题的进程通信方式配置方法,该方法包括:
读取拓扑配置文件中的节点信息,所述节点信息包括:节点名称、角色、主题和所在主机,同一主题下,所述角色为:发布者或订阅者。
对于同主题下具有发布订阅关系的两个节点,在两个节点各自的所在主机为同一主机的情况下,设置两个节点对应该主题的通信方式为共享内存,在两个节点各自的所在主机为不同主机的情况下,设置两个节点对应该主题的通信方式为套接字。
合并每个节点对应各主题的通信方式,以得到每个节点对应各主题最终的通信方式。
按节点名称将每个节点对应各主题最终的通信方式写入所述拓扑配置文件中对应的节点信息。
此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的DDS主题的进程通信方式配置方法,该方法包括:
读取拓扑配置文件中的节点信息,所述节点信息包括:节点名称、角色、主题和所在主机,同一主题下,所述角色为:发布者或订阅者。
对于同主题下具有发布订阅关系的两个节点,在两个节点各自的所在主机为同一主机的情况下,设置两个节点对应该主题的通信方式为共享内存,在两个节点各自的所在主机为不同主机的情况下,设置两个节点对应该主题的通信方式为套接字。
合并每个节点对应各主题的通信方式,以得到每个节点对应各主题最终的通信方式。
按节点名称将每个节点对应各主题最终的通信方式写入所述拓扑配置文件中对应的节点信息。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的DDS主题的进程通信方式配置方法,该方法包括:
读取拓扑配置文件中的节点信息,所述节点信息包括:节点名称、角色、主题和所在主机,同一主题下,所述角色为:发布者或订阅者。
对于同主题下具有发布订阅关系的两个节点,在两个节点各自的所在主机为同一主机的情况下,设置两个节点对应该主题的通信方式为共享内存,在两个节点各自的所在主机为不同主机的情况下,设置两个节点对应该主题的通信方式为套接字。
合并每个节点对应各主题的通信方式,以得到每个节点对应各主题最终的通信方式。
按节点名称将每个节点对应各主题最终的通信方式写入所述拓扑配置文件中对应的节点信息。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种DDS主题的进程通信方式配置方法,其特征在于,包括:
读取拓扑配置文件中的节点信息,所述节点信息包括:节点名称、角色、主题和所在主机,同一主题下,所述角色为:发布者或订阅者;
对于同主题下具有发布订阅关系的两个节点,在两个节点各自的所在主机为同一主机的情况下,设置两个节点对应该主题的通信方式为共享内存,在两个节点各自的所在主机为不同主机的情况下,设置两个节点对应该主题的通信方式为套接字;
合并每个节点对应各主题的通信方式,以得到每个节点对应各主题最终的通信方式;
按节点名称将每个节点对应各主题最终的通信方式写入所述拓扑配置文件中对应的节点信息。
2.根据权利要求1所述的DDS主题的进程通信方式配置方法,其特征在于,对于同主题下具有发布订阅关系的两个节点,在两个节点各自的所在主机为同一主机的情况下,设置两个节点对应该主题的通信方式为共享内存,在两个节点各自的所在主机为不同主机的情况下,设置两个节点对应该主题的通信方式为套接字,包括:
根据节点信息中的主题,对节点进行分组,遍历每个主题下的节点;
在发布者节点和订阅者节点各自的所在主机为同一主机的情况下,设置发布者节点和订阅者节点对应该主题的通信方式为共享内存,在发布者节点和订阅者节点各自的所在主机为不同主机的情况下,设置发布者节点和订阅者节点对应该主题的通信方式为套接字。
3.根据权利要求2所述的DDS主题的进程通信方式配置方法,其特征在于,根据节点信息中的主题,对节点进行分组,遍历每个主题下的节点,包括:
根据所述主题,对节点进行分组,在主题组内再根据角色将节点分为发布者节点组和订阅者节点组;
对于每个主题组分别遍历发布者节点组和订阅者节点组中的节点。
4.根据权利要求3所述的DDS主题的进程通信方式配置方法,其特征在于,根据所述主题,对节点进行分组,在主题组内再根据角色将节点分为发布者节点组和订阅者节点组之后,还包括:
生成临时分组文件,所述临时分组文件以主题为主目录,每个主题目录下分别记录发布者节点组和订阅者节点组中的节点名称和所在主机,
所述对于每个主题组分别遍历发布者节点组和订阅者节点组中的节点,包括:
根据所述临时分组文件遍历发布者节点组和订阅者节点组中的节点。
5.根据权利要求1~4中任一项所述的DDS主题的进程通信方式配置方法,其特征在于,所述拓扑配置文件为Ymal格式文件,节点信息包括:节点名称字段、所在主机字段和连接关系字段,所述连接关系字段包括:所述主题和角色。
6.根据权利要求5所述的DDS主题的进程通信方式配置方法,其特征在于,读取拓扑配置文件中的节点信息,包括:
读取拓扑配置文件的节点名称字段、所在主机字段和连接关系字段,以获取节点名称、所在主机、主题和角色。
7.根据权利要求5所述的DDS主题的进程通信方式配置方法,其特征在于,按节点名称将每个节点对应各主题最终的通信方式写入所述拓扑配置文件中对应的节点信息,包括:
从拓扑配置文件的节点名称字段中获取节点名称;
按节点名称将节点对应各主题最终的通信方式写入对应的连接关系字段。
8.一种DDS主题的进程通信方式配置装置,其特征在于,包括:
文件读取模块,用于读取拓扑配置文件中的节点信息,所述节点信息包括:节点名称、角色、主题和所在主机,同一主题下,所述角色为:发布者或订阅者;
通信方式设置模块,用于对于同主题下具有发布订阅关系的两个节点,在两个节点各自的所在主机为同一主机的情况下,设置两个节点对应该主题的通信方式为共享内存,在两个节点各自的所在主机为不同主机的情况下,设置两个节点对应该主题的通信方式为套接字;
通信方式合并模块,用于合并每个节点对应各主题的通信方式,以得到每个节点对应各主题最终的通信方式;
文件写入模块,用于按节点名称将每个节点对应各主题最终的通信方式写入所述拓扑配置文件中对应的节点信息。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~7中任一项所述的DDS主题的进程通信方式配置方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1~7中任一项所述的DDS主题的进程通信方式配置方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211689420.6A CN115964195A (zh) | 2022-12-27 | 2022-12-27 | Dds主题的进程通信方式配置方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211689420.6A CN115964195A (zh) | 2022-12-27 | 2022-12-27 | Dds主题的进程通信方式配置方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115964195A true CN115964195A (zh) | 2023-04-14 |
Family
ID=87362914
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211689420.6A Pending CN115964195A (zh) | 2022-12-27 | 2022-12-27 | Dds主题的进程通信方式配置方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115964195A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116954952A (zh) * | 2023-09-18 | 2023-10-27 | 之江实验室 | 一种机器人的自适应混合通信方法、装置、介质及设备 |
-
2022
- 2022-12-27 CN CN202211689420.6A patent/CN115964195A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116954952A (zh) * | 2023-09-18 | 2023-10-27 | 之江实验室 | 一种机器人的自适应混合通信方法、装置、介质及设备 |
CN116954952B (zh) * | 2023-09-18 | 2024-01-09 | 之江实验室 | 一种机器人的自适应混合通信方法、装置、介质及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020024408A1 (zh) | 测试装置、测试的方法及存储介质 | |
CN113296792B (zh) | 存储方法、装置、设备、存储介质和系统 | |
WO2021088641A1 (zh) | 数据发送方法、处理方法、接收方法及其设备、存储介质 | |
CN110069346B (zh) | 多进程间资源共享方法、装置、电子设备 | |
CN111913782A (zh) | 一种基于隧道技术实现虚拟机流量镜像的方法与设备 | |
CN115964195A (zh) | Dds主题的进程通信方式配置方法及装置 | |
CN112463290A (zh) | 动态调整计算容器的数量的方法、系统、装置和存储介质 | |
CN111078353A (zh) | 存储设备的操作方法及物理服务器 | |
CN111694639A (zh) | 进程容器地址的更新方法、装置和电子设备 | |
CN115268949A (zh) | 一种镜像预热方法、装置、设备及存储介质 | |
CN112860412B (zh) | 业务数据处理方法、装置、电子设备及存储介质 | |
CN110753040A (zh) | 一种请求处理的方法及装置 | |
CN113114594B (zh) | 一种策略生成方法及装置、存储介质 | |
CN112596669A (zh) | 一种基于分布式存储的数据处理方法及装置 | |
CN113296979A (zh) | 一种虚幻引擎与外部程序的数据通信方法 | |
CN109951532B (zh) | 一种基于dpdk的流量模型自动变换装置 | |
CN110502238A (zh) | 一种前后端联调的方法及装置 | |
CN115277750B (zh) | 一种多系统智能座舱通信组件 | |
CN111600753B (zh) | 一种云计算环境下智能agent管理系统 | |
CN112597406A (zh) | 一种文件传输方法、装置、终端设备及存储介质 | |
CN114021715A (zh) | 基于Tensorflow框架的深度学习训练方法 | |
CN114064323A (zh) | 资源共享方法、终端、计算机可读介质 | |
CN111782363A (zh) | 一种支持多业务场景调用的方法和流程系统 | |
CN110851077A (zh) | Logstash的数据处理装置及方法 | |
CN112685168A (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 |