CN112235279A - 用于应用间通信的方法、装置、电子设备及可读存储介质 - Google Patents

用于应用间通信的方法、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN112235279A
CN112235279A CN202011078679.8A CN202011078679A CN112235279A CN 112235279 A CN112235279 A CN 112235279A CN 202011078679 A CN202011078679 A CN 202011078679A CN 112235279 A CN112235279 A CN 112235279A
Authority
CN
China
Prior art keywords
application
data packet
packet
asynchronous
synchronous
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.)
Granted
Application number
CN202011078679.8A
Other languages
English (en)
Other versions
CN112235279B (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.)
Apollo Intelligent Connectivity Beijing Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202011078679.8A priority Critical patent/CN112235279B/zh
Publication of CN112235279A publication Critical patent/CN112235279A/zh
Application granted granted Critical
Publication of CN112235279B publication Critical patent/CN112235279B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本申请实施例公开了用于应用间通信的方法、装置、电子设备及计算机可读存储介质,涉及智能网联、语音识别技术领域。该方法的一具体实施方式包括:通过监听遵循套接字协议的链接,接收第一应用发来的目标数据包;根据目标数据包确定作为目标接收方的第二应用;其中,第一应用和第二应用均是安装在运行Linux操作系统的车载终端上的应用;将目标数据包发送给第二应用。该实施方式下,每当应用需要向其它应用发送用于通信的数据包,只需将数据包发送给预先建立有数据连接的中转服务,就可以由中转服务将数据包转发给接收应用,无需各应用之间各自建立数据连接,降低了对车载终端的性能需求。

Description

