首页 / 专利库 / 计算机网络 / 数据网络 / 通信网络数据传输的方法、装置、存储介质及终端设备

通信网络数据传输的方法、装置、存储介质及终端设备

阅读:771发布:2024-02-23

专利汇可以提供通信网络数据传输的方法、装置、存储介质及终端设备专利检索,专利查询,专利分析的服务。并且本 发明 提出一种通信网络数据传输的方法、装置、存储介质及终端设备,其中,所述方法包括:响应所述通信网络中的第一通信对象的加载,记录所述第一通信对象的拓扑信息于拓扑记录表中,其中,所述拓扑记录表对应于所述第一通信对象所属的 进程 ,并用于记录所述第一通信对象所在进程的拓扑信息以及记录从所述通信网络的其他进程中接收到的拓扑信息;以及根据所述拓扑记录表,选取相应的通信方式建立所述第一通信对象与匹配所述第一通信对象的第二通信对象两者之间的通信连接。采用本发明,实现通信网络中的通信对象之间可以基于不同的拓扑关系选取相应的通信方式来建立通信链路。,下面是通信网络数据传输的方法、装置、存储介质及终端设备专利的具体信息内容。

1.一种通信网络数据传输的方法,其特征在于,包括:
响应所述通信网络中的第一通信对象的加载,记录所述第一通信对象的拓扑信息于拓扑记录表中,其中,所述拓扑记录表对应于所述第一通信对象所属的进程,并用于记录所述第一通信对象所在进程的拓扑信息以及记录从所述通信网络的其他进程中接收到的拓扑信息,所述通信对象的拓扑信息包括所述通信对象的对象标识、所述通信对象所属终端的终端标识、所述通信对象所在进程的进程标识、以及与所述通信对象匹配的其他通信对象的对象标识;以及
根据所述拓扑记录表,选取相应的通信方式建立所述第一通信对象与匹配所述第一通信对象的第二通信对象两者之间的通信连接;
其中,所述根据所述拓扑记录表,选取相应的通信方式建立所述第一通信对象与匹配所述第一通信对象的第二通信对象两者之间的通信连接,包括:
根据所述第一通信对象所在进程的拓扑记录表,查询与所述第一通信对象的对象标识具有相同标识的第二通信对象的拓扑信息,或者查询与所述第一通信对象的对象标识匹配的第二通信对象的拓扑信息;
根据所述第一通信对象的拓扑信息和所述第二通信对象的拓扑信息,选取通信方式;
以及
根据选取的通信方式,建立所述第一通信对象与所述第二通信对象两者之间的通信连接;
所述根据所述第一通信对象的拓扑信息和所述第二通信对象的拓扑信息,选取通信方式,包括:
判断所述第一通信对象与所述第二通信对象两者所属终端的终端标识是否一致,以及判断所述第一通信对象与所述第二通信对象两者所在进程的进程标识是否一致;
当所述第一通信对象与所述第二通信对象两者所属终端的终端标识不一致时,选取基于套接字的通信方式;
当所述第一通信对象与所述第二通信对象两者所属终端的终端标识一致,但所述第一通信对象与所述第二通信对象两者所在进程的进程标识不一致时,选取基于共享内存的通信方式;以及
当所述第一通信对象与所述第二通信对象两者所属终端的终端标识一致,且所述第一通信对象与所述第二通信对象两者所在进程的进程标识一致时,选取基于进程内的通信方式。
2.如权利要求1所述的通信网络数据传输的方法,其特征在于,还包括:
将所述第一通信对象的拓扑记录表中的拓扑信息广播给所述通信网络中的所述其他进程,以更新所述其他进程的拓扑记录表。
3.如权利要求2所述的通信网络数据传输的方法,其特征在于,所述方法还包括:
从所述其他进程中接收所述其他进程的拓扑信息;以及
记录所接收的所述其他进程的拓扑信息于所述拓扑记录表。
4.如权利要求1所述的通信网络数据传输的方法,其特征在于,所述基于进程内的通信方式为基于指针的通信方式。
5.如权利要求2所述的通信网络数据传输的方法,其特征在于,所述广播的方式为多播方式。
6.如权利要求1所述的通信网络数据传输的方法,其特征在于,在所述记录所述第一通信对象的拓扑信息于拓扑记录表中之前,还包括:
加载所述第一通信对象所属的通信节点于所述第一通信对象所在进程中;以及加载所述第一通信对象于所述第一通信对象所在进程中。
7.一种通信网络数据传输的装置,其特征在于,包括:
拓扑记录模,用于响应所述通信网络中的第一通信对象的加载,记录所述第一通信对象的拓扑信息于拓扑记录表中,其中,所述拓扑记录表对应于所述第一通信对象所属的进程,并用于记录所述第一通信对象所在进程的拓扑信息以及记录从所述通信网络的其他进程中接收到的拓扑信息,所述通信对象的拓扑信息包括所述通信对象的对象标识、所述通信对象所属终端的终端标识、所述通信对象所在进程的进程标识、以及与所述通信对象匹配的其他通信对象的对象标识;以及
通信链路建立模块,用于根据所述拓扑记录表,选取相应的通信方式建立所述第一通信对象与匹配所述第一通信对象的第二通信对象两者之间的通信连接;
其中,所述通信链路建立模块包括:
信息查询单元,用于根据所述第一通信对象所在进程的拓扑记录表,查询与所述第一通信对象的对象标识具有相同标识的第二通信对象的拓扑信息,或者查询与所述第一通信对象的对象标识匹配的第二通信对象的拓扑信息;
通信方式选取单元,用于根据所述第一通信对象的拓扑信息和所述第二通信对象的拓扑信息,选取通信方式;以及
链路建立单元,用于根据选取的通信方式,建立所述第一通信对象与所述第二通信对象两者之间的通信连接
其中,所述通信方式选取单元包括:
信息判断子单元,用于判断所述第一通信对象与所述第二通信对象两者所属终端的终端标识是否一致,以及判断所述第一通信对象与所述第二通信对象两者所在进程的进程标识是否一致;
第一选取子单元,用于当所述第一通信对象与所述第二通信对象两者所属终端的终端标识不一致时,选取基于套接字的通信方式;
第二选取子单元,用于当所述第一通信对象与所述第二通信对象两者所属终端的终端标识一致,但所述第一通信对象与所述第二通信对象两者所在进程的进程标识不一致时,选取基于共享内存的通信方式;以及
第三选取子单元,用于当所述第一通信对象与所述第二通信对象两者所属终端的终端标识一致,且所述第一通信对象与所述第二通信对象两者所在进程的进程标识一致时,选取基于进程内的通信方式。
8.如权利要求7所述的通信网络数据传输的装置,其特征在于,还包括:
拓扑广播模块,用于将所述第一通信对象的拓扑记录表中的拓扑信息广播给所述通信网络中的所述其他进程,以更新所述其他进程的拓扑记录表。
9.如权利要求8所述的通信网络数据传输的装置,其特征在于,还包括:
拓扑接收模块,用于从所述其他进程中接收所述其他进程的拓扑信息;以及所述拓扑记录模块,还用于记录所接收的所述其他进程的拓扑信息于所述拓扑记录表。
10.如权利要求7所述的通信网络数据传输的装置,其特征在于,所述基于进程内的通信方式为基于指针的通信方式。
11.一种实现通信网络数据传输的终端设备,其特征在于,所述终端设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-6中任一所述的通信网络数据传输的方法。
12.一种计算机可读存储介质,其存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的通信网络数据传输的方法。

