一种数据推送的方法及设备与流程

文档序号:17938916发布日期:2019-06-18 22:52阅读:199来源:国知局
一种数据推送的方法及设备与流程

本申请涉及数据处理技术领域,具体涉及一种数据推送的方法及设备。



背景技术:

随着科学技术的发展,通过电子设备进行身份认证已经成为一种非常普遍的方式,例如,在上下班时通过刷卡或者人脸识别的方式进行身份认证以完成上下班打卡操作。

当用户操作电子设备进行身份认证时,电子设备会产生设备数据,该设备数据可以是在该电子设备上进行编辑的用户信息,或者用户在该电子设备上进行刷脸或刷卡操作得到的数据,该设备数据需要发送到与之关联的第三方应用,以使得第三方应用可以根据该设备数据进行相应的处理。在现有技术中,第三方应用通过服务器推(comet)服务拉取设备数据,即第三方应用向服务端发起一次超文本传输协议(hypertexttransferprotocol,http)请求,服务端可根据该http请求检查有无待接收的设备数据,如果有则立即将该设备数据返回给第三方应用,如果无则将当前http请求挂起一段时间,在这段时间内如果有电子设备向服务端发送设备数据,服务端可以在这段时间内结束当前挂起的http请求,并将该设备数据一起返回给第三方应用。

现有技术中,服务端大多通过http长连接与电子设备通讯,长期占用连接,丧失了无状态高并发的特点,而且当第三方应用没有向服务端发起http请求或服务端挂起的http请求失效时,第三方应用无法及时拉取设备数据,导致设备数据从电子设备推送的第三方应用过程中的传输速度较慢,且服务端对于电子设备发送来的设备数据不进行存储处理,而是直接转递给第三方应用,容易造成设备数据丢失,数据安全性较差。



技术实现要素:

本申请实施例提供一种数据推送的方法及设备,可以提高第三方应用从关联电子设备获取设备数据的速度,并且保证该设备数据在推送至第三方应用的过程中的数据完整性以及安全性。

为达到上述目的,本申请实施例提供了如下技术方案:

本申请第一方面提供一种数据推送的方法,该方法包括:数据推送设备存储目标数据,所述目标数据为第一终端设备发送的设备数据;所述数据推送设备向第二终端设备发送数据推送请求,所述数据推送请求中包含所述目标数据;所述数据推送设备接收所述第二终端设备发送的第一反馈消息,所述第一反馈消息为所述第二终端设备从所述数据推送请求中获取所述目标数据后发送的;所述数据推送设备根据所述第一反馈消息确定所述目标数据已成功推送至所述第二终端设备。

可选的,结合上述第一方面,在第一种可能的实现方式中,所述数据推送设备向第二终端设备发送数据推送请求之后,所述方法还包括:当所述数据推送设备接收所述第二终端设备发送的第二反馈消息时,所述数据推送设备重新向所述第二终端设备发送所述数据推送请求,所述第二反馈消息为所述第二终端设备从所述数据推送请求中获取所述目标数据失败后发送的。

可选的,结合上述第一方面第一种可能的实现方式,在第二种可能的实现方式中,所述数据推送请求中还包括所述数据推送设备的标识信息。

可选的,结合上述第一方面、第一方面第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述数据推送设备向第二终端设备发送数据推送请求,包括:所述数据推送设备通过数据推送接口向所述第二终端设备发送所述数据推送请求,所述数据推送接口为所述第二终端设备调用所述数据推送设备提供的第一接口设置的。

可选的,结合上述第一方面第三种可能的实现方式,在第四种可能的实现方式中,所述方法还包括:所述数据推送设备按照预设时间间隔检测所述数据推送接口是否可用。

本申请第二方面提供一种数据推送设备,该数据推送设备包括:存储单元,用于存储目标数据,所述目标数据为第一终端设备发送的设备数据;发送单元,用于在所述存储单元接收所述第一终端设备发送的目标数据后,向第二终端设备发送数据推送请求,所述数据推送请求中包含所述目标数据;接收单元,用于在所述发送单元向所述第二终端设备发送数据推送请求后,接收所述第二终端设备发送的第一反馈消息,所述第一反馈消息为所述第二终端设备从所述数据推送请求中获取所述目标数据后发送的;确定单元,用于根据所述接收单元接收的所述第一反馈消息确定所述目标数据已成功推送至所述第二终端设备。

可选的,结合上述第二方面,在第一种可能的实现方式中,所述接收单元还用于接收所述第二终端设备发送的第二反馈消息,所述第二反馈消息为所述第二终端设备从所述数据推送请求中获取所述目标数据失败后发送的;所述发送单元还用于当所述接收单元接收所述第二反馈消息时,重新向所述第二终端设备发送所述数据推送请求。

