CN115225706B - 数据传输方法、装置、车辆以及存储介质 - Google Patents
数据传输方法、装置、车辆以及存储介质 Download PDFInfo
- Publication number
- CN115225706B CN115225706B CN202210657313.9A CN202210657313A CN115225706B CN 115225706 B CN115225706 B CN 115225706B CN 202210657313 A CN202210657313 A CN 202210657313A CN 115225706 B CN115225706 B CN 115225706B
- Authority
- CN
- China
- Prior art keywords
- cloud server
- client
- sending
- receiving
- protocol
- 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 74
- 230000005540 biological transmission Effects 0.000 title claims abstract description 44
- 238000004891 communication Methods 0.000 claims abstract description 111
- 238000013507 mapping Methods 0.000 claims description 30
- 230000004044 response Effects 0.000 claims description 16
- 238000012546 transfer Methods 0.000 claims description 11
- 230000003993 interaction Effects 0.000 description 22
- 238000012795 verification Methods 0.000 description 13
- 238000004590 computer program Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 206010063385 Intellectualisation Diseases 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请实施例提供一种数据传输方法、装置、车辆以及存储介质。该方法包括:接收发送端基于第一通信协议发送的目标消息;基于第一对象的对象标识确定第二对象;基于第二通信协议和第二对象将待发送数据发送至接收端。本申请实施例提供的技术方案,在发送端为云端服务器的情况下,无需要求云端服务器具备解析基于第二通信协议的消息的包头的能力,可以便于云端服务器进行切换,增强数据传输系统的容灾能力;另外代理端直接将数据转发给接收端,无需中间节点进行转发,减小转发次数,在数据传输出现问题的情况下能及时定位。
Description
技术领域
本申请涉及车联网技术领域,更具体地,涉及一种数据传输方法、装置、车辆以及存储介质。
背景技术
随着汽车智能化的发展,车辆中的软件对数据传输速率要求越来越高,因此车载以太网被引入汽车领域。
面向服务的通信(Scalable service-Oriented MiddlewarE over IP,SOME/IP)协议是为车载以太网设计的应用层通信协议,也即,车辆内部各个节点之间通过SOME/IP协议进行数据交互,车辆内部节点与外部节点(比如云端服务器)通过消息队列遥测传输(Message Queuing Telemetry Transport,MQTT)协议进行数据交互。
然而,上述数据传输方案存在如下问题:存在与外部节点进行数据交互需求的车辆内部节点必须具有MQTT协议的协议栈,增大车联网系统的开发难度。
发明内容
本申请实施例提供一种数据传输方法、装置、车辆以及存储介质。
第一方面,本申请实施例提供一种数据传输方法,应用于车联网系统中的代理端,方法包括:接收发送端基于第一通信协议发送的目标消息,目标消息包括待发送数据和第一对象的对象标识;基于第一对象的对象标识确定第二对象;基于第二通信协议和第二对象将待发送数据发送至接收端。
第二方面,本申请实施例提供一种数据传输装置,装置包括:第一通信模块,用于接收发送端基于第一通信协议发送的目标消息,目标消息包括待发送数据和第一对象的第一标识;确定模块,用于基于第一对象的对象标识确定第二对象;第二通信模块,用于基于第二通信协议和第二对象将待发送数据发送至接收端。
第三方面,本申请实施例提供一种车辆,车辆包括一个或多个处理器;存储器;一个或多个应用程序,其中一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序配置用于执行如第一方面的方法。
第四方面,本申请还提供一种计算机可读存储介质,计算机可读存储介质存储有程序代码,在程序代码被处理器运行时执行如第一方面的方法。
第五方面,本申请还提供一种计算机程序产品,该计算机产品被执行时实现如第一方面的方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过在代理端接收到发送端发送的目标消息后,基于目标消息中第一对象的对象标识确定第二对象,之后通过第二通信协议和第二对象将目标消息中的待发送数据发送至接收端,在发送端为云端服务器的情况下,无需要求云端服务器具备解析基于第二通信协议的消息的包头的能力,可以便于云端服务器进行切换,增强数据传输系统的容灾能力;另外代理端直接将数据转发给接收端,无需中间节点进行转发,减小转发次数,在数据传输出现问题的情况下能及时定位。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的实施环境的示意图。
图2是本申请实施例提供的数据传输系统的结构框图。
图3是本申请实施例提供的一种数据传输方法的流程图。
图4是本申请实施例提供的另一种数据传输方法的流程图。
图5是本申请实施例提供的另一种数据传输方法的流程图。
图6是本申请实施例提供的一种数据传输装置的框图。
图7是本申请实施例提供的车辆的结构框图。
图8是本申请实施例提供的计算机可读存储介质的结构框图。
具体实施方式
下面详细描述本申请的实施方式,实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性地,仅用于解释本申请,而不能理解为对本申请的限制。
为了使本技术领域的人员更好地理解本申请的方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本领域技术人员发现在目前的云端服务器-车辆内部节点之间的数据传输方法存在如下问题:(1)存在与外部节点进行数据交互需求的车辆内部节点必须具有MQTT协议的协议栈,增大车联网系统的开发难度;(2)车辆内部节点采用同一身份与外部节点进行数据交互,导致外部节点进行身份验证的时候存在难以管控的问题;(3)当不同的车辆内部节点需要相同数据时,依然需要与外部节点进行多次数据交互,导致数据重复。
作为一种方式,在云端服务器-车辆内部节点之间引入了代理机制以解决上述问题。具体地,在车辆内部节点中设置代理节点,云端服务器与代理节点之间通过MQTT协议进行数据交互,代理节点与车辆内部节点通过SOME/IP协议进行数据交互,云端服务器-代理节点-车辆内部节点之间的数据传输方法具体如下。
步骤S11,云端服务器根据车辆内部节点与待发送数据的类型,查找ServiceID/MethodID,基于上述ServiceID/MethodID将待发送数据封装成SOME/IP帧。
步骤S12,云端服务器将SOME/IP帧作为消息体,打包成MQTT帧。
步骤S13,云端服务器向代理节点发送MQTT帧。
步骤S14,代理节点对MQTT帧进行解析,得到SOME/IP帧,并转发至车内指定节点。
步骤S15,在SOME/IP帧存在多个的情况下,车内指定节点需要将多个SOME/IP帧逐一解析,并转发至最终的目的节点。
本申请的发明人经过长期研究发现,引入代理机制的数据传输方法虽然克服了云端服务器-车辆内部节点之间的数据传输方法存在的缺陷,却仍然存在如下问题:(1)云端服务器需要具备SOME/IP包头解析功能,导致云端服务器的开发难度增大;(2)云端服务器封装的SOME/IP帧中存在冗余信息,导致云端服务器与代理节点之间的传输数据变大;(3)云端服务器到最终的目的节点之间存在两次数据转发,造成不必要的负荷;(4)MQTT协议的Topic和SOME/IP协议的Service为静态绑定,代理节点必须提前知道所有可能需要转发的Topic,若SOME/IP网络内的节点需要使用其他的Topic进行发布/订阅操作时,需要修改代理节点的代码,且云端服务器的地址、认证证书都由代理节点写死,无法连接多个云端服务器,可扩展性不高。(5)车内指定节点会收到全部的数据,存在资源浪费。
基于上述问题,本申请实施例提供一种数据传输方案,代理端接收到发送端发送的目标消息后,基于目标消息中第一通信协议下的第一对象的对象标识确定第二通信协议下的第二对象,之后通过第二对象将目标消息中的待发送数据发送至接收端,在发送端为云端服务器的情况下,无需要求云端服务器具备解析基于第二通信协议的消息的包头的能力,可以便于云端服务器进行切换,增强数据传输系统的容灾能力;另外代理端直接将数据转发给接收端,无需中间节点进行转发,减小转发次数,在数据传输出现问题的情况下能及时定位。
图1是本申请实施例提供的实施环境的示意图。该实施环境包括车辆100和云端服务器200。该车辆100可以是电动汽车、混动汽车、燃油汽车等等。
在本申请实施例中,车辆100包括车联网系统。车联网系统包括代理节点(下文实施例称为代理端)和至少一个应用节点(以下称为客户端)。
代理端提供数据中转的功能,客户端通过代理端实现与云端服务器200之间的数据交互。具体地,客户端将待发送数据发送至代理端,代理端将上述待发送数据转发至云端服务器200;或者,云端服务器200将待发送数据发送至代理端,代理端将上述待发送数据发送至客户端。
需要说明的是,代理端和客户端进行数据交互采用的通信协议,与代理端与云端服务器200进行数据交互采用的通信协议不相同。参见图2,其示出本申请实施例提供的数据传输系统的结构框图。其中,代理端和客户端进行数据交互采用的通信协议为SOME/IP协议,代理端和客户端均具备SOME/IP协议的协议栈。代理端与云端服务器200进行数据交互采用的通信协议为MQTT协议或者HTTP协议。代理端和云端服务器200均具备MQTT协议的协议栈或者HTTP协议的协议栈。在本申请实施例中,仅以代理端与云端服务器200进行数据交互采用的通信协议为MQTT协议为例进行阐述。
云端服务器200可以是一台云端服务器,还可以是多台云端服务器组成的云端服务器集群,还可以是一个云计算服务中心。在本申请实施例中,云端服务器200为车联网系统对应的后台云端服务器,用于对车辆100在行驶过程中产生的数据进行备份、统计分析等。
图3是本申请实施例提供的数据传输方法的流程图,该方法应用于图2实施例中的代理端,该方法包括如下步骤S301-S303。
步骤S301,接收发送端基于第一通信协议发送的目标消息。
目标消息包括待发送数据和第一对象的第一标识。第一对象的对象标识用于唯一标识第一对象。第一通信协议表征发送端与代理端进行数据交互采用的通信协议。
在一些实施例中,发送端为车联网系统中的客户端,第一通信协议为SOME/IP协议,目标消息为SOME/IP消息。在该实施例中,目标消息包括消息头部(Header)和消息体(Payload),消息头部包括以下字段:消息标识、消息长度、服务提供者和调用者、协议头版本号、接口版本号,消息类型等。其中,当消息类型为Method类型时,消息标识包括ServiceID和Method ID;当消息类型为Event类型时,消息标识包括Service ID和Event ID。上述第一对象的对象标识也即消息标识,为Service ID/Method ID,或者,Service ID/Event ID。需要说明的是,上述第一对象的对象标识是一个16位的无符号数据。待发送数据也即消息体。
在另一些实施例中,发送端为云端服务器,第一通信协议为MQTT协议或者HTTP协议。在第一通信协议为MQTT协议的情况下,目标消息为MQTT消息。在第一通信协议为HTPP协议的情况下,目标消息为HTPP消息。在本申请实施例中,仅以第一通信协议为MQTT协议为例进行说明。在该实施例中,消息头部包括主题(Topic)和消息体,上述第一对象的对象标识包括云端服务器地址和Topic的标识(也即Topic ID)。需要说明的是,上述第一对象的对象标识是两个字符串。待发送数据也即消息体。
步骤S302,基于第一对象的对象标识确定第二对象。
第二通信协议是接收端与代理端进行数据交互采用的通信协议。在一些实施例中,步骤S302可以实现为如下子步骤:基于第一对象的对象标识和指定映射关系,确定第二通信协议下的第二对象的对象标识;基于第二对象的对象标识,确定第二对象。
第二对象的对象标识用于唯一标识第二对象。指定映射关系包括不同第一对象的对象标识和不同第二对象的对象标识之间的映射关系。上述指定映射关系由代理端基于客户端发送的订阅请求或者发布请求生成,其具体实现过程将在下文实施例进行阐述。
在一些实施例中,在发送端为车联网系统中的客户端的情况下,接收端为云端服务器,此时第二通信协议为MQTT协议或者HTTP协议。在本申请实施例中,仅以第二通信协议为MQTT协议为例进行说明。在该实施例中,代理端基于第一通信协议下的第一对象的对象标识确定第二通信协议下的第二对象,具体实现为:代理端基于SOME/IP协议下的消息标识(Service ID/Method ID,或者,Service ID/Event ID)确定服务器和Topic。
在该实施例中,指定映射关系为Service ID/Method ID与服务器地址/Topic ID之间的映射关系,代理端查找上述指定映射关系,确定与Service ID/Method ID对应的服务器地址/Topic ID,然后基于服务器地址/Topic ID确定服务器和Topic。或者,指定映射关系为Service ID/Event ID与服务器地址/Topic ID之间的映射关系。代理端查找上述指定映射关系,代理端查找上述指定映射关系,确定与Service ID/Event ID对应的服务器地址/Topic ID,然后基于服务器地址/Topic ID确定服务器和Topic。
在一些实施例中,在发送端为云端服务器的情况下,接收端为车联网系统中的代理端,此时第二通信协议为SOME/IP协议。在该实施例中,代理端基于第一通信协议下的第一对象的对象标识确定第二通信协议下的第二对象,具体实现为:代理端基于MQTT协议下的Topic ID确定SOME/IP协议下的Service ID/Method ID,或者,Service ID/Event ID。
在该实施例中,指定映射关系为Service ID/Method ID与服务器地址/Topic ID之间的映射关系,代理端查找上述指定映射关系,确定与服务器地址/Topic ID确定对应的Service ID/Method ID,然后基于Service ID/Method ID确定Service/Method。或者,指定映射关系为Service ID/Event ID与服务器地址/Topic ID之间的映射关系,代理端查找上述指定映射关系,确定与服务器地址/Topic ID确定对应的Service ID/Event ID,然后基于Service ID/Event ID确定Service/Event。
步骤S303,基于第二通信协议和第二对象将待发送数据发送至接收端。
在一些实施例中,在发送端为车联网系统中的客户端的情况下,接收端为云端服务器,步骤S303实现为:基于Topic将待发送数据发送至接收端。具体地,代理端将待发送数据和Topic ID封装成MQTT消息,之后通过MQTT协议栈将上述MQTT消息发送至云端服务器。其中,待发送数据为MQTT消息的消息体,Topic ID为MQTT消息的消息头。
在一些实施例中,在发送端为云端服务器,接收端为客户端的情况下,步骤S303实现为基于Service/Event将待发送数据发送至客户端,或者,通过Service/Method将待发送数据发送至客户端。
综上所述,本申请实施例提供的技术方案,通过在代理端接收到发送端发送的目标消息后,基于目标消息中第一对象的对象标识确定第二对象,之后通过第二通信协议和第二对象将目标消息中的待发送数据发送至接收端,在发送端为云端服务器的情况下,无需要求云端服务器具备解析基于第二通信协议的消息的包头的能力,可以便于云端服务器进行切换,增强数据传输系统的容灾能力;另外代理端直接将数据转发给接收端,无需中间节点进行转发,减小转发次数,在数据传输出现问题的情况下能及时定位。
在上文实施例中提到,上述指定映射关系由代理端基于客户端发送的订阅请求或者发布请求生成。下面对代理端基于客户端发送的订阅请求生成指定映射关系的步骤进行阐述。
图4是本申请实施例提供的数据传输方法的流程图,该方法应用于图2实施例中的代理端,在该实施例中,发送端为云端服务器,接收端为客户端,该方法包括如下步骤S401-S411。
步骤S401,接收客户端发送的第一订阅请求。
第一订阅请求用于请求订阅云端服务器的指定内容,本申请实施例对上述指定内容不作限定。第一订阅请求包括云端服务器地址和第一对象的对象标识。在本申请实施例中,第一对象的对象标识也即Topic ID。第一订阅请求为SOME/IP消息,其消息头中的消息标识为控制服务ID/订阅方法ID,消息体为第一对象的对象标识,也即云端服务器的地址以及Topic ID。也即,客户端调用控制服务中的订阅方法对应的接口向代理端发送第一订阅请求。其中,订阅方法的消息类型为RR消息。
步骤S402,基于第一订阅请求与云端服务器建立通信连接,并向云端服务器发送第二订阅请求。
代理端对第一订阅请求进行解析,得到云端服务器的地址和第一对象的对象标识,其先基于云端服务器的地址和云端服务器建立通信连接,然后向云端服务器发送第二订阅请求。第二订阅请求用于表征客户端请求订阅云端服务器的指定内容。
步骤S403,在接收到云端服务器发送的针对第二订阅请求的响应信息后,生成第一对象的对象标识对应的第二对象的对象标识,并基于第二对象的对象标识建立第二对象。
云端服务器在接收到第二订阅请求后,可以对代理端以及客户端分别进行身份验证或者权限验证,在验证通过的情况下,向代理端发送针对第二订阅请求的响应消息。
代理端检测是否存储有第一对象的对象标识,若没有,则说明该第一对象是新创建的,此时代理端可以基于预设算法生成第一对象的对象标识对应的第二对象的对象标识。需要说明的是,不同第一对象的对象标识对应的第二对象的对象标识不相同,也即,代理端针对每个第一对象的对象标识所生成的相对应的第二对象的对象标识是不重复的。本申请实施例对预设算法不作限定。
在本申请实施例中,步骤S403具体实现为:针对第一订阅请求中携带的Topic ID,生成对应的Service ID/Event ID,之后基于Service ID/Event ID建立SOME/IP服务。
在一些实施例中,云端服务器将第一对象的对象标识与生成的第二对象的对象标识对应存储。也即,云端服务器将Topic ID与Service ID/Event ID对应存储。
步骤S404,向客户端发送订阅结果。
相应地,客户端接收代理端发送的订阅结果。其中,订阅结果携带第二对象的对象标识。在一些实施例中,订阅结果中还包括用于指示订阅成功的字段。客户端在接收到第二对象的对象标识后,可以调用第二通信协议的协议栈订阅第二对象,也即调用SOME/IP协议栈订阅Service/Event。
在其他可能的实施例中,在云端服务器对代理端以及客户端分别进行身份验证或者权限验证的情况下,若验证失败,则可能存在订阅不成功的情况,此时代理端也向客户端返回订阅结果,该订阅结果中包括用于指示订阅失败的字段。
在客户端订阅成功后,云端服务器可以待发送数据发送至代理端,然后由代理端将待发送数据发送至客户端。
步骤S405,接收云端服务器基于第一通信协议发送的目标消息。
目标消息包括待发送数据和第一通信协议下的第一对象的对象标识。第一通信协议表征云端服务器与代理端进行数据交互采用的通信协议。在本申请实施例中,第一通信协议为MQTT协议或者HTTP协议。在本申请实施例中,仅以第一通信协议为MQTT协议为例进行说明。第一对象的对象标识为云端服务器地址和Topic ID。
步骤S406,基于第一对象的对象标识确定第二对象。
第二通信协议是客户端与代理端进行数据交互采用的通信协议。在本申请实施例中,第二通信协议为SOME/IP协议,第二对象为Service/Event。
步骤S407,基于第二通信协议和第二对象将待发送数据发送至客户端。
代理端通过上述Service/Event将待发送数据透传至客户端。
在一些实施例中,客户端在订阅云端服务器的指定内容后,还可以对上述内容取消订阅。下面对取消订阅的实现过程进行阐述。在一些实施例中,在步骤S404或者步骤S407之后,该数据传输方法还包括如下步骤。
步骤S408,接收客户端发送的第一取消订阅请求。
第一取消订阅请求用于请求取消订阅云端服务器的指定内容。第一取消订阅请求携带云端服务器地址和第一对象的对象标识。在本申请实施例中,第一对象的对象标识也即Topic ID。第一取消订阅请求也为SOME/IP消息,其消息头中的消息标识为控制服务ID/取消订阅方法ID,消息体为第一对象的对象标识,也即云端服务器的地址以及Topic ID。也即,客户端调用控制服务中的取消订阅方法对应的接口向代理端发送第一订阅请求。其中,取消订阅方法的消息类型为RR消息。
步骤S409,基于第一取消订阅请求向云端服务器发送第二取消订阅请求。
代理端对第一取消订阅请求进行解析,得到云端服务器地址和Topic ID,然后向云端服务器发送第二取消订阅请求。第二取消订阅请求用于表征客户端请求取消订阅云端服务器的指定内容。
步骤S410,在接收到云端服务器发送的针对第二取消订阅请求的响应消息后,获取第一对象的对象标识对应的第二对象的对象标识,并基于第二对象的对象标识取消第二对象。
云端服务器在接收到第二取消订阅请求后,可以对代理端以及客户端分别进行身份验证或者权限验证,在验证通过的情况下,向代理端发送针对第二取消订阅请求的响应消息。代理端检测从指定映射关系中获取第一对象的对象标识对应的第二对象的对象标识,然后基于第二对象的对象标识停止提供第二对象这一服务。
在一些实施例中,代理端在停止提供第二对象这一服务后,还可以与云端服务器断开通信连接,以节省云端服务器的连接资源。
步骤S411,向客户端发送取消订阅结果。
相应地,客户端接收代理端发送的取消订阅结果,取消订阅结果中包括用于指示取消订阅成功的字段。
综上所述,本申请实施例提供的技术方案,在客户端存在订阅需求的情况下,实时生成第一对象的对象标识相对应的第二对象的对象标识,也即代理端具备动态添加云端服务器以及Topic的能力,增加数据传输系统的扩展性;另外,在客户端存在数据订阅需求的情况下与云端服务器建立通信连接,使得资源使用更加合理。
在上文实施例中提到,上述指定映射关系由代理端基于客户端发送的订阅请求或者发布请求生成。下面对代理端基于客户端发送的发布请求生成指定映射关系的步骤进行阐述。
图5是本申请实施例提供的数据传输方法的流程图,该方法应用于图2实施例中的代理端,在该实施例中,发送端为客户端,接收端为云端服务器,该方法包括如下步骤S501-S507。
步骤S501,接收客户端发送的第一发布请求。
第一发布请求用于请求向云端服务器发布指定内容,本申请实施例对上述指定内容不作限定。
第一发布请求包括第二对象的对象标识。第一发布请求包括第二对象的对象标识。在本申请实施例中,第二对象的对象标识也即云端服务器地址和Topic ID。第一发布请求为SOME/IP消息,其消息头中的消息标识为控制服务ID/发布方法ID,消息体为第二对象的对象标识,也即云端服务器的地址以及Topic ID。也即,客户端调用控制服务中的发布方法对应的接口向代理端发送第一发布请求。其中,发布方法的消息类型为RR消息。
步骤S502,基于第一发布请求与云端服务器建立通信连接,并向云端服务器发送第二发布请求。
代理端对第一发布请求进行解析,得到云端服务器的地址和Topic ID,其先基于云端服务器的地址和云端服务器建立通信连接,然后向云端服务器发送第二发布请求。第二发布请求用于表征客户端请求向云端服务器发布指定内容。
步骤S503,在接收到云端服务器发送的针对第二发布请求的响应信息后,生成第二对象的对象标识对应的第一对象的对象标识,并基于第一对象的对象标识建立第一对象。
云端服务器在接收到第二发布请求后,可以对代理端以及客户端分别进行身份验证或者权限验证,在验证通过的情况下,向代理端发送针对第二发布请求的响应消息。
代理端检测是否存储有第二对象的对象标识,若没有,则说明该第二对象是新创建的,此时代理端可以基于预设算法生成第二对象的对象标识对应的第一对象的对象标识。需要说明的是,不同第二对象的对象标识对应的第一对象的对象标识不相同,也即,代理端针对每个第二对象的对象标识所生成的相对应的第一对象的对象标识是不重复的。本申请实施例对预设算法不作限定。
在本申请实施例中,步骤S403具体实现为:针对第一发布请求中携带的云端服务器地址和Topic ID,生成对应的Service ID/Event ID,之后基于Service ID/Event ID建立SOME/IP服务。
在一些实施例中,云端服务器将第二对象的对象标识与生成的第一对象的对象标识对应存储。也即,云端服务器将Topic ID与Service ID/Event ID对应存储。
步骤S504,向客户端发送发布结果。
相应地,客户端接收代理端发送的发布结果。其中,发布结果携带第一对象的对象标识。在一些实施例中,订阅结果中还包括用于指示允许发布的字段。客户端在接收到第一对象的对象标识后,可以调用第一通信协议的协议栈订阅第一对象,也即调用SOME/IP协议栈订阅Service/Event。
步骤S505,接收客户端基于第一通信协议发送的目标消息。
目标消息包括待发送数据和第一通信协议下的第一对象的对象标识。第一通信协议表征客户端与代理端进行数据交互采用的通信协议。在本申请实施例中,第一通信协议为SOME/IP协议。第一对象的对象标识为Service ID/Event ID。
步骤S506,基于第一对象的对象标识确定第二对象。
第二通信协议是云端服务器与代理端进行数据交互采用的通信协议。在本申请实施例中,第二通信协议为MQTT协议或者HTTP协议,第二对象为云端服务器和Topic。
步骤S507,基于第二通信协议和第二对象将待发送数据发送至客户端。
代理端将待发送数据和Topic ID封装成MQTT消息,之后通过MQTT协议栈将上述MQTT消息发送至云端服务器。
综上所述,本申请实施例提供的技术方案,在客户端存在发布需求的情况下,实时生成第二对象的对象标识相对应的第一对象的对象标识,也即代理端具备动态添加云端服务器以及Topic的能力,增加数据传输系统的扩展性;另外,在客户端存在数据发布需求的情况下与云端服务器建立通信连接,使得资源使用更加合理。
下面对客户端一侧的数据传输方法进行介绍。客户端一侧的数据传输方法包括如下步骤S601-S606。
步骤S601,向车联网系统中的代理端发送第一订阅请求。
第一订阅请求包括第一对象的对象标识。客户端调用控制服务中的订阅方法对应的接口向代理端发送第一订阅请求。其中,订阅方法的消息类型为RR消息。
代理端用于基于第一订阅请求与云端服务器建立通信连接,并向云端服务器发送第二订阅请求,在接收到云端服务器发送的针对第二订阅请求的响应信息后,生成第一对象的对象标识对应的第二对象的对象标识,基于第二对象的对象标识建立第二对象。
步骤S602,接收代理端发送的订阅结果,订阅结果携带第二对象的对象标识。
以上步骤S601和S602是客户端向代理端订阅云端服务器的指定内容的步骤。在订阅成功后,云端服务器-代理端-客户端之间的数据交互流程可以参见图3实施例和图4实施例,此处不作赘述。
步骤S603,向代理端发送第一取消订阅请求。
第一取消订阅请求第一对象的对象标识。客户端调用控制服务中的取消订阅方法对应的接口向代理端发送第一取消订阅请求。其中,取消订阅方法的消息类型为RR消息。
代理端用于基于第一取消订阅请求向云端服务器发送第二取消订阅请求,在接收到云端服务器发送的针对第二取消订阅请求的响应消息后,获取第一对象的对象标识对应的第二对象的对象标识,并基于第二对象的对象标识取消第二对象。
步骤S604,接收代理端发送的取消订阅结果。
以上步骤S603和S604是客户端向代理端订阅云端服务器的指定内容的步骤。
步骤S605,向代理端发送第一发布请求。
第一发布请求包括第一对象的对象标识。客户端调用控制服务中的发布方法对应的接口向代理端发送第一发布请求。其中,发布方法的消息类型为RR消息。
代理端用于基于第一发布请求与云端服务器建立通信连接,并向云端服务器发送第二发布请求,在接收到云端服务器发送的针对第二发布请求的响应信息后,生成第一对象的对象标识对应的第二对象的对象标识,基于第二对象的对象标识建立第二对象。
步骤S606,接收代理端发送的发布结果,发布结果携带第二对象的标识。
以上步骤S605和S606是客户端向通过代理端向云端服务器发布的指定内容的步骤。在发布成功后,客户端-代理端-云端之间的数据交互流程可以参见图3实施例和图5实施例,此处不作赘述。
图6是本申请实施例提供的数据传输装置的框图。该装置包括:第一通信模块610、确定模块620和第二通信模块630。
第一通信模块610,用于接收发送端基于第一通信协议发送的目标消息,目标消息包括待发送数据和第一对象的第一标识。
确定模块620,用于基于第一对象的对象标识确定第二对象。
第二通信模块630,用于基于第二对象将待发送数据发送至接收端。
综上所述,本申请实施例提供的技术方案,通过在代理端接收到发送端发送的目标消息后,基于目标消息中第一对象的对象标识确定第二对象,之后通过第二通信协议和第二对象将目标消息中的待发送数据发送至接收端,在发送端为云端服务器的情况下,无需要求云端服务器具备解析基于第二通信协议的消息的包头的能力,可以便于云端服务器进行切换,增强数据传输系统的容灾能力;另外代理端直接将数据转发给接收端,无需中间节点进行转发,减小转发次数,在数据传输出现问题的情况下能及时定位。
在一些实施例中,确定模块620,用于基于第一对象的对象标识和指定映射关系,确定第二通信协议下的第二对象的对象标识,指定映射关系包括不同第一对象的对象标识和不同第二对象的对象标识之间的映射关系;基于第二对象的对象标识,确定第二对象。
在一些实施例中,发送端为云端服务器,接收端为车联网系统中的客户端;装置还包括:订阅模块(图6未示出)。订阅模块,用于接收客户端发送的第一订阅请求,第一订阅请求包括第一对象的对象标识;基于第一订阅请求与云端服务器建立通信连接,并向云端服务器发送第二订阅请求;在接收到云端服务器发送的针对第二订阅请求的响应信息后,生成第一对象的对象标识对应的第二对象的对象标识,并基于第二对象的对象标识建立第二对象;向客户端发送订阅结果,订阅结果携带第二对象的对象标识。
在一些实施例中,装置还包括:取消订阅模块(图6未示出)。取消订阅模块,用于接收客户端发送的第一取消订阅请求,第一取消订阅请求携带第一对象的对象标识;基于第一取消订阅请求向云端服务器发送第二取消订阅请求;在接收到云端服务器发送的针对第二取消订阅请求的响应消息后,获取第一对象的对象标识对应的第二对象的对象标识,并基于第二对象的对象标识取消第二对象;向客户端发送取消订阅结果。
在一些实施例中,第一通信协议为超文本传输协议或者消息队列遥测传输协议;第二通信协议为基于因特网协议的可扩展面向服务通信中间件协议。
在一些实施例中,发送端为车联网系统中的客户端,接收端为云端服务器;装置还包括:发布模块(图6未示出)。发布模块,用于接收客户端发送的第一发布请求,第一发布请求包括第二对象的对象标识;基于第一发布请求与云端服务器建立通信连接,并向云端服务器发送第二发布请求;在接收到云端服务器发送的针对第二发布请求的响应信息后,生成第二对象的对象标识对应的第一对象的对象标识,并基于第一对象的对象标识建立第一对象;向客户端发送发布结果,发布结果携带第一对象的对象标识。
在一些实施例中,第一通信协议为基于因特网协议的可扩展面向服务通信中间件协议;第二通信协议为超文本传输协议或者消息队列遥测传输协议。
如图7所示,本申请示例还提供一种车辆700,该车辆700包括处理器710、存储器720。其中,存储器720存储有计算机程序指令。
处理器710可以包括一个或者多个处理核。处理器710利用各种接口和线路连接整个电池管理系统内的各种部分,通过运行或执行存储在存储器720内的指令、程序、代码集或指令集,以及调用存储在存储器720内的数据,执行电池管理系统的各种功能和处理数据。可选地,处理器710可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(ProgrammableLogic Array,PLA)中的至少一种硬件形式来实现。处理器710可集成中央处理器710(Central Processing Unit,CPU)、图像处理器710(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器710中,单独通过一块通信芯片进行实现。
存储器720可以包括随机存储器720(Random Access Memory,RAM),也可以包括只读存储器720(Read-Only Memory)。存储器720可用于存储指令、程序、代码、代码集或指令集。存储器720可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各种方法示例的指令等。存储数据区还可以存储车辆在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
请参阅图8,其示出了本申请实施例还提供一种计算机可读存储介质800,该计算机可读存储介质800中存储有计算机程序指令810,计算机程序指令810可被处理器调用以执行上述实施例中所描述的方法。
计算机可读存储介质800可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质800包括非易失性计算机可读存储介质(non-transitory computer-readable storage medium)。计算机可读存储介质800具有执行上述方法中的任何方法步骤SS的计算机程序指令810的存储空间。这些计算机程序指令810可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。计算机程序指令810可以以适当形式进行压缩。
以上,仅是本申请的较佳示例而已,并非对本申请作任何形式上的限制,虽然本申请已以较佳示例揭示如上,然而并非用以限定本申请,任何本领域技术人员,在不脱离本申请技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效示例,但凡是未脱离本申请技术方案内容,依据本申请的技术实质对以上示例所作的任何简介修改、等同变化与修饰,均仍属于本申请技术方案的范围内。
Claims (6)
1.一种数据传输方法,其特征在于,所述方法包括:
接收发送端基于第一通信协议发送的目标消息,所述目标消息包括待发送数据和第一对象的对象标识;所述发送端用于向接收端发送信息,在所述发送端为云端服务器、所述接收端为车联网系统中的客户端的情况下,所述第一通信协议为超文本传输协议或者消息队列遥测传输协议,并且在所述接收发送端基于第一通信协议发送的目标消息之前,所述方法还包括:接收所述客户端发送的第一订阅请求,所述第一订阅请求包括所述第一对象的对象标识;基于所述第一订阅请求与所述云端服务器建立通信连接,并向所述云端服务器发送第二订阅请求;在接收到所述云端服务器发送的针对所述第二订阅请求的响应信息后,生成所述第一对象的对象标识对应的第二对象的对象标识,并基于所述第二对象的对象标识建立所述第二对象;向所述客户端发送订阅结果,所述订阅结果携带所述第二对象的对象标识;
基于所述第一对象的对象标识和指定映射关系,确定第二对象的对象标识,所述指定映射关系为服务标识/方法标识与服务器地址/主题标识之间的映射关系;
基于所述第二对象的对象标识,确定所述第二对象;
基于第二通信协议和所述第二对象将所述待发送数据发送至所述接收端;在所述发送端为云端服务器、所述接收端为所述车联网系统中的客户端的情况下,所述第二通信协议为基于因特网协议的可扩展面向服务通信中间件协议。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第二对象的对象标识,确定所述第二对象之后,还包括:
接收所述客户端发送的第一取消订阅请求,所述第一取消订阅请求携带所述第一对象的对象标识;
基于所述第一取消订阅请求向所述云端服务器发送第二取消订阅请求;
在接收到所述云端服务器发送的针对所述第二取消订阅请求的响应消息后,获取所述第一对象的对象标识对应的第二对象的对象标识,并基于所述第二对象的对象标识取消所述第二对象;
向所述客户端发送取消订阅结果。
3.根据权利要求1所述的方法,其特征在于,在所述发送端为所述车联网系统中的客户端,所述接收端为云端服务器的情况下,所述第一通信协议为基于因特网协议的可扩展面向服务通信中间件协议,所述第二通信协议为超文本传输协议或者消息队列遥测传输协议,并且在所述接收发送端基于第一通信协议发送的目标消息之前,还包括:
接收所述客户端发送的第一发布请求,所述第一发布请求包括所述第二对象的对象标识;
基于所述第一发布请求与所述云端服务器建立通信连接,并向所述云端服务器发送第二发布请求;
在接收到所述云端服务器发送的针对所述第二发布请求的响应信息后,生成所述第二对象的对象标识对应的第一对象的对象标识,并基于所述第一对象的对象标识建立所述第一对象;
向所述客户端发送发布结果,所述发布结果携带所述第一对象的对象标识。
4.一种数据传输装置,其特征在于,所述装置包括:
第一通信模块,用于接收发送端基于第一通信协议发送的目标消息,所述目标消息包括待发送数据和第一对象的第一标识;所述发送端用于向接收端发送信息,在所述发送端为云端服务器、所述接收端为车联网系统中的客户端的情况下,所述第一通信协议为超文本传输协议或者消息队列遥测传输协议;其中,所述装置还包括订阅模块,在所述第一通信模块接收发送端基于第一通信协议发送的目标消息之前,所述订阅模块用于接收所述客户端发送的第一订阅请求,所述第一订阅请求包括所述第一对象的对象标识;基于所述第一订阅请求与所述云端服务器建立通信连接,并向所述云端服务器发送第二订阅请求;在接收到所述云端服务器发送的针对所述第二订阅请求的响应信息后,生成所述第一对象的对象标识对应的第二对象的对象标识,并基于所述第二对象的对象标识建立所述第二对象;向所述客户端发送订阅结果,所述订阅结果携带所述第二对象的对象标识;
确定模块,用于基于所述第一对象的对象标识和指定映射关系,确定第二对象的对象标识,所述指定映射关系为服务标识/方法标识与服务器地址/主题标识之间的映射关系;基于所述第二对象的对象标识,确定所述第二对象;
第二通信模块,用于基于第二通信协议和所述第二对象将所述待发送数据发送至所述接收端;在所述发送端为云端服务器、所述接收端为车联网系统中的客户端的情况下,所述第二通信协议为基于因特网协议的可扩展面向服务通信中间件协议。
5.一种车辆,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如权利要求1-3任一项所述的方法。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序代码,所述程序代码被处理器调用执行如权利要求1-3任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210657313.9A CN115225706B (zh) | 2022-06-10 | 2022-06-10 | 数据传输方法、装置、车辆以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210657313.9A CN115225706B (zh) | 2022-06-10 | 2022-06-10 | 数据传输方法、装置、车辆以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115225706A CN115225706A (zh) | 2022-10-21 |
CN115225706B true CN115225706B (zh) | 2024-05-31 |
Family
ID=83607220
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210657313.9A Active CN115225706B (zh) | 2022-06-10 | 2022-06-10 | 数据传输方法、装置、车辆以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115225706B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116036578B (zh) * | 2023-01-28 | 2023-06-13 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置及相关设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105099788A (zh) * | 2015-09-01 | 2015-11-25 | 上海斐讯数据通信技术有限公司 | 一种光网络单元集中管理系统及方法 |
US10021052B1 (en) * | 2012-09-22 | 2018-07-10 | Sitting Man, Llc | Methods, systems, and computer program products for processing a data object identification request in a communication |
CN110891014A (zh) * | 2019-11-28 | 2020-03-17 | 北京宁云科技有限公司 | 基于硬件的mqtt发布订阅方法及系统 |
CN112055091A (zh) * | 2020-09-11 | 2020-12-08 | 华人运通(上海)云计算科技有限公司 | 车载微服务架构、车载模块的通信方法和装置 |
CN112291124A (zh) * | 2020-09-27 | 2021-01-29 | 上海赫千电子科技有限公司 | 一种基于some/ip协议的车载网络ecu通信方法 |
CN113965602A (zh) * | 2021-10-26 | 2022-01-21 | 广州小鹏汽车科技有限公司 | 车载ecu的订阅发布通信方法、服务器及系统 |
CN114553873A (zh) * | 2022-02-27 | 2022-05-27 | 重庆长安汽车股份有限公司 | 基于soa的车云协同控制系统、方法及可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160212083A9 (en) * | 2011-09-07 | 2016-07-21 | Microsoft Technology Licensing, Llc | Connection sharing across entities in a distributed messaging system |
US20140089419A1 (en) * | 2012-09-22 | 2014-03-27 | Deep River Ventures, Llc | Methods, Systems, and Program Products for Processing a Data Object Identification Request in a Communication |
US10645181B2 (en) * | 2016-12-12 | 2020-05-05 | Sap Se | Meta broker for publish-subscribe-based messaging |
CN113196266A (zh) * | 2018-10-02 | 2021-07-30 | 大众汽车股份公司 | 使用车辆的车辆计算单元执行一个或多个车辆应用的方法、车辆计算单元、用于提供用于车辆应用的许可信息清单的方法、用于车辆应用的许可信息清单和计算机程序 |
-
2022
- 2022-06-10 CN CN202210657313.9A patent/CN115225706B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10021052B1 (en) * | 2012-09-22 | 2018-07-10 | Sitting Man, Llc | Methods, systems, and computer program products for processing a data object identification request in a communication |
CN105099788A (zh) * | 2015-09-01 | 2015-11-25 | 上海斐讯数据通信技术有限公司 | 一种光网络单元集中管理系统及方法 |
CN110891014A (zh) * | 2019-11-28 | 2020-03-17 | 北京宁云科技有限公司 | 基于硬件的mqtt发布订阅方法及系统 |
CN112055091A (zh) * | 2020-09-11 | 2020-12-08 | 华人运通(上海)云计算科技有限公司 | 车载微服务架构、车载模块的通信方法和装置 |
CN112291124A (zh) * | 2020-09-27 | 2021-01-29 | 上海赫千电子科技有限公司 | 一种基于some/ip协议的车载网络ecu通信方法 |
CN113965602A (zh) * | 2021-10-26 | 2022-01-21 | 广州小鹏汽车科技有限公司 | 车载ecu的订阅发布通信方法、服务器及系统 |
CN114553873A (zh) * | 2022-02-27 | 2022-05-27 | 重庆长安汽车股份有限公司 | 基于soa的车云协同控制系统、方法及可读存储介质 |
Non-Patent Citations (1)
Title |
---|
面向移动互联网的"SIP over MQTT"优化传输机制研究;杨海波 等;小型微型计算机系统(04);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115225706A (zh) | 2022-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112291124B (zh) | 一种基于some/ip协议的车载网络ecu通信方法 | |
CN110311983B (zh) | 服务请求的处理方法、装置、系统、电子设备及存储介质 | |
CN105791315B (zh) | 一种udp协议加速方法和系统 | |
CN110753129A (zh) | 消息传输方法、系统、装置、设备及计算机可读存储介质 | |
CN110601980B (zh) | 一种车载终端的通信方法、系统及存储介质 | |
CN112532673B (zh) | 消息发送方法及装置、计算机可读存储介质、电子设备 | |
CN113965628B (zh) | 消息调度方法、服务器和存储介质 | |
CN115225706B (zh) | 数据传输方法、装置、车辆以及存储介质 | |
CN111506443A (zh) | 服务调用方法、装置、设备和存储介质 | |
CN110995829B (zh) | 实例调用方法、装置及计算机存储介质 | |
CN116846959A (zh) | 一种基于mqtt协议的消息收发方法及装置 | |
CN117082137A (zh) | 保持ota升级刷写模式的通信方法、装置、设备及介质 | |
CN111756782B (zh) | 基于异构操作系统的消息传输系统、方法和车辆 | |
CN112804303A (zh) | 服务提供方法、装置、系统、中转平台及存储介质 | |
CN116800787A (zh) | 一种基于以太网通讯协议的车载通信方法及系统 | |
CN109981778B (zh) | 内容分发网络的服务实现方法、装置、设备及存储介质 | |
CN112104747B (zh) | 一种基于链式处理的请求响应系统 | |
US20220377142A1 (en) | Relay device, in-vehicle communication system, vehicle, and in-vehicle communication method | |
CN115225482A (zh) | 一种基于Kubernetes进行Pod容器网络配置的方法及装置 | |
CN109582481B (zh) | 调用结果的传输方法、装置、设备及存储介质 | |
CN110460586B (zh) | 车内节点通信方法、装置、设备及存储介质 | |
CN115412588B (zh) | 一种远程更新配置文件的方法、装置及电子设备 | |
CN116709265A (zh) | 车载通信方法、装置、设备和存储介质 | |
CN114449025B (zh) | 一种通信方法及系统 | |
CN118041973A (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 |