用于应用间通信的方法、装置、电子设备及可读存储介质
技术领域
本申请涉及信息传输技术领域,具体涉及智能网联、语音识别技术领域,尤其涉及用于应用间通信的方法、装置、电子设备及计算机可读存储介质。
背景技术
随着万物互联时代的到来,无人驾驶逐步进入了普通大众的视野。
无人驾驶技术在一定程度上解放了驾驶员,使得驾驶员可以通过车载智能终端进行其它操作,区别于诸如手机、平板等在日常场景下使用的智能移动终端,车载智能终端受使用场景所限更需要对操作系统的轻量级设计,从而更好的利用有限的性能满足用户的需求。
发明内容
本申请实施例提出了一种用于应用间通信的方法、装置、电子设备及计算机可读存储介质。
第一方面,本申请实施例提出了一种用于应用间通信的方法,包括:通过监听遵循套接字协议的链接,接收第一应用发来的目标数据包;根据目标数据包确定作为目标接收方的第二应用;其中,第一应用和第二应用均是安装在运行Linux操作系统的车载终端上的应用;将目标数据包发送给第二应用。
第二方面,本申请实施例提出了一种用于应用间通信的装置,包括:目标数据包接收单元,被配置成通过监听遵循套接字协议的链接,接收第一应用发来的目标数据包;目标接收方确定单元,被配置成根据目标数据包确定作为目标接收方的第二应用;其中,第一应用和第二应用均是安装在运行Linux操作系统的车载终端上的应用;目标数据包转发单元,被配置成将目标数据包发送给第二应用。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,该指令被至少一个处理器执行,以使至少一个处理器执行时能够实现如第一方面中任一实现方式描述的用于应用间通信的方法。
第四方面,本申请实施例提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行时能够实现如第一方面中任一实现方式描述的用于应用间通信的方法。
本申请实施例提供的用于应用间通信的方法、装置、电子设备及计算机可读存储介质,首先,作为执行主体的中转服务通过监听遵循套接字协议的链接,接收第一应用发来的目标数据包;然后,中转服务根据目标数据包确定作为目标接收方的第二应用,第一应用和第二应用均是安装在运行Linux操作系统的车载终端上的应用;最后,由中转服务将目标数据包发送给第二应用。
为更高效的实现安装在运行Linux操作的车载终端中的各应用之间的信息通信,本申请实施例提供一套由中转服务作为执行主体的数据包中转方案,即各应用预先均与中转服务建立数据连接,每当应用需要向其它应用发送用于通信的数据包,只需将数据包发送给预先建立有数据连接的中转服务,就可以由中转服务将数据包转发给接收应用,无需各应用之间各自建立数据连接,降低了对车载终端的性能需求,而且支持多线程的中转服务也可以通过创建子线程来提升数据包转发效率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构;
图2为本申请实施例提供的一种用于应用间通信的方法的流程图;
图3为本申请实施例提供的另一种用于应用间通信的方法的流程图;
图4为本申请实施例提供的又一种用于应用间通信的方法的流程图;
图5为本申请实施例提供的一种用于应用间通信的装置的结构框图;
图6为本申请实施例提供的一种适用于执用于应用间通信的方法的电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的用于应用间通信的方法、装置、电子设备及计算机可读存储介质的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括安装在运行Linux操作系统的车载终端上的应用101、102、104、105、106和中转服务103。应用101、102、104、105、106各自与中转服务103建立有终端内部的数据连接。其中,应用101、102、104、105、106可以分别表示不同的应用,也可以表示不同使用方式或执行不同操作的相同应用。
车载终端可以在用户的控制下经由中转服务103实现应用间的数据通信,其中,中转服务103除可以是与应用101、102、104、105、106运行在同一环境下的特殊的应用程序,也可以是集成在车载终端中的功能硬件。具体的,中转服务103可以为RouteServer(一种可用于提供数据包中转的服务),即由运行在Linux操作系统(一种类UNIX操作系统)下的RouteServer作为分别与各应用建立数据连接,并帮各应用进行数据转发的服务。
中转服务103可通过如下方式实现应用间的数据通信:首先,通过监听遵循套接字协议的链接,接收第一应用发来的目标数据包;然后,根据目标数据包确定作为目标接收方的第二应用;最后,将目标数据包发送给第二应用。
需要指出的是,为使中转服务103可根据接收到的目标数据包识别出作为目标接收方的第二应用,还可以预先要求车载终端上的各应用均向中转服务103发起注册,以使中转服务103根据注册信息认识不同的应用以及与其进行通信的通信地址。
应该理解,图1中的应用和中转服务的数目仅仅是示意性的。根据实现需要,可以具有任意数目的应用和中转服务。
请参考图2,图2为本申请实施例提供的一种用于应用间通信的方法的流程图,其中流程200包括以下步骤:
步骤201:通过监听遵循套接字协议的链接,接收第一应用发来的目标数据包;
本步骤旨在由用于应用间通信的方法的执行主体(例如图1所示的中转服务103)接收安装在车载终端的第一应用发来的目标数据包。
其中,该车载终端上安装有多种不同用途的应用,例如用于收集乘客语音信号的拾音应用、用于显示当前行驶路线的地图应用、用于记录乘客传入的文本信息的便签应用、用于接打电话的通话应用等等,该第一应用可以是上述各式应用中的至少一个,当第一应用的数量大于1时,上述执行主体也可以通过与各应用之间建立的数据连接来同时接收多个不同的目标数据包。具体的,上述执行主体可以通过套接字(socket)协议建立与各应用之间的数据连接,因此可以通过监听遵循套接字协议的链接来获取到第一应用发来的数据包。
步骤202:根据目标数据包确定作为目标接收方的第二应用;
在步骤201的基础上,本步骤旨在由上述执行主体根据接收到的目标数据包确定作为目标接收方的第二应用。其中,第二应用是区别于第一应用的应用,即生成、发出该目标数据包的应用为第一应用,应接收到该目标数据包的应用为第二应用,特殊情况下,也不排除第一应用和第二应用为同一个应用的情况存在,此种情况通常多见于一个大应用由多个不同功能组件充当的小应用共同构成的情形。
首先应当明确的是,上述执行主体作为中转服务存在,根本不会作为数据包的目标接收方,之所以能够接收到目标数据包,是因为各应用需要与各应用之间均建立有数据连接的上述执行主体作为数据包中转渠道来帮忙将目标数据包转发给真实的目标接收方,从而无需第一应用直接与第二应用之间建立数据连接,得以降低复杂度。
目标数据包中除包含真正用于传递信息的数据正文之外,还至少包括能够让上述执行主体识别出目标接收方(第二应用)的相关信息,例如第二应用的名称、代号、通信地址、接口、应用类型、应用用途等等,实际情况下安装在车载终端上的各应用不一定能够准确获取到第二应用的所有相关信息,但应至少得知上述中的一项,以便上述执行主体能够确定与之对应的第二应用。
步骤203:将目标数据包发送给第二应用。
在步骤202的基础上,本步骤旨在由上述执行主体将目标数据包发送给确定出的第二应用,从而通过自身的中转帮第一应用将其目标数据包发送给第二应用。
进一步的,为确保第二应用确实收到了该目标数据包,还可以要求第二应用在接收到上述执行主体传来的任意数据包后,向上述执行主体返回与接收到的目标数据包对应的确收信号,以使上述执行主体确定目标数据包确实已被第二应用接收到,上述执行主体还可以将该确收信号再次转发给该第一应用,以便第一应用也得知目标数据包已经成功经过上述执行主体的中转到达了第二应用。
更进一步的,若第一应用未接收到与自身发出的目标数据包对应的确收信号,第一应用可以认为该目标数据包可能在传输过程中丢失致使其未到达第二应用,为尽可能的实现与第二应用之间的通信,第一应用还可以再次向上述执行主体发出该目标数据包,以再次尝试的方式来尝试规避因偶然性因素导致的通信失败问题。其中,第一应用在发出目标数据包后的预设时长内未收到确收信号,也可以因等待超时认为未接收到确实信号。
为更高效的实现安装在运行Linux操作的车载终端中的各应用之间的信息通信,本申请实施例提供的用于应用间通信的方法,提供一套由中转服务作为执行主体的数据包中转方案,即各应用预先均与中转服务建立数据连接,每当应用需要向其它应用发送用于通信的数据包,只需将数据包发送给预先建立有数据连接的中转服务,就可以由中转服务将数据包转发给接收应用,无需各应用之间各自建立数据连接,降低了对车载终端的性能需求,而且支持多线程的中转服务也可以通过创建子线程来提升数据包转发效率。
请参考图3,图3为本申请实施例提供的另一种用于应用间通信的方法的流程图,其中流程300包括以下步骤:
步骤301:接收安装在运行Linux操作系统的车载终端上的应用发来的注册请求;
步骤302:根据注册请求建立所属应用的身份识别特征与其通信地址之间的对应关系;
步骤303:记录对应关系,并在记录完成后返回注册完成通知;
为确保上述执行主体可以在后续步骤准确根据目标数据包识别出作为目标接收方的第二应用,本实施例还要求安装在车载终端的各应用在首次实际运行之前要先向上述执行发起注册请求,并要求注册请求中包含自身的身份识别特征和对应关系,以使上述执行主体根据注册请求和注册请求中包含的相关信息记录各应用的相关信息。
步骤304:通过监听遵循套接字协议的链接,接收第一应用发来的目标数据包;
本步骤与如图2所示的步骤201一致,相同部分内容请参见上一实施例的相应部分,此处不再进行赘述。
步骤305:从目标数据包的包头的预设字段提取实际身份识别标识;
在步骤304的基础上,在本步骤旨在由上述执行主体从目标数据包的包头的预设字段提取实际身份识别标识。其中,目标数据包包括包头和包内容,包头中被划分出多个字段,每个字段用于存储不同的信息,上述预设字段为专用于存储目标接收方的身份识别标识的字段。在该预设字段的包头中的相对位置固定且已知的情况下,上述执行主体可以直接从包头的预设位置开始取信息,得到实际身份识别标识。
步骤306:根据实际身份识别标识确定作为目标接收方的第二应用;
在步骤305的基础上,本步骤旨在由上述执行主体根据预先注册时记录的应用与其身份识别标识之间的对应关系,将与实际身份识别标识对应的应用确定为第二应用。
步骤307:根据对应关系确定与实际身份识别标识对应的实际通信地址;
步骤308:将目标数据包通过实际通信地址发送给第二应用。
步骤307旨在由上述执行主体根据预先注册时记录的身份识别标识与通信地址之间的对应关系,确定第二应用的实际通信地址,步骤308则将目标数据包通过确定出的实际通信地址发送给第二应用,从而实现目标数据包在第一应用与第二应用之间的传输。
在上一实施例的基础上,本实施例首先通过步骤301-步骤303提供了各应用以向中转服务发起注册请求的方式将其相关信息记录在中转服务处,以使中转服务可以基于这些信息确定目标数据包的转发对象,从而精准的实现应用间的通信;同时,对应于步骤301-步骤303发起的注册请求时中转服务记录的具体信息,也提供了对应的步骤305-步骤308来如何确定第二应用和将目标数据包发送给第二应用的实现方式,相当于提供了流程200中步骤202和步骤203的一种具体实现方式。
应当理解的是,即使通过步骤301-步骤303提供了各应用以向中转服务发起注册请求的方式将其相关信息记录在中转服务处的方案,但后续确定第二应用和将目标数据包发送给第二应用的方式也存在不同于步骤305-步骤308的其它实现方式,即步骤301-步骤303提供的注册方案也可以单独与上一实施例结合构成新的实施例,此处就不再重复列举。
请参考图4,图4为本申请实施例提供的又一种用于应用间通信的方法的流程图,其中流程400包括以下步骤:
步骤401:接收第一应用发来的目标数据包;
步骤402:判断目标数据包是否为同步发送数据包,若是,执行步骤407,否则执行步骤403;
本步骤旨在由上述执行主体对目标数据包具体为同步发送数据包还是异步发送数据包的判断。其中,同步发送数据包是指处理该数据包的进程或线程在接收到该同步发送数据包返回的响应数据之前,无法处理其他数据包,异步发送数据包则允许进程或线程仅将其外发出去即可。
步骤403:将异步发送数据包存储于预设的异步队列;
本步骤建立在步骤402的判断结果为目标数据包为异步发送数据包的基础上,旨在由上述执行主体将异步发送数据包存储于预设的异步队列。其中,异步队列为预先创建出的专用于存储异步发送数据包的队列。
步骤404:判断异步队列的实际长度是否超过预设长度,若超过,执行步骤406,否则执行步骤405;
在步骤404的基础上,本步骤旨在由上述执行主体判断异步队列的实际长度是否超过预设长度,该预设长度的取值为衡量堵塞的数据包是否过多的临界值,即超过预设长度则认为队列中堵塞的数据包过多。
步骤405:使用唯一的异步转发子线程来依次处理异步队列中的不同异步发送数据包;
本步骤建立在步骤404的判断结果为异步队列的实际长度未超过预设长度的基础上,说明排列于异步队列中的异步发送数据包的数量还不算多,仅使用唯一的异步转发子线程来依次处理异步队列中的不同异步发送数据包不会影响应用间的正常通信,即通信延迟在允许范围内。
步骤406:根据实际长度超过预设长度的超出幅度,通过多线程技术增开相应数量的异步转发子线程,使用多个异步转发子线程来处理异步队列中的不同异步发送数据包;
本步骤建立在步骤404的判断结果为异步队列的实际长度超过预设长度的基础上,说明排列于异步队列中的异步发送数据包的较多,若仍使用唯一的异步转发子线程来依次处理异步队列中的不同异步发送数据包已经会影响应用间的正常通信,即通信延迟过大,因此将根据实际长度超过预设长度的超出幅度,通过多线程技术增开相应数量的异步转发子线程,使用多个异步转发子线程来处理异步队列中的不同异步发送数据包。
步骤407:将同步发送数据包存储于预设的同步队列,并通过由多线程技术创建的多个同步转发子线程来同时处理同步队列中的多个同步发送数据包。
本步骤建立在步骤402的判断结果为目标数据包为同步发送数据包的基础上,因此为满足应用间通信对时延的要求,将同步发送数据包存储于预设的同步队列,并通过由多线程技术创建的多个同步转发子线程来同时处理同步队列中的多个同步发送数据包。其中,同步队列为预先创建的专用于存储同步发送数据包的队列,区别于异步队列存在。
区别于上述任意实例数,本实施例从目标数据包的类型出发,结合具体的同步发送数据包或异步发送数据包,由中转服务采用设立不同的队列来分别存储不同类型的数据包,并根据不同类型的数据包的特性,采用多线程技术来提升数据包的处理效率,从而更好的实现车载终端上各应用之间的通信。
进一步的,在上一实施例的基础上,考虑到应用间的通信情况受实际情况影响较大,尤其是乘客是否进行了相关操作,在乘客进行了复杂的操作时,为满足正常的应用间通信,上述执行主体可能会创建多个子线程来处理数据包,但随着操作数量的减少,如何合理的处理这些子线程也是非常重要的。考虑到线程的频繁创建、销毁会占用大量系统资源,因此本实申请还可以每隔预设时间间隔就统计同步队列在当前时刻的数据包积攒数,并在该数据包积攒数小于预设积攒数时,控制预设数量的同步转发子线程处于休眠状态。即并非直接销毁用不上的部分子线程,而是控制其处于低消耗的休眠状态,等待后续需要时只需要同样付出较少的资源将其激活即可。
为加深理解,本申请还结合一个具体应用场景,给出了一种具体的实现方案:
假定在无人驾驶汽车中的乘客在某时刻通过车载终端上安装的通话应用接听了呼入的一通电话,并在电话接听期间存在如下需求:
①将电话中提及的电话号码记录和联系人创建为新联系人;
②将电话中提及的该联系人的当前所在位置信息设定为导航应用的目的地;
③将电话中提及的商品采购信息记录在便签应用中。
为实现上述三个需求,该乘客充分利用了车载终端上安装的语音转文本应用、便签应用、导航应用、电话薄应用,具体实现步骤如下:
1)乘客激活该语音转文本应用;
2)乘客重复念了一遍该电话号码和联系人的名字,由该语音转文本应用将采集到的语音信号转换为第一文本,并控制将该第一文本由语音转文本应用经由RouteServer提供的中转服务发送给电话薄应用,以由电话薄应用根据接收到的数据包创建新联系人;
3)乘客控制该语音转文本应用采集扬声器播放的商品采购信息的语音信号,并控制该语音转文本应用将转换后得到的第二文本经由RouteServer提供的中转服务发送给便签应用,以由便签应用根据接收到的数据包内容将文本记载在便签中;
4)乘客将提及的位置信息手动输入至便签应用,并通过选用这部分位置信息的方式控制便签应用将数据经由RouteServer提供的中转服务发送给导航应用,以由导航应用根据接收到的数据包将其设立为目的地。
进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种用于应用间通信的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例的用于应用间通信的装置500可以包括:目标数据包接收单元501、目标接收方确定单元502、目标数据包转发单元503。其中,目标数据包接收单元501,被配置成通过监听遵循套接字协议的链接,接收第一应用发来的目标数据包;目标接收方确定单元502,被配置成根据目标数据包确定作为目标接收方的第二应用;其中,第一应用和第二应用均是安装在运行Linux操作系统的车载终端上的应用;目标数据包转发单元503,被配置成将目标数据包发送给第二应用。
在本实施例中,用于应用间通信的装置500中:目标数据包接收单元501、目标接收方确定单元502、目标数据包转发单元503的具体处理及其所带来的技术效果可分别参考图2对应实施例中的步骤201-203的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,用于应用间通信的装置500还可以包括:
注册请求接收单元,被配置成接收安装在运行Linux操作系统的车载终端上的应用发来的注册请求;
对应关系建立单元,被配置成根据注册请求建立所属应用的身份识别特征与其通信地址之间的对应关系;
注册完成通知返回单元,被配置成记录对应关系,并在记录完成后返回注册完成通知。
在本实施例的一些可选的实现方式中,目标接收方确定单元502可以进一步被配置成:
从目标数据包的包头的预设字段提取实际身份识别标识;
根据实际身份识别标识确定作为目标接收方的第二应用;以及目标数据包转发单元503可以进一步被配置成:
根据对应关系确定与实际身份识别标识对应的实际通信地址;
将目标数据包通过实际通信地址发送给第二应用。
在本实施例的一些可选的实现方式中,用于应用间通信的装置500还可以包括:
同步发送数据包处理单元,被配置成响应于目标数据包为同步发送数据包,将同步发送数据包存储于预设的同步队列,并通过由多线程技术创建的多个同步转发子线程来同时处理同步队列中的多个同步发送数据包;
异步发送数据包处理单元,被配置成响应于目标数据包为异步发送数据包,将异步发送数据包存储于预设的异步队列,并在异步队列的实际长度不超过预设长度时,使用唯一的异步转发子线程来依次处理异步队列中的不同异步发送数据包。
在本实施例的一些可选的实现方式中,用于应用间通信的装置500还可以包括:
异步转发子线程增开单元,被配置成响应于实际长度超过预设长度,根据实际长度超过预设长度的超出幅度,通过多线程技术增开相应数量的异步转发子线程,以通过多个异步转发子线程来处理异步队列中的不同异步发送数据包。
在本实施例的一些可选的实现方式中,用于应用间通信的装置500还可以包括:
数据包积攒数统计单元,被配置成每隔预设时间间隔统计同步队列在当前时刻的数据包积攒数;
同步转发子线程休眠控制单元,被配置成响应于数据包积攒数小于预设积攒数,控制预设数量的同步转发子线程处于休眠状态。
在本实施例的一些可选的实现方式中,用于应用间通信的装置500还可以包括:
确收信号接收及转发单元,被配置成接收第二应用返回的目标数据包的确收信号,并将确收信号转发给第一应用;
目标数据包重新接收单元,被配置成响应于第一应用未接收到与发出的目标数据包对应的确收信号,接收到第一应用重新发来的目标数据包。
本实施例作为对应于上述方法实施例的装置实施例存在,为更高效的实现安装在运行Linux操作的车载终端中的各应用之间的信息通信,本申请实施例提供的用于应用间通信的装置,提供一套由中转服务作为执行主体的数据包中转方案,即各应用预先均与中转服务建立数据连接,每当应用需要向其它应用发送用于通信的数据包,只需将数据包发送给预先建立有数据连接的中转服务,就可以由中转服务将数据包转发给接收应用,无需各应用之间各自建立数据连接,降低了对车载终端的性能需求,而且支持多线程的中转服务也可以通过创建子线程来提升数据包转发效率。
根据本申请的实施例,本申请还提供了一种电子设备和一种计算机可读存储介质。
图6示出了一种适于用来实现本申请实施例的用于应用间通信的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图6所示,该电子设备包括:一个或多个处理器601、存储器602,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图6中以一个处理器601为例。
存储器602即为本申请所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使至少一个处理器执行本申请所提供的用于应用间通信的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的用于应用间通信的方法。
存储器602作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的用于应用间通信的方法对应的程序指令/模块(例如,附图5所示的目标数据包接收单元501、目标接收方确定单元502、目标数据包转发单元503)。处理器601通过运行存储在存储器602中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的用于应用间通信的方法。
存储器602可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储该电子设备在执行用于应用间通信的方法所创建的各类数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器602可选包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至适用于执行用于应用间通信的方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
适用于执行用于应用间通信的方法的电子设备还可以包括:输入装置603和输出装置604。处理器601、存储器602、输入装置603和输出装置604可以通过总线或者其他方式连接,图6中以通过总线连接为例。
输入装置603可接收输入的数字或字符信息,以及产生适用于执行用于应用间通信的方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置604可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决传统物理主机与虚拟专用服务器(VPS,Virtual Private Server)服务中存在的管理难度大,业务扩展性弱的缺陷。
为更高效的实现安装在运行Linux操作的车载终端中的各应用之间的信息通信,本申请实施例提供了一套由中转服务作为执行主体的数据包中转方案,即各应用预先均与中转服务建立数据连接,每当应用需要向其它应用发送用于通信的数据包,只需将数据包发送给预先建立有数据连接的中转服务,就可以由中转服务将数据包转发给接收应用,无需各应用之间各自建立数据连接,降低了对车载终端的性能需求,而且支持多线程的中转服务也可以通过创建子线程来提升数据包转发效率。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (16)