可选的,结合上述第二方面或第二方面第一种可能的实现方式,在第二种可能的实现方式中,所述发送单元包括:第一发送模块,用于通过数据推送接口向所述第二终端设备发送所述数据推送请求,所述数据推送接口为所述第二终端设备调用所述数据推送设备提供的第一接口设置的。

本申请第三方面提供一种数据推送设备,该数据推送设备包括:处理器和存储器;该存储器用于存储计算机执行指令,当该数据推送设备运行时,该处理器执行该存储器存储的计算机执行指令,以使该数据推送设备执行如上述第一方面或第一方面任意一种可能实现方式的数据推送的方法。

本申请第四方面提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机可以执行上述第一方面或第一方面任意一种可能实现方式的数据推送的方法。

本申请第五方面提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述第一方面或第一方面任意一种可能实现方式的数据推送的方法。

本申请第六方面提供一种芯片系统,该芯片系统包括处理器,用于支持数据推送设备实现上述第一方面或第一方面任意一种可能的实现方式中所涉及的功能。在一种可能的设计中,芯片系统还包括存储器,该存储器用于保存该数据推送设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。

本申请实施例提供了一种数据推送的方法及设备,由于在本方案中,数据推送设备可以对目标数据进行存储,该目标数据为从第一终端设备获取的设备数据,这样可以保证该目标数据不会丢失,提高了数据的安全性。数据推送设备与第一终端设备之间通过websocket长连接进行通讯,并且数据推送设备在接收到第一终端设备发送的目标数据后,会马上向第二终端设备发送数据推送请求,以将该目标数据推送至第二终端设备,从而使得该目标数据可以及时推送到第二终端设备,提高了目标数据从第一终端设备到第二终端设备之间的传输速度,并且数据推送设备需要在收到第二终端设备发送的第一反馈消息以确定该目标数据已完整地推送到第二终端设备后,才停止向第二终端设备推送该目标数据,保证了推送数据的完整性。

附图说明

图1是本申请应用场景示意图;

图2是本申请实施例数据推送的方法一个实施例示意图;

图3是本申请实施例数据推送的方法另一实施例示意图;

图4是本申请实施例数据推送设备一个实施例示意图;

图5是本申请实施例数据推送设备另一实施例示意图。

具体实施方式

下面结合附图,对本申请的实施例进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着图计算框架的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。

本申请实施例提供一种数据推送的方法,可以提高第三方应用从关联电子设备获取设备数据的的速度,并且保证该设备数据在推送至第三方应用的过程中的数据完整性以及安全性。本申请实施例还提供相应的数据推送设备。以下分别进行详细说明。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。在本申请中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行次序,只要能达到相同或者相类似的技术效果即可。本申请中所出现的模块的划分,是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本申请中均不作限定。并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以不是物理模块,或者可以分布到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本申请方案的目的。

本申请实施例可应用于电子设备和与之关联的第三方应用之间的数据推送。随着科技的进步和人们的需求,目前在市场上已经出现了各种各样的用于签到或进行安全认证的电子设备,例如指纹识别设备、智能磁卡识别设备以及人脸识别设备,这些电子设备可以用于上下班签到或者身份认证等用途,大大提高了便利性和安全性。通常,这些电子设备会有为之相应开发的第三方应用配合使用,某个电子设备在经过某个用户操作(例如进行刷卡操作或人脸识别操作)后,在该电子设备中会产生与该用户相对应的设备数据,然后将该设备数据推送至第三方应用终端,以使得第三方应用或者第三方应用的管理人员可以对该设备数据进行相应的处理。本申请实施例的应用场景示意图如图1所示。在本方案中,电子设备通过中间件设备向第三方应用终端推送设备数据,电子设备的数量可以为一个或一个以上,其种类也可能为不相同的,本申请不做具体限定。

图2为本申请实施例中数据推送的方法一个实施例示意图。

如图2所示,本申请实施例中数据推送的方法一个实施例可以包括:

201、数据推送设备存储目标数据。

在本实施例中,该目标数据为数据推送设备从第一终端设备获取的设备数据,具体的,该数据推送设备对应上文中所述中间件设备,可选的,该中间件设备为采用databus技术的中间件设备,该第一终端设备对应上文中所述电子设备,该目标数据则对应于该电子设备经过用户进行识别操作后产生的设备数据,该第一终端设备和数据推送设备通过websocket连接。

202、数据推送设备向第二终端设备发送数据推送请求。

在本实施例中,该第二终端设备对应上文所述第三方应用终端,数据推送设备向第二终端设备发送数据推送请求,该数据推送请求中包含目标数据,以使得第二终端设备可以从该数据推送请求中获取该目标数据。该数据推送请求具体可以为http请求,http请求包括get请求和post请求两种类型,本申请对此不做具体限定。

