一种数据获取方法和设备的制作方法

文档序号:7622415阅读:119来源:国知局
专利名称:一种数据获取方法和设备的制作方法
技术领域
本发明涉及互联网领域的数据处理技术,尤其涉及一种数据获取方法和设备。
背景技术
随着互联网技术的高速发展,博客业务逐渐兴起并融入人们的工作生活当中。博客业务是一种便利的个人信息发布方式,通过博客人们可以将个人信息以网络出版的形式发表和张贴,并可以根据用户群的不同或者个人信息的种类进行分类。博客逐渐成为人们生活中接收信息的一种主要媒体。现有技术中,用户通过(Internet Explorer,因特网浏览器)或其他浏览器在好友或其他人的博客中查看数据的过程通常是用户通过所在终端向服务器发送数据访问请求,服务器根据该数据访问请求将相应的数据返回给该用户所在的终端,即,所用户通过 直接下载方式从服务器获取数据。但是,通过直接下载方式从服务器下载数据会消耗大量的服务器带宽资源。

发明内容
本发明提供一种数据获取方法和设备,用以解决数据访问过程中服务器带宽资源开销大的问题。本发明提供的数据获取方法,包括
用户终端需要获取数据时,向服务器发送查询请求,其中携带有需要获取的数据的标识息;
所述用户终端接收所述服务器发送的查询响应,其中携带有所述服务器根据所述需要获取的数据的标识信息查询到的发布或/和访问过相应数据且当前在线的用户的用户信息;
所述用户终端获取所述查询响应中携带的用户信息,并根据获取到的用户信息,从对应用户所在的用户终端获取所述需要获取的数据
本发明提供的用户终端设备,包括用于缓存用户发布或/和访问过的数据的缓存模块,还包括
发送模块,用于在用户终端需要获取数据时,向服务器发送查询请求,其中携带有需要获取的数据的标识信息;
接收模块,用于接收服务器发送的查询响应;
第一获取模块,用于获取所述接收模块接收到的查询响应中携带的发布或/和访问过所述需要获取的数据且当前在线的用户的用户信息;
第二获取模块,用于根据所述第一获取模块获取到的用户信息,从对应用户所在的用户终端获取所述需要获取的数据。本发明实施例提供的服务器,包括
接收模块,用于接收用户终端发送的查询请求,其中携带有所述用户终端需要获取的数据的标识信息;
第一查询模块,用于根据所述接收模块接收到的查询请求中携带的所述需要获取的数据的标识信息,查询发布或/和访问过相应数据的用户的用户信息;
第二查询模块,用于根据所述第一查询模块查询到的用户信息查询相应用户的在线状
态;
发送模块,用于根据所述第二查询模块的查询结果,向所述用户终端发送查询响应,其中携带有发布或/和访问过所述需要获取的数据且当前在线的用户的用户信息。与现有技术相比,本发明实施例具有以下优点 当用户终端需要获取数据时,通过获取发布或/和访问过该用户终端需要获取的数据且在线的用户的用户信息,并从对应用户所在的用户终端获取需要获取的数据,节省了服务器带宽。


