CN105577602B - 基于开放的应用程序编程接口的数据推送方法和装置 - Google Patents

基于开放的应用程序编程接口的数据推送方法和装置 Download PDF

Info

Publication number
CN105577602B
CN105577602B CN201410525075.1A CN201410525075A CN105577602B CN 105577602 B CN105577602 B CN 105577602B CN 201410525075 A CN201410525075 A CN 201410525075A CN 105577602 B CN105577602 B CN 105577602B
Authority
CN
China
Prior art keywords
data
client
subscription
current
target
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.)
Active
Application number
CN201410525075.1A
Other languages
English (en)
Other versions
CN105577602A (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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201410525075.1A priority Critical patent/CN105577602B/zh
Publication of CN105577602A publication Critical patent/CN105577602A/zh
Priority to HK16112300.2A priority patent/HK1224109A1/zh
Application granted granted Critical
Publication of CN105577602B publication Critical patent/CN105577602B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本申请提供了基于开放的应用程序编程接口的数据推送方法及装置,方法包括:响应于各个提供数据客户端发送的注册请求,对应保存各个提供数据客户端的第一身份信息和第一权限信息;响应于当前提供数据客户端发起的、当前开放的应用程序编程接口的调用请求,对所述当前提供数据客户端的当前第一身份信息和当前第一权限信息进行鉴权;如果鉴权通过,则建立与当前提供数据客户端之间的长连接;在长连接上接收所述当前提供数据客户端推送的目标数据。在本申请实施例中,可以尽量避免短时间内对Open API的大量调用,并在大数据推送时提高推送效率。而由于客户端与服务器之间的交互少了,自然也就降低了服务器的压力,从而提升服务器的性能。

Description

基于开放的应用程序编程接口的数据推送方法和装置
技术领域
本申请涉及互联网领域,特别涉及一种基于开放的应用程序编程接口的数据推送方法和装置。
背景技术
在互联网时代,可以把网站的某些服务封装成一系列计算机易识别的应用程序编程接口(API)开放出去,供第三方开发者使用,这种API就叫做Open API。而提供Open API的平台称为开放平台。Open API的调用通过互联网以超文本传输协议(HTTP-Hypertexttransfer protocol)进行传输,客户端每调用一次Open API,就可以向服务器提交一次请求,服务器收到请求处理后返回结果给客户端。基于开放平台业务的不断发展,围绕开放平台进行开发的开发者越来越多,对获取数据和传输数据的要求也越来越高,尤其对大数据的实时传输和共享有更高的诉求,并且要求通过授权机制,使数据通过开放平台可以安全快速的在多个客户端之间流转。
现有的基于开放平台的数据推送方法是,通过客户端(即调用方)组装请求信息并调用Open API,客户端可以通过此调用建立起和服务器之间的连接并向服务器端发起请求,服务器对请求信息处理后将结果返回给客户端。
但是发明人在研究过程中发现,每次Open API调用中,受限于HTTP协议的限制,客户端携带和服务器返回的数据量都有限,数据推送量比较小,所以当面对需要获取大量数据或者上传大量数据的时候,不得不多次调用Open API已达到目的。因此,现有技术在大数据推送的应用上效率极低,而且短时间内大量的调用会对服务器造成很大的压力,影响服务器的性能。
发明内容
本申请所要解决的技术问题是提供基于开放的应用程序编程接口的数据推送方法,用以尽量解决现有技术中由于每次Open API调用中的数据推送量太小而导致在大数据推送时效率低下的问题,从而也尽量避免短时间内对Open API的大量调用,尽量降低服务器的压力,也尽量提升服务器的性能。
本申请还提供了基于开放的应用程序编程接口的数据推送装置及服务器,用以保证上述方法在实际中的实现及应用。
为了解决上述问题,本申请公开了一种基于开放的应用程序编程接口的数据推送方法,包括:
客户端注册流程和数据推送流程,
所述客户端注册流程包括:
响应于各个提供数据客户端发送的注册请求,对应保存所述各个提供数据客户端的第一身份信息和第一权限信息;所述第一身份信息用于唯一标识一个提供数据客户端,所述第一权限信息用于表示提供数据客户端可调用的开放的应用程序编程接口;
所述数据推送流程包括:
响应于当前提供数据客户端发起的、当前开放的应用程序编程接口的调用请求,对所述当前提供数据客户端的当前第一身份信息和当前第一权限信息进行鉴权;
如果鉴权通过,则建立与所述当前提供数据客户端之间的长连接;
在所述长连接上接收所述当前提供数据客户端推送的目标数据。
本申请还公开了另外一种基于开放的应用程序编程接口的数据推送方法,包括:客户端订阅流程和数据推送流程,
所述客户端订阅流程包括:
响应于各个订阅数据客户端发送的订阅请求,对所述订阅数据客户端的各个第二身份信息和第二权限信息进行鉴权;所述第二身份信息用于唯一标识订阅数据客户端,所述第二权限信息用于表示订阅数据客户端所订阅数据的订阅类型;
如果鉴权通过,则建立与所述订阅数据客户端之间的长连接;
所述数据推送流程包括:
判断当前是否接收到所述订阅类型的目标数据,如果是,则在所述长连接上向所述订阅数据客户端推送所述订阅类型的目标数据。
本申请公开了基于开放的应用程序编程接口的数据推送装置,包括:
注册响应模块,用于响应于各个提供数据客户端发送的注册请求,对应保存所述各个提供数据客户端的第一身份信息和第一权限信息;所述第一身份信息用于唯一标识一个提供数据客户端,所述第一权限信息用于表示提供数据客户端可调用的开放的应用程序编程接口;
第一鉴权模块,用于响应于当前提供数据客户端发起的、当前开放的应用程序编程接口的调用请求,对所述当前提供数据客户端的当前第一身份信息和当前第一权限信息进行鉴权;
第一建立长连接模块,用于在所述第一鉴权模块的结果通过的情况下,建立与当前提供数据客户端之间的长连接;
接收模块,用于在所述长连接上接收所述当前提供数据客户端推送的目标数据。
本申请还公开了另外一种基于开放的应用程序编程接口的数据推送装置,包括:
第二鉴权模块,响应于各个订阅数据客户端发送的订阅请求,对所述订阅数据客户端的各个第二身份信息和第二权限信息进行鉴权;所述第二身份信息用于唯一标识订阅数据客户端,所述第二权限信息用于表示订阅数据客户端所订阅数据的订阅类型;
第二建立长连接模块,用于在第二鉴权模块鉴权通过的情况下,建立与所述订阅数据客户端之间的长连接;
第二判断模块,用于判断当前是否接收到所述订阅类型的目标数据;
第二数据推送模块,用于在所述第二判断模块的结果为是的情况下,在所述长连接上向所述订阅数据客户端推送所述订阅类型的目标数据。
本申请还公开了服务器,包括:前述的任一项基于开放的应用程序编程接口的数据推送装置。
与现有技术相比,本申请包括以下优点:
在本申请实施例中,服务器通过建立与客户端之间的长连接,而长连接的维持时间较长,例如可以达到24小时,因此可以实现一次对Open API的一次调用从而多次在建立的长连接推送数据的目的,与现有技术相比,这样每一次调用所能推送的数据量就更大,从而可以尽量避免短时间内对Open API的大量调用,并在大数据推送时提高推送效率。而由于客户端与服务器之间的交互少了,自然也就降低了服务器的压力,从而提升服务器的性能。
当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请的基于开放的应用程序编程接口的数据推送方法实施例1的流程图;
图2是本申请的方法实施例的应用场景的示意图;
图3是本申请的基于开放的应用程序编程接口的数据推送方法实施例2的流程图;
图4为本申请的基于开放的应用程序编程接口的数据推送装置实施例1的结构框图;
图5为本申请的基于开放的应用程序编程接口的数据推送装置实施例2的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请可用于众多通用或专用的计算装置环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
参考图1,示出了本申请基于开放的应用程序编程接口的数据推送方法实施例1的流程图,本数据推送方法应用于服务器上,本实施例可以包括客户端注册流程和数据推送流程,其中,客户端注册流程和数据推送流程可以是相互独立的,但是客户端需要先在服务器注册才能进行数据推送流程。在一个具体的实施例中,本申请方法可以包括以下步骤:
步骤101:响应于各个提供数据客户端发送的注册请求,对应保存所述各个提供数据客户端的第一身份信息和第一权限信息。
本步骤是客户端注册流程。在本实施例中,提供数据客户端(向服务器提供数据的开发者)可以先向服务器(例如,开发平台)进行注册,在注册请求中提供数据客户端可以申请属于自己的开发者账号,还可以申请作为数据提供方可以调用的开放的应用程序编程接口(Open API),以及申请向服务器推送数据的数据类型。其中,该数据类型可以是按照业务进行分类的类型信息,例如,物流信息类型,或者订单信息类型等。
服务器审核注册请求中的申请信息,并将提供数据客户端的第一身份信息和第一鉴权信息进行保存,例如保存到鉴权中心。参考图2所示,为本申请方法实施例在实际应用中的场景示意图。其中,第一身份信息用于唯一标识一个提供数据客户端,例如开发者身份ID(appKey),可以用来识别提供数据客户端的身份;第一权限信息用于表示提供数据客户端可调用的开放的应用程序编程接口,例如权限码(sessionId),权限码可以表示提供数据客户端可以调用哪些Open API。可选的,权限码还可以表示一个客户端是数据提供客户端还是订阅数据客户端,或者,数据提供客户端在服务器的有效期。等等。
可选的,服务器还可以发放给提供数据客户端一个加密公钥(secret),以便提供数据客户端用来加密向服务器端发送的请求信息,以防止请求信息泄露。
步骤102:响应于当前提供数据客户端发起的、当前开放的应用程序编程接口的调用请求,对所述当前提供数据客户端的当前第一身份信息和当前第一权限信息进行鉴权,如果鉴权通过,则进入步骤103。
步骤102~步骤104是数据推送流程。在本步骤中,当前提供数据客户端已经在服务器注册。则某一个当前提供数据客户端可以使用服务器提供的软件开发工具包(SDK-Software Development Kit)将appKey、secret和sessionId和其他参数写入到Open API的参数列表中,并发起调用,服务器的Open API会将调用请求用secret加密后对服务器的鉴权中心发起请求。
服务器收到当前提供数据客户端的调用请求,可以参考当前第一身份信息(例如当前appKey)判断当前提供数据客户端是否注册成功,如果成功,则参考当前第一权限信息判断所述当前提供数据客户端是否具有当前开放的应用程序编程接口的调用权限。具体的,服务器可以通过存储的私钥解密请求信息,将appKey和sessionId发送给后台的鉴权中心,鉴权中心会根据之前提供数据客户端写入的参数列表,判断该调用请求是否有权调用此Open API,鉴权中心再将鉴权结果返回给服务器。
步骤103:建立与所述当前提供数据客户端之间的长连接。
服务器收到鉴权中心的结果时,如果发现鉴权通过,服务器会通过该当前提供数据客户端的调用请求,并与该当前提供数据客户端建立长连接,等待当前数据提供客户端写入自己需要推送的目标数据。
步骤104:在所述长连接上接收所述当前提供数据客户端推送的目标数据。
然后提供数据客户端自己需要向服务器推送的目标数据,也可以将该目标数据的数据类型信息一起通过该建立的长连接发送给服务器。
可选的,在步骤104之后,还可以包括:
步骤105:依据所述目标数据的目标类型将所述目标数据分类保存。
服务器接收到当前数据提供客户端发送过来的目标数据之后,可以按照目标数据的数据类型信息分类,并按照类型分类存储到后台的数据中心。
可选的,在步骤105之后,还可以包括:
步骤106:判断是否存在针对所述目标类型已经成功进行订阅的数据订阅客户端,如果是,则进入步骤106。
服务器的数据中心可以检测到当前服务器是否存在已经建立长连接并订阅了该数据类型的数据订阅客户端(即数据订阅方,简称订阅方),如果存在,就进入步骤107。在本步骤中,如果不存在相应的数据订阅客户端,服务器可以先将数据存储到数据中心,以等待后续数据订阅客户端的连接。
步骤107:将目标类型对应的目标数据通过与所述数据订阅客户端建立的长连接推送给所述数据订阅客户端。
如果步骤106中的判断结果为存在,则服务器就立刻将当前接收到的目标数据推送给数据订阅客户端。
可选的,在步骤107之后,还可以包括:
步骤108:在将所述目标数据成功推送给数据订阅客户端之后,删除所述目标数据。
其中,数据订阅客户端在收到目标数据之后,可以返回给服务器一个数据已经读取的消息,服务器可以标记该数据提供客户端已接收相应的目标数据,并将目标数据从数据中心删除,从而节省出服务器的数据存储资源。
可以理解的是,在本申请中的数据提供客户端和数据订阅客户端可以是同一个客户端,即可以实现自己上传目标数据,自己订阅目标数据的目的。而如果数据订阅客户端正在接收目标数据的时候突然掉线,或者长时间没有向服务器返回目标数据是否接收成功的结果,则服务器可以记录上一次数据订阅客户端返回的已经读取的消息,而未被数据订阅客户端成功确认已接收的目标数据会一直保存在服务器中,直到该数据订阅客户端再次建立长连接,服务器就可以重新推送未被成功处理的目标数据。
需要说明的是,在本申请实施例中,长连接的默认连接时间可以是24小时,在24小时内如果服务器和客户端之间没有数据正常传输,每隔一定时间(例如5分钟)服务器可以尝试向客户端发送心跳消息,客户端会自动响应该心跳消息,以保证客户端与服务器之间的长连接处于正常状态。而如果客户端没有响应服务器的心跳消息,服务器会重试,如果连续几次(例如3次)都没有响应,服务器可以确定客户端掉线,从而可以主动断开与客户端之间的长连接以节省网络通信资源。而如果长连接保持正常连接超过24小时,服务器可以重新向数据推送客户端发起长连接建立请求,客户端收到该请求后就会主动断开已经超过24小时的长连接并重新发起新的长连接。
可见,在本申请实施例中,服务器通过建立与客户端之间的长连接,而长连接的维持时间较长,在长连接的维持时间内服务器和客户端之间都可以进行数据推送,因此可以实现一次调用从而多次推送数据的目的,与现有技术相比,这样每一次调用所能推送的数据量就更大,从而可以尽量避免短时间内对Open API的大量调用,并在大数据推送时提高推送效率。而由于客户端与服务器之间的交互少了,自然也就降低了服务器的压力,从而提升服务器的性能。
参考图3,示出了本申请基于开放的应用程序编程接口的数据推送方法实施例2的流程图,本数据推送方法应用于服务器上,本实施例可以包括客户端订阅流程和数据推送流程,其中,客户端订阅流程和数据推送流程可以是相互独立的,但是客户端需要先在服务器订阅才能进行向客户端的数据推送流程。在一个具体的实施例中,本申请方法可以包括以下步骤:
步骤301:响应于各个订阅数据客户端发送的订阅请求,对所述订阅数据客户端的各个第二身份信息和第二权限信息进行鉴权。如果鉴权通过,则进入步骤302。
步骤301~步骤303是客户端订阅流程。在本步骤中,订阅数据客户端(即向服务器订阅数据的开发者)可以先向服务器发起订阅请求,在订阅请求中订阅数据客户端可以申请属于自己的开发者账号,以及申请向服务器订阅数据的数据类型。其中,该数据类型可以是按照业务进行分类的类型信息,例如,物流信息类型,或者订单信息类型等。
服务器审核订阅请求中的申请信息,并将订阅数据客户端的第二身份信息和第二鉴权信息进行保存,例如保存到鉴权中心。其中,第二身份信息用于唯一标识一个订阅数据客户端,例如开发者身份ID(appKey),可以用来识别订阅数据客户端的身份;第二权限信息用于表示订阅数据客户端所订阅数据的订阅类型,例如权限码(sessionId),可以表示出订阅数据客户端订阅的数据类型是物流信息还是订单信息等。可选的,权限码还可以表示一个客户端是数据提供客户端还是订阅数据客户端,或者,某个数据订阅客户端可以访问哪些数据提供客户端授权的哪些类型的目标数据。等等。
可选的,服务器还可以发放给订阅数据客户端一个加密公钥(secret),以便订阅数据客户端用来加密向服务器端发送的请求信息,以防止请求信息泄露。
具体的,服务器接收到订阅数据客户端的订阅请求,对订阅数据客户端的各个第二身份信息和第二权限信息进行鉴权,可以参考第二身份信息(例如appKey)判断所述订阅数据客户端是否注册成功,以及,参考第二权限信息判断所述订阅数据客户端是否具有访问订阅类型的订阅数据的提供者的权限。例如,某个订阅数据客户端订阅了物流类型信息,那么服务器就可以判断物流类型信息的提供数据客户端是否同意将该类型的数据推送该订阅数据客户端。
步骤302:建立与所述订阅数据客户端之间的长连接。
服务器如果鉴权通过,会通过该订阅数据客户端的订阅请求,并与该订阅数据客户端建立长连接,服务器可以将该订阅数据客户端的订阅类型进行记录,以便后续在接收到提供数据客户端推送的该订阅类型的目标数据时实时推送给订阅数据客户端。
步骤303:判断当前是否接收到所述订阅类型的目标数据,如果是,则进入步骤304。
步骤303~步骤304是数据推送流程。服务器在建立与订阅数据客户端的长连接后,就实时判断当前是否接收到了提供数据客户端推送的该订阅类型的目标数据。如果接收到,则进入步骤304进行数据推送,如果未接收到,则持续执行本步骤。
步骤304:在所述长连接上向所述订阅数据客户端推送所述订阅类型的目标数据。
服务器在长连接上向订阅数据客户端推送所述订阅类型的目标数据。具体的,服务器可以对订阅数据客户端已经成功接收的订阅数据进行标记,如果服务器的数据中心存储有订阅者未成功接收的订阅数据,服务器就可以开始向订阅数据客户端推送订阅数据。
可选的,在步骤304之后,还可以包括:
步骤305:在将所述目标数据成功推送给数据订阅客户端之后,删除所述目标数据。
在将所述目标数据成功推送给数据订阅客户端之后,删除目标数据以便节省存储资源。
可见,在本申请实施例中,服务器通过建立与客户端之间的长连接,可以实现一次调用从而多次推送数据的目的,与现有技术相比,这样每一次调用所能推送的数据量就更大,从而可以尽量避免短时间内对Open API的大量调用,并在大数据推送时提高推送效率。而由于客户端与服务器之间的交互少了,自然也就降低了服务器的压力,从而提升服务器的性能。
对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
与上述本申请基于开放的应用程序编程接口的数据推送方法实施例1所提供的方法相对应,参见图4,本申请还提供了基于开放的应用程序编程接口的数据推送装置实施例1,在本实施例中,该装置可以包括:
注册响应模块401,用于响应于各个提供数据客户端发送的注册请求,对应保存所述各个提供数据客户端的第一身份信息和第一权限信息;所述第一身份信息用于唯一标识一个提供数据客户端,所述第一权限信息用于表示提供数据客户端可调用的开放的应用程序编程接口。
第一鉴权模块402,用于响应于当前提供数据客户端发起的、当前开放的应用程序编程接口的调用请求,对所述当前提供数据客户端的当前第一身份信息和当前第一权限信息进行鉴权。
其中,所述第一鉴权模块402可以包括:
第一判断子模块,用于参考所述当前第一身份信息判断所述当前提供数据客户端是否注册成功,以及,第二判断子模块,用于参考所述当前第一权限信息判断所述当前提供数据客户端是否具有当前开放的应用程序编程接口的调用权限。
第一建立长连接模块403,用于在所述鉴权模块的结果通过的情况下,建立与当前提供数据客户端之间的长连接。
接收模块404,用于在所述长连接上接收所述当前提供数据客户端推送的目标数据。
可选的,本装置实施例还可以包括:
分类保存模块405,用于依据所述目标数据的目标类型将所述目标数据分类保存。
可选的,本装置实施例还可以包括:
第一判断模块406,用于判断是否存在针对所述目标类型已经成功进行订阅的数据订阅客户端。
第一数据推送模块407,用于在所述判断模块的结果为是的情况下,将目标类型对应的目标数据通过与所述数据订阅客户端建立的长连接推送给所述数据订阅客户端。
可选的,本装置实施例还可以包括:
第一删除模块408,用于在将所述目标数据成功推送给数据订阅客户端之后,删除所述目标数据。
可见,在本申请实施例中,服务器通过建立与客户端之间的长连接,可以实现一次调用从而多次推送数据的目的,与现有技术相比,这样每一次调用所能推送的数据量就更大,从而可以尽量避免短时间内对Open API的大量调用,并在大数据推送时提高推送效率。而由于客户端与服务器之间的交互少了,自然也就降低了服务器的压力,从而提升服务器的性能。
与上述本申请基于开放的应用程序编程接口的数据推送方法实施例2所提供的方法相对应,参见图5,本申请还提供了基于开放的应用程序编程接口的数据推送装置实施例2,在本实施例中,该装置可以包括:
第二鉴权模块501,响应于各个订阅数据客户端发送的订阅请求,对所述订阅数据客户端的各个第二身份信息和第二权限信息进行鉴权;所述第二身份信息用于唯一标识订阅数据客户端,所述第二权限信息用于表示订阅数据客户端所订阅数据的订阅类型。
其中,所述第二鉴权模块501可以包括:
第三判断子模块,用于参考第二身份信息判断所述订阅数据客户端是否注册成功,以及,第四判断子模块,用于参考所述第二权限信息判断所述订阅数据客户端是否具有访问订阅类型的订阅数据的提供者的权限。
第二建立长连接模块502,用于在第二鉴权模块鉴权通过的情况下,建立与所述订阅数据客户端之间的长连接。
第二判断模块503,用于判断当前是否接收到所述订阅类型的目标数据。
第二数据推送模块504,用于在所述判断模块的结果为是的情况下,在所述长连接上向所述订阅数据客户端推送所述订阅类型的目标数据。
可选的,本装置实施例还可以包括:
第二删除模块505,用于在将所述目标数据成功推送给数据订阅客户端之后,删除所述目标数据。
可见,在本申请实施例中,服务器通过建立与客户端之间的长连接,可以实现一次调用从而多次推送数据的目的,与现有技术相比,这样每一次调用所能推送的数据量就更大,从而可以尽量避免短时间内对Open API的大量调用,并在大数据推送时提高推送效率。而由于客户端与服务器之间的交互少了,自然也就降低了服务器的压力,从而提升服务器的性能。
本申请实施例还提供了一种服务器,该服务器的CPU上可以集成前述的装置实施例1或者装置实施例2,从而实现前述装置的功能。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的基于开放的应用程序编程接口的数据推送方法、装置和服务器进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (17)

1.一种基于开放的应用程序编程接口的数据推送方法,其特征在于,该方法应用于服务器,并且包括:客户端注册流程和数据推送流程,
所述客户端注册流程包括:
响应于各个提供数据客户端发送的注册请求,对应保存所述各个提供数据客户端的第一身份信息和第一权限信息;所述第一身份信息用于唯一标识一个提供数据客户端,所述第一权限信息用于表示提供数据客户端可调用的开放的应用程序编程接口;
所述数据推送流程包括:
响应于当前提供数据客户端发起的、当前开放的应用程序编程接口的调用请求,对所述当前提供数据客户端的当前第一身份信息和当前第一权限信息进行鉴权;
如果鉴权通过,则建立与所述当前提供数据客户端之间的长连接;
在所述长连接上接收所述当前提供数据客户端推送的目标数据。
2.根据权利要求1所述的方法,其特征在于,所述对所述当前提供数据客户端的当前第一身份信息和当前第一权限信息进行鉴权,包括:
参考所述当前第一身份信息判断所述当前提供数据客户端是否注册成功,以及,参考所述当前第一权限信息判断所述当前提供数据客户端是否具有当前开放的应用程序编程接口的调用权限。
3.根据权利要求1所述的方法,其特征在于,还包括:
依据所述目标数据的目标类型将所述目标数据分类保存。
4.根据权利要求3所述的方法,其特征在于,还包括:
判断是否存在针对所述目标类型已经成功进行订阅的数据订阅客户端,如果是,则将目标类型对应的目标数据通过与所述数据订阅客户端建立的长连接推送给所述数据订阅客户端。
5.根据权利要求4所述的方法,其特征在于,在将所述目标数据成功推送给数据订阅客户端之后,还包括:
删除所述目标数据。
6.一种基于开放的应用程序编程接口的数据推送方法,其特征在于,该方法应用于服务器,并且包括:客户端订阅流程和数据推送流程,
所述客户端订阅流程包括:
响应于各个订阅数据客户端发送的订阅请求,对所述订阅数据客户端的各个第二身份信息和第二权限信息进行鉴权;所述第二身份信息用于唯一标识订阅数据客户端,所述第二权限信息用于表示订阅数据客户端所订阅数据的订阅类型;
如果鉴权通过,则建立与所述订阅数据客户端之间的长连接;
所述数据推送流程包括:
判断当前是否接收到所述订阅类型的目标数据,如果是,则在所述长连接上向所述订阅数据客户端推送所述订阅类型的目标数据。
7.根据权利要求6所述的方法,其特征在于,在将所述目标数据成功推送给数据订阅客户端之后,还包括:
删除所述目标数据。
8.根据权利要求6所述的方法,其特征在于,对所述订阅数据客户端的各个第二身份信息和第二权限信息进行鉴权,包括:
参考第二身份信息判断所述订阅数据客户端是否注册成功,以及,参考所述第二权限信息判断所述订阅数据客户端是否具有访问订阅类型的订阅数据的提供者的权限。
9.一种基于开放的应用程序编程接口的数据推送装置,其特征在于,该装置配置于服务器,并且包括:
注册响应模块,用于响应于各个提供数据客户端发送的注册请求,对应保存所述各个提供数据客户端的第一身份信息和第一权限信息;所述第一身份信息用于唯一标识一个提供数据客户端,所述第一权限信息用于表示提供数据客户端可调用的开放的应用程序编程接口;
第一鉴权模块,用于响应于当前提供数据客户端发起的、当前开放的应用程序编程接口的调用请求,对所述当前提供数据客户端的当前第一身份信息和当前第一权限信息进行鉴权;
第一建立长连接模块,用于在所述第一鉴权模块的结果通过的情况下,建立与当前提供数据客户端之间的长连接;
接收模块,用于在所述长连接上接收所述当前提供数据客户端推送的目标数据。
10.根据权利要求9所述的装置,其特征在于,所述第一鉴权模块包括:
第一判断子模块,用于参考所述当前第一身份信息判断所述当前提供数据客户端是否注册成功,以及,
第二判断子模块,用于参考所述当前第一权限信息判断所述当前提供数据客户端是否具有当前开放的应用程序编程接口的调用权限。
11.根据权利要求9所述的装置,其特征在于,还包括:
分类保存模块,用于依据所述目标数据的目标类型将所述目标数据分类保存。
12.根据权利要求11所述的装置,其特征在于,还包括:
第一判断模块,用于判断是否存在针对所述目标类型已经成功进行订阅的数据订阅客户端;
第一数据推送模块,用于在所述第一判断模块的结果为是的情况下,将目标类型对应的目标数据通过与所述数据订阅客户端建立的长连接推送给所述数据订阅客户端。
13.根据权利要求12所述的装置,其特征在于,还包括:
第一删除模块,用于在将所述目标数据成功推送给数据订阅客户端之后,删除所述目标数据。
14.一种基于开放的应用程序编程接口的数据推送装置,其特征在于,该装置配置于服务器,并且包括:
第二鉴权模块,响应于各个订阅数据客户端发送的订阅请求,对所述订阅数据客户端的各个第二身份信息和第二权限信息进行鉴权;所述第二身份信息用于唯一标识订阅数据客户端,所述第二权限信息用于表示订阅数据客户端所订阅数据的订阅类型;
第二建立长连接模块,用于在第二鉴权模块鉴权通过的情况下,建立与所述订阅数据客户端之间的长连接;
第二判断模块,用于判断当前是否接收到所述订阅类型的目标数据;
第二数据推送模块,用于在所述第二判断模块的结果为是的情况下,在所述长连接上向所述订阅数据客户端推送所述订阅类型的目标数据。
15.根据权利要求14所述的装置,其特征在于,还包括:
第二删除模块,用于在将所述目标数据成功推送给数据订阅客户端之后,删除所述目标数据。
16.根据权利要求14所述的装置,其特征在于,所述第二鉴权模块包括:
第三判断子模块,用于参考第二身份信息判断所述订阅数据客户端是否注册成功,以及,
第四判断子模块,用于参考所述第二权限信息判断所述订阅数据客户端是否具有访问订阅类型的订阅数据的提供者的权限。
17.一种服务器,其特征在于,所述服务器包括如权利要求9~13任一项所述的装置,或者包括如权利要求14~16任一项所述的装置。
CN201410525075.1A 2014-10-08 2014-10-08 基于开放的应用程序编程接口的数据推送方法和装置 Active CN105577602B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201410525075.1A CN105577602B (zh) 2014-10-08 2014-10-08 基于开放的应用程序编程接口的数据推送方法和装置
HK16112300.2A HK1224109A1 (zh) 2014-10-08 2016-10-26 基於開放的應用程式編程接口的數據推送方法和裝置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410525075.1A CN105577602B (zh) 2014-10-08 2014-10-08 基于开放的应用程序编程接口的数据推送方法和装置

Publications (2)

Publication Number Publication Date
CN105577602A CN105577602A (zh) 2016-05-11
CN105577602B true CN105577602B (zh) 2018-12-28

Family

ID=55887271

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410525075.1A Active CN105577602B (zh) 2014-10-08 2014-10-08 基于开放的应用程序编程接口的数据推送方法和装置

Country Status (2)

Country Link
CN (1) CN105577602B (zh)
HK (1) HK1224109A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108259432A (zh) * 2016-12-29 2018-07-06 亿阳安全技术有限公司 一种api调用的管理方法、设备及系统
CN109150805B (zh) * 2017-06-19 2021-07-09 亿阳安全技术有限公司 应用程序编程接口的安全管理方法和系统
CN109165248B (zh) * 2018-01-29 2019-09-03 北京数聚鑫云信息技术有限公司 一种基于api的管理系统及管理方法
CN108920972A (zh) * 2018-07-19 2018-11-30 清华大学 一种面向多应用的pdc数据接口系统
CN109067690B (zh) * 2018-08-07 2021-03-26 腾讯科技(深圳)有限公司 离线计算结果数据的推送方法及装置
CN111125642B (zh) * 2018-10-31 2022-06-03 北京数聚鑫云信息技术有限公司 一种管理api的方法、装置、存储介质及计算机设备
CN112291178B (zh) * 2019-07-22 2024-03-22 京东方科技集团股份有限公司 一种服务提供方法、装置及电子设备
CN112561610A (zh) * 2020-12-09 2021-03-26 航天信息股份有限公司 一种异步调用机制下对发票开具数据进行同步的方法及系统
CN112217840B (zh) * 2020-12-09 2021-04-13 杭州筋斗腾云科技有限公司 分布式网络资源安全访问管理系统及用户端口
CN112954065B (zh) * 2021-02-26 2023-12-29 厦门熵基科技有限公司 一种数据推送方法、装置、电子设备及存储介质
CN113596082A (zh) * 2021-06-21 2021-11-02 青岛海尔科技有限公司 设备数据的确定方法及系统、电子装置
CN113630348A (zh) * 2021-09-17 2021-11-09 上海电信科技发展有限公司 多路由数据的转发方法及其系统
CN114025016B (zh) * 2021-10-18 2024-03-15 中国联合网络通信集团有限公司 一种数据转发方法、装置及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101599982A (zh) * 2008-06-06 2009-12-09 广东宇天信通通信科技有限公司 手机信息浏览装置、系统及实现方法
CN102281311A (zh) * 2010-06-10 2011-12-14 阿里巴巴集团控股有限公司 一种基于开放应用编程接口实现网络业务的方法、系统及装置
WO2012155651A1 (zh) * 2011-07-22 2012-11-22 中兴通讯股份有限公司 实现终端应用的在线处理系统及方法
CN102833323A (zh) * 2012-08-14 2012-12-19 新浪网技术(中国)有限公司 服务器远程控制受控终端的方法和系统
CN103428166A (zh) * 2012-05-16 2013-12-04 腾讯科技(深圳)有限公司 第三方应用的多sns平台统一接入方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101599982A (zh) * 2008-06-06 2009-12-09 广东宇天信通通信科技有限公司 手机信息浏览装置、系统及实现方法
CN102281311A (zh) * 2010-06-10 2011-12-14 阿里巴巴集团控股有限公司 一种基于开放应用编程接口实现网络业务的方法、系统及装置
WO2012155651A1 (zh) * 2011-07-22 2012-11-22 中兴通讯股份有限公司 实现终端应用的在线处理系统及方法
CN103428166A (zh) * 2012-05-16 2013-12-04 腾讯科技(深圳)有限公司 第三方应用的多sns平台统一接入方法及系统
CN102833323A (zh) * 2012-08-14 2012-12-19 新浪网技术(中国)有限公司 服务器远程控制受控终端的方法和系统

Also Published As

Publication number Publication date
CN105577602A (zh) 2016-05-11
HK1224109A1 (zh) 2017-08-11

Similar Documents

Publication Publication Date Title
CN105577602B (zh) 基于开放的应用程序编程接口的数据推送方法和装置
CN106575327B (zh) 分析面部识别数据和社交网络数据以供用户鉴别
EP3100171B1 (en) Client authentication using social relationship data
CN102546601B (zh) 云计算终端接入虚拟机的辅助装置
CN101873331B (zh) 一种安全认证方法和系统
CN103916244B (zh) 验证方法及装置
CN109840591A (zh) 模型训练系统、方法和存储介质
CN108537046A (zh) 一种基于区块链技术的在线合同签署系统及方法
CN101635714B (zh) 提高网络应用安全性的方法和系统
CN109005220B (zh) 物联网终端的业务实现方法及物联网接入网关
CN111382985B (zh) 待办消息集成推送系统和工作方法
CN104753675B (zh) 信息验证方法、电子支付方法、终端、服务器及系统
CN105007301A (zh) 基于社交平台的电子证据处理系统及处理方法
CN103905399A (zh) 一种帐号登录管理的方法和装置
TW201909072A (zh) 電子帳戶的掛失、解掛、業務管理方法、裝置及設備
CN110458559A (zh) 交易数据处理方法、装置、服务器和存储介质
CN109493224A (zh) 一种区块链图片社交系统
CN108156120A (zh) 加密传输数据、加密协议控制及被探测的方法、装置及系统
US11057392B2 (en) Data security method utilizing mesh network dynamic scoring
CN109347865A (zh) 一种基于区块链技术的用户数据鉴权存证的方法及系统
CN111698196A (zh) 一种鉴权方法及微服务系统
CN109067749A (zh) 一种信息处理方法、设备及计算机可读存储介质
CN113242301A (zh) 真实服务器的选定方法、装置、计算机设备及存储介质
JP6847949B2 (ja) データシグナリングを制御するためのネットワークアーキテクチャ
CN114205816A (zh) 一种电力移动物联网信息安全架构及其使用方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1224109

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200923

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200923

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: Cayman Islands Grand Cayman capital building, a four storey No. 847 mailbox

Patentee before: Alibaba Group Holding Ltd.