203、数据推送设备接收第二终端设备发送的第一反馈消息。

在本实施例中,该第一反馈消息为第二终端设备从数据推送请求中成功获取目标数据后发送的,若第二终端设备没有从数据推送请求中获取到目标数据或者第二终端设备从数据推送请求中获取的数据不是完整的目标数据,则不会像数据推送设备发送该第一反馈消息。

204、数据推送设备根据第一反馈消息确定目标数据已成功推送至第二终端设备。

在本实施例中,数据推送设备接收到第二终端设备返回的反馈消息后,可以通过判断该反馈消息中携带的信息与在数据推送设备中存储的预设信息是否相同以确定目标数据是否已成功推送至第二终端设备,该第一反馈消息携带的信息与预设信息是相同的,所以数据推送设备可以根据该第一反馈消息确定目标数据已成功推送至第二终端设备,数据推送设备进而可以将目标数据的推送任务从推送任务队列中移除。

可选的,第二终端设备返回的反馈消息是具有固定格式的字符串,在一种具体的实施例中,该字符串中可以包含代码(code)和信息(message),当该code值为正确的code值时,例如预设code值为“00000000”,反馈消息中携带的code值也为“00000000”时,则数据推送设备可以确定目标数据已成功推送至第二终端设备。应理解,反馈消息也可以是其他的形式,本申请对此不做具体限定。

在本实施例中,数据推送设备可以对从第一终端设备获取目标数据进行存储,可以保证该目标数据不会丢失,提高了数据的安全性。数据推送设备与第一终端设备之间通过websocket长连接进行通讯,并且数据推送设备在接收到第一终端设备发送的目标数据后,会马上向第二终端设备发送数据推送请求,以将该目标数据推送至第二终端设备,从而使得该目标数据可以及时推送到第二终端设备,提高了目标数据从第一终端设备到第二终端设备之间的传输速度,并且数据推送设备需要在收到第二终端设备发送的第一反馈消息以确定该目标数据已完整地推送到第二终端设备后,才停止向第二终端设备推送该目标数据,保证了推送数据的完整性。通过本申请提供的技术方案,可以实现第三方应用与相关联的电子设备之间的实时通讯。

在一种具体的实施例中,数据推送设备向第二终端设备发送数据推送请求后,第二终端设备可能存在获取目标数据的情况,在这种情况下,第二终端设备不会向数据推送设备发送第一反馈消息,而会向数据推送设备发送第二反馈消息,该第二反馈消息用于告知数据推送设备目标数据推送失败,需要重新发送数据推送请求。以下进行详细的说明。

图3为本申请实施例中数据推送的方法另一实施例示意图。

如图3所示,本申请实施例中数据推送的方法另一实施例包括:

301、数据推送设备存储目标数据。

步骤301与上述步骤201类似,详细描述可参阅上述步骤201中的相关描述,对此此处不再赘述。

302、数据推送设备通过数据推送接口向第二终端设备发送数据推送请求。

可选的,在本实施例中,第二终端设备为运行第三方应用的终端,当该数据推送设备为采用databus技术的中间件设备时,该中间件设备可以提供设置第三方应用数据推送地址的应用程序编程接口(applicationprogramminginterface,api),第二终端设备可以调用此api接口用于设置数据推送接口,该数据推送接口可以用于从数据推送设备到第二终端设备之间的第三方应用数据(即第一终端设备的设备数据)的推送。应理解中间件设备可能具有多种不同的种类,本申请对此不做具体限定。

可选的,在该数据推送请求中还包括数据推送设备的标识信息,在一种可能的方式中,该标识信息具体可以为一个参数,该参数可用于进行安全认证,以使得第二终端设备确定接收到的请求为数据推送设备发送的数据推送请求,而不是其他可能存在数据安全威胁的请求。当第二终端设备运行的第三方应用不需要对接收到的请求进行安全认证时,该参数可以为空。本申请对标识信息的形式不做具体限定。

303、当数据推送设备接收第二终端设备发送的第二反馈消息时,数据推送设备重新向第二终端设备发送数据推送请求。

在本实施例中,第二终端设备向数据推送设备发送的第二反馈消息携带的信息与在数据推送设备中存储的预设信息是不相同的,例如预设信息中的预设code值为“00000000”,而第二反馈消息中携带的code值为“00000001”或者其他除“00000000”以外的数值,第二反馈消息为第二终端设备从数据推送请求中获取目标数据失败后发送的,第二终端设备判断是否获取目标数据成功的方法可以是判断获取的数据长度是否符合目标数据的长度,或者判断获取的数据是否带有结束符。应理解,上述第二终端设备判断是否获取目标数据成功的方法仅仅是举例说明,除此之外还可能有其他的方式,本申请对此不做具体限定。

