买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】混合的客户端-服务器数据提供的方法_谷歌有限责任公司_201680016359.5 

申请/专利权人:谷歌有限责任公司

申请日:2016-03-17

公开(公告)日:2021-02-26

公开(公告)号:CN107409149B

主分类号:H04L29/08(20060101)

分类号:H04L29/08(20060101)

优先权:

专利状态码:有效-授权

法律状态:2021.02.26#授权;2018.05.18#著录事项变更;2017.12.22#实质审查的生效;2017.11.28#公开

摘要:用于混合的客户端‑服务器数据提供的方法的实施方式包括通过由客户端执行的应用从与应用集成的多个内容提供者软件开发套件SDK请求用于由客户端设备显示的内容项。该方法进一步包括通过所述内容提供者SDK的多个请求适配器处理对内容项的所述请求,以用于潜在地提交给多个内容提供者服务器,从而生成多个经处理的请求。该方法进一步包括通过与应用集成的调解SDK的拦截器模块从所述多个内容提供者SDK接收多个经处理的请求。该方法进一步包括通过调解SDK的整合器模块将所述多个经处理的请求批处理成批处理请求,该批处理请求包括内容提供者优先级信息。该方法进一步包括通过所述调解SDK基于内容提供者优先级信息向调解服务器传送所述批处理请求以用于到所述多个内容提供者服务器的所述批处理请求的调解;以及通过所述调解SDK从所述调解服务器接收由客户端设备显示的至少一个内容项。

主权项:1.一种用于混合的客户端-服务器数据提供的方法,包括:通过将对来自多个内容提供者服务器的内容项的请求发送到与由客户端设备执行的应用集成的多个内容提供者软件开发套件SDK,由所述应用发起所述请求;由所述内容提供者SDK的多个请求适配器基于所接收的对所述内容项的请求来生成多个经处理的请求,以用于潜在地提交给所述多个内容提供者服务器;由与所述应用集成的调解SDK的拦截器模块从所述多个内容提供者SDK接收多个经处理的请求;由所述调解SDK的整合器模块将所述多个经处理的请求批处理成批处理请求,所述批处理请求包括内容提供者优先级信息和与对来自调解服务器的响应的最大可接受时间相关的定时信息;由所述调解SDK基于所述内容提供者优先级信息向所述调解服务器传送所述批处理请求以用于到所述多个内容提供者服务器的所述批处理请求的调解;以及由所述调解SDK从所述调解服务器接收由所述调解服务器选择的单个内容项以用于由所述客户端设备显示,其中,从所述调解服务器接收的用于显示的所述单个内容项是所述调解服务器能够获得来用于基于所述内容提供者优先级信息显示的最高优先级内容项,并且所述调解服务器对所述批处理请求的调解包括根据至少部分地基于所述定时信息的超时时段实现所述调解服务器对所述批处理请求的调解。