1.一种用于应用间通信的方法,包括:
通过监听遵循套接字协议的链接,接收第一应用发来的目标数据包;
根据所述目标数据包确定作为目标接收方的第二应用;其中,所述第一应用和所述第二应用均是安装在运行Linux操作系统的车载终端上的应用;
将所述目标数据包发送给所述第二应用。
2.根据权利要求1所述的方法,还包括:
接收安装在运行Linux操作系统的车载终端上的应用发来的注册请求;
根据所述注册请求建立所属应用的身份识别特征与其通信地址之间的对应关系;
记录所述对应关系,并在记录完成后返回注册完成通知。
3.根据权利要求2所述的方法,其中,所述根据所述目标数据包确定作为目标接收方的第二应用,包括:
从所述目标数据包的包头的预设字段提取实际身份识别标识;
根据所述实际身份识别标识确定作为所述目标接收方的第二应用;以及
所述将所述目标数据包发送给所述第二应用,包括:
根据所述对应关系确定与所述实际身份识别标识对应的实际通信地址;
将所述目标数据包通过所述实际通信地址发送给所述第二应用。
4.根据权利要求1所述的方法,还包括:
响应于所述目标数据包为同步发送数据包,将所述同步发送数据包存储于预设的同步队列,并通过由多线程技术创建的多个同步转发子线程来同时处理所述同步队列中的多个同步发送数据包;
响应于所述目标数据包为异步发送数据包,将所述异步发送数据包存储于预设的异步队列,并在所述异步队列的实际长度不超过预设长度时,使用唯一的异步转发子线程来依次处理所述异步队列中的不同异步发送数据包。
5.根据权利要求4所述的方法,还包括:
响应于所述实际长度超过所述预设长度,根据所述实际长度超过所述预设长度的超出幅度,通过多线程技术增开相应数量的异步转发子线程,以通过多个异步转发子线程来处理所述异步队列中的不同异步发送数据包。
6.根据权利要求4或5所述的方法,还包括:
每隔预设时间间隔统计所述同步队列在当前时刻的数据包积攒数;
响应于所述数据包积攒数小于预设积攒数,控制预设数量的同步转发子线程处于休眠状态。
7.根据权利要求1所述的方法,还包括:
接收所述第二应用返回的目标数据包的确收信号,并将所述确收信号转发给所述第一应用;
响应于所述第一应用未接收到与发出的目标数据包对应的确收信号,接收到所述第一应用重新发来的目标数据包。
8.一种用于应用间通信的装置,包括:
目标数据包接收单元,被配置成通过监听遵循套接字协议的链接,接收第一应用发来的目标数据包;
目标接收方确定单元,被配置成根据所述目标数据包确定作为目标接收方的第二应用;其中,所述第一应用和所述第二应用均是安装在运行Linux操作系统的车载终端上的应用;
目标数据包转发单元,被配置成将所述目标数据包发送给所述第二应用。
9.根据权利要求8所述的装置,还包括:
注册请求接收单元,被配置成接收安装在运行Linux操作系统的车载终端上的应用发来的注册请求;
对应关系建立单元,被配置成根据所述注册请求建立所属应用的身份识别特征与其通信地址之间的对应关系;
注册完成通知返回单元,被配置成记录所述对应关系,并在记录完成后返回注册完成通知。
10.根据权利要求9所述的装置,其中,所述目标接收方确定单元进一步被配置成:
从所述目标数据包的包头的预设字段提取实际身份识别标识;
根据所述实际身份识别标识确定作为所述目标接收方的第二应用;以及
所述目标数据包转发单元进一步被配置成:
根据所述对应关系确定与所述实际身份识别标识对应的实际通信地址;
将所述目标数据包通过所述实际通信地址发送给所述第二应用。
11.根据权利要求8所述的装置,还包括:
同步发送数据包处理单元,被配置成响应于所述目标数据包为同步发送数据包,将所述同步发送数据包存储于预设的同步队列,并通过由多线程技术创建的多个同步转发子线程来同时处理所述同步队列中的多个同步发送数据包;
异步发送数据包处理单元,被配置成响应于所述目标数据包为异步发送数据包,将所述异步发送数据包存储于预设的异步队列,并在所述异步队列的实际长度不超过预设长度时,使用唯一的异步转发子线程来依次处理所述异步队列中的不同异步发送数据包。
12.根据权利要求11所述的装置,还包括:
异步转发子线程增开单元,被配置成响应于所述实际长度超过所述预设长度,根据所述实际长度超过所述预设长度的超出幅度,通过多线程技术增开相应数量的异步转发子线程,以通过多个异步转发子线程来处理所述异步队列中的不同异步发送数据包。
13.根据权利要求11或12所述的装置,还包括:
数据包积攒数统计单元,被配置成每隔预设时间间隔统计所述同步队列在当前时刻的数据包积攒数;
同步转发子线程休眠控制单元,被配置成响应于所述数据包积攒数小于预设积攒数,控制预设数量的同步转发子线程处于休眠状态。
14.根据权利要求8所述的装置,还包括:
确收信号接收及转发单元,被配置成接收所述第二应用返回的目标数据包的确收信号,并将所述确收信号转发给所述第一应用;
目标数据包重新接收单元,被配置成响应于所述第一应用未接收到与发出的目标数据包对应的确收信号,接收到所述第一应用重新发来的目标数据包。
15.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的用于应用间通信的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行权利要求1-7中任一项所述的用于应用间通信的方法。
CN202011078679.8A 2020-10-10 2020-10-10 用于应用间通信的方法、装置、电子设备及可读存储介质 Active CN112235279B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011078679.8A CN112235279B (zh) 2020-10-10 2020-10-10 用于应用间通信的方法、装置、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011078679.8A CN112235279B (zh) 2020-10-10 2020-10-10 用于应用间通信的方法、装置、电子设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN112235279A true CN112235279A (zh) 2021-01-15
CN112235279B CN112235279B (zh) 2023-04-18