说明书全文

通信网络数据传输的方法、装置、存储介质及终端设备

技术领域

[0001] 本发明涉及计算机技术领域,尤其涉及一种通信网络数据传输的方法、装置、存储介质及终端设备。

背景技术

[0002] 无人驾驶技术是多个技术集成,一个无人驾驶系统包括有多个传感器、多个软件和多个硬件模块,在调配软件硬件资源方面引入机器人操作系统ROS/ROS2,作为无人驾驶系统的通信框架,其是基于消息传递通信的分布式多进程框架,因为ROS/ROS2本身是基于消息机制的,开发者可以根据功能把软件拆分成为各个模块(节点),每个模块只是负责读取和分发消息,模块间通过消息关联。
[0003] 但是模块(节点)之间只能通过某一种特定的套接字(socket)的通信传输方式进行消息通信,由于Socket通信需要将数据序列化,在每个传输路径上均采用此种方式进行消息通信,会增加系统资源的消耗。

发明内容

[0004] 本发明实施例提供一种通信网络数据传输的方法、装置、存储介质及终端设备,以解决或缓解现有技术中的以上技术问题。
[0005] 第一方面,本发明实施例提供了一种通信网络数据传输的方法,包括:
[0006] 响应所述通信网络中的第一通信对象的加载,记录所述第一通信对象的拓扑信息于拓扑记录表中,其中,所述拓扑记录表对应于所述第一通信对象所属的进程,并用于记录所述第一通信对象所在进程的拓扑信息以及记录从所述通信网络的其他进程中接收到的拓扑信息;以及根据所述拓扑记录表,选取相应的通信方式建立所述第一通信对象与匹配所述第一通信对象的第二通信对象两者之间的通信连接。
[0007] 结合第一方面,在第一方面的第一种实施方式中,所述方法还包括:
[0008] 将所述拓扑信息广播给所述通信网络中的所述其他进程,以更新所述其他进程的拓扑记录表。
[0009] 结合第一方面的第一种实施方式,在第一方面的第二种实施方式中,所述方法还包括:
[0010] 从所述其他进程中接收所述其他进程的拓扑信息;以及记录所接收的所述其他进程的拓扑信息于所述拓扑记录表。
[0011] 结合第一方面、第一方面的第一种实施方式或第一方面的第二种实施方式,在第一方面的第三种实施方式中,所述拓扑信息包括所述通信对象的对象标识,以及所述根据所述拓扑记录表,选取相应的通信方式建立所述第一通信对象与匹配所述第一的通信对象的第二通信对象两者之间的通信连接,包括:
[0012] 根据所述第一通信对象所在进程的拓扑记录表,查询与所述第一通信对象的对象标识具有相同标识的第二通信对象的拓扑信息;根据所述第一通信对象的拓扑信息和所述第二通信对象的拓扑信息,选取通信方式;以及根据选取的通信方式,建立所述第一通信对象与所述第二通信对象两者之间的通信连接。
[0013] 结合第一方面的第三种实施方式,在第一方面的第四种实施方式中,所述拓扑信息还包括所述通信对象所属终端的终端标识、所述通信对象所在进程的进程标识;所述根据所述第一通信对象的拓扑信息和所述第二通信对象的拓扑信息,选取通信方式,包括:
[0014] 判断所述第一通信对象与所述第二通信对象两者所属终端的终端标识是否一致,以及判断所述第一通信对象与所述第二通信对象两者所在进程的进程标识是否一致;当所述第一通信对象与所述第二通信对象两者所属终端的终端标识不一致时,选取基于套接字的通信方式;当所述第一通信对象与所述第二通信对象两者所属终端的终端标识一致,但所述第一通信对象与所述第二通信对象两者所在进程的进程标识不一致时,选取基于共享内存的通信方式;以及当所述第一通信对象与所述第二通信对象两者所属终端的终端标识一致,且所述第一通信对象与所述第二通信对象两者所在进程的进程标识一致时,选取基于进程内的通信方式。
[0015] 结合第一方面的第四种实施方式,在第一方面的第五种实施方式,所述基于进程内的通信方式为基于指针的通信方式。
[0016] 结合第一方面,在第一方面的第六种实施方式中,所述广播的方式为多播方式。
[0017] 结合第一方面,在第一方面的第七种实施方式中,在所述记录所述第一通信对象的拓扑信息于拓扑记录表中之前,还包括:加载所述第一通信对象所属的通信节点于所述第一通信对象所在进程中;以及加载所述第一通信对象于所述第一通信对象所在进程中。
[0018] 第二方面,本发明实施例还提供一种通信网络数据传输的装置,包括:
[0019] 拓扑记录模块,用于响应所述通信网络中的第一通信对象的加载,记录所述第一通信对象的拓扑信息于拓扑记录表中,其中,所述拓扑记录表对诮于所述第一通信对象所属的进程,并用于记录所述第一通信对象所在进程的拓扑信息以及记录从所述通信网络的其他进程中接收到的拓扑信息;以及通信链路建立模块,用于根据所述拓扑记录表,选取相应的通信方式建立所述第一通信对象与匹配所述第一通信对象的第二通信对象两者之间的通信连接。
[0020] 结合第二方面,在第二方面的第一种实施方式中,所述装置还包括:
[0021] 拓扑广播模块,用于将所述拓扑信息广播给所述通信网络中的所述其他进程,以更新所述其他进程的拓扑记录表。
[0022] 结合第二方面的第一种实施方式,在第二方面的第二种实施方式中,所述装置还包括:拓扑接收模块,用于从所述其他进程中接收所述其他进程的拓扑信息;以及所述拓扑记录模块,还用于记录所接收的所述其他进程的拓扑信息于所述拓扑记录表。
[0023] 结合第二方面、第二方面的第一种实施方式或第二方面的第二种实施方式,在第二方面的第三种实施方式中,所述拓扑信息包括所述通信对象的对象标识,所述通信链路建立模块包括:
[0024] 信息查询单元,用于根据所述第一通信对象所在进程的拓扑记录表,查询与所述第一通信对象的对象标识具有相同标识的第二通信对象的拓扑信息;通信方式选取单元,用于根据所述第一通信对象的拓扑信息和所述第二通信对象的拓扑信息,选取通信方式;链路建立单元,用于根据选取的通信方式,建立所述第一通信对象与所述第二通信对象两者之间的通信连接。
[0025] 结合第二方面的第三种实施方式,在第二方面的第四种实施方式中,,所述拓扑信息还包括所述通信对象所属终端的终端标识、所述通信对象所在进程的进程标识;所述通信方式选取单元包括:
[0026] 信息判断子单元,用于判断所述第一通信对象与所述第二通信对象两者所属终端的终端标识是否一致,以及判断所述第一通信对象与所述第二通信对象两者所在进程的进程标识是否一致;第一选取子单元,用于当所述第一通信对象与所述第二通信对象两者所属终端的终端标识不一致时,选取基于套接字的通信方式;第二选取子单元,用于当所述第一通信对象与所述第二通信对象两者所属终端的终端标识一致,但所述第一通信对象与所述第二通信对象两者所在进程的进程标识不一致时,选取基于共享内存的通信方式;以及第三选取子单元,用于当所述第一通信对象与所述第二通信对象两者所属终端的终端标识一致,且所述第一通信对象与所述第二通信对象两者所在进程的进程标识一致时,选取基于进程内的通信方式。
[0027] 结合第二方面的第四种实施方式,在第二方面的第五种实施方式,所述基于进程内的通信方式为基于指针的通信方式。
[0028] 所述装置的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
[0029] 在一个可能的设计中,通信网络数据传输的结构中包括处理器和存储器,所述存储器用于存储通信网络数据传输的装置执行上述第一方面中通信网络数据传输的方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。所述通信网络数据传输的装置还可以包括通信接口,用于通信网络数据传输的装置与其他设备或通信网络通信。
[0030] 第三方面,本发明实施例提供了一种计算机可读存储介质,用于通信网络数据传输的装置所用的计算机软件指令,其包括用于执行上述第一方面中通信网络数据传输的方法为通信网络数据传输的装置所涉及的程序。
[0031] 上述技术方案中的任一个技术方案具有如下优点或有益效果:
[0032] 本发明实施例在通信网络中每加载一通信对象,均记录该通信对象的拓扑信息于该通信对象所属的进程的拓扑记录表中,以及将其他进程的拓扑信息也记录在拓扑记录表,如此使得加载的通信对象可以直接通过拓扑记录表确定与之匹配的通信对象,则可以根据拓扑记录表记载的拓扑信息选取相应的通信方式以建立加载的通信对象和与其所匹配的通信对象两者之间的通信链路,从而实现通信网络中的通信对象之间可以基于不同的拓扑关系选取相应的通信方式来建立通信链路。
[0033] 上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本发明进一步的方面、实施方式和特征将会是容易明白的。

