CN117615037A - 一种车辆通信方法、中间件***及存储介质 - Google Patents
一种车辆通信方法、中间件***及存储介质 Download PDFInfo
- Publication number
- CN117615037A CN117615037A CN202311439190.2A CN202311439190A CN117615037A CN 117615037 A CN117615037 A CN 117615037A CN 202311439190 A CN202311439190 A CN 202311439190A CN 117615037 A CN117615037 A CN 117615037A
- Authority
- CN
- China
- Prior art keywords
- message
- module
- communication
- tcp
- management module
- 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
- 238000004891 communication Methods 0.000 title claims abstract description 322
- 238000000034 method Methods 0.000 title claims abstract description 133
- 230000005540 biological transmission Effects 0.000 claims abstract description 8
- 238000004590 computer program Methods 0.000 claims description 4
- 230000003993 interaction Effects 0.000 abstract description 12
- 230000006978 adaptation Effects 0.000 abstract description 5
- 230000008569 process Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 10
- 239000011230 binding agent Substances 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000000737 periodic effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- 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/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- 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/08—Protocols for interworking; Protocol conversion
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种车辆通信方法、中间件***及存储介质。该方法应用于中间件***,中间件***集成在车辆的远程通信终端TBOX内部,所述中间件***包括进程间通信模块、通信管理模块和传输控制协议TCP服务端模块,该方法包括:通过进程间通信模块,在接收到TBOX内部的应用程序传输的订阅消息时,将订阅消息传输至通信管理模块;通过TCP服务端模块,获取TBOX外部的通信设备传输的候选TCP消息,并将候选TCP消息传输至通信管理模块;通过通信管理模块,基于订阅消息和候选TCP消息确定目标TCP消息,并将目标TCP消息经进程间通信模块传输至应用程序。该方法实现了TBOX内部的应用程序和TBOX外部的通信设备的TCP交互,可以满足既有协议的适配,同时实现了通信的高可扩展性。
Description
技术领域
本发明实施例涉及车辆通信技术领域,尤其涉及一种车辆通信方法、中间件***及存储介质。
背景技术
车载信息娱乐***(In-Vehicle Infotainment,IVI)与远程通信终端(Telematics Box,TBOX)进行通信时,通常采用的是基于IP的可扩展的面向服务的中间件(Scalable service-Oriented MiddlewarE over IP,SOME/IP)协议。在开发过程中会存在业务需求变更的情况,大多业务需求都是基于主机厂的一些既有协议,而很多主机厂的一些既有协议基本无法与常用的SOME/IP协议进行无缝转换,需要通过对TBOX做大幅改动,导致通信的可扩展性较差。
发明内容
本发明提供了一种车辆通信方法、中间件***及存储介质,该方法通过中间件***包括的各模块实现了TBOX内部的应用程序和TBOX外部的通信设备的TCP交互,可以满足既有协议的适配,同时实现了通信的高可扩展性。
第一方面,本发明实施例提供了一种车辆通信方法,应用于中间件***,所述中间件***集成在车辆的远程通信终端TBOX内部,所述中间件***包括进程间通信模块、通信管理模块和传输控制协议TCP服务端模块,所述通信管理模块分别连接所述进程间通信模块和所述TCP服务端模块,所述方法包括:
通过所述进程间通信模块,在接收到TBOX内部的应用程序传输的订阅消息时,将所述订阅消息传输至所述通信管理模块;
通过所述TCP服务端模块,获取TBOX外部的通信设备传输的候选TCP消息,并将所述候选TCP消息传输至所述通信管理模块;
通过所述通信管理模块,基于所述订阅消息和所述候选TCP消息确定目标TCP消息,并将所述目标TCP消息经所述进程间通信模块传输至所述应用程序。
第二方面,本发明实施例提供了一种中间件***,所述中间件***集成在车辆的远程通信终端TBOX内部,所述中间件***包括进程间通信模块、通信管理模块和传输控制协议TCP服务端模块,所述通信管理模块分别连接所述进程间通信模块和所述TCP服务端模块;
所述进程间通信模块,用于在接收到TBOX内部的应用程序传输的订阅消息时,将所述订阅消息传输至所述通信管理模块;
所述TCP服务端模块,用于获取TBOX外部的通信设备传输的候选TCP消息,并将所述候选TCP消息传输至所述通信管理模块;
所述通信管理模块,用于基于所述订阅消息和所述候选TCP消息确定目标TCP消息,并将所述目标TCP消息经所述进程间通信模块传输至所述应用程序。
第三方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被执行时实现如第一方面所述的方法。
本发明实施例的技术方案,通过进程间通信模块,在接收到TBOX内部的应用程序传输的订阅消息时,将订阅消息传输至通信管理模块;通过TCP服务端模块,获取TBOX外部的通信设备传输的候选TCP消息,并将候选TCP消息传输至通信管理模块;通过通信管理模块,基于订阅消息和候选TCP消息确定目标TCP消息,并将目标TCP消息经进程间通信模块传输至应用程序。该方法通过中间件***包括的各模块实现TBOX内部的应用程序和TBOX外部的通信设备的TCP交互,既可以满足既有协议的适配,同时在业务需求变更时只需对通信管理模块的处理逻辑进行改变,而不需要对TBOX做大幅改动,实现了通信的高可扩展性。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例一提供的一种车辆通信方法的流程图;
图2是根据本发明实施例一提供的一种通过中间件***实现TBOX内部的应用程序和TBOX外部的通信设备交互的示意图;
图3是根据本发明实施例二提供的一种车辆通信方法的流程图;
图4是根据本发明实施例二提供的一种中间件***和应用程序交互的示意图;
图5是根据本发明实施例二提供的一种中间件***和应用程序交互的时序图;
图6是根据本发明实施例二提供的一种应用程序和通信设备通过中间件***交互的时序图;
图7是根据本发明实施例三提供的一种中间件***的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
可以理解的是,在使用本发明各实施例公开的技术方案之前,均应当依据相关法律法规通过恰当的方式对本公开所涉及个人信息的类型、使用范围以及使用场景等告知用户并获得用户的授权。
传统的IVI等通信设备与TBOX通讯时,通常是采用SOME/IP协议进行通讯,此种方式通常用于传输数据量较大的数据,其订阅发布的特性也满足周期性数据传输要求。但部分主机厂存在一些小数据传输的需求,且周期性数据较少,多为触发类的请求响应类交互短消息,消息本体长度甚至为0;并且,由于SOME/IP是近几年兴起的新协议,基于该协议开发的协议栈也还在不停地进行版本迭代和问题修复,而很多主机厂已有一些使用多年的代码,使用的是基于TCP的自定义协议,稳定可靠。
其中,既有协议和程序(IVI上的程序)基本上是无法直接与现在常用的SOME/IP协议进行无缝转换的,而其通讯内容通常只有几个字节也不需要用到复杂的SOME/IP协议进行传输,这就产生必须让对端(TBOX)进行适配的需求。此外,在开发过程中,后续的需求都是基于既有协议的,因为都是简单的指令交互,因此TBOX上开发的程序必须具备良好的可扩展性,以便支持后续的功能扩展。
本发明实施例提供的一种车辆通信方法,通过中间件***包括的各模块实现TBOX内部的应用程序和TBOX外部的通信设备的TCP交互,既可以满足既有协议的适配,同时在业务需求变更时只需对通信管理模块的处理逻辑进行改变,而不需要对TBOX做大幅改动,实现了通信的高可扩展性。
实施例一
图1是根据本发明实施例一提供的一种车辆通信方法的流程图,本实施例可适用于实现TBOX内部的应用程序和TBOX外部的通信设备交互的情况,该方法可以应用于中间件***,所述中间件***集成在车辆的远程通信终端TBOX内部,所述中间件***包括进程间通信模块、通信管理模块和传输控制协议TCP服务端模块,所述通信管理模块分别连接所述进程间通信模块和所述TCP服务端模块。
如图1所示,该方法包括:
S110、通过所述进程间通信模块,在接收到TBOX内部的应用程序传输的订阅消息时,将所述订阅消息传输至所述通信管理模块。
其中,进程间通信模块作为进程间通信的binder封装,为多个不同进程提供订阅、接收、发送消息的能力。通信管理模块作为中间人,处理、传递来自进程间通信模块和TCP服务端模块的消息,具备良好的可扩展性,支持对消息的修改。
图2是根据本发明实施例一提供的一种通过中间件***实现TBOX内部的应用程序和TBOX外部的通信设备交互的示意图。如图2所示,本发明提供的中间件***,作为通信中间件,在TBOX内部可以处理所有其它应用程序(Application,APP)的请求,支持APP的随意增加或减少;在TBOX外部可以对接一个或多个通信设备,可以实现对通信细节的完全封装。其中,与中间件***对接的通信设备可以是IVI,还可以是其他通信设备,只要该通信设备也采用TCP的通讯方式并定义好通信细节即可。
本发明提供的中间件***,可以视为一个独立的进程,通过binder的方式实现进程间通信(Inter-Process Communication,IPC),以使中间件***包括的进程间通信模块可以与TBOX内部的应用程序进行通信。其中,binder是开源的代码,被广泛使用,采用binder的方式实现进程间通信,在其上封装接口,可以提供消息订阅、主动接收/发送以及注册回调通知的能力,相比常用的其它IPC的方式效率更高。
订阅消息可以是指示应用程序需要通过中间件***订阅通信设备传输的消息的消息,订阅消息所指示应用程序所需订阅的消息,可以是TBOX外部的通信设备传输至中间件***的部分或全部消息。在订阅时,可以订阅以消息类型为区分的消息,支持订阅多个消息,此处不作限定。
通过进程间通信模块,在接收到TBOX内部的应用程序传输的订阅消息时,表明该应用程序需要通过中间件***获取TBOX外部的通信设备传输的消息,且所需获取的消息为订阅消息所指示应用程序所需订阅的消息,此时可以将订阅消息传输至通信管理模块,以使通信管理模块在后续基于订阅消息向应用程序返回其订阅的消息。
S120、通过所述TCP服务端模块,获取TBOX外部的通信设备传输的候选TCP消息,并将所述候选TCP消息传输至所述通信管理模块。
在中间件***中,TCP服务端模块的数量可以为一个或多个,各TCP服务端模块用于与不同的通信设备建立连接。即通过多个TCP服务端模块可以启动多个实例,在不同端口上开启TCP服务,提供TCP消息发送和接收能力。本步骤所涉及的TCP服务端模块,可以是中间件***中包括的任一TCP服务端模块。
候选TCP消息可以是TBOX外部的通信设备,通过TCP连接的方式,传输至TCP服务端模块的消息。通过TCP服务端模块,可以与TBOX外部的通信设备建立TCP连接,获取通信设备传输的候选TCP消息,并将候选TCP消息传输至通信管理模块,以使通信管理模块在后续基于候选TCP消息向应用程序返回其订阅的消息。
S130、通过所述通信管理模块,基于所述订阅消息和所述候选TCP消息确定目标TCP消息,并将所述目标TCP消息经所述进程间通信模块传输至所述应用程序。
其中,目标TCP消息可以是TBOX外部的通信设备传输的候选TCP消息中,应用程序订阅的消息。
通过所述通信管理模块,基于所述订阅消息和所述候选TCP消息确定目标TCP消息,具体的,可以将候选TCP消息中,订阅消息所指示应用程序所需订阅的消息,确定为目标TCP消息。订阅消息所指示应用程序所需订阅的消息,可以是设定的某种消息类型的消息,此处不作限定。
通过所述通信管理模块,将所述目标TCP消息经所述进程间通信模块传输至所述应用程序,具体的,可以通过通信管理模块将目标TCP消息先传输至进程间通信模块,再由进程间通信模块将目标TCP消息通过进程间通信的方式传输至应用程序。
本发明实施例的技术方案,通过进程间通信模块,在接收到TBOX内部的应用程序传输的订阅消息时,将订阅消息传输至通信管理模块;通过TCP服务端模块,获取TBOX外部的通信设备传输的候选TCP消息,并将候选TCP消息传输至通信管理模块;通过通信管理模块,基于订阅消息和候选TCP消息确定目标TCP消息,并将目标TCP消息经进程间通信模块传输至应用程序。该方法通过中间件***包括的各模块实现TBOX内部的应用程序和TBOX外部的通信设备的TCP交互,既可以满足既有协议的适配,同时在业务需求变更时只需对通信管理模块的处理逻辑进行改变,而不需要对TBOX做大幅改动,实现了通信的高可扩展性。
实施例二
图3是根据本发明实施例二提供的一种车辆通信方法的流程图,本实施例是在上述实施例一的基础上,对通过所述TCP服务端模块,获取TBOX外部的通信设备传输的候选TCP消息的进一步细化;以及对通过所述通信管理模块,基于所述订阅消息和所述候选TCP消息确定目标TCP消息,并将所述目标TCP消息经所述进程间通信模块传输至所述应用程序的进一步细化;以及对该方法还包括的内容的进一步细化。
图4是根据本发明实施例二提供的一种中间件***和应用程序交互的示意图。图5是根据本发明实施例二提供的一种中间件***和应用程序交互的时序图。本发明实施例中结合图4和图5,对图3所示的一种车辆通信方法进行说明。如图3所示,该方法包括:
S301、通过所述进程间通信模块,在接收到TBOX内部的应用程序传输的订阅消息时,将所述订阅消息传输至所述通信管理模块。
如图4所示,中间件***包括的进程间通信模块可以作为binder通信的服务端,应用程序APP中包括的进程间通信模块可以作为binder通信的客户端。
如图5所示,步骤(1)中,APP向APP中包括的进程间通信模块传输订阅消息;步骤(2)中,APP中包括的进程间通信模块可以将订阅消息传输至中间件***包括的进程间通信模块;步骤(3)中,中间件***包括的进程间通信模块可以将订阅消息传输至通信管理模块。
S302、通过所述TCP服务端模块,在接收到TBOX外部的通信设备传输的连接请求时,与所述通信设备建立连接。
S303、通过所述TCP服务端模块,与所述通信设备进行密钥交换。
S304、通过所述TCP服务端模块,获取所述通信设备传输的候选TCP消息。
在一个实施例中,在与所述通信设备建立连接之后,该方法还包括:
通过所述TCP服务端模块,将与所述通信设备的连接状态经所述通信管理模块和所述进程间通信模块传输至所述应用程序。
图6是根据本发明实施例二提供的一种应用程序和通信设备通过中间件***交互的时序图。上述步骤S302到S304,可以认为是图5所示步骤(3)之后到步骤(4)之前执行的步骤。结合图6和图4对上述步骤S302到S304进行说明:
如图6所示,在中间件***接收到APP传输的订阅消息后,通信设备可以向中间件***发起连接请求。此时,中间件***包括的TCP服务端模块可以接收到通信设备传输的连接请求,并与通信设备建立连接。其中,连接请求为通信设备请求与中间件***建立连接的请求。
在TCP服务端模块与通信设备建立连接之后,可以将中间件***与通信设备的连接状态经通信管理模块和进程间通信模块传输至应用程序,以实现中间件***与通信设备的连接状态的回调通知。
通过所述TCP服务端模块,与所述通信设备进行密钥交换,以便后续在中间件***中能够对通信设备传输的消息进行加密或解密。
在中间件***与通信设备建立连接后,可以通过TCP服务端模块,获取通信设备传输的候选TCP消息。
S305、通过所述TCP服务端模块,将所述候选TCP消息传输至所述通信管理模块。
在TCP服务端模块获取通信设备传输的候选TCP消息后,如图5所示步骤(4),可以通过TCP服务端模块,将候选TCP消息传输至通信管理模块。
S306、通过所述通信管理模块,将所述候选TCP消息中,所述订阅消息所指示所述应用程序所需订阅的消息,确定为所述目标TCP消息;执行S307或执行S308。
通过通信管理模块,在获取到候选TCP消息后,可以将候选TCP消息中,订阅消息所指示应用程序所需订阅的消息,确定为目标TCP消息,目标TCP消息为最终需要返回至应用程序的消息。
在一个实施例中,可以将通信管理模块获取到的候选TCP消息存放至通信管理模块包括的接收队列中,以便后续进行处理。
S307、通过所述通信管理模块,在所述目标TCP消息为需要进行解密的消息时,将所述目标TCP消息传输至所述加解密模块进行解密;通过所述通信管理模块,获取所述加解密模块传输的解密后的目标TCP消息,并将所述解密后的目标TCP消息经所述进程间通信模块传输至所述应用程序。
如图4所示,中间件***还包括加解密模块,加解密模块与通信管理模块连接。加解密模块用于对通信管理模块传输的消息进行加密或解密。
通过通信管理模块,可以根据实际需要确定目标TCP消息是否为需要进行解密的消息,若是则如图5所示步骤(5),通信管理模块将目标TCP消息传输至加解密模块进行解密;步骤(6)中加解密模块将解密后的目标TCP消息返回至通信管理模块;步骤(7)中通信管理模块将解密后的目标TCP消息传输至中间件***包括的进程间通信模块;步骤(8)中中间件***包括的进程间通信模块将解密后的目标TCP消息传输至APP包括的进程间通信模块;步骤(9)中APP包括的进程间通信模块将解密后的目标TCP消息传输至APP,使应用程序可以获取到解密后的目标TCP消息。
S308、通过所述通信管理模块,在所述目标TCP消息为不需要进行解密的消息时,将所述目标TCP消息经所述进程间通信模块传输至所述应用程序。
通过通信管理模块,在目标TCP消息为不需要进行解密的消息时,在图5所示步骤(4)之后直接执行步骤(7)。在步骤(7)中通信管理模块将目标TCP消息传输至中间件***包括的进程间通信模块;步骤(8)中中间件***包括的进程间通信模块将目标TCP消息传输至APP包括的进程间通信模块;步骤(9)中APP包括的进程间通信模块将目标TCP消息传输至APP,使应用程序可以获取到目标TCP消息。
在一个实施例中,该方法还包括:
通过所述进程间通信模块,在接收到所述应用程序传输的待发送消息时,将所述待发送消息传输至所述通信管理模块;
通过所述通信管理模块,将所述待发送消息经所述TCP服务端模块传输至所述通信设备。
其中,待发送消息可以是应用程序需传输至TBOX外部的通信设备的消息。
如图5所示,步骤(10)中APP将待发送消息传输至APP包括的进程间通信模块;步骤(11)中APP包括的进程间通信模块将待发送消息传输至中间件***包括的进程间通信模块;步骤(12)中中间件***包括的进程间通信模块将待发送消息传输至通信管理模块。
在一个实施例中,可以将通信管理模块获取到的待发送消息存放至通信管理模块包括的发送队列中,以便后续进行处理。
通过通信管理模块,可以将待发送消息先传输至TCP服务端模块,再由TCP服务端模块将待发送消息传输至通信设备。
在一个实施例中,通过所述通信管理模块,将所述待发送消息经所述TCP服务端模块传输至所述通信设备,包括:
通过所述通信管理模块,在所述待发送消息为需要进行加密的消息时,将所述待发送消息传输至所述中间件***包括的加解密模块进行加密;
通过所述通信管理模块,获取所述加解密模块传输的加密后的待发送消息,并将所述加密后的待发送消息经所述TCP服务端模块传输至所述通信设备。
通过通信管理模块,可以根据实际需要确定待发送消息是否为需要进行加密的消息,若是则如图5所示步骤(13),通信管理模块将待发送消息传输至加解密模块进行加密;步骤(14)中加解密模块将加密后的待发送消息返回至通信管理模块;步骤(15)中通信管理模块将加密后的待发送消息传输至TCP服务端模块;在步骤(15)之后,TCP服务端模块可以将加密后的待发送消息传输至通信设备。
在一个实施例中,通过所述通信管理模块,将所述待发送消息经所述TCP服务端模块传输至所述通信设备,包括:
通过所述通信管理模块,在所述待发送消息为不需要进行加密的消息时,将所述待发送消息经所述TCP服务端模块传输至所述通信设备。
通过通信管理模块,在待发送消息为不需要进行加密的消息时,在图5所示步骤(12)之后直接执行步骤(15)。在步骤(15)中通信管理模块将待发送消息传输至TCP服务端模块;在步骤(15)之后,TCP服务端模块可以将待发送消息传输至通信设备。
本发明实施例涉及到的中间件***,可以理解为是一个独立的进程,其对外暴露远程调用的接口,如基于远程过程调用协议(Remote Procedure Call,RPC)的接口,该接口的功能包含:订阅以消息类型为区分的消息(支持订阅多个);接收消息,获取该消息的消息类型;发送某种消息类型的消息;获取对端的连接状态(即注册回调)。
本发明实施例涉及到的中间件***运行在TBOX上,其对TBOX内部的接口由进程间通信模块提供,对TBOX外部由TCP服务端模块提供消息收发能力。该中间件***需要响应来自TBOX内其它进程的接口调用,如发送接口被调用时,需要对消息按协议进行封装、加密(可选)最后将消息发送给通信设备如IVI。在中间件***收到来自通信设备如IVI的TCP消息时,需要能够解析该消息,分辨其合法性,并根据预定的规则决定对该消息是否进行加解密,最终通知已订阅此消息的TBOX内的其它进程。
本发明实施例涉及到的中间件***,可以将具体的通讯细节封装、隔离,支持异步处理避免阻塞;可以同时为多个独立的进程提供服务,并且在进程异常退出后,再次被看门狗拉起时能够恢复到异常退出前的状态。
本发明实施例提供的一种车辆通信方法,在中间件***接收到通信设备传输的消息时,不会在内部进行分发/广播,而是采用订阅的方式,只将消息传递给订阅此消息的进程,因此兼有SOME/IP协议的优点,又保持了轻量级,减少了数据的流动和不必要的IPC(进程间通信)消耗,对整体硬件性能消耗很低。
本发明实施例提供的一种车辆通信方法,由中间件***同时负责对端进行通讯、加解密控制,且中间件***内部的接口简单,应用只需关心消息本身的处理。
本发明实施例提供的一种车辆通信方法,在后续业务需求变更时,只要核心协议不变,业务上的新增都可以在当前基础上做扩展,简单来说就是业务变更只需增加、删除、修改当前消息处理的逻辑,而不需要对中间件***做大幅改动,将“通讯”与“业务”完全隔离,方便扩展。
实施例三
图7是根据本发明实施例三提供的一种中间件***的结构示意图。其中,所述中间件***集成在车辆的远程通信终端TBOX内部,所述中间件***包括进程间通信模块、通信管理模块和传输控制协议TCP服务端模块,所述通信管理模块分别连接所述进程间通信模块和所述TCP服务端模块;
所述进程间通信模块,用于在接收到TBOX内部的应用程序传输的订阅消息时,将所述订阅消息传输至所述通信管理模块;
所述TCP服务端模块,用于获取TBOX外部的通信设备传输的候选TCP消息,并将所述候选TCP消息传输至所述通信管理模块;
所述通信管理模块,用于基于所述订阅消息和所述候选TCP消息确定目标TCP消息,并将所述目标TCP消息经所述进程间通信模块传输至所述应用程序。
在一个实施例中,所述TCP服务端模块的数量为一个或多个,各所述TCP服务端模块用于与不同的通信设备建立连接。
在一个实施例中,所述TCP服务端模块,具体用于:
在接收到TBOX外部的通信设备传输的连接请求时,与所述通信设备建立连接;
与所述通信设备进行密钥交换;
获取所述通信设备传输的候选TCP消息。
在一个实施例中,所述TCP服务端模块,具体用于:
在与所述通信设备建立连接之后,将与所述通信设备的连接状态经所述通信管理模块和所述进程间通信模块传输至所述应用程序。
在一个实施例中,所述通信管理模块,具体用于:
将所述候选TCP消息中,所述订阅消息所指示所述应用程序所需订阅的消息,确定为所述目标TCP消息。
在一个实施例中,所述中间件***还包括加解密模块,相应的,所述通信管理模块,具体用于:
在所述目标TCP消息为需要进行解密的消息时,将所述目标TCP消息传输至所述加解密模块进行解密;
获取所述加解密模块传输的解密后的目标TCP消息,并将所述解密后的目标TCP消息经所述进程间通信模块传输至所述应用程序。
在一个实施例中,所述通信管理模块,具体用于:
在所述目标TCP消息为不需要进行解密的消息时,将所述目标TCP消息经所述进程间通信模块传输至所述应用程序。
在一个实施例中,所述进程间通信模块还用于:
在接收到所述应用程序传输的待发送消息时,将所述待发送消息传输至所述通信管理模块;
相应的,所述通信管理模块还用于:
将所述待发送消息经所述TCP服务端模块传输至所述通信设备。
在一个实施例中,所述通信管理模块还具体用于:
在所述待发送消息为需要进行加密的消息时,将所述待发送消息传输至所述中间件***包括的加解密模块进行加密;
获取所述加解密模块传输的加密后的待发送消息,并将所述加密后的待发送消息经所述TCP服务端模块传输至所述通信设备。
在一个实施例中,所述通信管理模块还具体用于:
在所述待发送消息为不需要进行加密的消息时,将所述待发送消息经所述TCP服务端模块传输至所述通信设备。
本发明实施例所提供的中间件***可执行本发明任意实施例所提供的车辆通信方法,具备执行方法相应的功能模块和有益效果。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被执行时实现本发明任意实施例中的车辆通信方法。
其中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (12)
1.一种车辆通信方法,其特征在于,应用于中间件***,所述中间件***集成在车辆的远程通信终端TBOX内部,所述中间件***包括进程间通信模块、通信管理模块和传输控制协议TCP服务端模块,所述通信管理模块分别连接所述进程间通信模块和所述TCP服务端模块,所述方法包括:
通过所述进程间通信模块,在接收到TBOX内部的应用程序传输的订阅消息时,将所述订阅消息传输至所述通信管理模块;
通过所述TCP服务端模块,获取TBOX外部的通信设备传输的候选TCP消息,并将所述候选TCP消息传输至所述通信管理模块;
通过所述通信管理模块,基于所述订阅消息和所述候选TCP消息确定目标TCP消息,并将所述目标TCP消息经所述进程间通信模块传输至所述应用程序。
2.根据权利要求1所述的方法,其特征在于,通过所述TCP服务端模块,获取TBOX外部的通信设备传输的候选TCP消息,包括:
通过所述TCP服务端模块,在接收到TBOX外部的通信设备传输的连接请求时,与所述通信设备建立连接;
通过所述TCP服务端模块,与所述通信设备进行密钥交换;
通过所述TCP服务端模块,获取所述通信设备传输的候选TCP消息。
3.根据权利要求2所述的方法,其特征在于,在与所述通信设备建立连接之后,还包括:
通过所述TCP服务端模块,将与所述通信设备的连接状态经所述通信管理模块和所述进程间通信模块传输至所述应用程序。
4.根据权利要求1所述的方法,其特征在于,通过所述通信管理模块,基于所述订阅消息和所述候选TCP消息确定目标TCP消息,包括:
通过所述通信管理模块,将所述候选TCP消息中,所述订阅消息所指示所述应用程序所需订阅的消息,确定为所述目标TCP消息。
5.根据权利要求1所述的方法,其特征在于,所述中间件***还包括加解密模块,相应的,通过所述通信管理模块,将所述目标TCP消息经所述进程间通信模块传输至所述应用程序,包括:
通过所述通信管理模块,在所述目标TCP消息为需要进行解密的消息时,将所述目标TCP消息传输至所述加解密模块进行解密;
通过所述通信管理模块,获取所述加解密模块传输的解密后的目标TCP消息,并将所述解密后的目标TCP消息经所述进程间通信模块传输至所述应用程序。
6.根据权利要求1所述的方法,其特征在于,通过所述通信管理模块,将所述目标TCP消息经所述进程间通信模块传输至所述应用程序,包括:
通过所述通信管理模块,在所述目标TCP消息为不需要进行解密的消息时,将所述目标TCP消息经所述进程间通信模块传输至所述应用程序。
7.根据权利要求1所述的方法,其特征在于,还包括:
通过所述进程间通信模块,在接收到所述应用程序传输的待发送消息时,将所述待发送消息传输至所述通信管理模块;
通过所述通信管理模块,将所述待发送消息经所述TCP服务端模块传输至所述通信设备。
8.根据权利要求7所述的方法,其特征在于,通过所述通信管理模块,将所述待发送消息经所述TCP服务端模块传输至所述通信设备,包括:
通过所述通信管理模块,在所述待发送消息为需要进行加密的消息时,将所述待发送消息传输至所述中间件***包括的加解密模块进行加密;
通过所述通信管理模块,获取所述加解密模块传输的加密后的待发送消息,并将所述加密后的待发送消息经所述TCP服务端模块传输至所述通信设备。
9.根据权利要求7所述的方法,其特征在于,通过所述通信管理模块,将所述待发送消息经所述TCP服务端模块传输至所述通信设备,包括:
通过所述通信管理模块,在所述待发送消息为不需要进行加密的消息时,将所述待发送消息经所述TCP服务端模块传输至所述通信设备。
10.一种中间件***,其特征在于,所述中间件***集成在车辆的远程通信终端TBOX内部,所述中间件***包括进程间通信模块、通信管理模块和传输控制协议TCP服务端模块,所述通信管理模块分别连接所述进程间通信模块和所述TCP服务端模块;
所述进程间通信模块,用于在接收到TBOX内部的应用程序传输的订阅消息时,将所述订阅消息传输至所述通信管理模块;
所述TCP服务端模块,用于获取TBOX外部的通信设备传输的候选TCP消息,并将所述候选TCP消息传输至所述通信管理模块;
所述通信管理模块,用于基于所述订阅消息和所述候选TCP消息确定目标TCP消息,并将所述目标TCP消息经所述进程间通信模块传输至所述应用程序。
11.根据权利要求10所述的中间件***,其特征在于,所述TCP服务端模块的数量为一个或多个,各所述TCP服务端模块用于与不同的通信设备建立连接。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被执行时实现如权利要求1-9中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311439190.2A CN117615037A (zh) | 2023-10-31 | 2023-10-31 | 一种车辆通信方法、中间件***及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311439190.2A CN117615037A (zh) | 2023-10-31 | 2023-10-31 | 一种车辆通信方法、中间件***及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117615037A true CN117615037A (zh) | 2024-02-27 |
Family
ID=89950533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311439190.2A Pending CN117615037A (zh) | 2023-10-31 | 2023-10-31 | 一种车辆通信方法、中间件***及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117615037A (zh) |
-
2023
- 2023-10-31 CN CN202311439190.2A patent/CN117615037A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111580995B (zh) | 基于mqtt异步通信场景下的分布式云平台与物联网智能终端的同步通信方法与*** | |
CN110958281B (zh) | 基于物联网的数据传输方法及通信装置 | |
US20020032754A1 (en) | Method and apparatus for profiling in a distributed application environment | |
CN101989913B (zh) | 用于使局域网中的网络设备获取业务内容的方法及装置 | |
CN110366159B (zh) | 一种获取安全策略的方法及设备 | |
CN113938531B (zh) | 数据传输方法、装置、设备及介质 | |
CN105519071A (zh) | 使用逻辑信道进行通信的电子装置 | |
CN110808948B (zh) | 远程过程调用方法、装置及*** | |
WO2014067311A1 (zh) | 资源订阅方法及装置 | |
Chen et al. | Converging MQTT resources in ETSI standards based M2M platform | |
KR20050084488A (ko) | 전역 분배 네트워크에서 정보를 통신하기 위한 방법 및장치 | |
CN106679095B (zh) | 一种互联接入的方法、装置及智能空调*** | |
CN111240858B (zh) | 事件调度方法及组件 | |
CN113141383A (zh) | 设备信息订阅方法、客户端、服务器、***及存储介质 | |
CN113254103A (zh) | 应用程序的功能实现方法、装置及存储介质 | |
CN114741168A (zh) | 基于代理服务的设备调用方法、电子设备及可读存储介质 | |
US9826080B2 (en) | Sharing a single external accessory connection of a mobile device across multiple application programs | |
CN110708293B (zh) | 多媒体业务的分流方法和装置 | |
CN108924773B (zh) | 消息处理方法及装置 | |
CN117615037A (zh) | 一种车辆通信方法、中间件***及存储介质 | |
CN111787048A (zh) | 一种终端设备的连接方法、调度服务器及物联网*** | |
CN114466230B (zh) | 显示设备功能拓展方法、装置、投屏器及存储介质 | |
US20220052902A1 (en) | Method for managing remote device through management device | |
CN114679436A (zh) | 一种会话管理方法、服务器及计算机可读存储介质 | |
CN110769065A (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 |