Family

ID=74113222

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011078679.8A Active CN112235279B (zh) 2020-10-10 2020-10-10 用于应用间通信的方法、装置、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN112235279B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113590356A (zh) * 2021-07-29 2021-11-02 网易(杭州)网络有限公司 数据通信方法、装置和电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1296233A (zh) * 1999-11-01 2001-05-23 城市集团发展中心有限公司 协调自助式金融交易终端会话活动的方法和系统
US20150052599A1 (en) * 2013-08-15 2015-02-19 Mocana Corporation Gateway device for terminating a large volume of vpn connections
CN105161110A (zh) * 2015-08-19 2015-12-16 百度在线网络技术(北京)有限公司 基于蓝牙连接的语音识别方法、装置和系统
US20160294605A1 (en) * 2014-07-07 2016-10-06 Symphony Teleca Corporation Remote Embedded Device Update Platform Apparatuses, Methods and Systems
CN109995861A (zh) * 2019-03-29 2019-07-09 上海势航网络科技有限公司 车载系统应用与车载外围器件的中继通信方法及系统
CN111459534A (zh) * 2019-01-18 2020-07-28 杭州明特科技有限公司 一种能源信息网关的应用系统架构
CN111726384A (zh) * 2019-03-22 2020-09-29 阿里巴巴集团控股有限公司 通信方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1296233A (zh) * 1999-11-01 2001-05-23 城市集团发展中心有限公司 协调自助式金融交易终端会话活动的方法和系统
US20150052599A1 (en) * 2013-08-15 2015-02-19 Mocana Corporation Gateway device for terminating a large volume of vpn connections
US20160294605A1 (en) * 2014-07-07 2016-10-06 Symphony Teleca Corporation Remote Embedded Device Update Platform Apparatuses, Methods and Systems
CN105161110A (zh) * 2015-08-19 2015-12-16 百度在线网络技术(北京)有限公司 基于蓝牙连接的语音识别方法、装置和系统
CN111459534A (zh) * 2019-01-18 2020-07-28 杭州明特科技有限公司 一种能源信息网关的应用系统架构
CN111726384A (zh) * 2019-03-22 2020-09-29 阿里巴巴集团控股有限公司 通信方法及装置
CN109995861A (zh) * 2019-03-29 2019-07-09 上海势航网络科技有限公司 车载系统应用与车载外围器件的中继通信方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113590356A (zh) * 2021-07-29 2021-11-02 网易(杭州)网络有限公司 数据通信方法、装置和电子设备
CN113590356B (zh) * 2021-07-29 2023-08-11 网易(杭州)网络有限公司 数据通信方法、装置和电子设备