附图说明

[0034] 在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本发明公开的一些实施方式,而不应将其视为是对本发明范围的限制。
[0035] 图1是本发明提供的通信网络数据传输的方法的一个实施例的流程示意图;
[0036] 图2是本发明提供的通信网络中的通信对象的数据传输的示意图;
[0037] 图3是本发明提供的通信网络数据传输的方法中的通信方式选取的一个实施例的流程示意图;
[0038] 图4是本发明提供的通信网络数据传输的方法的另一个实施例的流程示意图;
[0039] 图5是本发明提供的通信网络数据传输的方法的又一个实施例的流程示意图;
[0040] 图6是本发明提供的通信网络数据传输的装置的一个实施例的结构示意图;
[0041] 图7本发明提供的终端设备的一个实施例的结构示意图。

具体实施方式

[0042] 在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本发明的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
[0043] 实施例一
[0044] 请参阅图1,本发明实施例提供了一种通信网络数据传输的方法。通信网络可以是指无人车系统内各硬件模块之间、各软件模块之间以及硬件模块与软件模块之间的通信网络,硬件模块可以认为其具有一处理器的终端设备,软件模块可以认为是处理器中运行的一程序进程。则在通信网络中进行数据发送以及数据通信的端口为通信对象或通信节点,通信节点可以包括多个通信对象。通信对象或通信节点均由程序进程来加载并运行,加载的过程中,会根据程序设置的对该通信对象或通信节点的属性信息进行初始化。具体地,先加载通信节点于进程中,然后再加载该通信节点的一个或多个通信对象于进程中,当进程在加载于通信对象时,由进程或运行进程的处理器执行本发明实施例提供的方法,包括步骤S10至步骤S20,具体如下:
[0045] S10,响应通信网络中的第一通信对象的加载,记录第一通信对象的拓扑信息于拓扑记录表中,其中,每一进程对应于一个拓扑记录表,而第一通信对象所在的进程的拓扑记录表用于记录第一通信对象所在进程的拓扑信息以及记录从通信网络的其他进程中接收到的拓扑信息。
[0046] 在本实施例中,通信对象可以是通信端口,例如发送端口即writer、接收端口即reader,其表现形式可以以一个对象的形式来表示,也可以以一个具体内存地址的形式来表示。在一个通信节点中可以包括多个发送端口writer,也可以包括多个接收端口reader,还可以同一通信节点同时包括这两种类型的通信对象。通常一个writer与一个reader匹配,如图2所示,writerA与readerB匹配,且匹配的两者一般位于不同的通信节点。以及,每一个进程process均有一个用于记录通信对象的拓扑信息的拓扑记录表topology,其中一个进程process内可以有多个通信节点node,一个通信节点内有多个通信对象。
[0047] 在本发明实施例中,拓扑信息包括通信对象的对象标识、通信对象所属终端的终端标识和通信对象所在进程的进程标识,以及还可以包括通信对象所属的通信节点、与之匹配的通信对象的信息等。拓扑记录表除了包括本进程的拓扑信息也会记录其他进程的拓扑信息,可以是每当其他进程也有通信对象在加载时,接收其他进程的加载的通信对象的拓扑信息,并记录在拓扑记录表中。
[0048] S20,根据拓扑记录表,选取相应的通信方式建立第一通信对象与匹配第一通信对象的第二通信对象两者之间的通信连接。
[0049] 在本发明实施例中,拓扑记录表在记录一通信对象的拓扑可以是仅记录通信对象的对象标识及相关信息,以及还可以包括与之匹配的通信对象的对象标识,进而通过与之匹配的通信对象的标识可以查询到与之匹配的的通信对象的拓扑信息,当前加载的通信对象的标识和与之匹配的通信对象的标识可以是相同的也可以是不相同的,例如,当前加载的第一通信对象的对象标识为writerA和与之匹配的第二通信对象的对象标识为readerA,显而两者的标识不相同。当前加载的第一通信对象writerA的标识为A但属性为writer,与之匹配的第二通信对象readerA的对象标识A但属性为reader,则两者的标识相同。
[0050] 对于任一通信对象的拓扑信息可以是包括该通信对象的对象标识但不包括与之匹配的通信对象的对象标识,但由于本进程的拓扑记录表也会记其他进程加载的通信对象的拓扑信息,那么基于拓扑记录表的每一个通信对象的对象标识即可查询到相匹配的通信对象。则本步骤如图3所示,具体可以实施如下步骤S21至步骤S23:
[0051] S21,根据第一通信对象所在进程的拓扑记录表,查询与第一通信对象的对象标识具有相同标识的第二通信对象的拓扑信息。例如,当前加载的第一通信对象writerA的对象标识为A,查询本进程中的拓扑记录表,查询到另一标识为A的第二通信对象,一般来说,对于同一标识有两个通信对象,其中一个为writer,另一个为reader,即第二通信对象为readerA。进而,从中提取该查询到的第二通信对象readerA的拓扑信息出来,以进行后续步骤的通信方式的选取。
[0052] S22,根据第一通信对象的拓扑信息和第二通信对象的拓扑信息,选取通信方式。
[0053] 在本发明实施例中,由于存在有不同终端之间的两个通信对象之间的通信、同一终端但不同进程之间的两个通信对象之间的通信或者同一终端同一进程之间的两个通信对象之间的通信这三种拓扑关系,通信对象一般位于一个通信节点中,那么可以提供三种不同的通信方式,以适应这三种不同类型的拓扑关系,提高数据传输效率。优选地,本发明实施例提供的三种通信方式为:基于套接字的通信方式、基于共享内存的通信方式和基于进程内的通信方式。其中,基于进程内的通信可以避免远程服务调用的所有开销,例如:序列化数据或加密传输数据,以及遍历网络堆栈和网络延迟等,优选为基于指针的通信方式。本发明实施例拓扑记录表记录的每一个通信对象的拓扑信息还包括该通信对象所属终端的终端标识和该通信对象所在进程的进程标识,那么以下将基于这三种通信方式,以建立第一通信对象和第二通信对象的通信链路为例,描述本进程在本步骤的通信方式的选取过程:
[0054] 首先,判断第一通信对象与第二通信对象两者所属终端的终端标识是否一致,以及判断第一通信对象与第二通信对象两者所在进程的进程标识是否一致。其一,当第一通信对象与第二通信对象两者所属终端的终端标识不一致时,选取基于套接字的通信方式。
[0055] 其二,当第一通信对象与第二通信对象两者所属终端的终端标识一致,但第一通信对象与第二通信对象两者所在进程的进程标识不一致时,选取基于共享内存的通信方式。
[0056] 其三,当第一通信对象与第二通信对象两者所属终端的终端标识一致,且第一通信对象与第二通信对象两者所在进程的进程标识一致时,选取基于进程内的通信方式。优选地,基于进程内的通信方式为基于指针的通信方式。
[0057] S23,根据选取的通信方式,建立第一通信对象与第二通信对象两者之间的通信连接。在建立相匹配的两通信对象的通信连接之后,后续数据的传送可以直接基于该通信连接进行消息的传输,无需在每次传输数据时均重新建立一个连接。
[0058] 实施例二
[0059] 如图4所示,本发明实施例提供的通信网络数据传输的方法的另一个实施例的流程示意图,本实施例在基于实施例一的基础上,增加以下步骤:
[0060] S30,将拓扑信息广播给通信网络中的其他进程,以更新其他进程的拓扑记录表。具体地,接收到拓扑信息的进程将接收到的拓扑信息记录于该进程的拓扑记录表中。
[0061] 在本发明实施例中,可以在将拓扑信息记录于拓扑记录表之时或之后,将记录在拓扑记录表的拓扑信息广播给通信网络中的其他进程。在另一种实施方式中,还可以将本进程中的拓扑记录表广播给其他进程,其他进程在接收到拓扑信息之后,比较接收到的拓扑记录表与本地的拓扑记录表之间的差异,将本地的拓扑记录表更新为与接收到的拓扑记录表上的记录的信息一致。
[0062] 优选地,拓扑信息或拓扑记录表的广播可以采用socket的通信方式,即基于套接字的通信方式,如图2所示。以及,本方案的广播可以是单播或多播的方式,优选地,本方案的广播为多播的方式,可以节约带宽的占用。本发明实施例的广播过程是向一个约好的网络地址来广播数据,该网络地址指向本发明实施例的通网络,同一个网络内的终端或进程都可以收到广播的消息,例如基于UDP协议的广播。
[0063] 实施例三
[0064] 如图5所示,本发明实施例提供的通信网络数据传输的方法的又一个实施例的流程示意图;本发实例在基于实施例二的基础,可以增加以下步骤S40和步骤S50:
[0065] S40,从所述其他进程中接收所述其他进程的拓扑信息。
[0066] S50,记录所接收的所述其他进程的拓扑信息于所述拓扑记录表。
[0067] 本进程除了广播拓扑信息给其他进程的同时,也可以接收其他进程广播或发送的拓扑信息,进而将接收到的拓扑信息记录在本进程的拓扑记录表中,使得整个通信网络每一进程所属的拓扑记录表的信息是同步的,确保通信链路的建立。以及在执行步骤S50之后,基于拓扑记录表的更新本进程可以再次执行步骤S20,建立更新的通信对象与匹配该更新的通信对象的通信对象的通信连接。
[0068] 实施例四
[0069] 如图6所示,本发明实施例还提供一种通信网络数据传输的装置,为软系统,能够实现实施一提供的方法的全部流程,该系统可以装载于处理器,由处理器控制以下模块完成以下功能:
[0070] 拓扑记录模块100,用于响应所述通信网络中的第一通信对象的加载,记录所述第一通信对象的拓扑信息于拓扑记录表中,其中,所述拓扑记录表用于记录所述第一通信对象所在进程的拓扑信息以及记录从所述通信网络的其他进程中接收到的拓扑信息;以及通信链路建立模块200,用于根据所述拓扑记录表,选取相应的通信方式建立所述第一通信对象与匹配所述第一通信对象的第二通信对象两者之间的通信连接。
[0071] 进一步地,所述装置还包括:拓扑广播模块,用于将所述拓扑信息广播给所述通信网络中的所述其他进程,以更新所述其他进程的拓扑记录表。
[0072] 进一步地,所述装置还包括:拓扑接收模块,用于从所述其他进程中接收所述其他进程的拓扑信息;以及所述拓扑记录模块,还用于记录所接收的所述其他进程的拓扑信息于所述拓扑记录表。
[0073] 进一步地,所述拓扑信息包括所述通信对象的对象标识,所述通信链路建立模块200包括:
[0074] 信息查询单元,用于根据所述第一通信对象所在进程的拓扑记录表,查询与所述第一通信对象的对象标识具有相同标识的第二通信对象的拓扑信息;通信方式选取单元,用于根据所述第一通信对象的拓扑信息和所述第二通信对象的拓扑信息,选取通信方式;以及链路建立单元,用于根据选取的通信方式,建立所述第一通信对象与所述第二通信对象两者之间的通信链路。
[0075] 进一步地,所述拓扑信息还包括所述通信对象所属终端的终端标识、所述通信对象所在进程的进程标识;所述通信方式选取单元包括:
[0076] 信息判断子单元,用于判断所述第一通信对象与所述第二通信对象两者所属终端的终端标识是否一致,以及判断所述第一通信对象与所述第二通信对象两者所在进程的进程标识是否一致;第一选取子单元,用于当所述第一通信对象与所述第二通信对象两者所属终端的终端标识不一致时,选取基于套接字的通信方式;第二选取子单元,用于当所述第一通信对象与所述第二通信对象两者所属终端的终端标识一致,但所述第一通信对象与所述第二通信对象两者所在进程的进程标识不一致时,选取基于共享内存的通信方式;以及第三选取子单元,用于当所述第一通信对象与所述第二通信对象两者所属终端的终端标识一致,且所述第一通信对象与所述第二通信对象两者所在进程的进程标识一致时,选取基于进程内的通信方式。
[0077] 优选地,所述基于进程内的通信方式为基于指针的通信方式。
[0078] 优选地,所述广播的方式为多播方式。
[0079] 进一步地,所述装置还包括:通信节点加载模块,用于在所述记录所述第一通信对象的拓扑信息于拓扑记录表中之前,加载所述第一通信对象所属的通信节点于所述第一通信对象所在进程中;以及通信对象加载模块,用于加载所述第一通信对象于所述第一通信对象所在进程中。
[0080] 所述装置的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
[0081] 在一个可能的设计中,通信网络数据传输的结构中包括处理器和存储器,所述存储器用于存储通信网络数据传输的装置执行上述第一方面中通信网络数据传输的方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。所述通信网络数据传输的装置还可以包括通信接口,用于通信网络数据传输的装置与其他设备或通信网络通信。
[0082] 实施例五
[0083] 本发明实施例还提供一种终端设备,如图7所示,该设备包括:存储器21和处理器22,存储器21内存储有可在处理器22上运行的计算机程序。处理器22执行计算机程序时实现上述实施例中的通信网络数据传输的方法。存储器21和处理器22的数量可以为一个或多个。
[0084] 该设备还包括:
[0085] 通信接口23,用于处理器22与外部设备之间的通信。
[0086] 存储器21可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0087] 如果存储器21、处理器22和通信接口23独立实现,则存储器21、处理器22和通信接口23可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(ISA,Industry Standard Architecture)总线、外部设备互连(PCI,Peripheral Component)总线或扩展工业标准体系结构(EISA,Extended Industry Standard Component)总线等。总线可以分为地址总线数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0088] 可选的,在具体实现上,如果存储器21、处理器22及通信接口23集成在一块芯片上,则存储器21、处理器22及通信接口23可以通过内部接口完成相互间的通信。
[0089] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0090] 此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
[0091] 流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
[0092] 在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
[0093] 本发明实施例的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质的更具体的示例至少(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式只读存储器(CDROM)。另外,计算机可读存储介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。
[0094] 在本发明实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于指令执行系统、输入法或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、射频(Radio Frequency,RF)等等,或者上述的任意合适的组合。
[0095] 应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0096] 本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0097] 此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。存储介质可以是只读存储器,磁盘或光盘等。
[0098] 以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