全文数据:混合的客户端-服务器数据提供背景技术[0001]发布者可以从多个第三方内容提供者请求内容。这在运行应用的客户端设备上的计算资源方面可能是有问题的,举例来说,用于打开多个网络连接以传送多个请求的存储器。它还可能在延迟方面产生问题,特别是当网络是诸如36或犯网络的移动网络时。在发出多个请求和接收到客户端设备的响应之间可能会有显着的延迟或滞后。发明内容[0002]本文描述的实施方式涉及要请求的调解以提供数据。本申请中描述的方法可以,除其他事情外,通过使调解SDK对多个请求进行批处理作为在客户端设备上的一个批处理请求来有助改善多个内容请求所呈现的问题,并且向调解服务器传送仅单个批处理请求以便从第三方内容提供者中的至少一个获得内容。[0003]一个实施方式涉及用于混合的客户端-服务器数据提供的方法。在该实施方式中,该方法包括通过由客户端设备执行的应用从与应用集成的多个内容提供者软件开发套件SDK请求由所述客户端设备显示的内容项。该方法进一步包括通过所述内容提供者SDK的多个请求适配器处理对内容项的所述请求,以用于潜在地提交给多个内容提供者服务器,从而生成多个经处理的请求。该方法进一步包括通过与所述应用集成的调解SDK的拦截器模块从所述多个内容提供者SDK接收多个经处理的请求。该方法进一步包括通过调解SDK的整合器模块将所述多个经处理的请求批处理成批处理请求,所述批处理请求包括内容提供者优先级信息。该方法进一步包括通过所述调解SDK基于所述内容提供者优先级信息传送所述批处理请求以用于到所述多个内容提供者服务器的所述批处理请求的调解。该方法进一步包括通过所述调解SDK从所述调解服务器接收由所述客户端设备显示的至少一个内容项。[0004]在这些实施方式中的一些中,处理所述请求以用于潜在地提交给多个内容提供者服务器包括:包含用于所述多个内容提供者服务器中的一个内容提供者服务器的适当的头部信息。[0005]在这些实施方式中的一些中,所述内容提供者优先级信息包括内容提供者服务器的优先级排序。[0006]在这些实施方式中的一些中,所述内容提供者优先级信息由所述应用提供给所述调解SDK。[0007]在这些实施方式中的一些中,由所述调解SDK的分析引擎基于所述内容提供者优先级信息从所述至少一个内容项中选择由所述客户端设备显示的单个内容项。[0008]在这些实施方式中的一些中,从所述调解服务器接收的用于显示的所述至少一个内容项是从所述调解服务器接收的用于显示的唯一的内容项,基于调解服务器能够获得的所述内容提供者优先级信息,用于显示的所述至少一个内容项是用于显示的最高优先级内容项。[0009]在这些实施方式中的一些中,所述批处理请求还包括与用于来自调解服务器的响应的最大可接受时间有关的定时彳目息。[0010]在这些实施方式中的一些中,所述批处理请求的调解至少部分地基于所述定时信[0011]在这些实施方式中的一些中,所述拦截器模块拦截所述经处理的请求。[0012]在这些实施方式中的一些中,所述拦截器模块拦截所述经处理的请求包括所述内容提供者SDK使用所述调解SDK的回调接口。[0013]在这些实施方式中的一些中,所述拦截器模块拦截所述经处理的请求包括阻止所述内容提供者SDK对所述内容提供者服务器的调用。[0014]—个实施方式涉及一种用于混合的客户端-服务器数据提供的方法。在这个矣施方式中,该方法包括由调解服务器从调解软件开发套件SDK接收对用于由客户端设备显示的内容项的批处理请求,所述批处理请求己由所述调解SDK的整合器模块基于由所述客户端设备上的多个内容提供者SDK处理的对内容项的多个经处理的请求而生成,所述批处理请求包括内容提供者优先级信息。该方法进一步包括通过所述调解服务器的解构引擎处理所述批处理请求以生成多个特定于内容提供者的请求。通过所述调解服务器向多个内谷提供者服务器传送所述多个特定于内容提供者的请求。该方法进一步包括通过所述调解服务^从所述内容提供者服务器接收对所述特定于内容提供者的请求中的至少一个请求作出响应的至少一个内容项,并且将所述内容项存储在调解服务器的分析模块的内容存储中。该方法进一步包括通过所述调解服务器向所述调解SDK传送所选择的内容项。[00°15]在这些实施方式中的一些中,传送所选择的内容项发生在预定的超时时段之后。[0016]在这些实施方式中的一些中,所述批处理请求还包括定时信息。[0017]在这些实施方式中的一些中,所述传送所选择的内容项发生在所述分析模块基于所述定时信息建立的超时时段之后。[0018]在这些实施方式中的一些中,所述选择用于传送的至少一个存储的内容项包括选择用于传送的多个存储的内容项。[0019]在这些实施方式中的一些中,所述选择用于传送的至少一个存储的内容项是基于所述内容提供者优先级丨曰息。[0020]在这些实施方式中的一些中,该方法进一步包括通过所述调解SDK的拦截器模块拦截所述多个经处理的请求。[0021]在这些实施方式中的一些中,通过所述拦截器模块的所述拦截包括由内容提供者SDK使用所述调解SDK的回调接口。[0022]在这些实施方式中的一些中,通过所述拦截器模块的所述拦截包括阻止所述内容提供者SDK对所述内容提供者服务器的调用。附图说明id[0023]在附图和下面的描述中阐述了一个或多个实施方式的细节。从描述、附图和权利要求,本公开的其它特征、方面和优点将变得显而易见,其中:[0024]图1是描述可以用于混合的客户端-服务器数据提供的方法的实施方式中所使用的一般架构的概述;[0025]图2是用于混合的客户端-服务器数据提供的方法的实施方式中所使用的组件的详细视图;[0026]图3是用于混合的客户端-服务器数据提供的方法的实施方式中的那些组件之间的一些交互的详细视图;[0027]图4是用于混合的客户端-服务器数据提供的方法的另一实施方式中的那些组件之间的一些交互的详细视图;[0028]图5是描述调解服务器的分析模块的作决定过程的流程图。[0029]将认识到,为了说明的目的,一些或全部附图是示意图。提供附图是为了说明一个或多个实施例的目的,同时明确地理解,它们将不被用于限制权利要求的范围或含义。具体实施方式[0030]以下是与混合的客户端-服务器内容提供的方法有关的各种概念和混合的客户端-服务器内容提供的方法的实施方式的更详细的描述。上面介绍并在下面更详细讨论的各种概念可以以许多方式中的任何一种来实现,因为所描述的概念不限于任何特定的实施方式。主要为了说明的目的而提供具体实施方式和应用的示例。[0031]计算设备举例来说,客户端设备可以查看诸如网页、文档、应用等的资源。在一些实施方式中,计算设备可以经由互联网通过与对应于该资源的服务器诸如网页服务器)通信来访问资源。资源可以由单个服务器提供,或者可以由多个服务器提供。例如,在一些实施方式中,资源可以从多个服务器可用,并且计算设备可以从服务器中的两个或多个请求资源,其中资源由例如响应对资源的请求的多个服务器中的第一服务器提供给计算设备。附加或替选地,资源可以包括可由不同服务器提供的不同内容。例如,可以从第一服务器提供资源的第一方内容,并且可以由多个另外的服务器提供资源的附加第三方内容,使得可以从第一服务器提供资源的第一方内容,并且可以由另外的服务器中的一个或多个基于预定准则来提供资源的第三方内容。以这种方式从多个服务器提供内容允许例如基于预定准则诸如向计算设备最快提供内容来选择服务器以用于提供内容。[0032]来自多个服务器的内容的提供可附加用于向通过诸如移动应用的应用来查看或执行数据的计算设备举例来说,客户端设备提供内容。类似于查看诸如上述网页的资源,与应用相关联的内容可以从多个服务器可用,并且可以由计算设备从多个服务器请求所述内容,其中与应用相关联的内容基于预定准则由服务器中的一个来提供,或第一方内容可以由第一方内容提供者提供,并且附加的第三方提供的内容可以从多个第三方内容提供者请求,其中第三方提供的内容由第三方内容提供者基于预定准则提供。在一个实施方式中,响应于应用的使用,资源服务器和或客户端设备可以与诸如内容项选择系统的数据处理系统进行通信,以请求将要利用应用的用户界面和或其他方式呈现的内容项。内容项选择系统可以选择第三方内容项并提供数据以达到利用所述应用在客户端设备的显示器上呈现内容项的效果。[0033]在一些情况下,设备标识符可以与客户端设备相关联。设备标识符可以是与客户端设备相关联的随机数,以在对资源和或内容项的后续请求期间识别该设备。在一些情况下,设备标识符可被配置为存储和或使客户端设备传送与客户端设备有关的信息到内容项选择系统和或资源服务器举例来说,传感器数据的值、web浏览器类型、操作系统、历史资源请求、历史内容项请求等)。[0034]在这里讨论的系统收集关于用户的个人信息或者可以利用个人信息的情况下,可以向用户提供控制程序或特征是否收集用户信息的机会举例来说,关于用户社交网络的信息、社交动作或活动、专业、用户偏好或用户的当前位置),或者控制是否和或如何从内容服务器接收内容的机会。此外,某些数据可以在存储或使用之前以一种或多种方式处理,使得移除个人可识别信息。例如,可以对用户的身份进行处理,使得不能为用户确定个人身份信息,或者在获得位置信息诸如城市、邮政编码或州级)的情况下,可以将用户的地理位置概括,使得不能确定用户的特定位置。因此,用户可以控制如何由内容服务器收集关于用户的信息以及使用的信息。[0035]如前所述,计算设备举例来说,客户端设备)也可以用于查看或执行诸如移动应用的应用。应用可以包括作为来自第一方内容提供者的应用的主题的第一方内容,并且还可以包括附加的第三方提供的内容。在一个实施方式中,响应于应用的使用,资源服务器和或客户端设备可以与诸如内容项目选择系统的数据处理系统进行通信,以请求由应用的用户界面呈现的内容项和或其他方式。[0036]该请求可以是对多个第三方内容提供者的请求,目的是使至少一个或多个第三方内容提供者提供至少一个或多个内容项,至少一个或多个内容提供项可以在应用的用户界面上呈现给用户。这些请求可能需要在第三方内容提供者上派发之前进行处理。例如,请求可以是HTTPGET请求,并且请求可能需要例如适当的IP头部、查询参数的适当设置或其他要求,然后才能派发到第三方内容提供者上。可以使用与应用集成的SDK来应付此类处理。SDK可能但不必须由第三方内容提供者提供,以供应用开发人员使用。[0037]在一些情况下,如上所述,应用可以从多个第三方内容提供者请求内容,以便从满足预定准则的第三方内容提供者中的一个第三方内容提供者获取内容,例如能够最快地提供内容的第三方内容提供者。[0038]应当理解,可能需要通过例如从多个服务器请求内容的应用发出大量请求。这在运行应用的客户端设备上的计算资源方面可能是有问题的,举例来说,用于打开多个网络连接以传送多个请求的存储器。它还可能在时延方面产生问题,特别是当网络是移动网络,诸如3G或4G网络时。在发出多个请求和接收客户端设备的响应之间可能会有显着的延迟或滞后。本申请中描述的方法可以,除了其他之外,通过使调解SDK将多个请求批处理为客户端设备上的一个批处理请求来帮助改善至少这个问题,然后仅将单个批处理请求传送到调解服务器以便向客户端设备实例化内容提供。以这种方式,可以从多个内容源中的一个内容源向客户端设备提供内容,以便更有效地接收内容,同时避免与客户端设备上的计算资源相关的问题和上面讨论的时延。[0039]图1是描述可以在用于混合的客户端-服务器内容提供的方法的实施方式中使用的系统100的一般架构的概述。客户端设备102可以包括一个或多个设备,诸如计算机、膝上型计算机、桌面型计算机、智能电话、平板电脑、个人数字助理、用于电视机的机顶盒、智能电视或被配置为经由例如网络与其他设备通信的服务器设备。客户端设备可以包括一个或多个内容提供者SDK,诸如内容提供者SDK1和内容提供者SDKn,以及调解SDK,如下面更详细描述的。[0040]在一个实施方式中,系统100包括网络1〇8和网络11〇,网络1〇8和网络11〇可以包括局域网(LAN、广域网WAN、无线链路、内联网、互联网或其组合。系统1〇〇还包括调解服务器104和内容提供者服务器106,下面将更详细地描述。[0041]图2示出了可以在用于混合的客户端-服务器数据提供的方法的实施方式中使用的系统100中所使用的一些组件、设备和网络。[0042]系统100可以包括客户端设备1〇2。客户端设备102可以包括一个或多个设备,诸如计算机、膝上型计算机、桌面型计算机、智能电话、平板电脑、个人数字助理、电视机的机顶盒、智能电视或被配置为经由例如通信网络108与其他设备通信的服务器设备。该设备可以是包括数据处理器和存储器的任何形式的便携式电子设备。存储器可以存储当由处理器执行时使得处理器执行本文的一个或多个操作的机器指令。存储器还可以存储数据以使得在计算设备上呈现一个或多个资源、内容项等。处理器可以包括微处理器、专用集成电路ASIC、现场可编程门阵列FPGA等,或其组合。存储器可以包括但不限于电子、光学、磁性或能够向处理器提供程序指令的任何其他存储或传送设备。存储器可以包括软盘、光盘只读存储器CD-ROM、数字通用盘DVD、磁盘、存储器芯片、只读存储器ROM、随机存取存储器RAM、电可擦除可编程只读存储器EEPR0M、可擦除可编程只读存储器EPROM、闪存、光学介质或处理器可以从中读取指令的任何其他合适的存储器。该指令可以包括来自任何合适的计算机编程语言的代码,诸如但不限于ActionScript、C、C++、C#、HTML、Java、JavaScript、Perl、Python、VisualBasic和XML。[0043]客户端设备102可以执行软件应用206举例来说,web浏览器或其他应用),以通过网络108从其他计算设备检索内容。在某些情况下,在客户端设备110上运行的应用可以是举例来说,游戏、媒体播放器等。在一个实施方式中,客户端设备102可以执行在客户端设备的显示器上提供浏览器窗口的web浏览器应用。提供浏览器窗口的web浏览器应用可以通过从输入设备举例来说,指示设备、键盘、触摸屏、或另一个形式的输入设备接收诸如网址的统一资源定位符URL的输入来进行操作。作为响应,执行来自web浏览器应用的指令的客户端设备的一个或多个处理器200可以从连接到由URL地址举例来说,调解服务器104指代的网络1〇8的另一设备请求数据。然后,该另一个设备可以向客户端设备102提供网页数据和或其他数据,这导致客户端设备102的显示器204显示视觉标记。[0044]应用2〇6可以从诸如内容提供者108的多个内容提供者启动对内容项的请求。这可以包括对于由内容提供者1、2.....n提供的内容项的请求1、2.....n。如上所述,请求可能需要处理才能派发到内容提供者上。在一个实施方式中,请求被发送到多个内容提供者SDK诸如,内容提供者SDK1、内容提供者SDK2.....直到内容提供者SDKn中的每一个,内容提供者SDK中的每一个可以与应用集成。SDK可以包括一组软件开发工具,例如库、API和或硬件平台。内容提供者SDK1与内容提供者1相关联,使得能够至少处理对内容项的请求使得该请求可以派发到内容提供者1上。类似地,内容提供者SDKn与内容提供者n相关联使得至少能够处理对内容项的请求以使得该请求可以派发到内容提供者n上。该处理可以由内容提供者SDK的适配器来应付,举例来说,内容提供者SDK1的适配器丨。例如,适配器可以确保请求具有适当的头部以用于提交给特定内容提供者。[0045]在一个实施方式中,在如上所述地处理请求之后,内容提供者SDK不将经处理的请求传送到内容提供者。相反,在如上所述的处理请求之后,经处理的请求经由拦截器模块222由调解SDK216拦截。在一个实施方式中,拦截器模块222可以与内容提供者SDK集成,使得它提供定义良好的回调接口,并且替代内容提供者SDK启动与其相应的内容提供者服务器的联系,经处理的请求被传递到拦截器模块,举例来说,用于最终批处理。在实施方式中,可以在较低的网络级别上附加地或替换地实现拦截,使得来自内容提供者SDK的到内容提供者服务器的HTTP调用被阻止。例如,可能会使用分组检测过滤来阻止它们。调解SDK216可以包括一组软件开发工具,诸如库、API和或硬件平台。在实施方式中,调解SDK216包括存储器218,其包括内容优先级信息存储22〇。在一个实施方式中,调解SDK216还包括整合器模块224。调解可以与应用2〇6和或任何或所有内容提供者SDK1至n集成。[0046]内容提供者优先级信息存储可以,例如,存储诸如优先级排序的内容提供者优先级信息,或用于确定不同内容提供者提供内容的有效性的其他信息。例如,数据可以指示每个内容提供者的平均连接速度或时延,或数据指示所提供的内容的质量,诸如从每个内容提供者提供的内容的压缩率。[0047]在一个实施方式中,拦截器模块222可以经由例如应用中的代码以及各个内容提供者SDK1至n中的代码进行集成,使得内容提供者SDK将经处理的请求如上所述传送到拦截器模块222。在一个实施方式中,整合器模块224然后处理任何和所有经处理的请求并生成单个批处理请求。批处理请求包括调解服务器104重新构建由内容提供者SDK1至n所处理的经处理的请求所需的一些或所有信息。它还包括存储在内容提供者优先级信息存储220中的内容提供者优先级信息。[0048]在一个实施方式中,批处理请求经由调解SDK216的网络接口通过网络108发送到调解服务器104。网络108可以包括局域网(LAN、广域网WAN、无线链路、内联网、互联网或其组合。由于仅通过网络108传送单个请求的事实,当尝试调解对内容的多个请求时经常看到的时延问题被大大改善,因为调解SDK216的网络接口上的负载较少以及网络108上的负载较少。[0049]在一个实施方式中,批处理请求由调解服务器104的网络接口接收。调解服务器104可以包括诸如服务器的计算设备,其被配置为托管诸如网页或其他资源的资源举例来说,文章、评论主题、音乐、视频、图形、搜索结果、信息馈送等)。调解服务器1〇4可以是计算机服务器举例来说,文件传输协议FTP服务器、文件共享服务器、web服务器等或服务器的组合举例来说,数据中心、云计算平台等)。调解服务器104可以向客户端设备1〇2提供资源数据或其他内容举例来说,文本文档、PDF文件和其他形式的电子文档)。[0050]在一个实施方式中,批处理请求由存储在调解服务器的存储器228中的调解服务器104的解构引擎230处理。解构引擎被预配置为能够将由调解SDK216生成的批处理请求解构为与由内容提供者SDK1至n处理的经处理的请求相对应的多个经处理的请求。所述多个经处理的请求中的每一个适合于提交给内容提供者,如上所述。[0051]在一个实施方式中,调解服务器还具有存储在存储器2¾中的分析模块232。分析模块具有内容存储234、计数器236和内容提供者优先级信息存储2別,这将在下面讨论。[0052]调解服务器可以由网络接口通过网络110将经处理的请求传送到特定内容提供者服务器(网络110可以包括局域网(LAN、广域网(WAN、无线链路、内联网、互联网或其组合)。例如,对应于由内容提供者SDK1处理的请求的经处理的请求可以被传送到内容提供者服务器1。对应于由内容提供者SDK2处理的请求的经处理的请求可以被传送到内容提供者服务器2,并且以此类推,直至对应于由内容提供者SDKn处理的请求的经处理的请求可以被传送到内容提供者服务器n。以这种方式,对应于由在客户端设备102上的应用206做出的初始请求的请求可以适当地被处理并且派发到合适的内容提供者服务器上。[0053]内容提供者服务器,举例来说,如图2所示内容提供者服务器108,可以响应诸如上述请求的请求,并且通过网络110向调解服务器104传送内容项。然后可以将该内容项存储在内容存储234中。在一个实施方式中,调解服务器104的分析模块232处理所接收的内容项。分析模块具有存储的数据,允许其确定预期有多少响应。该数据可以由举例来说,解构引擎在处理批处理请求之后提供。由于调解服务器从内容提供者接收内容项,可以在接收到内容时将所述项传送到调解SDK216,使得内容可以被提供给客户端设备,其中在请求内容与提供内容给客户端设备之间的时间最小化。替选地,如上所述,内容可以存储在内容存储234中,并且可以为存储的每个内容项递增计数器236。如果调解服务器接收到,举例来说,来自内容提供者的不能或不愿意提供内容项的通知,则计数器236也可以递增。在一些实施方式中,分析模块232可以使用计数器236来确定,举例来说,何时考虑了所有预期响应。分析模块232然后可以传送或可以使调解服务器104传送或者可以使调解服务器的任何组件或模块经由网络108将所存储的内容项传送到调解SDK216。替换地或附加地,所存储的内容项可以被传送到客户端设备102,或客户端设备102的任何组件或模块。一旦传送到客户端设备、调解SDK216或应用206或客户端设备或客户端设备的任何组件或模块、其组合或其他方式,则可以确定要显示的内容项。该确定可以是基于内容提供者优先级信息。例如,可以选择由确定为最高质量内容的内容提供者提供的内容项。[0054]替代传送所有存储的内容项,分析模块232可以确定应当显示哪个单个内容项,并仅将那个内容项传送到,举例来说,调解SDK。该确定可以基于存储在内容提供者优先级信息存储238中的内容提供者优先级信息。例如,可以基于优先级信息来确定所提供的内容的质量,举例来说,基于由内容提供者提供的关于质量的历史数据,并且如果质量不满足预定准则,则分析模块可以在预定时间内等待附加数据。如果超过预定时间,则分析模块可以传送已经接收到的具有最高质量的内容。[0055]在一个实施方式中,分析模块232—旦将最高总体优先级内容项存储在内容存储234中,就动态地选择和传送该最高总体优先级内容项,而不用等待所有传送的请求以上述方式被考虑。这可以通过使分析模块基于内容提供者优先级信息来确定最高总体优先级内容提供者来实现。存储在内容存储234中的从该内容提供者接收的内容项被分析模块232标记为最高总体优先级内容项。在一个实施方式中,一旦该内容项被如此标记,其立即被传送到举例来说,调解SDK216,调解SDK216进而可以显示该内容项。这样就可以使分析模块232缩短提供最高优先级内容项的总体过程,因为不必等待接收和存储具有比最高总体优先级内容项的优先级低的内容项。[0056]在另一实施方式中,分析模块232使用超时时段来设置可以接收来自内容提供者的内容项的最大时间量。超时时段可以基于举例来说,与来自调解服务器104的响应的最大可接受时间有关的定时信息。调解SDK216所传送的批处理请求可以包括该定时信息。例如,当分析模块232向与由内容提供者SDKn处理的经处理的请求对应的内容提供者n传送第一经处理的请求时,分析模块232可以启动定时器。该定时器与由分析模块232基于定时信息确定的超时时段持续比较。替选地,超时时段可以对应于存储在调解服务器上的预定值。超时时段可以是任何时间量,但优选不超过一秒。[0057]在一个实施方式中,一旦定时器已经计数超过固定超时时段的时间量,分析模块232通过网络108将所存储的内容项传送到调解SDK216。分析模块还可以传送单个内容项,其被确定为以上述方式存储在内容存储234中的内容项中的最高优先级内容项。[0058]图3示出了用于混合的客户端-服务器数据提供的方法的实施方式中的系统1〇〇的组件之间的一些交互。在该图中,箭头通常表示对于在经处理的、未处理的、批处理的或其他状态下的内容项的请求。在一个实施方式中,两个请求源自应用2〇6,一个去往内容提供者SDK1,另一个去往内容提供者SDKn。适配器1和适配器n每个处理其分别接收到的请求并输出正确格式的经处理请求,以提交给内容提供者服务器,举例来说,由适配器1处理的经处理的请求具有用于提交给内容提供者1的适当的头部信息,并且由适配器n处理的经处理的请求具有用于提交给内容提供者n的适当的头部信息。[0059]在一个实施方式中,与应用或内容提供者SDK或两者集成的拦截器模块222接收这两个经处理的请求。整合器模块224将这些请求一起批处理为单个批处理请求,其包括内容提供者优先级信息,并且通过网络108将单个批处理请求(由单个箭头表示传送到调解服务器104。调解服务器104然后基于内容提供者优先级信息向两个内容提供者调解该批处理请求。调解服务器104然后通过网络108将单个最高优先级内容项传送回调解SDK216,并且调解SDK216可以显示或导致显示单个最高优先级内容项。[0060]图4示出了用于混合的客户端-服务器数据提供的方法的实施方式中的系统1〇〇的组件之间的一些其他交互。在一个实施方式中,调解服务器104通过网络108从调解SDK216接收由单个箭头所示的单个批处理请求。批处理请求由分析模块232的解构引擎230处理,其将内容优先级信息存储在内容优先级信息存储238中,并且通过网络110传送由两个箭头所描绘的两个请求,对应于由内容提供者SDK1处理的经处理的请求的一个请求去往内容提供者服务器1,以及对应于由内容提供者SDKn处理的经处理的请求的一个请求,去往内容提供者服务器n。内容提供者服务器返回存储在内容存储234中的两个内容项。然后,调解服务器的分析模块232从内容存储234中通过网络108选择并传送两个内容项到调解SDK216。调解SDK216可以基于内容提供者优先级信息显示或者使得显示出单个最高优先级内谷项。[0061]图5示出了描述分析模块232的传送决策处理的流程图。在一个实施方式中,分析模块232具有预定的超时时段。调解服务器104在400处请求来自多个内容提供者服务器的内容项。在402处,调解服务器等待超时基于预定的超时时段或新的响应,S卩,由内容提供者服务器或故障通知提供的内容项。如果发生超时,则在416处分析模块232确定在内容存储234中是否存在任何存储的内容项。如果不存在,则在418处调解服务器104通过网络108向调解SDK216传送失败响应。例如,调解服务器104可以向调解SDK216传送预定的失败信号来触发调解启动获得内容项过程的故障,举例来说,显示存储在客户端设备102上的预定内容项。[0062]如果在416处,分析模块232确定在内容存储234中存在至少一个存储的内容项,则在420处分析模块232基于内容提供者优先级信息确定并选择任何存储的内容项中的最高优先级内容项。在422处,所选择的内容然后由调解服务器104通过网络108传送到调解SDK216。[0063]回到402,如果来自内容提供者的新的响应由调解服务器104接收到,即由内容提供者服务器提供的新内容项或故障通知,则分析模块232确定响应是否为内容项或失败响应。如果响应是失败响应,则计数器236在410处递增,并且在412处,分析模块232基于由解构引擎23〇提供的预期响应信息的数目来确定是否所有预期响应都被考虑。如果不是,则返回到402等待。如果考虑到所有预期的响应,我们进行到420并按上述进行。[00M]返回到404,如果新的响应由分析模块232确定为内容项,则内容项被存储在内容存储2M中。在4〇8处,分析模块2:32确定其是否是最高总体优先级内容项,即其是否与由分析模块232从存储在内容提供者优先级信息存储238中的内容提供者优先级信息确定的最高优先级内容提供者相对应。如果是最高总体优先级内容项,则分析模块232在414处选择内容项,并且在422由调解服务器104通过网络108将所选择的内容项传送到调解SDK216。如果在408处,分析模块232确定内容项不是最高总体优先级内容项,则进行到410并如上所述继续进行。[0065]如上所述,当通过从多个服务器请求内容的应用传送大量内容请求时,可能会出现许多问题。例如,在运行应用的客户端设备上的计算资源可能存在问题,举例来说,用于打开多个网络连接以传送多个请求的存储器。对于运行应用以执行多个请求的调解并且对这些请求作出响应的客户端设备而言,也可以是计算资源密集的。例如,对于来执行分析以确定对内容请求的哪个响应最优于控制选择所提供内容的一方而言,其可以是计算资源密集的,举例来说,应用的开发者。这可能是特别困难的,如果开发者使得应用基于多个因素诸如例如内容的质量、为了填补闪现机会的时机而由第三方内容提供者提供的出价金额、或与第三方内容提供者的连接时延来做出该选择。尝试通过网络传送多个请求的应用也可能在时延方面出现问题,特别是当网络是移动网络,诸如3G或4G网络时。在发出多个请求和接收到执行应用的客户端设备的响应之间可能存在显着的延迟或滞后。本申请中讨论的混合的客户端-服务器数据提供的方法可以,除了其他问题,有助于改善这些问题,举例来说,通过使服务器应付多个内容请求的计算资源密集型调解,或者通过利用服务器对服务器的网络连接,以改善时延问题,或通过使用这些方法提供的任何其他优点。[0066]作为示例,这些方法的一个实施方式可以涉及在尝试显示新闻项的客户端设备上执行的新闻应用。新闻应用可以向新闻内容提供者做出多个请求以显示新闻项。例如,可以将请求传送到各种新闻内容提供者,诸如CNN、NBC新闻和F0X新闻。这些请求可以通过客户端设备上的内容提供者SDK发出,该内容提供者SDK与处理请求以用于传送到内容提供者服务器的应用集成。例如,与新闻应用集成的CNN新闻SDK可以处理旨在提交给提供新闻内容项的CNN新闻服务器的请求,与新闻应用集成的NBC新闻SDK可以处理旨在提交给提供新闻内容项等的NBC新闻服务器的请求。然后,经处理的请求可以被与应用和批处理集成的调解SDK拦截。然后,调解SDK可以将批处理请求传送到调解服务器。批处理请求可以包括内容提供者优先级信息。例如,批处理请求可以包括新闻提供者的“质量”评级,所述“质量”评级基于用户在过去已经点击其被提供的内容的频率来对新闻提供者服务器进行评级。批处理请求可以替选地或附加地包括基于其被提供的内容中的新闻提供者服务器的历史压缩效率的“压缩”信息。调解SDK可以在多个内容请求的调解中使用该内容提供者优先级信息。[0067]在一个实施方式中,相对于应用向新闻提供者服务器作出多个内容请求,批处理请求提供了显着优点,在于仅需要打开单个网络连接,从而保留客户端设备上的计算资源。此外,多个请求的调解和对这些请求的响应可以在调解服务器上完成,进一步保留客户端设备上的计算资源。调解服务器还可以利用服务器到服务器的网络连接来与内容提供者进行通信,这通常可以相对于客户端设备到服务器网络连接在时延和响应速度方面提供优势,特别是当通过诸如3G或4G的移动网络进行连接时。[0068]这些方法的另一实施方式可以涉及由应用请求的第三方内容来填充闪现机会。闪现机会可以是在设备上显示某些内容的机会。在某些实施方式中,第三方可以支付以使得其内容来填补闪现机会。在这种实施方式中,拍卖过程可以由应用直接举例来说,通过应用或间接地举例来说,通过在执行应用的操作系统上执行的程序、或者与应用通信的服务器、或以任何其他适当的方式来实现。在这样的拍卖中,可以从多个第三方内容提供者索取出价,并且可以基于拍卖人的准则选择一个出价。这样的准则可以基于例如与内容提供者的连接的预期时延、所提供的内容的预期质量、实际出价金额、预测点击率PCTR、预测转换率pCVR或拍卖人可能希望考虑的其他任何因素。[0069]在一些情况下,应用可以请求来自多个第三方内容提供者的内容来填充闪现机会,作为建立调解瀑布的过程的部分。调解瀑布是组织对内容项的请求的一种方式,其可帮助发布者或具有闪现机会的任何人最大化向内容提供者销售机会所赚取的金额。不同的内容提供者可能愿意为闪现机会支付不同的金额。在调解瀑布中,向内容提供者发出多个请求。启动调解瀑布的拍卖人可以优先考虑被估计为发送请求的内容提供者组中最高支付内容提供者的内容提供者。如果较高内容提供者不同意提供内容项来换取所请求的价格,则其他请求也被发送到其他内容提供者,其目的是接受那些内容提供者提供的内容项。通常但并非总是,被估计为第二高支付内容提供者的内容提供者被优先考虑,并且与该内容提供者不达成协议,则估计为第三高支付内容提供者的内容提供者被优先考虑,以此类推。[0070]在应用作出多个内容请求以旨在建立调解瀑布的实施方式中,相对于应用向内容提供者作出多个内容请求而言,批处理请求提供了显著优点,其在于只有单个网络连接需要被打开,从而保留客户端设备上的计算资源。此外,多个请求的调解和对这些请求的响应可以在调解服务器上完成,包括使得调解服务器执行拍卖,进一步保留客户端设备上的计算资源。调解服务器还可以利用服务器到服务器的网络连接来与内容提供者进行通信,这通常可以在客户端设备到服务器网络连接的时延和响应速度方面提供优势,特别是当通过诸如3G或4G的移动网络进行连接。[0071]虽然本说明书包含许多具体的实施方式细节,但是这些不应被解释为对所要求保护的范围的限制,而是被解释为对特定实施方式具体的特征的描述。在本说明书中描述的在分立实施方式的场境context中的某些特征也可以在单个实施方式中组合地实现。相反,在单个实施方式的场境中描述的各种特征也可以分立地或以任何合适的子组合在多个实施方式中实现。而且,尽管以上可以将特征描述为以某些组合的方式起作用,并且甚至最初要求如此保护,但要求保护的组合的一个或多个特征在某些情况下可以从组合中被排除,并且所要求保护的组合可以针对子组合或子组合的变化。[0072]类似地,虽然在附图中以特定顺序描绘操作,但是这不应被理解为要求以所示的特定顺序或按依次顺序执行这种操作,或者执行所有所示的操作以实现所期望的结果。在某些情况下,多任务和并行处理可以是有利的。而且,上述实施方式中的各种系统组件的分立不应被理解为在所有实施方式中需要这样的分立,并且应当理解,所描述的程序组件和系统通常可以集成在单个软件产品中或者被打包成多个软件产品体现在有形媒体上。对“或”的引用可以被解释为包容性,使得使用“或”描述的任何术语可以指示单个、多于一个和全部所描述的术语中的任何一个。[0073]因此,己经描述了主题的特定实施方式。其他实施方式在所附权利要求的范围内。在一些情况下,权利要求中所述的动作可以以不同的顺序执行,并且仍然实现期望的结果。此外,附图中所描绘的过程不一定需要所示的特定顺序或依次顺序来获得期望的结果。在某些实施方式中,多任务和并行处理可以是有利的。[0074]权利要求不应被限制于所描述的顺序或元件,除非另有说明。应当理解,在不脱离所附权利要求书的精神和范围的情况下,本领域普通技术人员可以对形式和细节进行各种改变。要求保护落入所附权利要求及其等同物的精神和范围内的所有实施方式。

权利要求:L一种用于混合的客户端-服务器数据提供的方法,包括:通过由客户端设备执行的应用从与所述应用集成的多个内容提供者软件开发套件SDK请求用于由所述客户端设备显示的内容项;通过所述内容提供者SDK的多个请求适配器处理对内容项的所述请求,以用于潜在地提交给多个内容提供者服务器,从而生成多个经处理的请求;通过与所述应用集成的调解SDK的拦截器模块从所述多个内容提供者SDK接收多个经处理的请求;通过所述调解SDK的整合器模块将所述多个经处理的请求批处理成批处理请求,所述批处理请求包括内容提供者优先级信息;通过所述调解SDK基于所述内容提供者优先级信息向调解服务器传送所述批处理请求以用于到所述多个内容提供者服务器的所述批处理请求的调解;以及通过所述调解SDK从所述调解服务器接收用于由所述客户端设备显示的至少一个内容项。2.根据权利要求1所述的方法,进一步包括:处理所述请求以用于潜在地提交给多个内容提供者服务器包括包含用于所述多个内容提供者服务器中的一个内容提供者服务器的适当的头部信息。3.根据权利要求1所述的方法,进一步包括:所述内容提供者优先级信息包括内容提供者服务器的优先级排序。4.根据权利要求1所述的方法,进一步包括:其中所述内容提供者优先级信息由所述应用提供给所述调解SDK。5.根据权利要求4所述的方法,进一步包括:由所述调解SDK的分析引擎基于所述内容提供者优先级信息从所述至少一个内容项中选择用于由所述客户端设备显示的单个内容项。6.根据权利要求1所述的方法,其中,从所述调解服务器接收的用于显示的所述至少一个内容项是从所述调解服务器接收的用于显示的唯一的内容项,基于所述调解服务器能够获得的所述内容提供者优先级信息,用于显示的所述至少一个内容项是用于显示的最高优先级内容项。7.根据权利要求1所述的方法,进一步包括:所述批处理请求进一步包括与用于来自所述调解服务器的响应的最大可接受时间有关的定时信息。8.根据权利要求7所述的方法,进一步包括:其中所述批处理请求的所述调解至少部分地基于所述定时信息。9.根据权利要求1所述的方法,其中,所述拦截器模块拦截所述经处理的请求。10.根据权利要求9所述的方法,其中,所述拦截器模块拦截所述经处理的请求包括所述内容提供者SDK使用所述调解SDK的回调接口。11.根据权利要求9所述的方法,其中,所述拦截器模块拦截所述经处理的请求包括阻止所述内容提供者SDK对所述内容提供者服务器的调用。12.—种用于混合的客户端-服务器数据提供的方法,包括:通过调解服务器从调解软件开发套件SDK接收对用于由客户端设备显示的内容项的批处理请求,所述批处理请求已由所述调解SDK的整合器模块基于对由所述客户端设备上的多个内容提供者SDK处理的内容项的多个经处理的请求而生成,所述批处理拍求®估円容提供者优先级信息;通过所述调解服务器的解构引擎处理所述批处理请求以生成多个特定于内容提供者的请求;通过所述调解服务器向多个内容提供者服务器传送所述多个特定于内容提供者的请求;、、通过所述调解服务器从所述内容提供者服务器接收对所述特定于内容提供者的请求中的至少一个特定于内容提供者的请求作出响应的至少一个内容项,并且将所述内容项存储在所述调解服务器的分析模块的内容存储中;通过所述调解服务器的所述分析模块选择至少一个存储的内容项以用于传送;以及由所述调解服务器向所述调解SDK传送所选择的内容项。13.根据权利要求12所述的方法,其中,传送所选择的内容项发生在预定的超时时段之后。14.根据权利要求12所述的方法,其中,所述批处理请求进一步包括定时信息。15.根据权利要求14所述的方法,其中,传送所选择的内容项发生在所述分析模块基于所述定时信息建立的超时时段之后。16.根据权利要求12所述的方法,其中,选择用于传送的至少一个存储的内容项包括选择多个存储的内容项以用于传送。17.根据权利要求12所述的方法,其中,选择至少一个存储的内容项以用于传送是基于所述内容提供者优先级信息。18.根据权利要求12所述的方法,进一步包括:通过所述调解SDK的拦截器模块拦截所述多个经处理的请求。19.根据权利要求18所述的方法,其中,所述拦截器模块的拦截包括由所述内容提供者SDK使用所述调解SDK的回调接口。20.根据权利要求18所述的方法,其中,所述拦截器模块的拦截包括阻止所述内容提供者SDK对所述内容提供者服务器的调用。

百度查询: 谷歌有限责任公司 混合的客户端-服务器数据提供的方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。

-相关技术