Also Published As

Publication number Publication date
CN112235279B (zh) 2023-04-18

Similar Documents

Publication Publication Date Title
EP3176980A1 (en) Unified server communication method, baseboard management controller and server
CN111934840A (zh) 客户端和服务端的通信方法、网关、电子设备及存储介质
US9065788B2 (en) Method, device and system for voice communication
US10453160B2 (en) Embeddable communications software module
JP2014123363A5 (zh)
CN112333114B (zh) 数据传输方法、装置、存储介质、终端及网络接入点设备
CN110287146A (zh) 应用下载的方法、设备和计算机存储介质
WO2019136821A1 (zh) 终端进行网络选择的方法、装置、计算机设备及存储介质
CN112235279B (zh) 用于应用间通信的方法、装置、电子设备及可读存储介质
CN114697391B (zh) 数据处理方法、装置、设备以及存储介质
CN114500633B (zh) 数据转发方法、相关装置、程序产品及数据传输系统
CN111615694B (zh) 一种服务器节点的选择方法和终端设备
CN109495549A (zh) 一种应用拉活的方法、设备和计算机存储介质
WO2020177731A1 (zh) 一种寄宿应用间的即时通讯方法
CN114666363B (zh) 信息传输方法、装置、电子设备、存储介质及产品
CN109766347B (zh) 一种数据更新方法、装置、系统、计算机设备及存储介质
CN112565609B (zh) 基于车机系统与车载机器人的图像处理方法与系统
CN108259958A (zh) 遥控按键响应方法、装置、设备和存储介质
CN117354956A (zh) 基于5g的会话建立方法、装置、电子设备及存储介质
CN114390239A (zh) 通信方法、装置、系统、电子设备以及存储介质
CN116743587B (zh) 一种基于异构计算加速卡的虚拟网络接口实现方法及装置
US20240305591A1 (en) Message processing method and apparatus
EP4297366A1 (en) Message processing method and apparatus
CN114598738B (zh) 数据处理方法、装置、存储介质及计算机设备
CN114095585B (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20211012

Address after: 100176 101, floor 1, building 1, yard 7, Ruihe West 2nd Road, Beijing Economic and Technological Development Zone, Daxing District, Beijing

Applicant after: Apollo Intelligent Connectivity (Beijing) Technology Co., Ltd.

Address before: 2 / F, baidu building, 10 Shangdi 10th Street, Haidian District, Beijing 100085

Applicant before: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant