一种用户终端与车载终端的同步通信的实现方法技术

技术编号:22310919 阅读:29 留言:0更新日期:2019-10-16 10:39
本发明专利技术公开的用户终端与车载终端的同步通信的实现方法,涉及通信技术领域,通过设置进程间流水号和回调函数机制消除阻塞,通过设置超时和网关应答机制保证响应及时,提高了线程利用率及服务器吞吐量,缩短了用户请求指令处理时间,提升了用户体验。

A method of synchronous communication between user terminal and vehicle terminal

【技术实现步骤摘要】
一种用户终端与车载终端的同步通信的实现方法
本专利技术涉及通信
,具体涉及一种用户终端与车载终端的同步通信的实现方法。
技术介绍
共享汽车使汽车具备分时租赁功能,通过互联网通信技术,使得用户、车辆运营商以及车辆之间通过远程通信进行汽车租赁业务的自动化、信息化,进而高效地开展业务,满足了广大用户的租车需求。车辆通过车载终端与营运商的云服务器进行通信,可以实现开门、锁门、点火、熄火等远程车辆控制功能,方便安全地交付车辆的使用权与用户,同时也可以让车辆上传车辆状态、报警信息、监控视频等数据,保证车辆的安全可用状态以及对资产的监控。车辆与云服务器的通信大部分都是通过TCP或UDP协议异步进行的,即每次请求与响应并不是一一对应的,也没有时间顺序上的要求,这样的方式可以有效利用信道和处理器资源,并且可以满足大部分业务场景的需求。但由于目前互联网主流的HTTP协议属于同步通信,比如用户与车辆之间的通信,就需要把车辆与云服务器之间的异步通信转化成用户与服务器之间的同步通信,来满足用户远程控制车辆并获取正确返回结果的需求。现有的技术方案主要通过对用户请求的线程进行阻塞等待,当接收到车辆返回的消息时,再通过唤醒线程的方式来提供用户与车辆之间的同步通信,但是为了保证吞吐量,这种方案需要创建大量线程,导致该方案存在以下缺陷:(1)线程是计算机系统的有限资源,阻塞的线程无法被其他程序使用,造成浪费,过多的线程导致频繁的CPU内核上下文切换,降低了程序处理业务效率,从而导致服务器的最大吞吐量降低;(2)通过使用固定的线程池虽然可以保证服务器的稳定性,但由于车辆本身处理指令的耗时较长,线程很快耗尽会造成大量请求处于等待中,大大降低了服务器的吞吐量;HTTP请求有超时设置,较长的请求响应时间容易产生错误的返回结果,影响用户体验;(3)在微服务架构中,由于等待终端响应的阻塞还会引起调用链的阻塞,同样会引起服务器吞吐量下降,此外,大部分微服务调用也有超时机制,导致调用失败率上升,进而引发不必要的重复请求和服务器负载增大的恶性循环。
技术实现思路
为解决现有技术的不足,本专利技术实施例提供了一种用户终端与车载终端的同步通信的实现方法,该方法包括以下步骤:云服务器接收用户终端发送的用户请求指令,根据流水号生成算法,生成业务流水号;所述云服务器将所述用户请求指令及所述业务流水号发送至网关;所述网关接收所述用户请求指令及所述业务流水号并将响应结果返回至所述云服务器,根据流水号生成算法,生成终端流水号;所述网关将所述终端流水号及所述用户请求指令发送至车载终端;所述车载终端接收所述用户请求指令和所述终端流水号,解析所述用户请求指令并将所述解析结果发送至所述网关;网关接收所述解析结果,发送携带业务流水号的业务数据至所述云服务器;所述云服务器接收所述业务数据并根据所述业务流水号,将所述业务数据发送至所述用户终端。优选地,所述业务流水号关联网关回调函数,所述网关回调函数用于:储存用户终端与云服务器之间的连接上下文,解析所述网关返回的数据并将解析结果发送至所述用户终端;当网关应答失败或超时,直接返回相应的响应结果至所述用户终端并移除所述网关回调函数;当网关应答成功时,移除网关回调函数并将业务流水号存入终端回调函数。优选地,所述业务流水号及所述终端流水号关联终端回调函数,所述终端回调函数同时存储于所述云服务器及所述网关中,其中,存储于所述网关的终端回调函数用于:存储网关与云服务器之间的连接上下文,解析用户请求指令并将解析结果发送至所述云服务器;当所述车载终端应答失败或超时,则直接返回相应的响应结果至所述云服务器。优选地,存储于所述云服务器的终端回调函数用于:存储云服务器与用户终端之间的连接上下文,解析用户请求指令并将解析结果发送至所述用户终端;当所述车载终端应答失败或超时,则直接返回相应的响应结果至所述用户终端。优选地,云服务器接收用户终端发送的用户请求指令,根据流水号生成算法,生成业务流水号包括:获取当前系统的时间戳t1,同时利用原子计数器获取当前系统时间,生成字符串c1并在字符串c1的后面添加1,得到字符串c2;将t1无符号左移16位操作获得时间戳t2;将t2与c2按位或操作,生成所述业务流水号。本专利技术实施例提高的用户终端与车载终端的同步通信的实现方法具有以下有益效果:无须创建大量线程,不阻塞任何业务线程,提高了线程利用率及服务器吞吐量,缩短了用户请求指令处理时间,提升了用户体验。附图说明图1是本专利技术实施例提供的用户终端与车载终端的同步通信的实现方法流程示意图。具体实施方式以下结合附图和具体实施例对本专利技术作具体的介绍。参照图1,本专利技术实施例提供的用户终端与车载终端的同步通信的实现方法包括以下步骤:S101,云服务器接收用户终端发送的用户请求指令,根据流水号生成算法,生成业务流水号。其中,用户请求指令包括对车辆开锁、关锁、鸣笛的指令等。S102,云服务器将用户请求指令及业务流水号发送至网关。S103,网关接收用户请求指令及所述业务流水号并将响应结果返回至所述云服务器,根据流水号生成算法,生成终端流水号。其中,业务流水号仅对云服务器和网关可见,由云服务器生成。终端流水号只对车载终端和网关可见,由网关生成。每个流水号关联一个回调函数,业务流水号的回调函数在云服务器,而终端流水号的回调函数在网关,使用两个流水号,是为了保证在云服务器中的回调函数和网关中的回调函数的唯一性(即云服务器产生的流水号可能在网关中已存在),为了在不同系统间传递相同事件的需求,使用两个流水号把事件的作用域限制在了网关和云服务器中,并解耦了网关和云服务器的强关联。S104,网关将终端流水号及用户请求指令发送至车载终端。S105,车载终端接收用户请求指令和终端流水号,解析用户请求指令并将解析结果发送至网关。其中,解析用户请求指令的过程包括:车载终端将把指令解码,并编码成车辆中控可以识别的命令进行通信,从而控制车辆,并获得车辆中控的响应信息。而随着用户请求指令一同传递的终端流水号,在获得车辆中控的响应信息后,连同响应信息一起作为用户指令的处理结果编码发送到网关。S106,网关接收解析结果,发送携带业务流水号的业务数据至云服务器。作为一个具体的实施例,业务数据是根据用户不同指令所产生的业务数据,如是否开门成功、是否成功鸣笛等。S107,云服务器接收业务数据并根据业务流水号,将该业务数据发送至用户终端。可选地,所述业务流水号对应唯一的网关回调函数,所述网关回调函数用于:储存用户终端与云服务器之间的连接上下文,解析所述网关返回的数据并将解析结果发送至所述用户终端;当网关应答失败或超时,直接返回相应的响应结果至用户终端并移除所述网关回调函数;当网关应答成功时,移除网关回调函数并将业务流水号存入终端回调函数。特别说明,网关回调函数仅解析车载终端返回的数据(该数据由由网关转发并通过车载终端解析并执行用户请求指令产生),并再次转发给用户终端。为了节省系统资源,网关回调函数有最大生存时间,在创建回调函数时同时也创建了一个定时器,定时器在最大生存时间之后认为该用户请求是一种超时结果,通过回调函数发送结果到用户终端,并移除网关回调函数。其中,连接上下文为在通信连接建立后提供的一些信息数据,以用户作为客户端与本文档来自技高网
...