图I为本发明实施例提供的数据下载流程示意 图2为本发明实施例提供的用户终端的结构示意图
图3为本发明实施例提供的服务器的结构示意图。
具体实施例方式针对现有技术中从服务器下载数据消耗大量服务器带宽且成本较高的问题,本发明实施例提供一种数据获取的技术方案,通过与发布或/和访问过该用户终端需要获取的数据且当前在线的用户建立连接,从这些用户所在终端获取需要获取的数据,节省了服务器带宽。本发明实施例涉及的网络架构可以是C/S (客户端/服务器)架构,也可以是B/S(浏览器/服务器)架构。网络侧可包括⑶N (Content Delivery Network,内容分发网络)服务器,用于存储用户数据;还可包括用户信息服务器,用于存储用户信息、用户在线状态信息以及用户对数据的访问记录。用户可通过所在用户终端(即通过所在客户端)与网络侧的服务器进行交互,也可以访问其他用户终端。当用户发布数据时,该用户可通过所在用户终端将待发布数据上传到CDN中保存。该用户发布数据的相关记录信息,包括发布者的用户信息(如用户标识)和所发布的数据的相关信息(如名称、类型、标识或发布时间等属性信息),则被记录到用户信息服务器中。当用户访问其他用户的数据时,用户信息服务器记录访问者的相关信息(如用户标识等信息)和被访问的数据的相关信息(如数据标识等属性信息)。用户终端可将用户访问到的数据进行缓存。基于上述网络架构,下面以QQ用户在QQ空间中访问相册的应用为例,对本发明实施例提供的数据获取的技术方案进行描述。本发明实施例的具体应用场景为用户A、B、C及D均为QQ用户,用户B在QQ空间中上传了一个新的相册(相册1),用户C和用户D访问过用户B的QQ空间中的该相册。当用户B需要在其QQ空间发布相册I时,用户B通过所在用户终端b将相册I上传到CDN服务器中保存,CDN服务器将该相册数据保存到用户B的QQ空间中。用户B发布相册I的相关信息,包括用户B的用户信息(如用户标识)和该相册数据的相关信息(如名称、类型、标识或发布时间等属性信息),则被记录到用户信息服务器中。当用户A想要访问用户B的QQ空间中的相册I时,如当用户A点击用户B的QQ空间中的该相册的链接后,用户A所在的用户终端a向用户信息服务器查询发布或/和访问过该相册的用户的相关信息,以及这些用户的在线状态信息。若用户信息服务器查询到该相册的发布者用户B以及访问过该相册的用户C在线,则用户终端a可以选择从用户终端b和/或用户终端c下载该相册。针对以上场景,当用户A点击访问相册I的链接时,用户终端a下载相册I数据的流程可如图I所示。步骤101、用户终端a向用户信息服务器请求查询发布或/和访问过相册I且当前在线的用户的用户信息。·具体的,当用户A点击用户B的QQ空间中的相册I的链接时,用户终端a向用户信息服务器发送查询请求消息,该查询请求消息中携带有用户A的相关信息(如用户QQ号码等标识信息,用户终端a的地址),相册I的相关属性信息(如相册I的名称、标识等),还可携带有用户B的相关信息(如用户B的QQ号码等标识信息)。步骤102,用户信息服务器接收到该查询请求后,根据其中携带的相册I的信息,从其所保存的用户对相册I的访问记录中查询该相册的发布者或/和访问者用户的用户信息(如用户QQ号码等标识信息)。具体到本实施例中,由于用户B是相册I的发布者,用户C和用户D曾访问过相册1,用户信息服务器中记录有相应的访问记录,因此信息服务器可查询到发布和访问过相册I的用户B、用户C和用户D的信息。其中,用户信息服务器可根据预先的设置,仅查询该数据的发布者的用户信息,或仅查询访问过该数据的访问者的用户信息,或者查询该数据的发布者和访问过该数据的访问者的用户信息。步骤103,用户信息服务器根据查询到的用户信息,查询这些用户的在线状态,并将查询结果返回给用户终端a。具体的,用户信息服务器在查询到用户信息后,可根据用户信息查询这些用户的在线状态,并将这些用户中当前在线的用户的用户信息通过查询响应消息返回给用户终端
B o具体到本实施例中,用户B和用户C当前在线,用户信息服务器将用户B和用户C的用户信息发送给用户终端a,其中该用户信息可以包括用户的用户标识信息和用户所在用户终端的地址信息。步骤104、用户终端a根据接收到的用户信息从对应用户所在的用户终端下载相册I。具体到本实施例中,用户终端a接收到的查询响应中携带有用户B所在用户终端b的地址,以及用户C所在用户终端c的地址。用户终端a根据用户终端b和用户终端c的地址,分别向用户终端b和用户终端c发送数据下载请求,建立点对点连接,并通过点对点方式从用户终端b和用户终端c下载相册I。进一步的,当用户终端a从用户终端b和用户终端c下载数据的过程中,若从用户终端b下载数据的速度低于预设的门限值(该门限值可根据实际情况预先设定,如当网络带宽为1M,则可将门限值设定为lOKb/s)时,用户终端a可断开与用户终端b的连接,其余未下载数据从用户终端c得到。通过以上流程可以看出,用户终端通过获取发布或/和访问过该用户终端需要获取的数据且当前在线的用户的用户信息,并从对应用户所在的用户终端获取需要获取的数据,节省了服务器带宽。考虑到用户终端所在的地理位置可能影响数据下载速度,因此在本发明的另一实施例中,当用户信息服务器查询到的发布或/和访问过相册I且当前在线的用户为多个时,用户信息服务器可以根据这些用户所在终端的地理位置选择出数据下载速率高的用户终端,并将选择出的用户终端的信息(如地址)反馈给发起数据访问请求的用户终端a,以便用户终端a与这些用户终端建立点对点连接。例如,当用户信息服务器查询到的发布或/和访问过相册I且当前在线的用户有1000个时,其中20个用户所在的用户终端与用户终端a处于同一城市,则用户信息服务器可以优选将这20个用户所在终端的信息反馈给用户终 端a。当然,用户信息服务器也可以以随机方式将查询到的用户中部分或全部用户的用户信息反馈给用户终端a。例如,对于上述应用场景,用户信息服务器可以选择将用户B的用户信息反馈给用户终端a,也可以选择将用户C的用户信息反馈给用户终端a,还可以选择将用户B和用户C的用户信息均反馈给用户终端a。如果用户终端b与用户终端a在同一城市,则优先选择将用户B的用户信息反馈给用户终端a。为了提高系统灵活性和对数据访问的可控性,在本发明的另一实施例中,允许用户设置数据获取权限,即允许用户指定具有特定特征的用户才可以获取该用户的数据,或者说只向这些具有特定特征的用户提供数据下载服务。例如,对于QQ用户,可将数据获取权限设置为只为其好友提供数据下载服务,或者只为某些指定的QQ号码的用户提供数据下载服务,或者只为处于同一城市的用户提供数据下载服务。相应的,当用户设置了数据获取权限时,该用户所在用户终端接收到其他用户终端发送的数据下载请求时,该用户终端根据设置的数据获取权限判断是否允许向发送数据下载请求的用户终端提供数据下载服务。如在上述场景中,用户A是用户B的好友,用户A不是用户C的好友,用户B和用户C设置的数据获取权限为只为好友用户提供数据下载服务,则用户终端b和用户终端c在接收到用户终端a发送的数据下载请求以请求下载相册I时,用户终端b根据用户B设置的数据获取权限判断为允许向用户终端a提供数据下载服务,则用户终端b向用户终端a发送确认消息,用户终端a接收到用户终端b发送的确认消息后,与用户终端b建立点对点连接,并通过建立的点对点连接从用户终端b下载相册I ;而用户终端c根据用户C设置的数据获取权限判断为不允许向用户终端a提供数据下载服务,则用户终端c向用户终端a发送拒绝消息,拒绝与用户终端a建立点对点连接。由于用户访问过的数据通常缓存在该用户所在的用户终端中,用户终端在一定条件下(如一定时长后)会清除缓存的数据,因此为了保证能够向其他用户终端提供数据下载服务,用户终端在接收到其他用户终端发送的数据下载请求后,可先根据请求消息中携带的需要获取的数据的标识信息判断自身是否缓存有该数据,并当缓存有该数据时,向发送数据下载请求消息的用户终端发送确认消息,发送数据下载请求消息的用户终端在接收到确认消息后,与相应用户终端建立点对点连接,以保证能够为请求下载数据的用户终端提供所需数据。为了提高数据下载效率,在本发明的另一实施例中,当用户终端通过点对点方式从其他用户终端下载数据的过程中,数据下载速度低于预先设定的阈值时,该用户终端还可以连接到CDN服务器,从CDN服务器下载剩余数据。其中,该用户终端在从CDN服务器下载数据的过程中,可以断开与其他终端的点对点连接,也可以保持该连接,并继续通过点对点方式从其他用户终端下载数据。当用户终端查询到需要获取的数据的发布者以及访问过该数据的用户均不在线时,用户终端可选择传统模式获取数据,即直接从服务器获取数据,具体获取流程在此不再赘述。应该认识到,本发明实施例提供的数据获取技术并不仅仅适用于QQ应用中的相册数据的获取,任何相似场景下的数据获取均可应用本发明实施例提供的技术方案。
基于相同的技术构思,本发明实施例还提供了一种用户终端,可以应用于上述数据下载的方法流程中。如图2所示,为本发明实施例提供的用户终端的结构示意图,该用户终端除了包括用于缓存用户发布或/和访问过的数据的缓存模块21之外,还可以包括
发送模块22,用于在用户终端需要获取数据时,向服务器侧发送查询请求,该查询请求携带有该用户终端需要获取的数据的标识信息;
接收模块23,用于接收服务器发送的查询响应,其中携带有服务器根据该用户终端需要获取的数据的标识信息查询到的发布或/和访问过相应数据且当前在线的用户的用户信息;
第一获取模块24,用于获取接收模块23接收到的查询响应中携带的用户信息;
第二获取模块25,用于根据第一获取模块24获取到的用户信息,从对应用户所在的用户终端获取该用户终端需要获取的数据。具体的,当用户终端需要获取数据时,用户终端可以向服务器发送查询请求以查询发布或/和访问过该用户终端需要获取的数据且当前在线的用户的用户信息。服务器接收到用户终端发送的查询请求时,服务器可以根据该查询请求中携带的该用户终端需要获取的数据的标识信息查询发布或/和访问过相应数据的用户及相应用户的在线状态,并将这些用户中当前在线的用户的用户信息携带在查询响应中发送给用户终端。当用户终端获取到发布或/和访问过该用户终端需要获取的数据且当前在线的用户的用户信息时,该用户终端可以根据查询到的用户信息与对应用户所在的用户终端建立点对点连接,并从中获取需要获取的数据。具体的,第二获取模块25具体用于,根据第一获取模块24获取到的用户信息,与对应用户所在的用户终端建立点对点连接,并从对应用户所在的用户终端获取需要获取的数据。通过以上描述可以看出,本发明实施例中,用户终端通过获取发布或/和访问过该用户终端需要获取的数据且当前在线的用户的用户信息,并从对应用户所在的用户终端获取需要获取的数据,节省了服务器带宽。由于用户访问过的数据通常缓存在该用户所在的用户终端中,用户终端在一定条件下(如一定时长后)会清除缓存的数据,因此为了保证能够向其他用户终端提供数据下载服务,本发明实施例提供的用户终端还可以包括
请求处理模块26,用于当用户终端接收到用于获取数据的请求消息时,判断缓存模块21中是否存储有相应的数据,并当判断为是时,向发送请求消息的用户终端发送确认消息。当用户终端接收到确认消息时,第二获取模块25可以具体用于,与发送确认消息的用户终端建立点对点连接,并从发送确认消息的用户终端获取需要获取的数据。为了提高系统灵活性和对数据访问的可控性,用户还可以设置数据获取权限,SP允许用户指定具有特定特征的用户才可以获取该用户的数据,或者说只向这些具有特定特征的用户提供数据下载服务。
用于获取数据的请求消息时,根据用户设置的数据获取权限判断是否允许向发送请求消息的用户终端提供数据下载服务,并当判断为是时,向发送请求消息的用户终端发送确认消息。其中,数据获取权限可以是允许向好友用户提供数据下载服务。当用户终端接收到请求消息时,请求处理模块26判断发送请求消息的用户终端对应的用户是否为该用户终端对应的用户的好友用户,当判断为是时,向发送请求消息的用户终端发送确认消息。当用户终端接收到确认消息时,第二获取模块25可以具体用于,与发送确认消息的用户终端建立点对点连接,并从发送确认消息的用户终端获取需要获取的数据。基于相同的技术构思,本发明实施例还提供了一种用户终端,可以应用于上述数据下载的方法流程中。如图3所示,为本发明实施例提供的服务器的结构示意图,该服务器可以包括
接收模块31,用于接收用户终端发送的查询请求,其中携带有该用户终端需要获取的
数据的标识信息;
第一查询模块32,用于根据接收模块31接收到的查询请求中携带的需要获取的数据的标识信息,查询发布或/和访问过相应数据的用户的用户信息;
第二查询模块33,用于根据第一查询模块32查询到的用户信息查询相应用户的在线状态;
发送模块34,用于根据第二查询模块33的查询结果,向用户终端发送查询响应,其中携带有发布或/和访问过需要获取的数据且当前在线的用户的用户信息。其中,当第二查询模块33查询到的发布或/和访问过发送查询请求的用户终端需要获取的数据且当前在线的用户为多个时,发送模块34可以根据查询到的用户所在地理位置或/和所属运营商从这些用户中选择部分或全部用户,并将所选择的用户的用户信息发送给发送查询请求的用户终端。例如,服务器可以优先将与发送查询请求的用户终端处于同一城市的用户的用户信息发送给该用户终端,也可以优先将与发送查询请求的用户终端属于同一运营商(如电信、网通)的用户的用户信息发送给该用户终端,当然,服务器也可以以随机选择的方式选择将部分或全部用户的用户信息发送给该用户终端。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领 域的技术人员能思之的变化都应落入本发明的保护范围。
权利要求
1.ー种数据获取方法,其特征在于,包括 用户终端需要获取数据时,向服务器发送查询请求,其中携帯有需要获取的数据的标识ィ目息; 所述用户終端接收所述服务器发送的查询响应,其中携帯有所述服务器根据所述需要获取的数据的标识信息查询到的发布或/和访问过相应数据且当前在线的用户的用户信息; 所述用户终端获取所述查询响应中携帯的用户信息,井根据获取到的用户信息,从对应用户所在的用户终端获取所述需要获取的数据。
2.如权利要求I所述的方法,其特征在于,所述用户終端根据获取到的用户信息,从对应用户所在的用户终端获取所述需要获取的数据,具体为 所述用户終端根据获取到的用户信息,与对应用户所在的用户终端建立点对点连接; 所述用户終端通过建立的点对点连接,从所述对应用户所在的用户终端获取所述需要获取的数据。
3.如权利要求2所述的方法,其特征在于,所述用户終端与对应用户所在的用户终端建立点对点连接,具体为 所述用户終端向所述对应用户所在的用户终端发送请求消息,用以请求获取所述需要获取的数据; 所述对应用户所在的用户终端根据该用户设置的数据获取权限,判断是否允许向发送所述请求消息的用户终端提供数据下载服务,并在判断为是时,向发送所述请求消息的用户终端发送确认消息; 发送所述请求消息的用户终端接收到所述确认消息后,与发送该确认消息的用户终端建立点对点连接。
4.如权利要求3所述的方法,其特征在干,所述数据获取权限为允许为好友用户提供数据下载服务; 所述对应用户所在的用户终端根据该用户设置的数据获取权限,判断是否允许向发送所述请求消息的用户终端提供数据下载服务,具体为 所述对应用户所在的用户终端根据所述请求消息中携帯的用户信息,判断发送所述请求消息的用户终端对应的用户是否为该用户的好友用户,当判断为是时,允许向发送所述请求消息的用户终端提供数据下载服务;否则,不允许向发送所述请求消息的用户终端提供数据下载服务。
5.如权利要求2所述的方法,其特征在于,所述用户終端与对应用户所在的用户终端建立点对点连接,具体为 所述用户終端向所述对应用户所在的用户终端发送请求消息,用以请求获取所述需要获取的数据; 所述对应用户所在的用户终端判断是否缓存有所述需要获取的数据,并在判断为缓存有所述需要获取的数据时,向发送所述请求消息的用户终端发送确认消息; 发送所述请求消息的用户终端接收到所述确认消息后,与发送该确认消息的用户终端建立点对点连接。
6.一种用户終端,包括用于缓存用户发布或/和访问过的数据的缓存模块,其特征在于,还包括 发送模块,用于在用户终端需要获取数据时,向服务器发送查询请求,其中携帯有需要获取的数据的标识信息; 接收模块,用于接收所述服务器发送的查询响应,其中携帯有所述服务器根据所述需要获取的数据的标识信息查询到的发布或/和访问过相应数据且当前在线的用户的用户信息; 第一获取模块,用于获取所述接收模块接收到的查询响应中携帯的用户信息; 第二获取模块,用于根据所述第一获取模块获取到的用户信息,从对应用户所在的用户终端获取所述需要获取的数据。
7.权利要求6所述的用户终端,其特征在于,所述第二获取模块具体用于,根据获取到的用户信息,与对应用户所在的用户终端建立点对点连接,并从所述对应用户所在的用户终端获取所述需要获取的数据。
8.如权利要求7所述的用户终端,其特征在于,还包括 请求处理模块,用于当用户终端接收到其他用户终端发送的获取数据的请求消息吋,根据数据获取权限判断是否允许向发送所述请求消息的用户终端提供数据下载服务,并当判断为是吋,向发送所述请求消息的用户终端发送确认消息; 所述第二获取模块具体用于,当接收到其他用户终端发送的确认消息时,与发送所述确认消息的用户终端建立点对点连接,并从所述发送确认消息的用户终端获取需要获取的数据;发送所述确认消息的其他用户终端是在接收到所述第二获取模块所在用户终端发送的获取数据的请求后,根据数据获取权限判断允许提供数据下载服务时发送所述确认消息的。
9.如权利要求7所述的用户终端,其特征在于,所述数据获取权限为允许为好友用户提供数据下载服务; 所述请求处理模块具体用于,当用户终端接收到其他用户终端发送的获取数据的请求消息时,判断发送所述请求消息的用户终端对应的用户是否为该用户终端对应的用户的好友用户,当判断为是吋,向发送所述请求消息的用户终端发送确认消息。
10.如权利要求7所述的用户终端,其特征在于,还包括 请求处理模块,用于当用户终端接收到获取数据的请求消息时,判断所述缓存模块中是否存储有相应的数据,并当判断为是时,向发送所述请求消息的用户终端发送确认消息; 所述第二获取模块具体用于,当接收到其他用户终端发送的确认消息时,与发送所述确认消息的用户终端建立点对点连接,并从所述发送确认消息的用户终端获取需要获取的数据;发送所述确认消息的其他用户终端是在接收到所述第二获取模块所在用户终端发送的获取数据的请求后,判断自身缓存有相应数据时发送所述确认消息的。
11.一种服务器,其特征在于,包括 接收模块,用于接收用户终端发送的查询请求,其中携帯有所述用户終端需要获取的数据的标识信息; 第一查询模块,用于根据所述接收模块接收到的查询请求中携帯的所述需要获取的数据的标识信息,查询发布或/和访问过相应数据的用户的用户信息;第二查询模块,用于根据所述第一查询模块查询到的用户信息查询相应用户的在线状态; 发送模块,用于根据所述第二查询模块的查询结果,向所述用户終端发送查询响应,其中携帯有发布或/和访问过所述需要获取的数据且当前在线的用户的用户信息。
12.如权利要求11所述的服务器,其特征在于,当所述查询模块查询到的发布或/和访问过相应数据且当前在线的用户为多个时, 所述发送模块具体用于,根据所述第二查询模块查询到当前在线的用户所在地理位置或/和所属运营商从所述用户中选择部分或全部用户,并将所选择的用户的用户信息发送给所述用户终端。
全文摘要
本发明公开了一种数据获取方法和设备,该方法包括用户终端需要获取数据时,向服务器发送查询请求,其中携带有需要获取的数据的标识信息;所述用户终端接收所述服务器发送的查询响应,其中携带有所述服务器根据所述需要获取的数据的标识信息查询到的发布或/和访问过相应数据且当前在线的用户的用户信息;所述用户终端获取所述查询响应中携带的用户信息,并根据获取到的用户信息,从对应用户所在的用户终端获取所述需要获取的数据。采用本发明,可以节省服务器带宽。
文档编号H04L29/08GK102710535SQ20111007541
公开日2012年10月3日 申请日期2011年3月28日 优先权日2011年3月28日
发明者华有为 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1