数据推送设备接收到第二终端设备返回的第二反馈消息时,数据推送设备会重新向第二终端设备发送数据推送请求,直到第二终端设备返回第一反馈消息,数据推送设备才可以确定目标数据已经成功推送至第二终端设备,保证了推送数据的完整性。

可选的,在一种可能的情况中,数据推送设备向第二终端设备发送数据推送请求之后,可能既没有收到第二终端设备返回的第一反馈消息,也没有第二反馈消息,在这种情况下,数据推送请求通常是在特定时间段内有效的,超过有效时间但是没有收到第一反馈消息或第二反馈消息时,数据推送设备也会向第二终端设备重新发送数据推送请求。

304、数据推送设备接收第二终端设备发送的第一反馈消息。

305、数据推送设备根据第一反馈消息确定目标数据已成功推送至第二终端设备。

步骤304、305与上述步骤203、204类似,详细描述可参阅上述步骤203、204中的相关描述,对此此处不再赘述。

306、数据推送设备按照预设时间间隔检测数据推送接口是否可用。

可选的,在本实施例中,数据推送接口设置成功后,数据推送设备需要按照预设时间间隔检测数据推送接口是否可用,具体的,数据推送设备可以通过向该数据推送接口下发一个定时任务,以定时检测其是否可用,并且将检测结果记录在数据推送设备的日志中。

需要说明的是,上述步骤306发生在数据推送接口设置成功之后,该步骤是一个循环的重复步骤,其顺序与步骤301-305没有直接关系,具体此处不做限定。

由上述步骤可见,通过设置标识信息、数据推送请求重新发送、定时检测数据推送接口是否可用等步骤,提升了在数据推送过程中的安全性、稳定性以及数据完整性。

上面对本申请实施例中的数据推送的方法进行了描述,下面对本申请实施例中的数据推送设备进行描述。

图4是本申请实施例中数据推送设备一个实施例示意图。

如图4所示,本申请实施例中数据推送设备40可以包括:

存储单元401,用于存储目标数据,所述目标数据为从第一终端设备获取的设备数据;

发送单元402,用于在所述存储单元401存储所述目标数据后,向第二终端设备发送数据推送请求,所述数据推送请求中包含所述目标数据;

接收单元403,用于在所述发送单元402向所述第二终端设备发送数据推送请求后,接收所述第二终端设备发送的第一反馈消息,所述第一反馈消息为所述第二终端设备从所述数据推送请求中获取所述目标数据后发送的;

确定单元404,用于根据所述接收单元403接收的所述第一反馈消息确定所述目标数据已成功推送至所述第二终端设备。

可选的,所述接收单元403还用于接收所述第二终端设备发送的第二反馈消息,所述第二反馈消息为所述第二终端设备从所述数据推送请求中获取所述目标数据失败后发送的;所述发送单元402还用于当所述接收单元接收所述第二反馈消息时,重新向所述第二终端设备发送所述数据推送请求。

可选的,所述发送单元402可以进一步包括:第一发送模块4021,用于通过数据推送接口向所述第二终端设备发送所述数据推送请求,所述数据推送接口为所述第二终端设备调用所述数据推送设备提供的第一接口设置的。

可选的,本申请实施例中数据推送设备40还可以包括:

检测单元405,用于按照预设时间间隔检测所述数据推送接口是否可用。

图5是本申请实施例中数据推送设备另一实施例示意图。

如图5所示,本申请实施例中数据推送设备包括:

处理器501、存储器502和总线系统503。

其中,处理器501对数据推送设备的操作有控制作用,处理器501还可以称为中央处理单元(centralprocessingunit,cpu)。存储器502可以包括只读存储器和随机存取存储器,并向处理器501提供指令和数据。存储器502的一部分还可以包括非易失性随机存取存储器(non-volatilerandomaccessmemory,nvram)。具体的应用中,数据推送设备的各个组件通过总线系统503耦合在一起,其中总线系统503除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统503。

存储器502存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:

操作指令:包括各种操作指令,用于实现各种操作;

操作系统:包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。

其中,通过调用存储器502存储的操作指令,处理器501,用于执行本申请实施例中数据推送设备执行的步骤。

上述本申请实施例揭示的方法可以应用于处理器501中,或者由处理器501实现。处理器501可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器501中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器501可以是通用处理器、数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器502,处理器501读取存储器502中的信息,结合其硬件完成上述方法的步骤。

可选地,发射器504,可用于执行向第二终端设备发送数据推送请求的步骤。

可选地,接收器505,可用于执行接收第二终端设备发送的第一反馈消息或第二反馈消息的步骤。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。

所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:rom、ram、磁盘或光盘等。

以上对本申请实施例所提供的打印快递单的方法以及控制设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1