【技术保护点】
1.一种用户终端与车载终端的同步通信的实现方法,其特征在于,包括:云服务器接收用户终端发送的用户请求指令,根据流水号生成算法,生成业务流水号;所述云服务器将所述用户请求指令及所述业务流水号发送至网关;所述网关接收所述用户请求指令及所述业务流水号并将响应结果返回至所述云服务器,根据流水号生成算法,生成终端流水号;所述网关将所述终端流水号及所述用户请求指令发送至车载终端;所述车载终端接收所述用户请求指令和所述终端流水号,解析所述用户请求指令并将所述解析结果发送至所述网关;网关接收所述解析结果,发送携带业务流水号的业务数据至所述云服务器;所述云服务器接收所述业务数据并根据所述业务流水号,将所述业务数据发送至所述用户终端。

【技术特征摘要】
1.一种用户终端与车载终端的同步通信的实现方法,其特征在于,包括:云服务器接收用户终端发送的用户请求指令,根据流水号生成算法,生成业务流水号;所述云服务器将所述用户请求指令及所述业务流水号发送至网关;所述网关接收所述用户请求指令及所述业务流水号并将响应结果返回至所述云服务器,根据流水号生成算法,生成终端流水号;所述网关将所述终端流水号及所述用户请求指令发送至车载终端;所述车载终端接收所述用户请求指令和所述终端流水号,解析所述用户请求指令并将所述解析结果发送至所述网关;网关接收所述解析结果,发送携带业务流水号的业务数据至所述云服务器;所述云服务器接收所述业务数据并根据所述业务流水号,将所述业务数据发送至所述用户终端。2.根据权利要求1所述的用户终端与车载终端的同步通信的实现方法,其特征在于,所述业务流水号关联网关回调函数,所述网关回调函数用于:储存用户终端与云服务器之间的连接上下文,解析所述网关返回的数据并将解析结果发送至所述用户终端;当网关应答失败或超时,直接返回相应的响应结果至所述用户终端并移除所述网关回调函数;当网关应答成功时,移除网关回调函数并将业务流水号存入终端回调函数。3.根...

【专利技术属性】
技术研发人员:郭径遂
申请(专利权)人:四川首汽交投汽车共享科技有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1