发明内容
基于上述研究,本发明提供了一种数据推送方法、装置和系统,以改善上述问题。
第一方面,本发明提供一种数据推送方法,应用于服务端,所述服务端与至少一个第三方服务商建立有通讯通道,所述服务端与至少一个终端建立有数据通道;所述方法包括:
接收各所述第三方服务商通过所述通讯通道传输的数据;
将所述数据通过所述数据通道推送至各所述终端。
在可选的实施方式中,所述方法还包括与至少一个第三方服务商建立通讯通道的步骤,该步骤包括:
向各所述第三方服务商发送客户端安装包以及为各所述第三方服务商分配登录账号;
接收各所述第三方服务商通过客户端上传的登录账号;
对接收到的登录账号进行鉴权;
与鉴权成功的第三方服务商建立通讯通道。
在可选的实施方式中,所述与鉴权成功的第三方服务商建立通讯通道的步骤包括:
通过access token与鉴权成功的第三方服务商建立通讯通道。
在可选的实施方式中,所述将所述数据通过所述数据通道推送至各所述终端的步骤包括:
按照透传模式将所述数据通过所述数据通道推送至各所述终端,以使各所述终端将所述数据进行可视化展示。
第二方面,本发明提供一种数据推送方法,应用于第三方服务商,所述第三方服务商与服务端建立有通讯通道;所述方法包括:
检测是否存在发生变化的目标数据;
若存在所述目标数据,通过所述通讯通道将所述目标数据发送至所述服务端,以使所述服务端将所述目标数据通过与各终端建立的数据通道推送至各所述终端。
在可选的实施方式中,所述方法还包括与服务端建立通讯通道的步骤,该步骤包括:
接收所述服务端发送的客户端安装包,安装客户端;
接收所述服务端发送的登录账号;
通过所述客户端将所述登录账号发送到所述服务端进行鉴权;
在鉴权成功之后,通过所述客户端与所述服务端建立所述通讯通道。
第三方面,本发明提供一种数据推送方法,应用于数据推送系统,所述数据推送系统包括服务端、至少一个第三方服务商以及至少一个终端;所述服务端与各所述第三方服务商建立有通讯通道,所述服务端与各所述终端建立有数据通道;所述方法包括:
所述第三方服务商检测是否存在发生变化的目标数据;
若存在所述目标数据,所述第三方服务商通过所述通讯通道将所述目标数据发送至所述服务端;
所述服务端将所述目标数据通过所述数据通道推送至各所述终端。
第四方面,本发明提供一种数据推送装置,应用于服务端,所述服务端与至少一个第三方服务商建立有通讯通道,所述服务端与至少一个终端建立有数据通道;所述装置包括数据接收模块以及数据推送模块;
所述数据接收模块用于接收各所述第三方服务商通过所述通讯通道传输的数据;
所述数据推送模块用于将所述数据通过所述数据通道推送至各所述终端。
第五方面,本发明提供一种数据推送装置,应用于第三方服务商,所述第三方服务商与服务端建立有通讯通道;所述装置包括数据检测模块以及数据发送模块;
所述数据检测模块用于检测是否存在发生变化的目标数据;
若存在所述目标数据,所述数据发送模块用于通过所述通讯通道将所述目标数据发送至所述服务端,以使所述服务端将所述目标数据通过与各终端建立的数据通道推送至各所述终端。
第六方面,本发明提供一种数据推送系统,包括服务端、至少一个第三方服务商以及至少一个终端;所述服务端与各所述第三方服务商建立有通讯通道,所述服务端与各所述终端建立有数据通道;
所述第三方服务商用于检测是否存在发生变化的目标数据;
若存在所述目标数据,所述第三方服务商用于通过所述通讯通道将所述目标数据发送至所述服务端;
所述服务端用于将所述目标数据通过所述数据通道推送至各所述终端。
第七方面,本发明实施例提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被执行时实现前述实施方式任一项所述的数据推送方法。
本发明实施例提供的数据推送方法、装置和系统,通过在服务端与各第三方服务商之间建立通讯通道,在服务端与各终端之间建立数据通道,如此,可使各第三方服务商通过通讯通道主动及时地将数据发送至服务端,而服务端在接收各第三方服务商通过通讯通道传输的数据后,及时将数据通过数据通道推送至各终端,提高了数据推送的及时性。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
主动推送服务工业互联网领域得到越来越广泛的被应用。该功能主要是指第三方服务商将数据发送到服务端,由服务端向终端用户推送最新的数据消息。特别是当有新的消息产生,第三方服务商必须快速的将消息及时地推送给服务端,服务端将变化的数据反馈给终端用户,通知现场数据的变化。例如,第三方服务商需要通过服务端所提供的平台向终端用户推送广告信息等。
现有技术中,服务端获取第三方服务商的数据主要有两种形式,主动拉取第三方服务商应用程序编程接口(Application Programming Interface,API)数据或定期读取第三方服务商数据库(data base,db)数据。第三方服务商无法主动地将数据推送给服务端,导致数据推送的及时性较差。
基于上述研究,本实施例提供了一种数据推送方法、装置和系统,通过在服务端与至少一个第三方服务商建立通讯通道,在服务端与至少一个终端建立数据通道,如此,可使各第三方服务商通过通讯通道主动及时地将数据发送至服务端,而服务端在接收各第三方服务商通过通讯通道传输的数据后,及时将数据通过数据通道推送至各终端,提高了数据推送的及时性。
请参阅图1,图1为本实施例所提供的数据推送系统的一种结构示意图。如图1所示,本实施例所提供的数据推送系统包括服务端100、至少一个第三方服务商200以及至少一个终端300。
其中,终端300可以是,但不限于,手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personaldigital assistant,PDA)等电子设备,本实施例对终端300的具体类型不作任何限制。
服务端100可以是单个物理服务器,也可以是一个由多个用于执行不同数据处理功能的物理服务器构成的服务器组。服务器组可以是集中式的,也可以是分布式的。在一些可能的实施方式中,若服务端100采用单个物理服务器,可以基于不同服务功能为该物理服务器分配不同的逻辑服务器组件。
如图2所示,服务端100包括第一数据推送装置10、第一存储器20、第一处理器30以及第一通信单元40。
所述第一存储器20、第一处理器30及第一通信单元40各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述第一数据推送装置10包括软件至少一个可以或固件(firmware)的形式存储于所述第一存储器20中或固化在所述服务端100的操作系统(operating system,OS)中的软件功能模块。所述第一处理器30用于执行所述第一存储器20中存储的可执行模块,例如所述第一数据推送装置10所包括的软件功能模块及计算机程序等。
其中,所述第一存储器20可以是,但不限于,随机存取存储器(Random AccessMemory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(ProgrammableRead-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,EEPROM)等。其中,第一存储器20用于存储程序或者数据。
所述第一处理器30可以是一种集成电路芯片,具有信号的处理能力。上述的第一处理器30可以是通用处理器,可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述第一通信单元40用于通过网络建立所述服务端100与其他设备之间的通信连接,并用于通过所述网络收发数据。
可以理解,图2所示的结构仅为示意,所述服务端100还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。图2中所示的各组件可以采用硬件、软件或其组合实现。
在本实施例中,第三方服务商200可以是各类运营商的数据处理服务器、数据管理服务器等,具体地不做限制。如图3所示,第三方服务商200包括第二数据推送装置210、第二存储器220、第二处理器230和第二通信单元240。
所述第二存储器220、第二处理器230及第二通信单元240各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述第二数据推送装置210包括至少一个可以软件或固件(firmware)的形式存储于所述第二存储器220中或固化在所述第三方服务商200的操作系统(operating system,OS)中的软件功能模块。所述第二处理器230用于执行所述第二存储器220中存储的可执行模块,例如所述第二数据推送装置210所包括的软件功能模块及计算机程序等。
所述第二通信单元240用于通过网络建立所述第三方服务商200与其他设备之间的通信连接,并用于通过所述网络收发数据。
可以理解,图3所示的结构仅为示意,所述第三方服务商200还可包括比图3中所示更多或者更少的组件,或者具有与图3所示不同的配置。图3中所示的各组件可以采用硬件、软件或其组合实现。
在本实施例中,服务端100与各第三方服务商200建立有通讯通道,服务端100与各终端300建立有数据通道。
第三方服务商200用于检测是否存在发生变化的目标数据。
若存在目标数据,第三方服务商200用于通过通讯通道将目标数据发送至服务端100。
服务端100用于将目标数据通过数据通道推送至各终端300。
本实施例所提供的数据推送系统,通过在服务端100与各第三方服务商200之间建立通讯通道,在服务端100与各终端300之间建立数据通道,如此,可使各第三方服务商200通过通讯通道主动及时地将数据发送至服务端100,而服务端100在接收各第三方服务商200通过通讯通道传输的数据后,及时将数据通过数据通道推送至各终端300,提高了数据推送的及时性。
基于图1、图2和图3所示的实现架构,请结合参阅图4,图4为本实施例所提供的数据推送方法的一种流程示意图。该方法由图1中的服务端100执行,下面对图4所示的流程图进行详细阐述。
步骤S10:接收各第三方服务商200通过通讯通道传输的数据。
步骤S30:将数据通过数据通道推送至各终端300。
其中,服务端100与各第三方服务商200建立有通讯通道,服务端100与各终端300建立有数据通道。如此,第三方服务商200可以实时地将数据主动推送给服务端100,然后服务端100将数据及时地反馈给终端300用户,由各终端300进行可视化展示,以通知用户,大大提高了数据推送的及时性、实时性。
例如,某个终端用户在服务端100的平台上购买了某个第三方服务商200的会员商品,当第三方服务商200监测到该终端用户的会员商品快到期限了,则通过通讯通道将期限数据发送到服务端100,服务端100在接收到期限数据后,通过数据通道将期限数据推送到该终端300,通过该终端300向该终端用户进行展示,以使终端用户知晓期限数据。
在本实施例中,服务端100与各第三方服务商200建立有通讯通道,进而可以允许多个第三方服务商200同时向服务端100发送数据,服务端100与各终端300建立有数据通道,进而可以允许服务端100同时向多个终端300推送数据。针对不同的第三方服务商200,发送的数据可以携带第三方服务商200设定的唯一标识以及待推送终端300的标识,如此可使服务端100正确区分每个第三方服务商200发送的数据,并进行正确推送。
为了保证数据传输的实时性,在本实施例中,服务端100可以通过以下步骤建立与第三方服务商200的通讯通道:
向各第三方服务商200发送客户端安装包以及为各第三方服务商200分配登录账号。
接收各第三方服务商200通过客户端上传的登录账号。
对接收到的登录账号进行鉴权。
与鉴权成功的第三方服务商200建立通讯通道。
其中,针对需要及时推送数据的各第三方服务商200,服务端100可以预先向各第三方服务商200发送客户端安装包以及为各第三方服务商200分配登录账号。各第三方服务商200在接收到客户端安装包后,安装客户端,然后通过客户端,将分配的登录账号发送至服务端100。
服务端100在接收到各第三方服务商200通过客户端发送的登录账号后,对接收到的各第三方服务商200的登录账号进行鉴权,即根据登录账号对第三方服务商200的身份进行核验,验证各第三方服务商200是否拥有数据传输的权利,若有,则表示鉴权成功,然后服务端100与鉴权成功的第三方服务商200建立通讯通道。具体地,可通过客户端与第三方服务商200建立通讯通道。在建立通讯通道后,第三方服务商200则可以将数据经由客户端通过通讯通道传输到服务端100。而服务端100也可以通过该通讯通道向第三方服务商200发送消息,保证了数据传输的可靠性与实时性。
可选的,在本实施例中,客户端可以支持第三方服务商使用java,python,nodejs等语言类型,即支持第三方服务商使用java,python,nodejs等语言类型调用客户端,实现数据的发送。
可选的,服务端100可提供dataChange接口,并基于netty框架,允许第三方服务商200调用dataChange接口,将数据实时推送到服务端100中。
可选的,在本实施例中,服务端100与鉴权成功的第三方服务商200可通过accesstoken(访问令牌)建立通讯通道。当第三方服务商200需要建立通讯通道时,通过客户端打开服务端100提供的授权界面,然后通过登录账号进行授权,并获得access token,第三方服务商200则可以通过access token调用服务端100的接口,与服务端100建立通讯通道,从而通过通讯通道将数据传输到服务端100。
在本实施例中,通过access token与服务端100建立安全的长链接通讯通道,在建立长链接通讯通道后,第三方服务商200则会与服务端100保持通讯状态,当第三方服务商200检测到数据变化时,则可以通过通讯通道实时将发生变化的数据发送到服务端100,或者第三方服务商200在有数据传输需求时,可以主动地通过通讯通道将数据发送到服务端100,实现了数据的主动推送,提高数据传输的及时性。
可选的,在本实施例中,服务端100可以通过基于TCP的全双工通信协议(WebSocket)与各终端300建立数据通道。服务端100将数据推送到各终端300时,按照WebSocket协议进行数据推送。
可选的,在本实施例中,将数据通过数据通道推送至各终端的步骤可以包括:
按照透传模式将数据通过数据通道推送至各终端,以使各终端将数据进行可视化展示。
其中,在本实施例中,服务端100在接收到第三方服务商200的数据后,可以按照透传模式将数据通过数据通道推送到各终端300,即将数据无加工的推送到各终端300,由各终端300进行可视化展示,实现了数据在终端300页面的实时展示。
本实施例所提供的数据推送方法,通过在服务端与至少一个第三方服务商建立通讯通道,在服务端与至少一个终端建立数据通道,如此,可使各第三方服务商通过通讯通道主动及时地将数据发送至服务端,而服务端在接收各第三方服务商通过通讯通道传输的数据后,及时将数据通过数据通道推送至各终端,提高了数据推送的及时性。
基于同一发明构思,请结合参阅图5,本实施例还提供一种数据推送方法,应用于第三方服务商200,由第三方服务商200执行本实施例所提供的数据推送方法,下面对图5所示的流程图进行详细阐述。
步骤S1:检测是否存在发生变化的目标数据。
若存在发生变化的目标数据,执行步骤S2。
步骤S2:通过通讯通道将目标数据发送至服务端100,以使服务端100将目标数据通过与各终端300建立的数据通道推送至各终端300。
其中,第三方服务商200与服务端100建立有通讯通道,第三方服务商200实时监测数据的动态,当检测到数据发生变化后,将发生变化的数据,即目标数据通过建立的通讯通道发送到服务端100,由服务端100通过与各终端300建立的数据通道推送到各终端300。
可以理解地,若未检测目标数据,则继续对数据进行监测。
可选的,在本实施例中,第三方服务商200不仅可以在数据发生变化后,通过通讯通道将数据发送到服务端,也可以根据自身数据推送需求,将数据通过通讯通道发送到服务端。
为了保证数据通讯的安全性,服务端100可以预先和第三方服务商200约定好传输的数据格式规范,进而第三方服务商200可以按照设定的数据格式规范将数据传输到服务端100。
为了进一步保证数据通讯的安全性,第三方服务端100可以通过以下步骤与服务端100建立通讯通道:
接收服务端100发送的客户端安装包,安装客户端。
接收服务端100发送的登录账号。
通过客户端将登录账号发送到服务端100进行鉴权。
在鉴权成功之后,通过客户端与服务端100建立通讯通道。
其中,第三方服务商200需要在本地安装客户端,并使用授权的登录账号进行鉴权。可选的,第三方服务商200在安装客户端后,可通过客户端将登录账号发送到服务端100,服务端100在接收到第三方服务商200通过客户端发送的登录账号后,对接收到的登录账号进行鉴权,即根据登录账号对第三方服务商200的身份进行核验,验证各第三方服务商200是否拥有数据传输的权利,若有,则表示鉴权成功,然后第三方服务商200与服务端100通过客户端建立通讯通道。
在建立通讯通道后,第三方服务商200则可以将数据经由客户端通过通讯通道传输到服务端100。而服务端100也可以通过该通讯通道向第三方服务商200发送消息,保证了数据传输的可靠性与实时性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的应用于第三方服务商200的数据推送方法的具体工作过程,可以参考前述应用于服务端100的数据推送方法中的对应过程,在此不再过多赘述。
本发明实施例提供的应用于第三方服务商的数据推送方法,通过在服务端与各第三方服务商之间建立通讯通道,在服务端与各终端之间建立数据通道,如此,可使各第三方服务商通过通讯通道主动及时地将数据发送至服务端,而服务端在接收各第三方服务商通过通讯通道传输的数据后,及时将数据通过数据通道推送至各终端,提高了数据推送的及时性。
在上述基础上,本实施例还提供一种数据推送方法,应用于数据推送系统,数据推送系统包括服务端100、至少一个第三方服务商200以及至少一个终端300;服务端100与各第三方服务商200建立有通讯通道,服务端100与各终端300建立有数据通道;所述方法包括:
第三方服务商200检测是否存在发生变化的目标数据。
若存在目标数据,第三方服务商200通过通讯通道将目标数据发送至服务端100。
服务端100将目标数据通过数据通道推送至各终端300。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的应用于数据推送系统的数据推送方法的具体工作过程,可以参考前述应用于服务端100的数据推送方法中的对应过程,在此不再过多赘述。
在上述基础上,请结合参阅图6,本实施例还提供一种第一数据推送装置10,应用于服务端100,服务端100与至少一个第三方服务商200建立有通讯通道,服务端100与至少一个终端300建立有数据通道;第一数据推送装置10包括数据接收模块11以及数据推送模块12。
数据接收模块11用于接收各第三方服务商200通过通讯通道传输的数据。
数据推送模块12用于将数据通过数据通道推送至各终端300。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的第一数据推送装置10的具体工作过程,可以参考前述应用于服务端100的数据推送方法中的对应过程,在此不再过多赘述。
在上述基础上,请结合参阅图7,本实施例还提供一种第二数据推送装置210,应用于第三方服务商200,第三方服务商200与服务端100建立有通讯通道;第二数据推送装置210包括数据检测模块211以及数据发送模块212。
所述数据检测模块211用于检测是否存在发生变化的目标数据。
若存在目标数据,数据发送模块212用于通过通讯通道将目标数据发送至服务端100,以使服务端100将目标数据通过与各终端300建立的数据通道推送至各终端300。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的第二数据推送装置210的具体工作过程,可以参考前述应用于服务端100的数据推送方法以及应用于第三方服务商200的数据推送方法中的对应过程,在此不再过多赘述。
在上述基础上,本发明实施例提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被执行时实现前述实施方式任一项所述的数据推送方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的可读存储介质的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
综上所述,本发明实施例提供的数据推送方法、装置和系统,通过在服务端与各第三方服务商之间建立通讯通道,在服务端与各终端之间建立数据通道,如此,可使各第三方服务商通过通讯通道主动及时地将数据发送至服务端,而服务端在接收各第三方服务商通过通讯通道传输的数据后,及时将数据通过数据通道推送至各终端,提高了数据推送的及时性。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。