CN108604204B - 在网络环境中选择并分发在计算装置上执行的应用的记录 - Google Patents
在网络环境中选择并分发在计算装置上执行的应用的记录 Download PDFInfo
- Publication number
- CN108604204B CN108604204B CN201680040914.8A CN201680040914A CN108604204B CN 108604204 B CN108604204 B CN 108604204B CN 201680040914 A CN201680040914 A CN 201680040914A CN 108604204 B CN108604204 B CN 108604204B
- Authority
- CN
- China
- Prior art keywords
- application
- client device
- record
- interaction
- data processing
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3438—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3414—Workload generation, e.g. scripts, playback
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3447—Performance evaluation by modeling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/453—Help systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/86—Event-based monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Information Transfer Between Computers (AREA)
- Debugging And Monitoring (AREA)
Abstract
本文提供了用于自动生成应用的教程的系统和方法。服务器可以从第一客户端装置接收第一请求。所述服务器可以向所述第一客户端装置传输应用和记录器脚本以记录在所述第一客户端装置上运行的应用的执行。所述服务器可以接收所述应用的所述记录。所述服务器可以从第二客户端装置接收第二请求。所述服务器可以向所述第二客户端装置传输所述应用和交互测量脚本以生成与所述应用进行的交互的交互日志。所述服务器可以接收所述交互日志。所述服务器可以从第三客户端装置接收第三请求。所述服务器可以基于所述记录的性能度量来选择所述应用的所述记录。所述服务器可以向所述应用传输所述应用的所述选择的记录。
Description
背景技术
在计算机网络环境(诸如,互联网)中,客户端装置可以从服务器下载应用。在执行应用时,在客户端装置处的终端用户可以与客户端装置上显示的应用进行交互。
发明内容
许多终端用户可能发现难以操作和使用第一次安装的计算机程序。某些终端用户可能需要花费较长的时间寻找特定界面元素。其他终端用户可能由于缺乏知识或者意识而找不到计算机程序的特殊特征。在操作计算机程序时出现的这种困难可能引起终端用户的沮丧,导致在终端用户与计算机程序之间的人机交互(HCI)恶化,并且继而引起更高的功耗、网络带宽使用、和由于用户学习操作计算机程序以执行任务的方式的时间增加而引起的处理器时间。软件开发商或者发布商可以创建文本或者视频教程以指导终端用户使用和操作计算机程序来减轻这些问题中的一些问题的方式。然而,这些教程可能仍然缺乏有关与终端用户相关的计算机程序的具体细节,因为这种教程的创建者可能不知道终端用户从计算机程序中寻求什么的先验知识。此外,创建这种教程可能是耗时的,并且需要技术专业知识来理解计算机程序以针对特定计算机程序生成有效教程。在已经存在大量计算机程序而没有相关联的教程的情况下,为现有计算机程序创建教程可能会令人望而却步。因此,仍然存在与为计算机程序生成有效教程的技术挑战。
为了解决这些和其它技术挑战,本公开提供了自动生成用于指导终端用户使用计算机程序的方式的教程视频的系统和方法。总的来说,对于下载应用的前N个用户,服务器(例如,数据处理系统)可以发送附加脚本以记录这些前几个用户在相应客户端装置上操作应用的视频。然后,服务器可以将这些记录的视频中的一个视频发送至下载应用的下一用户。服务器可以接收在第一客户端装置上执行的应用的一个或者多个记录,并且将在第一客户端装置上执行的应用的记录提供为教程。为了识别性能最好的视频的子集,服务器可以记入该下一组用户与应用的用户交互。然后,可以检测与应用进行的交互,并且随后可以基于与应用进行的交互来修改应用的记录。基于从下一用户接收到的用户交互,服务器可以维护模型以计算记录的视频中的每一个视频的性能度量。随着服务器记入越来越多的用户交互,服务器还可以迭代地调整模型以重新计算性能度量。可以迭代地重复该过程,直到识别到性能最好的视频的子集。
在一些实施方式中,服务器可以从客户端装置接收下载应用的请求。服务器可以识别在各个客户端装置上运行的应用的记录的视频的数量。如果记录的视频的数量低于预定数量,则服务器可以传输应用以及视频记录脚本。可以将视频记录脚本配置为在用户允许的情况下在终端用户与应用进行交互时记录在客户端装置上运行的应用的视频。在预定义的时间段之后,可以将视频记录脚本配置为将应用的视频传输至服务器。服务器可以利用视频记录脚本来重复传输应用,并且可以累积记录的视频,直到记录的视频的数量大于或者等于预定数量。
在累积了若干记录的视频之后,当从另一客户端装置接收到下载应用的附加请求时,服务器可以识别其它客户端装置已经下载或者安装了应用的次数。下载的次数为空可以指示客户端装置与应用的首次终端用户相关联。然后,服务器可以对记录的视频进行选择,并且可以连同交互测量脚本一起将应用传输至客户端装置。可以将交互测量脚本配置为播放传输的记录的视频,该记录的视频显示了另一终端用户操作应用的方式。还可以将交互测量脚本配置为:在播放记录的视频之后,记入与在客户端装置处的应用进行的用户交互事件,并且将记入的用户交互事件传输回服务器。
通过使用记入的用户交互事件,服务器可以生成对应的记录的视频的性能度量。该性能度量可以指示记录的视频的信息量程度或者与该程度对应。服务器还可以维护对于记录的视频和用户交互事件中的每一个具有权重的模型(例如,人工神经网络)作为输入以计算记录的视频中的每一个视频的性能度量。随着服务器接收到更多记入的用户交互事件,服务器可以相应地调整模型以重新计算性能度量。模型的参数可以最终收敛,从而使得记录的视频的子集与最高性能度量相关联。
当服务器从另一组客户端装置的接收到进行下载的附加请求时,服务器可以基于来自模型的性能度量来选择记录的视频中的一个视频。然后,服务器可以将选择的记录的视频和应用传输至相应客户端装置。客户端装置可以播放选择的记录的视频以指导终端用户使用应用的方式。通过选择并且呈现应用的适当的视频,由此,本公开可以通过训练用户正确地使用和运行应用来减少应用的执行时间,从而节省客户端侧功耗、网络带宽、和计算机处理时间。此外,通过对记录的视频的选择进行优化,服务器可以丢弃低性能的视频,节省服务器侧存储空间,并且允许其它计算装置(例如,边缘缓存服务器、内容再分发系统等)对选择的视频进行缓存并且重新传输该视频,从而减少服务器带宽消耗。
在至少一个方面中,本公开涉及一种自动选择并且分发在终端用户计算装置上执行的应用的记录的方法。在具有一个或者多个处理器的数据处理系统上执行的应用可以从第一客户端装置接收下载应用的第一请求。响应于接收到第一请求,在数据处理系统上执行的记录聚合器可以确定应用的执行记录的数量低于阈值。响应于记录的数量低于阈值的确定,应用分发器可以向第一客户端装置传输应用和记录器脚本。记录器脚本的接收可以触发第一客户端装置记录在第一客户端装置上运行的应用的执行并且将记录传输至数据处理系统。记录聚合器可以从第一客户端装置接收在该第一客户端装置上执行的应用的记录。
在一些实施方式中,在从第一客户端装置接收到应用的记录之后,应用分发器可以从第二客户端装置接收下载应用的第二请求。在一些实施方式中,记录聚合器可以确定应用的执行记录的数量大于阈值。在一些实施方式中,响应于应用的执行记录的数量大于阈值,应用分发器可以向第二客户端装置传输在第一客户端装置上执行的应用的记录。
在一些实施方式中,将在第一客户端装置上执行的应用的记录传输至第二客户端装置可以包括:传输交互测量脚本。在一些实施方式中,接收到交互测量脚本触发第二客户端装置播放在第一客户端装置上执行的应用的记录。在一些实施方式中,交互测量脚本的接收可以触发第二客户端装置在播放记录之后,生成与在第二客户端装置上运行的应用进行的一个或者多个交互事件的交互日志。在一些实施方式中,交互测量脚本的接收可以触发第二客户端装置将生成的交互日志传输至数据处理系统。
在一些实施方式中,在数据处理系统上执行的视频选择器可以从第二客户端装置接收生成的交互日志。在一些实施方式中,视频选择器可以基于在生成的交互日志中识别到的一个或者多个交互事件来生成应用的记录的性能度量。
在一些实施方式中,应用分发器可以从第三客户端装置接收下载应用的第三请求。在一些实施方式中,响应于接收到下载应用的第三请求,视频选择器可以基于在第一客户端装置上执行的应用的记录的性能度量超过在第二客户端装置上运行的应用的记录的第二性能度量而选择在第一客户端装置上执行的应用的记录。在一些实施方式中,应用分发器可以向第三客户端装置传输应用和播放器脚本。在一些实施方式中,接收到播放器脚本可以触发第三客户端装置播放在第一客户端装置上执行的应用的记录。
在一些实施方式中,生成性能度量可以进一步包括:识别在多个客户端装置处针对应用的记录进行播放的次数。在一些实施方式中,生成性能度量可以进一步包括:确定针对应用的记录进行播放的次数高于第二阈值。在一些实施方式中,生成性能度量可以进一步包括:响应于确定针对应用的记录进行播放的次数高于第二阈值,基于在从第二客户端装置接收到的生成的交互日志中识别到的一个或者多个交互事件来计算性能度量。
在一些实施方式中,生成性能度量可以进一步包括:识别在从第二客户端装置接收到的生成的交互日志中识别到的一个或者多个交互事件中的每一个交互事件的事件类型。在一些实施方式中,生成性能度量可以进一步包括:基于一个或者多个交互事件中的每一个交互事件的事件类型来生成性能度量。
在一些实施方式中,生成性能度量可以进一步包括:维护用于应用在多个客户端装置上的多个执行记录的聚合性能模型。在一些实施方式中,生成性能度量可以进一步包括:响应于从第一客户端装置接收到记录,向用于应用在第一客户端装置上的执行记录的聚合性能模型中的权重分配初始值。在一些实施方式中,响应于从第二客户端装置接收到一个或者多个交互的生成的交互日志,在聚合性能模型中将权重从初始值调整到第二值。
在一些实施方式中,视频选择器可以基于性能度量和第二客户端装置与应用进行的一个或者多个交互事件来确定应用在第一客户端装置上的执行记录的开始时间和结束时间。在一些实施方式中,视频选择器可以基于开始时间和结束时间来设置应用在第一客户端装置上的执行记录的时间长度。在一些实施方式中,其中,将应用和播放器脚本传输至第三客户端装置可以进一步包括:传输具有被设置到开始时间和结束时间的时间长度的记录。
在一些实施方式中,响应于接收到下载应用的第一请求,应用分发器可以识别应用已经被第一客户端装置下载的次数。在一些实施方式中,应用分发器可以确定应用已经被第一客户端装置下载的次数等于零。在一些实施方式中,将记录器脚本传输至第一客户端装置可以进一步包括:响应于确定应用已经被第一客户端装置下载的次数等于零,将记录器脚本传输至第一客户端装置。
在一些实施方式中,将应用和记录器脚本传输至第一客户端装置可以进一步包括:将应用和记录器脚本传输至第一客户端装置。在一些实施方式中,记录器脚本的接收可以触发第一客户端装置记录与应用进行的一个或者多个第二交互。在一些实施方式中,交互测量脚本的接收可以触发第一客户端装置将一个或者多个第二交互传输至数据处理系统。在一些实施方式中,记录聚合器可以基于应用和与第一客户端装置上的应用进行的一个或者多个第二交互事件来生成记录。
在一些实施方式中,将应用和记录器脚本传输至第一客户端装置可以进一步包括:将应用和记录器脚本传输至第一客户端装置。在一些实施方式中,记录器脚本的接收可以触发第一客户端装置确定应用正在第一客户端装置上执行。在一些实施方式中,记录器脚本的接收可以触发第一客户端装置响应于确定应用正在第一客户端装置上执行而将应用的执行记录初始化。在一些实施方式中,记录器脚本的接收可以触发第一客户端装置在预定义的时间内记录在第一客户端装置上执行的应用的输出。
在一些实施方式中,将应用和记录器脚本传输至第一客户端装置可以进一步包括:将应用和记录器脚本传输至第一客户端装置。在一些实施方式中,记录器脚本的接收可以触发第一客户端装置监视与第一客户端装置上的应用进行的一个或者多个第二交互事件。在一些实施方式中,记录器脚本的接收可以触发第一客户端装置确定一个或者多个第二交互事件的数量超过预定事件数量。在一些实施方式中,记录器脚本的接收可以触发第一客户端装置响应于确定一个或者多个第二交互事件的数量超过预定事件数量,终止对在第一客户端装置上运行的应用的执行的记录。
在一些实施方式中,视频选择器可以识别在第一客户端装置上运行的应用的记录内的一个或者多个特征。在一些实施方式中,生成性能度量可以进一步包括:基于一个或者多个识别的特征来生成性能度量。
在另一方面中,本公开涉及一种用于自动选择并且分发在终端用户计算装置上执行的应用的记录的系统。该系统包括:应用分发器,该应用分发器在具有一个或者多个处理器的数据处理系统上执行。应用分发器可以从第一客户端装置接收下载应用的第一请求。该系统包括:记录聚合器,该记录聚合器在数据处理系统上执行。响应于接收到第一请求,记录聚合器可以确定应用的执行记录的数量低于阈值。响应于记录的数量低于阈值的确定,应用分发器可以向第一客户端装置传输应用和记录器脚本。记录器脚本的接收可以触发第一客户端装置记录在第一客户端装置上运行的应用的执行并且将记录传输至数据处理系统。记录聚合器可以从第一客户端装置接收在该第一客户端装置上执行的应用的记录。
在一些实施方式中,在从第一客户端装置接收到应用的记录之后,应用分发器可以从第二客户端装置接收下载应用的第二请求。在一些实施方式中,记录聚合器确定应用的执行记录的数量大于阈值。在一些实施方式中,响应于应用的执行记录的数量大于阈值,应用分发器可以向第二客户端装置传输在第一客户端装置上执行的应用的记录。
在一些实施方式中,应用分发器可以传输交互测量脚本。在一些实施方式中,交互测量脚本的接收可以触发第二客户端装置播放在第一客户端装置上执行的应用的记录。在一些实施方式中,交互测量脚本的接收可以触发第二客户端装置在播放记录之后,生成与在第二客户端装置上运行的应用进行的一个或者多个交互事件的交互日志。在一些实施方式中,交互测量脚本的接收可以触发第二客户端装置将生成的交互日志传输至数据处理系统。
在一些实施方式中,该系统可以进一步包括:视频选择器,该视频选择器在数据处理系统上执行。在一些实施方式中,视频选择器可以从第二客户端装置接收生成的交互日志。在一些实施方式中,视频选择器可以基于在生成的交互日志中识别到的一个或者多个交互事件来生成应用的记录的性能度量。
在一些实施方式中,应用分发器可以传输交互测量脚本。在一些实施方式中,交互测量脚本的接收可以触发第二客户端装置播放在第一客户端装置上执行的应用的记录。在一些实施方式中,交互测量脚本的接收可以触发第二客户端装置在播放记录之后生成与在第二客户端装置上运行的应用进行的一个或者多个交互事件的交互日志。在一些实施方式中,交互测量脚本的接收可以触发第二客户端装置将生成的交互日志传输至数据处理系统。
在一些实施方式中,该系统可以进一步包括:视频选择器,该视频选择器在数据处理系统上执行。在一些实施方式中,视频选择器可以从第二客户端装置接收生成的交互日志。在一些实施方式中,视频选择器可以基于在生成的交互日志中识别到的一个或者多个交互事件来生成应用的记录的性能度量。
在一些实施方式中,应用分发器可以从第三客户端装置接收下载应用的第三请求。在一些实施方式中,响应于接收到下载应用的第三请求,视频选择器可以基于在第一客户端装置上执行的应用的记录的性能度量超过在第二客户端装置上运行的应用的记录的第二性能度量来选择在第一客户端装置上执行的应用的记录。在一些实施方式中,应用分发器可以向第三客户端装置传输应用和播放器脚本。在一些实施方式中,接收到播放器脚本可以触发第三客户端装置播放在第一客户端装置上执行的应用的记录。
在一些实施方式中,视频选择器可以识别在多个客户端装置处针对应用的记录进行播放的次数。在一些实施方式中,视频选择器可以确定针对应用的记录进行播放的次数高于第二阈值。在一些实施方式中,响应于针对应用的记录进行播放的次数高于第二阈值的确定,视频选择器可以基于在从第二客户端装置接收到的生成的交互日志中识别到的一个或者多个交互事件来计算性能度量。
在一些实施方式中,视频选择器可以识别在从第二客户端装置接收到的生成的交互日志中识别到的一个或者多个交互事件中的每一个交互事件的事件类型。在一些实施方式中,视频选择器可以基于一个或者多个交互事件中的每一个交互事件的事件类型来生成性能度量。
在一些实施方式中,视频选择器可以维护用于应用在多个客户端装置上的多个执行记录的聚合性能模型。在一些实施方式中,响应于从第一客户端装置接收到记录,向用于应用在第一客户端装置上的执行记录的聚合性能模型中的权重分配初始值。在一些实施方式中,响应于从第二客户端装置接收到一个或者多个交互的生成的交互日志,视频选择器可以在聚合性能模型中将权重从初始值调整到第二值。
在一些实施方式中,视频选择器可以基于性能度量和第二客户端装置与应用进行的一个或者多个交互事件来确定应用在第一客户端装置上的执行记录的开始时间和结束时间。在一些实施方式中,视频选择器可以基于开始时间和结束时间来设置应用在第一客户端装置上的执行记录的时间长度。在一些实施方式中,应用分发器可以传输具有被设置到开始时间和结束时间的时间长度的记录。
在一些实施方式中,响应于接收到下载应用的第一请求,应用分发器可以识别应用已经被第一客户端装置下载的次数。在一些实施方式中,应用分发器可以确定应用已经被第一客户端装置下载的次数等于零。在一些实施方式中,响应于确定应用已经被第一客户端装置下载的次数等于零,应用分发器可以将记录器脚本传输至第一客户端装置。
在一些实施方式中,应用分发器可以将应用和记录器脚本传输至第一客户端装置。在一些实施方式中,记录器脚本的接收可以触发第一客户端装置记录与应用进行的一个或者多个第二交互事件。在一些实施方式中,记录器脚本的接收可以触发第一客户端装置将一个或者多个第二交互传输至数据处理系统。在一些实施方式中,记录聚合器可以基于应用和与第一客户端装置上的应用进行的一个或者多个第二交互事件来生成记录。
在一些实施方式中,应用分发器可以将应用和记录器脚本传输至第一客户端装置。在一些实施方式中,记录器脚本的接收可以触发第一客户端装置确定应用正在第一客户端装置上执行。在一些实施方式中,记录器脚本的接收可以触发第一客户端装置响应于确定应用正在第一客户端装置上执行而将应用的执行记录初始化。在一些实施方式中,记录器脚本的接收可以触发第一客户端装置在预定义的时间内记录在第一客户端装置上执行的应用的输出。
在一些实施方式中,应用分发器可以将应用和记录器脚本传输至第一客户端装置。在一些实施方式中,记录器脚本的接收可以触发第一客户端装置监视与第一客户端装置上的应用进行的一个或者多个第二交互事件。在一些实施方式中,接收到记录器脚本触发第一客户端装置确定一个或者多个第二交互事件的数量超过预定事件数量。在一些实施方式中,接收到记录器脚本触发第一客户端装置响应于确定一个或者多个第二交互事件的数量超过预定事件数量,终止对在第一客户端装置上运行的应用的执行的记录。
在一些实施方式中,视频选择器可以识别在第一客户端装置上运行的应用的记录内的一个或者多个特征。在一些实施方式中,视频选择器可以识别基于一个或者多个识别到的特征来生成性能度量。
在另一方面中,本公开涉及一种在数据处理系统处自动选择并且分发在终端用户装置上执行的应用的记录的方法。数据处理系统可以接收在第一客户端装置上执行的应用的至少一个记录。数据处理系统可以向第二客户端装置传输在第一客户端装置上执行的应用的至少一个记录。数据处理系统可以向第二客户端装置传输交互测量脚本。交互测量脚本的接收可以触发第二客户端装置播放在第一客户端装置上执行的应用的至少一个记录。交互测量脚本的接收可以触发第二客户端装置在播放至少一个记录之后,生成与在第二客户端装置上运行的应用进行的一个或者多个交互事件的交互日志。交互测量脚本的接收可以触发第二客户端装置将生成的交互日志传输至数据处理系统。数据处理系统可以接收生成的交互日志。数据处理系统可以基于生成的交互日志来修改在第一客户端装置上执行的应用的至少一个记录。
在一些实施方式中,在第一客户端装置上执行的应用的至少一个记录可以包括在相应第一客户端装置上执行的应用的多个记录。在一些实施方式中,传输在第一客户端装置上执行的应用的至少一个记录可以包括:选择多个记录中的记录。在一些实施方式中,修改在第一客户端装置上执行的应用的至少一个记录可以包括:选择多个记录中的记录。
在一些实施方式中,数据处理系统可以基于在生成的交互日志中识别到的一个或者多个交互事件来生成应用的至少一个记录的性能度量。在一些实施方式中,修改应用的至少一个记录可以基于性能度量。
在一些实施方式中,生成性能度量可以包括:识别在多个客户端装置处针对应用的记录进行播放的次数。在一些实施方式中,生成性能度量可以包括:确定针对应用的记录进行播放的次数高于阈值。在一些实施方式中,生成性能度量可以包括:响应于确定针对应用的记录进行播放的次数高于阈值,基于在从第二客户端装置接收到的生成的交互日志中识别到的一个或者多个交互事件来计算性能度量。
在一些实施方式中,生成性能度量可以包括:识别在从第二客户端装置接收到的生成的交互日志中识别到的一个或者多个交互事件中的每一个交互事件的事件类型。在一些实施方式中,生成性能度量可以包括:基于一个或者多个交互事件中的每一个交互事件的事件类型来生成性能度量。
在一些实施方式中,生成性能度量可以包括:维护用于应用在多个客户端装置上的多个执行记录的聚合性能模型。在一些实施方式中,响应于从第一客户端装置接收到记录,向用于应用在第一客户端装置上的执行记录的聚合性能模型中的权重分配初始值。在一些实施方式中,生成性能度量可以包括:响应于从第二客户端装置接收到一个或者多个交互的生成的交互日志,在聚合性能模型中将权重从初始值调整到第二值。
在一些实施方式中,数据处理系统可以基于性能度量和第二客户端装置与应用进行的一个或者多个交互事件来确定在第一客户端装置上执行的应用的记录的开始时间和结束时间。在一些实施方式中,数据处理系统可以基于开始时间和结束时间来修改应用的记录的时间长度。在一些实施方式中,数据处理系统可以识别在第一客户端装置上执行的应用的记录内的一个或者多个特征。在一些实施方式中,生成性能度量可以包括:基于一个或者多个识别到的特征来生成性能度量。在一些实施方式中,可以基于在第一客户端装置上执行的应用的至少一个进一步记录来修改在第一客户端装置上执行的应用的至少一个记录,至少一个进一步记录是基于生成的交互日志获得的。
在一些实施方式中,数据处理系统可以从第一客户端装置接收下载应用的第一请求。在一些实施方式中,响应于接收到第一请求,数据处理系统可以确定应用的执行记录的数量低于阈值。在一些实施方式中,响应于记录的数量低于阈值的确定,数据处理系统可以向第一客户端装置传输应用和记录器脚本。记录器脚本的接收可以触发第一客户端装置记录在第一客户端装置上运行的应用的执行并且将记录传输至数据处理系统。在一些实施方式中,数据处理系统可以从第一客户端装置接收在该第一客户端装置上执行的应用的记录。
在一些实施方式中,在从第一客户端装置接收到应用的记录之后,数据处理系统可以从第二客户端装置接收下载应用的第二请求。在一些实施方式中,数据处理系统可以确定应用的执行记录的数量大于阈值。在一些实施方式中,将在第一客户端装置上执行的应用的至少一个记录传输至第二客户端装置可以是响应于确定应用的执行记录的数量大于阈值。
在一些实施方式中,响应于接收到下载应用的第一请求,数据处理系统可以识别应用已经被第一客户端装置下载的次数。在一些实施方式中,数据处理系统可以确定应用已经被第一客户端装置下载的次数等于零。在一些实施方式中,将记录器脚本传输至第一客户端装置可以包括:响应于确定应用已经被第一客户端装置下载的次数等于零,将记录器脚本传输至第一客户端装置。
在一些实施方式中,将应用和记录器脚本传输至第一客户端装置可以包括:将应用和记录器脚本传输至第一客户端装置。记录器脚本的接收可以触发第一客户端装置记录与应用进行的一个或者多个第二交互事件并且将一个或者多个第二交互传输至数据处理系统。在一些实施方式中,数据处理系统可以基于应用和与第一客户端装置上的应用进行的一个或者多个第二交互事件来生成记录。
在一些实施方式中,数据处理系统可以将应用和记录器脚本传输至第一客户端装置可以包括:将应用和记录器脚本传输至第一客户端装置。在一些实施方式中,记录器脚本的接收可以触发第一客户端装置确定应用正在第一客户端装置上执行。在一些实施方式中,记录器脚本的接收可以触发第一客户端装置响应于确定应用正在第一客户端装置上执行而将应用的执行记录初始化。在一些实施方式中,记录器脚本的接收可以触发第一客户端装置在预定义的时间内记录在第一客户端装置上执行的应用的输出。
在一些实施方式中,将应用和记录器脚本传输至第一客户端装置可以包括:将应用和记录器脚本传输至第一客户端装置。在一些实施方式中,记录器脚本的接收可以触发第一客户端装置监视与第一客户端装置上的应用进行的一个或者多个第二交互事件。在一些实施方式中,记录器脚本的接收可以触发第一客户端装置确定一个或者多个第二交互事件的数量超过预定事件数量。在一些实施方式中,记录器脚本的接收可以触发第一客户端装置响应于确定一个或者多个第二交互事件的数量超过预定事件数量,终止对在第一客户端装置上运行的应用的执行的记录。
在另一方面中,本公开涉及一种在数据处理系统处自动选择并且分发在终端用户装置上执行的应用的记录的系统。数据处理系统可以接收在第一客户端装置上执行的应用的至少一个记录。数据处理系统可以向第二客户端装置传输在第一客户端装置上执行的应用的至少一个记录。数据处理系统可以向第二客户端装置传输交互测量脚本。交互测量脚本的接收可以触发第二客户端装置播放在第一客户端装置上执行的应用的至少一个记录。交互测量脚本的接收可以触发第二客户端装置在播放至少一个记录之后,生成与在第二客户端装置上运行的应用进行的一个或者多个交互事件的交互日志。交互测量脚本的接收可以触发第二客户端装置将生成的交互日志传输至数据处理系统。数据处理系统可以接收生成的交互日志。数据处理系统可以基于生成的交互日志来修改在第一客户端装置上执行的应用的至少一个记录。
在一些实施方式中,在第一客户端装置上执行的应用的至少一个记录可以包括在相应第一客户端装置上执行的应用的多个记录。在一些实施方式中,数据处理系统可以通过选择多个记录中的记录来传输在第一客户端装置上执行的应用的至少一个记录。在一些实施方式中,数据处理系统可以通过选择多个记录中的记录来修改在第一客户端装置上执行的应用的至少一个记录。
在一些实施方式中,数据处理系统可以基于在生成的交互日志中识别到的一个或者多个交互事件来生成应用的至少一个记录的性能度量。在一些实施方式中,数据处理系统可以基于性能度量来修改应用的至少一个记录。
在一些实施方式中,数据处理系统可以通过识别在多个客户端装置处针对应用的记录进行播放的次数来生成性能度量。在一些实施方式中,数据处理系统可以通过确定针对应用的记录进行播放的次数高于阈值来生成性能度量。在一些实施方式中,数据处理系统可以通过响应于针对应用的记录进行播放的次数高于阈值的确定,基于在从第二客户端装置接收到的生成的交互日志中识别到的一个或者多个交互事件计算性能度量来生成性能度量。
在一些实施方式中,数据处理系统可以通过识别在从第二客户端装置接收到的生成的交互日志中识别到的一个或者多个交互事件中的每一个交互事件的事件类型来生成性能度量。在一些实施方式中,数据处理系统可以通过基于一个或者多个交互事件中的每一个交互事件的事件类型生成性能度量来生成性能度量。
在一些实施方式中,数据处理系统可以通过维护用于应用在多个客户端装置上的多个执行记录的聚合性能模型来生成性能度量。在一些实施方式中,数据处理系统可以通过响应于从第一客户端装置接收到记录,向用于应用在第一客户端装置上的执行记录的聚合性能模型中的权重分配初始值来生成性能度量。在一些实施方式中,数据处理系统可以通过响应于从第二客户端装置接收到一个或者多个交互的生成的交互日志,在聚合性能模型中将权重从初始值调整到第二值来生成性能度量。
在一些实施方式中,数据处理系统可以基于性能度量和第二客户端装置与应用进行的一个或者多个交互事件来确定在第一客户端装置上执行的应用的记录的开始时间和结束时间。在一些实施方式中,数据处理系统可以基于开始时间和结束时间来修改应用的记录的时间长度。
在一些实施方式中,数据处理系统可以识别在第一客户端装置上执行的应用的记录内的一个或者多个特征。在一些实施方式中,数据处理系统可以基于一个或者多个识别到的特征来生成性能度量。在一些实施方式中,可以基于在第一客户端装置上执行的应用的至少一个进一步记录来修改在第一客户端装置上执行的应用的至少一个记录,至少一个进一步记录是基于生成的交互日志获得的。
在一些实施方式中,数据处理系统可以从第一客户端装置接收下载应用的第一请求。在一些实施方式中,响应于接收到第一请求,数据处理系统可以确定应用的执行记录的数量低于阈值。在一些实施方式中,响应于记录的数量低于阈值的确定,数据处理系统可以向第一客户端装置传输应用和记录器脚本。在一些实施方式中,记录器脚本的接收可以触发第一客户端装置记录在第一客户端装置上运行的应用的执行并且将记录传输至数据处理系统。在一些实施方式中,数据处理系统可以从第一客户端装置接收在该第一客户端装置上执行的应用的记录。
在一些实施方式中,在从第一客户端装置接收到应用的记录之后,数据处理系统可以从第二客户端装置接收下载应用的第二请求。在一些实施方式中,数据处理系统可以确定应用的执行记录的数量大于阈值。在一些实施方式中,响应于应用的执行记录的数量大于阈值的确定,数据处理系统可以将在第一客户端装置上执行的应用的至少一个记录传输至第二客户端装置。
在一些实施方式中,响应于接收到下载应用的第一请求,数据处理系统可以识别应用已经被第一客户端装置下载的次数。在一些实施方式中,数据处理系统可以确定应用已经被第一客户端装置下载的次数等于零。在一些实施方式中,响应于确定应用已经被第一客户端装置下载的次数等于零,数据处理系统可以将记录器脚本传输至第一客户端装置。
在一些实施方式中,数据处理系统可以将应用和记录器脚本传输至第一客户端装置。在一些实施方式中,记录器脚本的接收可以触发第一客户端装置记录与应用进行的一个或者多个第二交互事件并且将一个或者多个第二交互传输至数据处理系统。在一些实施方式中,数据处理系统可以基于应用和与第一客户端装置上的应用进行的一个或者多个第二交互事件来生成记录。
在一些实施方式中,数据处理系统可以将应用和记录器脚本传输至第一客户端装置。在一些实施方式中,记录器脚本的接收可以触发第一客户端装置确定应用正在第一客户端装置上执行。在一些实施方式中,记录器脚本的接收可以触发第一客户端装置响应于确定应用正在第一客户端装置上执行,将应用的执行记录初始化。在一些实施方式中,记录器脚本的接收可以触发第一客户端装置在预定义的时间内记录在第一客户端装置上执行的应用的输出。
在一些实施方式中,数据处理系统可以将应用和记录器脚本传输至第一客户端装置。在一些实施方式中,记录器脚本的接收可以触发第一客户端装置监视与第一客户端装置上的应用进行的一个或者多个第二交互事件。在一些实施方式中,记录器脚本的接收可以触发第一客户端装置确定一个或者多个第二交互事件的数量超过预定事件数量。在一些实施方式中,记录器脚本的接收可以触发第一客户端装置响应于确定一个或者多个第二交互事件的数量超过预定事件数量,终止对在第一客户端装置上运行的应用的执行的记录。
下面详细讨论这些和其它方面以及实施方式。前述信息和以下详细描述包括各个方面和实施方式的说明性示例,并且提供用于理解要求保护的方面和实施方式的性质和特性的概述或者框架。附图提供了对各个方面和实施方式的说明和进一步理解,并且被并入以及构成本说明书的一部分。
附图说明
不旨在按比例绘制附图。各个附图中的类似附图标记和标号指示类似的元件。为了清楚起见,可以并非在每个附图中标注每个组件。在附图中:
图1是描绘了根据说明性实施方式的选择并且分发在终端用户计算装置上执行的应用的教程视频的一种实施方式的图示;
图2是描绘了根据说明性实施方式的用于在计算机网络环境中自动选择并且分发在终端用户计算装置上执行的应用的记录的环境的一种实施方式的框图;
图3A至图3C是描绘了根据说明性实施方式的自动选择并且分发在终端用户计算装置上执行的应用的记录的方法的流程图;以及
图4是图示了根据说明性实施方式的可以采用以实施本文所描述和图示出的系统和方法的元件的计算机系统的一般架构的框图。
具体实施方式
下面是对涉及在计算机网络环境中自动选择并且分发在终端用户计算装置上执行的应用的记录的方法、设备、和系统以及该方法、设备、和系统的实施方式的各种概念的更详细的描述。可以按照多种方式中的任意一种来实施上面介绍的并且在下面更详细讨论的各种概念,因为所描述的概念不限于任何特定方式的实施方式。
许多终端用户可能发现难以操作和使用第一次安装的计算机程序。某些终端用户可能需要花费较长的时间寻找特定界面元素。其他终端用户可能由于缺乏知识或者意识而找不到计算机程序的特殊特征。在操作计算机程序时出现的这种困难可能引起终端用户的沮丧,导致在终端用户与计算机程序之间的人机交互(HCI)恶化,并且继而引起更高的功耗、网络带宽使用、和由于用户学习操作计算机程序以执行任务的方式的时间增加而引起的处理器时间。软件开发商或者发布商可以创建文本或者视频教程以指导终端用户使用和操作计算机程序来减轻这些问题中的一些问题的方式。然而,这些教程可能仍然缺乏有关与终端用户相关的计算机程序的具体细节,因为这种教程的创建者可能不知道终端用户从计算机程序中寻求什么的先验知识。此外,创建这种教程可能是耗时的,并且需要技术专业知识来理解计算机程序以针对特定计算机程序生成有效教程。在已经存在大量计算机程序而没有相关联的教程的情况下,为现有计算机程序创建教程可能会令人望而却步。因此,仍然存在与为计算机程序生成有效教程的技术挑战。
为了解决这些和其它技术挑战,本公开提供了自动生成用于指导终端用户使用计算机程序的方式的教程视频的系统和方法。现在参照图1,图1图示的是自动选择并且分发在终端用户计算装置上执行的应用的记录的实施方式。在该示例中,客户端装置的第一集合105A至105N(通常称为(多个)客户端装置105)可能已经向服务器传输了下载应用的请求。服务器继而可以确定不存在用于该应用的记录的教学视频,或者记录的视频的数量小于预设置的阈值。在执行了该确定之后,服务器可以传输应用以及附加脚本以记录正在客户端装置105A至105N上操作的应用的视频。在执行应用之后,附加脚本可以记录运行下载并且安装的应用的客户端装置105A至105N的视频110A至110N(通常被称为(多个)视频110、(多个)记录110、(多个)教程110、或者任何其它类似的名称)。客户端装置的第一集合105A至105N然后可以发送回记录的视频110A至110N用于进一步进行分发。
在已经累积了若干记录的视频之后,服务器然后可以开始传输视频以及附加脚本以在接收到下载应用的附加请求之后,测量客户端装置的第二集合105’A至105’N的交互率。客户端装置的第二集合105’A至105’N中的每一个可以既不执行应用,也不播放在请求之前的记录的视频中的任何视频。在相应客户端装置105’A至105’N播放在客户端装置的第一集合105A至105N中的一个上执行的应用的记录的视频110A至110N之后,客户端装置105’A至105’N可以执行应用,并且附带的脚本继而可以记入客户端装置105’A至105’N与应用本身进行的交互(例如,点击、滑动、滚动等)。一旦脚本完成记入交互,客户端装置105'A至105'N就可以将交互日志发送回服务器。
通过使用接收到的交互日志,服务器可以将记录的视频110A至110N中的一个视频识别为最高性能教学视频。服务器可以通过交互日志来确定各个相应记录的视频110A至110N的性能度量(例如,交互率115A至115N(通常被称为(多个)交互率115)、(多个)交互级别115、(多个)交互量115、(多个)应用进展115、或者任何其它类似的术语)。该性能度量可以指示记录的视频110A至110N的信息量程度或者与该程度对应。服务器还可以维护对于记录的视频110A至110N的每一个具有权重的模型,并且可以使用来自客户端装置的第二集合105’A至105’N的交互率作为参数来调整模型。随着服务器接收到越来越多记入的交互事件,服务器可以相应地调整模型以重新计算性能度量。模型的参数可以最终收敛,从而使得记录的视频的子集与最高性能度量相关联。在图1的示例中,源自客户端装置105C的记录的视频110C可以与具有最高交互率的视频对应。基于性能度量,服务器然后可以选择记录的视频110C作为应用的教学视频,并且从未来分发中取消选择或者去除其它记录的视频。
进而,服务器可以提供记录的视频110C以用于应用的所有未来下载。当既没有执行应用也没有播放记录的视频110A至110N中的任何视频的客户端装置的第三集合105”A-105”N传输下载应用的请求时,服务器可以传输应用以及选择的记录的视频110C。通过选择并且呈现应用的适当的视频,由此,本公开可以通过训练用户正确地使用和运行应用来减少应用的执行时间,从而节省功耗、网络带宽、和计算机处理时间。
图2是描绘了用于在计算机网络环境中自动选择并且分发在终端用户计算装置上执行的应用的记录的环境的一种实施方式的框图。环境200包括至少一个数据处理系统210。该数据处理系统210可以包括至少一个处理器和存储器,即,处理电路。存储器存储处理器可执行指令,该指令在由处理器执行时使处理器执行本文描述的操作中的一种或者多种操作。处理器可以包括:微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等,或者其组合。存储器可以包括但不限于:电子存储装置、光学存储装置、磁存储装置、或者能够向处理器提供程序指令的任何其它存储装置或者传输装置。存储器可以进一步包括:软盘、CD-ROM、DVD、磁盘、存储器芯片、ASIC、FPGA、只读存储器(ROM)、随机存取存储器(RAM)、电可擦除ROM(EEPROM)、可擦除可编程ROM(EPROM)、闪速存储器、光学介质、或者通过其处理器可以读取指令的任何其它合适的存储器。指令可以包括来自任何合适的计算机编程语言的代码。该数据处理系统可以包括可以执行各种函数的一个或者多个计算装置或者服务器。
网络205可以包括:计算机网络(诸如,互联网)、本地网络、广域网、城域网或者其它区域网络、内联网、卫星网络、其它计算机网络(诸如,语音或者数据移动电话通信网络)、和其组合。系统200的数据处理系统210可以经由网络105或者至少一个客户端装置105来进行通信。网络205可以是在客户端装置105、数据处理系统210、以及一个或者多个内容源(例如,网络服务器等)之间中继信息的任何形式的计算机网络。在一些实施方式中,网络205可以包括:互联网和/或其它类型的数据网络,诸如,局域网(LAN)、广域网(WAN)、蜂窝网络、卫星网络、或者其它类型的数据网络。网络205还可以包括配置为在网络205内接收和/或传输数据的任何数量的计算装置(例如,计算机、服务器、路由器、网络交换机等)。网络205可以进一步包括任何数量的硬连线连接和/或无线连接。在一些实施方式中,客户端装置105可以经由网络接口232或者经由硬连线(例如,经由光纤电缆、CAT5电缆等)至网络205中的其它计算装置来无线地(例如,经由WiFi、蜂窝、无线电等)进行通信。客户端装置105还可以通过使用网络接口232来与网络205的计算装置无线地进行通信。
客户端装置105可以包括配置为经由网络205来进行通信或者经由网络205显示数据(例如,应用或者视频)的计算装置。客户端装置105可以包括:台式计算机、膝上型计算机、平板计算机、智能电话、个人数字助理、移动装置、消费者计算装置、服务器、客户端、数字视频录像机、电视机的机顶盒、视频游戏机、或者配置为经由网络205来进行通信的任何其它计算装置。客户端装置105可以通过网络接口232经由网络205来与其它计算装置进行通信。
客户端装置105可以包括处理器230和存储器236(例如,处理电路)。存储器存储机器指令,该指令在由处理器执行时使处理器执行本文描述的操作中的一种或者多种操作。机器指令可以包括:例如,从数据处理系统210接收到的应用238、记录器脚本240、播放器脚本242、和交互测量系统244。处理器可以包括:微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等,或者其组合。存储器可以包括但不限于:电子存储装置、光学存储装置、磁存储装置、或者能够向处理器提供程序指令的任何其它存储装置或者传输装置。存储器可以进一步包括:软盘、CD-ROM、DVD、磁盘、存储器芯片、ASIC、FPGA、只读存储器(ROM)、随机存取存储器(RAM)、电可擦除ROM(EEPROM)、可擦除可编程ROM(EPROM)、闪速存储器、光学介质、或者通过其处理器可以读取指令的任何其它合适的存储器。指令可以包括来自任何合适的计算机编程语言的代码。
客户端装置105还可以包括一个或者多个输入/输出接口234。一般而言,输入/输出接口可以是指通过生成感觉信息(例如,显示器上的可视化、一种或者多种声音等)来向用户传送数据和/或将接收到的来自用户的感觉信息转换为电子信号的任何电子装置(例如,键盘、鼠标、指向装置、触摸屏显示器、麦克风等)。根据各种实施方式,一个或者多个输入/输出接口234可以在客户端装置105的外壳内部(例如,内置显示器、麦克风等),或者在客户端装置105的外壳外部(诸如,连接至客户端装置105的监视器、连接至客户端装置105的扬声器等)。在一些实施方式中,客户端装置105可以包括电子显示器,该电子显示器经由网络205来可视地显示来自数据处理系统210的应用和视频。
数据处理系统210可以包括至少一个服务器。例如,数据处理系统210可以包括位于至少一个数据中心或者服务器场中的多个服务器。数据处理系统210可以包括:至少一个应用分发器218、至少一个应用数据库220、至少一个记录聚合器222、至少一个记录的视频数据库224、至少一个视频选择器226、和至少一个交互日志数据库228。应用分发器218、记录聚合器222、和视频选择器226各自可以包括至少一个处理单元、服务器、虚拟服务器、电路系统、引擎、代理、设备、或者配置为经由网络205来与应用数据库220、记录的视频数据库224、和交互日志数据库228以及与其它计算装置(例如,客户端装置105)进行通信的其它逻辑装置(诸如,可编程逻辑阵列)。
应用分发器218、记录聚合器222、和视频选择器226可以包括或者执行至少一个计算机程序或者至少一个脚本。应用分发器218、记录聚合器222、和视频选择器226可以是单独的组件、单个组件、或者数据处理系统210的一部分。应用分发器218、记录聚合器222、和视频选择器226可以包括软件和硬件的组合,诸如,配置为执行存储在存储器214上的一个或者多个脚本的一个或多个处理器212。因此,在一些实施方式中,应用分发器218、记录聚合器222、和/或视频选择器226可以包括应用、服务、服务器、守护进程、例程、或者用于执行本文描述的功能的其它可执行逻辑。在一些实施方式中,数据处理系统210可以通过使用网络接口216经由网络205来与其它计算装置(例如,客户端装置105)进行通信。
数据处理系统210还可以包括一个或者多个内容储存库或者数据库(例如,应用数据库220、记录的视频数据库224、和交互日志数据库228)。数据库可以在数据处理系统210本地。在一些实施方式中,数据库可以远离数据处理系统210,但是可以经由网络205来与数据处理系统210进行通信。数据库可以包括应用、程序、软件、视频内容、视听内容等以服务于客户端装置105。下面将提供数据库的内容的附加细节。
在图1的上下文中,对于客户端装置的第一集合105A至105N,应用分发器218可以提供、分发或者传输应用238和记录器脚本240以记录在客户端装置105A至105N上执行的应用238。在一些实施方式中,应用分发器218可以从客户端装置105接收下载应用238的请求。客户端装置105可以是客户端装置的第一集合105A至105N的一部分,并且可能还没有下载、安装、或者执行应用238。应用238可以包括计算机程序、软件、可执行文件、或者任何格式的机器可执行格式以便在客户端装置105处执行。应用238可以是移动应用,诸如,文字处理器、企业软件、或者视频游戏等。应用238可以由第三方计算装置提供至数据处理系统210以便存储在应用数据库220处。在一些实施方式中,下载应用238的请求可以来自在客户端装置105上运行的程序,诸如,应用分发平台(例如,移动应用商店、软件目录等)。应用分发平台可以列出可从应用数据库220下载的应用。应用分发平台可以包括应用238作为列出的可供下载的应用中的一个应用。
响应于从客户端装置105接收到进行下载的请求,记录聚合器222可以确定应用238的执行的记录110的数量是否小于阈值。该阈值可以用于聚合或者累积在多个客户端装置105上执行的应用238的更多记录110。记录聚合器222可以从记录的视频数据库224中识别记录110的数量。记录的视频数据库224可以列出或者包括在客户端装置105的第一集合上执行的应用的记录110。在一些实施方式中,记录的视频数据库224可以维护用于对记录110的数量进行计数的计数器或者索引。在一些实施方式中,阈值可以是预定义的任意数字。在一些实施方式中,阈值可以由提供应用238的第三方计算装置进行预设置。
如果记录聚合器222确定应用238的执行的记录110的数量小于阈值,则应用程序分发器218可以经由网络205来将应用238和记录器脚本240传输至客户端装置105。在一些实施方式中,在进行传输之前,应用分发器218可以确定客户端装置105是否先前已经下载或者安装了应用238。在一些实施方式中,应用分发器218可以识别应用238已经被客户端装置105下载的次数。该次数可以由应用分发器218维护在应用数据库220中。如果应用分发器218确定次数等于零,则应用分发器218可以确定客户端装置105先前未下载或者安装应用238。响应于确定客户端装置105先前未下载或者安装应用238,应用分发器218可以将应用238和记录器脚本240传输至客户端装置105。在一些实施方式中,应用分发器218可以确定客户端装置105先前已经基于请求下载或者安装了应用238。在一些实施方式中,下载应用238的请求可以包括指定应用238是否已经被客户端装置105安装或者下载的指示符。客户端装置105的用户可能先前已经安装了应用238,但是过后从客户端装置105卸载了应用238。在一些实施方式中,基于请求的指示符,应用分发器218可以将应用238和记录器脚本240传输至客户端装置105。在一些实施方式中,在将记录器脚本240提供至客户端装置105之前,为了发送用于记录客户端装置105上的应用238的执行的记录器脚本240,应用分发器218可以向客户端装置105发送提示。
客户端装置105可以经由网络205从应用分发器218接收应用238和记录器脚本240。一旦接收到应用238和记录器脚本240,客户端装置105就可以将应用238和记录器脚本240存储或者安装到存储器236上。在一些实施方式中,接收到应用238和记录器脚本240可以使得或者触发客户端装置105执行在应用238或者记录器脚本240中指定的功能。客户端装置105可以通过使用处理器230来执行应用238。记录器脚本240可以确定应用238是否正在执行。在一些实施方式中,记录器脚本240可以监视客户端装置105的处理器230和存储器236以检测应用238的实例化。如果记录器脚本240确定应用238还未在客户端装置105上执行,则记录器脚本240可以继续监视客户端装置105上的应用238的实例化。
如果记录器脚本240确定应用238正在客户端装置105上执行,则记录器脚本240可以开始记录客户端装置105上的应用238的执行。在一些实施方式中,记录器脚本240可以记录在客户端装置105上执行的应用的输出。在一些实施方式中,记录器脚本240可以按照任何格式(例如,音频视频交织(.avi)、QuickTime(.mov)、MPEG(.mp4)、Ogg(.ogg)等)来将视频文件实例化或者写入视频文件。在一些实施方式中,虽然被称为“视频”,但是记录器脚本240可以记录交互的集合(例如,在时间00:01选择菜单1;在时间00:03选择菜单项a;在时间00:08在坐标100,200处点击;在时间00:12键入字符“abc”;等等)。这可以允许利用减少的带宽或者存储空间、更大的压缩等来记录交互。在一些实施方式中,这种记录可以由服务器在虚拟机或者沙盒应用中重新执行,并且捕获渲染了的输出的实际视频。在一些实施方式中,记录器脚本240可以在应用238正在客户端装置105上执行时继续在存储器236上写入视频文件。在一些实施方式中,记录器脚本240可以在应用238正在客户端装置105上执行时记录整个显示(例如,终端用户在客户端装置105的电子显示器上进行显示时将看到的)。在一些实施方式中,记录器脚本240可以识别在客户端装置105上执行的应用238的维度。在一些实施方式中,记录器脚本240可以将在客户端装置105上执行的应用238的记录110限制到应用238的识别到的维度。
在一些实施方式中,记录器脚本240可以在预定义的时间内记录在客户端装置105上执行的应用238的输出。在一些实施方式中,记录器脚本240可以维护用于记录客户端装置105上的应用238的执行的记录110的时间的定时器。在一些实施方式中,记录器脚本240可以将记录时间与预定义的时间或者最大时间帧相比较。最大时间帧可以与客户端装置105上的应用238的执行的记录110的最大时间对应。在一些实施方式中,可以基于在数据处理系统210处的存储量来对最大时间帧进行预定义。在一些实施方式中,最大时间帧可以由提供应用238的第三方计算装置进行预设置。如果记录时间大于或者等于最大时间帧,则记录器脚本240可以终止对客户端装置105上的应用238的执行的记录。如果记录时间小于最大时间帧,则记录器脚本240可以继续记录客户端装置105上的应用238的执行。
在一些实施方式中,记录器脚本240可以通过使用计数器来维护客户端装置105与应用238进行的交互的数量。记录器脚本240可以使用事件监听器或者事件处理器来监视与应用238进行的交互。该交互可以与有关应用238的用户交互事件对应。在一些实施方式中,记录器脚本240可以针对检测到的各个交互识别与应用238进行的交互的类型(例如,点击、滑动、滚动等)。在一些实施方式中,记录器脚本240可以确定识别到的交互类型是否是预定义的交互集合中的一种。如果交互的类型是预定义的交互集合中的一种,则记录器脚本240可以递增计数器。在一些实施方式中,记录器脚本240可以将交互的数量与最大交互数量相比较。如果记录器脚本240确定交互的数量大于或者等于最大交互数量,则记录器脚本240可以终止对在客户端装置105上执行的应用238的记录110。如果记录器脚本240确定交互的数量小于最大交互数量,则记录器脚本240可以继续记录在客户端装置105上执行的应用238。
在一些实施方式中,记录器脚本240可以维护客户端装置105与应用238的交互日志。该交互日志可以包括交互的类型、交互的时间、和交互的坐标。记录器脚本240可以将在客户端装置105上的显示器上的像素方位(例如,340,125)处发生的屏幕敲击事件记录到交互日志中。在一些实施方式中,记录器脚本240可以确定应用238是否正在客户端装置105上执行。在一些实施方式中,响应于确定应用238正在执行,记录器脚本240可以发起或者开始记录交互日志。在一些实施方式中,对交互日志的维护可以持续预定义的时间段。在些实施方式中,记录器脚本240可以经由网络接口232和网络205来将客户端装置105与应用238的交互日志传输至记录聚合器222。
一旦终止了对在客户端装置105上执行的应用238的记录,记录器脚本240就可以经由网络接口232和网络205将记录110(例如,视频110A至110N)传输至记录聚合器222。在客户端装置105传输应用238和该应用238的记录110之后,记录聚合器222可以将接收到的记录110保存或者存储到记录的视频数据库224上。记录聚合器222可以为记录的视频数据库224中的接收到的记录110分配记录标识符。记录聚合器222可以利用应用标识符将记录110分配或关联于对应的应用238。在一些实施方式中,响应于接收到在客户端装置105上执行的应用238的记录,记录聚合器222可以使用于记录110A至110N的计数器增量。
在一些实施方式中,如果记录聚合器222接收到客户端装置105与应用238的交互日志(没有记录),则记录聚合器222可以通过交互日志来生成在客户端装置105上执行的应用238的记录110。在一些实施方式中,记录聚合器222可以访问应用238的图像(例如,皮肤或者屏幕截图)。在一些实施方式中,记录聚合器222可以针对在交互日志中记录的各个交互识别交互的类型、交互的时间、和交互的坐标。在一些实施方式中,记录聚合器222可以为各个交互生成对应的图像(例如,鼠标图标)。在一些实施方式中,记录聚合器222可以逐帧地将对应的图像覆盖在针对交互日志中记录的各个交互的应用238的图像上,以生成在客户端装置105上执行的应用238的记录110。
视频选择器226可以在记录的视频数据库224中生成各个接收到的用于应用238的记录110的性能度量。在一些实施方式中,视频选择器226可以将各个接收到的记录110的性能度量设置为初始值。该初始值可以与默认起始值对应,以便基于后续数据被调整。性能度量稍后可以用于选择在客户端装置105上执行的应用238的记录110中的一个或者多个记录。性能度量稍后可以用于选择在客户端装置105上执行的应用238的记录110中的一个或者多个记录。性能度量可以是交互率、记录110在另一客户端装置105上播放的持续时间、转换率等,或者其任何组合。在一些实施方式中,性能度量可以是与计算机程序本身相关联的度量,诸如,获得的级别、利用的特征的数量、获得的预定成就的数量、或者任何其它这种识别。在一些实施方式中,视频选择器226可以将接收到的记录110的性能度量存储在记录的视频数据库224处。
在一些实施方式中,视频选择器226可以为一个或者多个客户端装置105上的应用238的接收到的执行的记录110维护聚合性能模型。视频选择器226稍后可以使用聚合性能模型来选择要分发给其它客户端装置105的应用238的记录110中的一个或者多个记录。聚合性能模型可以用于机器学习的任何模型,诸如,人工神经网络(ANN)、支持向量机(SVM)、深层结构学习模型、无监督学习模型、或者监督学习模型等。在一些实施方式中,在聚合性能模型中,视频选择器226可以向在记录视频数据库224中的应用238的各个记录110的权重分配初始值。对于应用238的各个记录110,初始值可以相等。如果存在应用238的N个记录110并且使用的聚合性能模型是人工神经网络,则视频选择器226可以为各个记录最初分配1/N作为初始权重。在一些实施方式中,视频选择器226可以将用于接收到的记录110的聚合性能模型存储在记录的视频数据库224处。
在一些实施方式中,针对用于在客户端装置105上执行的应用238的接收到的记录110的聚合性能模型设置的初始值可以基于从记录中识别到的一个或者多个特征。在一些实施方式中,针对用于在客户端装置105上执行的应用238的接收到的记录110的性能度量设置的初始值可以基于从记录中识别到的一个或者多个特征。在一些实施方式中,视频选择器226可以使用图像识别算法来识别在客户端装置105上执行的应用238的记录110内的一个或者多个特征。图像识别算法可以包括:例如,边缘检测算法、角部检测算法、斑点检测算法、场景切换算法、或者用于识别在客户端装置上执行的应用238的记录110内的对象的任何其它机器学习技术。在一些实施方式中,视频选择器226可以基于从相应记录中识别到的特征的数量或者特征的类型来设置针对记录110设置的初始值。如果视频选择器226在进行记录期间检测到某个时间存在场景切换,则视频选择器226可以分配比记录110高的初始得分而不会发生场景切换。在一些实施方式中,可以通过使用乘法因子来调整基于特征的数量或者特征的类型设置的初始值。在记录中识别到的特征的数量越高,由视频选择器226用来设置客户端装置105上执行的应用238的记录110的性能度量的初始值的乘法因子越高。
随后,对于客户端装置的第二集合105’,应用分发器218可以提供、分发、或者传输应用238和交互测量脚本242,以在播放记录110中的一个记录之后,记入客户端装置105’与应用238进行的交互。如果应用分发器218确定应用238的执行的记录110的数量大于或者等于阈值,则记录聚合器222可以确定针对应用238的执行的记录110进行播放的次数是否少于阈值播放次数。阈值播放次数可以表示用于在多个客户端装置105上采集交互数据以确定记录110中的任何一个记录是否有效地指导用户使用应用238的方式的最小样本数量。在存储了应用238的执行的记录110之后,记录聚合器222可以在应用238的执行的所有记录110中维护用于在多个客户端装置105处的播放次数的计数器。每当记录110中的任何一个记录被另一客户端装置105播放时,记录聚合器222可以递增用于播放次数的计数器。
如果记录聚合器222确定针对应用238的执行的记录110进行播放的次数小于阈值次数,则视频选择器226可以从记录的视频数据库224中选择记录110中的一个记录。在一些实施方式中,如果记录聚合器222确定针对应用238的执行的记录110进行播放的次数小于阈值次数,则视频选择器226可以通过使用伪号码生成器来从记录的视频数据库224中随机选择记录110中的一个记录。伪号码生成器可以允许视频选择器226通过使用聚合性能模型来避免对记录110进行局部最优选择,而不是对记录110进行全局最优选择。
在一些实施方式中,视频选择器226可以基于相应记录的性能度量来从记录的视频数据库224中的多个记录110中选择记录110。在一些实施方式中,视频选择器226可以使用聚合性能模型来计算记录110中的各个记录的性能度量。在一些实施方式中,在选择记录时,应用分发器218可以按照由伪号码生成器生成的随机权重来设置或者调整性能度量。在一些实施方式中,视频选择器226可以通过相应性能度量来对记录的视频数据库224中的记录110进行排名。在一些实施方式中,视频选择器226可以选择与最高排名性能度量对应的记录110。在一些实施方式中,视频选择器226可以从具有最高N个排名性能度量的记录110的子集中随机选择记录110。
响应于从记录的视频数据库224中选择记录110中的一个记录,应用分发器218可以经由网络205将应用238、选择的记录、和交互测量脚本242传输至客户端装置105。在一些实施方式中,在接收到在第一客户端装置105上执行的应用238的记录110之后,应用分发器218可以从另一客户端装置105接收下载应用238的请求。交互测量脚本242可以用于记入在客户端装置105上在应用238处的交互,以允许视频选择器226在指导终端用户如何操作应用238时选择最优视频。
在一些实施方式中,在传输交互测量脚本242和记录之前,应用分发器218可以确定客户端装置105是否先前已经下载或者安装了应用238。在一些实施方式中,应用分发器218可以识别应用238已经被客户端装置105下载的次数。该次数可以由应用分发器218维护在应用数据库220中。如果应用分发器218确定次数等于零,应用分发器218可以确定客户端装置105先前未下载或者安装应用238。响应于确定客户端装置105先前未下载或者安装应用238,应用分发器218可以将应用238和交互测量脚本242传输至客户端装置105。在一些实施方式中,应用分发器218可以确定客户端装置105先前已经基于请求下载或者安装了应用238。在一些实施方式中,下载应用238的请求可以包括指定应用238是否已经被客户端装置105安装或者下载的指示符。客户端装置105的用户可能先前已经安装了应用238,但是之后从客户端装置105卸载了应用238。在一些实施方式中,基于指定客户端装置105还未安装应用238的请求的指示符,应用分发器218可以将应用238、选择的记录、和交互测量脚本242传输至客户端装置105。在一些实施方式中,在将交互测量脚本240提供至客户端装置105之前,为了允许发送用于记录客户端装置105与应用238进行的交互的交互测量脚本240,应用分发器218可以向客户端装置105发送提示。
客户端装置105可以经由网络205从应用分发器218接收应用238、选择的记录、和交互测量脚本242。在一些实施方式中,客户端装置105还可以接收与选择的记录对应的记录标识符。一旦接收到应用238和交互测量脚本242,客户端装置105就可以将应用238和交互测量脚本242存储或者安装到存储器236上。在一些实施方式中,接收到应用238和交互测量脚本242可以使得或者触发客户端装置105执行在应用238或者交互测量脚本242中指定的功能。客户端装置105可以播放在另一客户端装置105上执行的程序238的选择的记录110。在播放记录之后,客户端装置105可以通过使用处理器230来执行应用238。交互测量脚本242可以确定应用238是否正在执行。在一些实施方式中,交互测量脚本242可以监视客户端装置105的处理器230和存储器236以检测应用238的实例化。如果交互测量脚本242确定应用238还未在客户端装置上执行,则交互测量脚本242可以继续监视客户端装置105上的应用238的实例化持续预定时间段。
如果交互测量脚本242确定应用238正在客户端装置105上执行,则交互测量脚本242可以开始记入或者记录与在客户端装置105上执行的应用238进行的一个或者多个交互。在播放记录之后,交互测量脚本242可以生成交互日志。交互测量脚本242可以在客户端装置105的存储器236上实例化、创建或者生成记录交互的交互日志文件。交互测量脚本242可以在应用正在客户端装置105上执行时监视事件监听器或者事件处理器的触发(例如,滚动、敲击、点击、滑动、按键等)。在一些实施方式中,交互测量脚本242可以识别交互的类型、交互的坐标、和交互的时间。每当检测到事件监听器或者事件处理器的触发时,交互测量脚本242可以将日志文件写入存储器236中。在一些实施方式中,交互测量脚本242可以写入识别到的交互的类型、交互的坐标、和交互的时间。在一些实施方式中,当对应的事件监听器或者事件处理被触发时,交互测量脚本242可以传输客户端装置105与应用238进行的识别到的交互的类型、交互的坐标、和交互的时间。
在一些实施方式中,交互测量脚本242可以在预定义的时间内记录与在客户端装置105上执行的应用238进行的交互。在一些实施方式中,交互测量脚本242可以维护用于客户端装置105与应用238进行的交互的记录110的记录时间的计时器。在一些实施方式中,交互测量脚本242可以将记录时间与预定义的时间或者最大时间帧相比较。最大时间帧可以与客户端装置105与应用238进行的交互的记录110的最大时间对应。在一些实施方式中,可以基于在数据处理系统210处的存储量来对最大时间帧进行预定义。在一些实施方式中,最大时间帧可以由提供应用238的第三方计算装置进行预设置。如果记录时间大于或者等于最大时间帧,则交互测量脚本242可以终止对客户端装置105与应用238进行的交互的记录。如果记录时间小于最大时间帧,则交互测量脚本242可以继续记录客户端装置105与应用242进行的交互。
在一些实施方式中,交互测量脚本242可以通过使用计数器来维护客户端装置105与应用238进行的交互的数量。在一些实施方式中,交互测量脚本242可以确定识别到的交互类型是否是预定义的交互集合中的一种。交互测量脚本242可以记录点击和按键,但是从交互日志中排除滑动和滚动。如果交互的类型是预定义的交互集合中的一种,则交互测量脚本242可以递增计数器。在一些实施方式中,交互测量脚本242可以将交互的数量与最大交互数量相比较。如果交互测量脚本242确定交互的数量大于或者等于最大交互数量,则交互测量脚本242可以终止对客户端装置105与应用238进行的交互的记录。如果交互测量脚本242确定交互数量小于最大交互数量,则交互测量脚本242可以继续记录客户端装置105与应用238进行的交互。
交互测量脚本242可以确定客户端装置105上的应用238的执行是否被终止。在终止应用238或者以上详述的任何其它条件之后,交互测量脚本242可以将交互日志传输至视频选择器226。在一些实施方式中,响应于接收到来自视频选择器226的请求,交互测量脚本242可以将交互日志传输至视频选择器226。在一些实施方式中,交互测量脚本242可以将与在客户端装置105处播放的记录110对应的交互日志和记录标识符传输至视频选择器226。
如果交互测量脚本242确定应用238在预定义的时间段内未在客户端装置105上执行,则交互测量脚本242可以将交互日志设置为空,指示缺少客户端装置105与应用238进行的交互。交互测量脚本242可以经由网络接口232将设置为空的交互日志传输至视频选择器226。在一些实施方式中,交互测量脚本242可以传输指定缺少客户端装置与应用238进行的交互的指示符。交互测量脚本242可以利用标识符或者设置为空的交互日志来向视频选择器226传输与在客户端装置105处播放的记录110对应的记录标识符。
视频选择器226可以在播放记录之后从客户端装置105接收记录客户端装置105与应用238进行的交互的交互日志。在从客户端装置105接收到交互日志之后,视频选择器226可以将交互日志保存或者存储到交互日志数据库228。该交互日志数据库228可以按照应用238的执行的记录110来维护交互日志。视频选择器226可以通过使用记录的记录标识符来将交互日志与对应的记录110相关联。在一些实施方式中,响应于接收到交互日志,视频选择器226可以递增用于播放记录110的数量的计数器。
对于记录的视频数据库224中的各个记录110,视频选择器226可以基于来自客户端装置105的对应的接收到的交互日志来更新性能度量。视频选择器226可以基于来自客户端装置105的交互日志来更新用于记录110的聚合性能模型。视频选择器226可以基于记录标识符来识别哪个记录110与交互日志对应。在一些实施方式中,视频选择器226可以访问交互日志数据库228以检索或者获取交互日志以更新性能度量或者聚合性能模型。在一些实施方式中,视频选择器226可以按照周期性的间隔来更新性能度量或者聚合性能模型。在一些实施方式中,响应于接收到交互日志,视频选择器226可以将聚合性能模型的一个或者多个权重调整为另一值。
在一些实施方式中,在记录110被播放的次数达到阈值之后,视频选择器226可以更新应用238的执行的记录110的性能度量或者聚合性能模型。视频选择器226可以识别在多个客户端装置105处播放应用238的执行的记录110的次数。在一些实施方式中,视频选择器226可以访问记录的视频数据库224以识别记录110被播放的次数。在一些实施方式中,视频选择器226可以确定记录110被播放的次数是否大于或者等于阈值播放次数。阈值播放次数可以指示或者指定用于更新性能度量或者聚合性能模型的计算的足够样本大小的截止。如果视频选择器226确定应用238的执行的记录110的次数大于或者等于阈值数量,则视频选择器226可以更新性能度量或者聚合性能模型。如果视频选择器226确定应用238的执行的记录110的次数小于阈值数量,则视频选择器226可以针对应用238的执行的记录110继续累积来自多个客户端装置105的交互日志。
为了更新各个记录的性能度量或者聚合性能模型,视频选择器226可以针对应用238的执行的记录110对交互日志中的每个交互进行迭代。在一些实施方式中,视频选择器226可以针对应用238的执行的记录110利用识别到的各个交互、各个交互日志、或者利用所有交互日志来更新性能度量或者聚合性能模型。通过对各个交互日志中记录的交互进行迭代,视频选择器226可以识别交互的类型(事件类型)、交互的坐标(事件坐标、方位、或者位置)、和交互的时间(事件时间)。视频选择器226可以在更新记录的性能度量或者聚合性能模型的计算时使用识别到的交互的类型、交互的坐标、和交互的时间。
基于交互的类型,视频选择器226可以计算、调整、或者更新应用238的执行的记录110的性能度量。在一些实施方式中,视频选择器226可以基于交互的类型来识别对记录110的性能度量从初始值或者另一值开始的正调整或者负调整。正调整和负调整可以各自是固定常量(例如,大于或者小于1的倍数因子)或者取决于交互的类型的值范围。在一些实施方式中,视频选择器226可以识别所识别到的交互类型属于正交互类型集合还是负交互类型集合。正交互类型集合可以与进行正调整的交互的类型(例如,点击、屏幕敲击、向下滚动等)对应。负交互类型集合可以与进行负调整的交互的类型(例如,鼠标移动、向上滚动、悬停等)对应。通常,正交互类型集合可以指示用户在观看记录之后按照熟练的方式正确地操作应用238。相反,负交互类型集合可以指示用户在观看记录之后按照未训练的或者不可取的方式操作应用238。如果交互的类型被识别为属于正集合,则视频选择器226可以通过正调整来使性能度量增量,修改、或者调整性能度量。如果交互的类型被识别为属于负集合,则视频选择器226可以通过负调整来递增、修改、或者调整性能度量。
在一些实施方式中,视频选择器226可以基于交互的类型来调整、改变、或者更新聚合性能模型。在一些实施方式中,通过使用交互的类型,视频选择器226可以调整、改变、或者更新聚合性能模型的一个或者多个权重。在一些实施方式中,视频选择器226可以基于交互的类型来识别对用于记录110的聚合性能模型的一个或者多个权重的从初始值或者另一值开始的正权重调整或者负权重调整。正权重调整和负权重调整可以各自是固定常量(例如,大于或者小于1的乘法因子)或者取决于交互的类型的值范围。对聚合性能模型的一个或者多个权重的正权重调整会引起响应于对下载应用238的未来请求而选择应用238的执行的相应记录110的可能性较高。对聚合性能模型的一个或者多个权重的负权重调整会引起响应于对下载应用238的未来请求而选择应用238的执行的相应记录110的可能性较低。在一些实施方式中,视频选择器226可以识别所识别到的交互的类型属于正交互类型集合还是负交互类型集合。如果交互的类型被识别为属于正集合,则视频选择器226可以通过正权重调整来递增、修改、或者调整聚合性能模型的一个或者多个权重。如果交互的类型被识别为属于负集合,则视频选择器226可以通过负权重调整来递增、修改、或者调整聚合性能模型的一个或者多个权重。
基于交互的坐标,视频选择器226可以计算、调整、或者更新应用238的执行的记录110的性能度量。在一些实施方式中,视频选择器226可以基于交互的坐标来识别对记录110的性能度量的正调整或者负调整。正调整和负调整可以各自是固定常量(例如,大于或者小于1的乘法因子)或者取决于交互的坐标的值范围。在一些实施方式中,视频选择器226可以识别所识别到的交互的类型属于正坐标范围还是负坐标范围。正坐标范围可以与进行正调整的交互的坐标对应。正坐标范围可以与进行正调整的交互的坐标对应。通常,正坐标范围可以指示用户在观看记录之后按照熟练的方式正确地操作应用238。另一方面,负坐标范围可以指示用户即使在观看另一用户操作应用238之后,还是按照未训练的或者不可取的方式来操作应用238。在一些实施方式中,可以对正坐标范围和负坐标范围进行预定义。在一些实施方式中,视频选择器226可以使用通过使用图像识别算法识别到的记录110中的一个或者多个特征来设置正坐标范围和负坐标范围。通过应用图像识别算法,视频选择器226可以检测用户界面的命令按钮,识别该命令按钮的坐标范围,并且将识别到的坐标范围设置为正坐标范围。如果交互的坐标被识别为属于正范围,则视频选择器226可以通过正调整来递增、修改、或者调整性能度量。如果交互的坐标被识别为属于负范围,则视频选择器226可以通过负调整来递增、修改、或者调整性能度量。
在一些实施方式中,视频选择器226可以基于交互的坐标来调整、改变、或者更新聚合性能模型。在一些实施方式中,视频选择器226可以基于交互的坐标来识别对用于记录110的聚合性能模型的一个或者多个权重的正权重调整或者负权重调整。正权重调整和负权重调整可以各自是固定常量(例如,大于或者小于1的乘法因子)或者取决于交互的坐标的值范围。在一些实施方式中,视频选择器226可以识别所识别到的交互的坐标属于正坐标范围还是负坐标范围。对聚合性能模型的一个或者多个权重的正权重调整会引起响应于对下载应用238的未来请求而选择应用238的执行的相应记录110的可能性较高。对聚合性能模型的一个或者多个权重的负权重调整会引起响应于对下载应用238的未来请求而选择应用238的执行的相应记录110的可能性较低。如果交互的坐标被识别为属于正范围,则视频选择器226可以通过正权重调整来递增、修改、或者调整聚合性能模型的一个或者多个权重。如果交互的坐标被识别为属于负范围,则视频选择器226可以通过负权重调整来递增、修改、或者调整聚合性能模型的一个或者多个权重。
基于交互的时间,视频选择器226可以计算、调整、或者更新应用238的执行的记录110的性能度量。交互的时间可以与播放记录之后应用238的执行的开始有关。在一些实施方式中,视频选择器226可以基于交互的时间来识别从初始值或者另一值开始的正调整或者负调整。正调整和负调整可以各自是固定常量(例如,大于或者小于1的乘法因子)或者取决于交互的时间的值范围。在一些实施方式中,视频选择器226可以识别所识别到的交互的时间属于正时间范围还是负时间范围。正时间范围可以与进行正调整的交互的时间对应。负时间范围可以与进行负调整的交互的时间对应。通常,正时间范围可以指示用户在观看记录之后按照熟练的方式来操作应用238,并且可以与在交互日志中早期发生的交互对应。另一方面,负时间范围可以指示用户即使在观看另一用户操作应用238的记录110之后,还是按照未训练的或者不可取的方式来操作应用238,并且可以与在交互日志中稍后发生的交互对应。如果交互的时间被识别为属于正范围,则视频选择器226可以通过正调整来递增、修改、或者调整性能度量。如果交互的时间被识别为属于负范围,则视频选择器226可以通过负调整来递增、修改、或者调整性能度量。
在一些实施方式中,视频选择器226可以基于多次交互来计算、调整、或者更新应用的执行的记录110的性能度量。在一些实施方式中,视频选择器226可以识别多次交互。在一些实施方式中,视频选择器226可以确定或者计算多次交互的密度。该多次交互的密度可以指示在交互日志中记录的各个交互之间的即时性或者稀疏程度。在一些实例中,多次交互的密度越大,在观看记录110之后操作应用238的用户更可能正确地使用应用238。在一些实施方式中,视频选择器226可以确定多次交互的密度是否大于或者等于阈值密度。如果视频选择器226确定密度大于或者等于阈值密度,则视频选择器226可以通过正调整来调整性能度量。如果视频选择器226确定密度小于阈值密度,则视频选择器226可以通过负调整来调整性能度量。
在一些实施方式中,视频选择器226可以基于交互的时间来调整、改变、或者更新聚合性能模型。在一些实施方式中,视频选择器226可以基于交互的时间来识别对用于记录110的聚合性能模型的一个或者多个权重的正权重调整或者负权重调整。正权重调整和负权重调整可以各自是固定常量(例如,大于或者小于1的乘法因子)或者取决于交互的时间的值范围。在一些实施方式中,视频选择器226可以识别所识别到的交互的时间属于正时间范围还是负时间范围。对聚合性能模型的一个或者多个权重的正权重调整会引起响应于对下载应用238的未来请求而选择应用238的执行的相应记录110的可能性较高。对聚合性能模型的一个或者多个权重的负权重调整会引起响应于对下载应用238的未来请求而选择应用238的执行的相应记录110的可能性较低。如果交互的时间被识别为属于正范围,则视频选择器226可以通过正权重调整来递增、修改、或者调整聚合性能模型的一个或者多个权重。如果交互的时间被识别为属于负范围,则视频选择器226可以通过负权重调整来递增、修改、或者调整聚合性能模型的一个或者多个权重。
在一些实施方式中,视频选择器226可以基于多次交互来计算、调整、或者更新用于应用的执行的记录110的聚合性能模型的一个或者多个权重。在一些实施方式中,视频选择器226可以识别多次交互。在一些实施方式中,视频选择器226可以确定或者计算多次交互的密度。在一些实施方式中,视频选择器226可以确定多次交互的密度是否大于或者等于阈值密度。如果视频选择器226确定密度大于或者等于阈值密度,则视频选择器226可以通过正权重调整来调整聚合性能模型的一个或者多个权重。如果视频选择器226确定密度小于阈值密度,则视频选择器226可以通过负权重调整来调整聚合性能模型的一个或者多个权重。
视频选择器226可以截断应用238的执行的记录110。视频选择器226可以基于开始时间和结束时间来设置应用238的执行的记录110的时间长度。在一些实施方式中,视频选择器226可以基于记录的交互日志中记录的交互来确定开始时间和结束时间。在一些实施方式中,通过应用238的记录110的交互日志,视频选择器226可以识别交互的第一时间和交互的最后时间。在一些实施方式中,视频选择器226可以将交互的第一时间设置为记录110的开始时间,并且将交互的最后时间设置为记录的结束时间。在一些实施方式中,视频选择器226可以通过来自多个客户端装置105的记录110的交互日志来确定平均第一时间和平均最后时间。在一些实施方式中,视频选择器226可以将交互的平均第一时间设置为记录110的开始时间,并且将交互的平均结束时间设置为记录的结束时间。在一些实施方式中,通过应用238的记录110的交互日志,视频选择器226可以确定在与应用238进行的交互的时间的各个时间窗口上的密度或者滚动平均值。在一些实施方式中,视频选择器226可以识别密度或者滚动平均值为最高的时间范围。在一些实施方式中,视频选择器226可以基于与最高密度或者滚动平均值相对应的识别到的时间范围来确定开始时间和结束时间。
在一些实施方式中,响应于接收到记录的交互日志,视频选择器226可以基于相应性能度量或者聚合性能模型来确定对应的记录110的开始时间和结束时间。在一些实施方式中,当对记录110的各个交互日志中的交互进行迭代并且更新性能度量时,视频选择器226可以识别通过正权重调整来更新性能度量的初始时间以及通过负权重调整来更新性能度量的随后时间。在一些实施方式中,在对记录110的各个交互日志中的交互进行迭代并且更新聚合性能模型的同时,视频选择器226可以识别通过正权重调整来更新聚合性能模型的一个或者多个权重的初始时间以及通过负权重调整来更新聚合性能模型的一个或者多个权重的随后时间。通过使用识别到的初始时间和随后时间,视频选择器226可以将记录110的开始时间设置为识别到的初始时间,并且将记录110的结束时间设置为识别到的随后时间。在一些实施方式中,视频选择器226可以在设置应用238的执行的记录110的开始时间和结束时间之前向识别到的初始时间和随后时间应用偏移。
之后,对于客户端装置的第三集合105”,应用分发器218可以提供、分发或者传输应用238和播放器脚本244以播放选择的记录110。如果记录聚合器222确定针对应用238的执行的记录110进行播放的次数大于或者等于阈值次数,则视频选择器226可以选择应用238的记录110中的一个记录。在一些实施方式中,视频选择器226可以通过性能度量来对应用238的记录110进行排名。在一些实施方式中,视频选择器226可以识别具有最高性能度量的应用238的记录。在一些实施方式中,响应于接收到下载应用238的请求,视频选择器22可以通过用于应用238的执行的记录110中的每个记录的聚合性能模型的一个或者多个权重来生成性能度量。在一些实施方式中,结合视频选择器226,应用分发器218可以传输应用238和选择的视频110。
客户端装置105可以经由网络205从应用分发器218接收应用238、选择的记录110、和播放器脚本244。在一些实施方式中,客户端装置105可以经由网络205从应用分发器218接收应用238和选择的记录110。在一些实施方式中,可能已经存在用于在客户端装置105处播放选择的记录110的另一应用(例如,媒体播放器、网络浏览器等)。一旦接收到应用238和播放器脚本244,客户端装置105就可以将应用238和播放器脚本244存储或者安装到存储器236上。在一些实施方式中,接收到应用238和播放器脚本244可以使得或者触发客户端装置105执行在应用238或者播放器脚本244中指定的功能。在一些实施方式中,播放器脚本244可以播放记录110。在一些实施方式中,接收到选择的记录110可以使得或者触发客户端装置105通过使用预安装的应用(例如,先前安装的媒体播放器或者网络浏览器等)来播放记录110。在一些实施方式中,客户端装置105可以通过使用预安装的应用来播放选择的记录110。在播放记录之后,客户端装置105可以通过使用处理器230来执行应用238。
通过按照这种方式来在数据处理系统210与客户端装置105(或者多个客户端装置105)之间交换数据,系统200可以自动地生成在多个客户端装置110上执行的应用238的记录110,并且然后从记录110中选择最适当的或者最优的记录110以指导或者训练用户在客户端装置105处操作应用238。同样,本文详细描述的系统200由此可以通过训练用户正确地使用和运行应用238来减少应用238的执行时间,从而节省在客户端装置105、数据处理系统210、和网络205处的客户端侧功耗、网络带宽、和计算机处理时间。
图3A至图3C是描绘了根据说明性实施方式的客户端侧计算装置动态地修改信息资源内的内容元素的属性的方法300的流程图。本文相对于方法300所描述的功能可以由如在图2中示出的数据处理系统210或者客户端装置105、如在图3中示出的内容渲染修改系统300、或者如在图4中示出的计算装置、或者其任何组合来进行或者执行。
更详细地,客户端装置105可以传输下载应用的请求(步骤302)。数据处理系统210可以接收下载应用的请求(步骤304)。在一些实施方式中,客户端装置105可能先前还未下载、安装、或者执行应用。下载应用的请求可以由在客户端装置105上运行的程序触发,诸如,列出可供下载的各种应用的应用分发平台。
数据处理系统210可以确定应用的记录的视频的数量是否小于阈值记录的视频数量(步骤306)。数据处理系统210可以使用阈值来累积或者整合在客户端装置上执行或者操作的应用的更多记录。如果记录的视频的数量大于或者等于阈值数量,则方法300前进至阶段B 310(见图3B)。如果记录的视频的数量小于阈值数量,则数据处理系统210可以传输应用和记录器脚本(步骤308)。客户端装置105可以接收应用和记录器脚本(步骤312)。记录器脚本可以使得或者触发客户端装置105执行在记录器脚本中指定的功能。
客户端装置105可以确定应用是否已经执行(步骤314)。在一些实施方式中,客户端装置105可以在客户端装置105处安装或者存储应用之后监视应用的实例化。如果应用还未执行,则客户端装置105可以继续监视应用的实例化。客户端装置105可以在预定义的时间段内继续监视实例化。
如果应用已经执行,则客户端装置105可以开始记录在客户端装置105上运行的应用的视频(步骤316)。在一些实施方式中,客户端装置105可以开始以任何格式在客户端装置105处的存储器上写入视频文件以记录视频。客户端装置105可以识别在其上运行的应用的维度(例如,像素坐标和大小)。对视频的记录可以受限于应用的维度。
客户端装置105可以启动定时器以测量记录时间(步骤318)。在一些实施方式中,客户端装置105可以在预定义的时间段内记录应用的执行。预定义的时间段可以用于限制视频文件的大小以发送回数据处理系统210。客户端装置105可以监视与应用进行的交互(步骤320)。在一些实施方式中,客户端装置105可以维护用于交互的数量的计数器。客户端装置105可以通过使用事件监听器或者事件处理器来检测交互(例如,点击、滑动、滚动、按键等)。每当检测到交互时,客户端装置105可以递增计数器。
客户端装置105可以确定交互的数量是否大于或者等于阈值交互数量(步骤322)。在一些实施例中,客户端装置105可以将计数器上的当前计数与阈值交互数量相比较。阈值交互数量可以用于限制视频文件的大小以发送回到数据处理系统210。如果交互的数量小于阈值交互数量,则客户端装置105可以确定记录时间是否大于或者等于截止时间(步骤324)。在一些实施方式中,客户端装置105可以继续监视交互的数量。如果记录时间大于或者等于截止时间,则客户端装置105可以终止对视频的记录(步骤326)。客户端装置105可以将记录的视频传输至数据处理系统210(步骤328)。
数据处理系统210可以从客户端装置105接收记录的视频(步骤330)。数据处理系统210可以生成用于记录的视频的性能模型(步骤332)。在一些实施方式中,数据处理系统210可以通过使用人工神经网络(ANN)、支持向量机(SVM)、深度结构学习模型、无监督学习模型、或者监督学习模型等来维护用于记录的视频的性能模型。数据处理系统210可以识别在记录的视频中的特征(步骤334)。在一些实施方式中,数据处理系统210可以使用图像识别算法来识别在记录的视频的帧内的特征。图像识别算法的示例包括:边缘检测算法、角部检测算法、斑点检测算法、场景切换算法、或者任何其它机器学习技术。数据处理系统210可以在记录的视频的性能模型中设置初始权重(步骤336)。
移动到阶段B 310,数据处理系统210可以确定视频被播放的次数是否小于阈值次数(步骤338)。如果视频被播放的次数大于或者等于阈值次数,则方法300可以移动至阶段C340(见图3C)。如果视频被播放的次数大于或者等于阈值次数,则数据处理系统210可以选择记录的视频中的一个视频(步骤342)。在一些实施方式中,数据处理系统210可以使用所有记录的视频的性能度量来识别具有最高性能度量的一个视频。在另一示例中,数据处理系统210可以随机选择记录的视频。数据处理系统210可以传输应用和交互测量脚本(步骤344)。
客户端装置105可以接收应用和交互测量脚本(步骤346)。该交互测量脚本可以触发或者使得客户端装置105执行在脚本中指定的功能。客户端装置105可以播放选择的视频(步骤348)。客户端装置105可以确定应用是否已经执行(步骤350)。如果应用已经执行,则客户端装置105可以记录与应用进行的交互(步骤352)。在一些实施方式中,客户端装置105可以监视事件监听器或者处理器的触发。每当检测到触发,客户端装置105可以识别交互的时间、类型、和坐标。客户端装置105可以确定应用是否已经终止(步骤354)。如果应用已经终止,则客户端装置105可以生成交互日志(步骤356)。在一些实施方式中,通过使用识别到的交互的时间、类型、和坐标,客户端装置105可以将识别到的数据写入在客户端装置105处的存储装置中的交互日志中。如果应用还未执行,则客户端装置105可以将交互日志设置为空(步骤358)。在一些实施方式中,客户端装置105可以写入指示没有与应用进行的交互的交互日志。客户端装置105可以将交互日志传输至数据处理系统210(步骤360)。
数据处理系统210可以接收交互日志(步骤362)。数据处理系统210然后可以在步骤364至374中继续遍历交互日志中记录的交互以更新视频的性能度量。数据处理系统210可以识别交互的类型(步骤364)。数据处理系统210可以识别交互的坐标(步骤366)。数据处理系统210可以识别交互的时间(步骤368)。
通过使用识别到的交互的类型、交互的坐标、和交互的时间,数据处理系统210可以更新视频的性能模型(步骤370)。在一些实施方式中,数据处理系统210可以识别是否向性能模型应用正权重调整以增加选择视频的可能性,或者向性能模型应用负权重调整以降低选择视频的可能性。数据处理系统210可以确定识别到的交互的类型、交互的坐标、和交互的时间属于正集合或者正范围还是负集合或者负范围。正集合或者正范围可以与正权重调整的应用对应,负集合或者负范围可以与负权重调整的应用对应。基于该识别,数据处理系统210可以调整视频的性能模型。
为了确定是否继续进行遍历,数据处理系统210可以确定遍历的交互的数量是否小于或者等于交互日志的长度(步骤372)。如果遍历的交互的数量小于或者等于交互日志的长度,则数据处理系统210可以识别交互日志上的下一交互(步骤374)。数据处理系统210针对下一识别到的交互重复步骤364至372中的功能。
如果遍历的交互的数量大于交互日志的长度,则数据处理系统210可以通过性能模型来计算视频的性能度量(步骤376)。在一些实施方式中,性能度量可以指示视频在指导终端用户操作对应的应用的方式方面的有效性。数据处理系统210可以通过来自交互日志的性能度量和交互时间来确定视频的开始时间和结束时间(步骤378)。在一些实施方式中,数据处理系统210可以确定在时间窗口上的交互的数量的滚动平均值,并且基于在哪个时间窗口处滚动平均值最大来计算视频的开始和结束时间。数据处理系统210可以将视频截断到开始时间和结束时间(步骤380)。
继续前进至阶段C 340,数据处理系统210可以选择具有最高性能度量的视频(步骤382)。在一些实施方式中,数据处理系统210可以按照性能度量来对视频进行排名,并且选择具有最高性能度量的视频。数据处理系统210可以传输应用和选择的视频(步骤384)。客户端装置105可以接收应用和选择的视频(步骤386)。客户端装置105可以播放视频(步骤388)。客户端装置105可以执行应用(步骤390)。
图4示出了根据一些实施方式的可以采用以实施本文讨论的任何计算机系统(包括:系统210及其组件,诸如,应用分发器218、记录聚合器222、和视频选择器226或者应用238及其模块、记录器脚本240、播放器脚本244、以及交互测量脚本242及其组件)的说明性计算机系统400的一般架构。计算机系统400可以用于经由网络205来提供信息以便进行显示。图4的计算机系统400包括通信地耦合至存储器425的一个或者多个处理器、一个或者多个通信接口405、和一个或者多个输出装置410(例如,一个或者多个显示单元)、以及一个或者多个输入装置415。处理器420可以包括在数据处理系统210或者系统210的其它组件(诸如,应用分发器218、记录聚合器222、和视频选择器226)中。处理器可以包括在客户端装置105或者其模块中,诸如,应用238、记录器脚本240、交互测量脚本242、和播放器脚本244。
在图4的计算机系统400中,存储器425可以包括任何计算机可读存储介质,并且可以存储计算机指令(诸如,用于相应系统实施本文描述的各种功能的指令)以及与之相关的任何数据、由此生成的任何数据、或者经由(多个)通信接口或者(多个)输入装置接收到的任何数据(若存在)。再次参照图1的系统210,数据处理系统210可以包括存储器425以存储与一个或者多个内容单元的库存、一个或者多个内容单元的预留的可用性有关的信息等。存储器425可以包括数据库245。在图4中示出的(多个)处理器420可以用于执行存储在存储器425中的指令,并且这样做还可以从存储器读取或者向存储器写入根据指令的执行而处理和/或生成的各种信息。
在图4中示出的计算机系统400的处理器420还可以通信地耦合至或者控制(多个)通信接口405以根据指令的执行传输或者接收各种信息。在一些实施方式中,(多个)通信接口405可以耦合至有线或者无线网络、总线、或者其它通信装置,并且因此,可以允许计算机系统400向其它装置(例如,其它计算机系统)传输信息或者从其它装置(例如,其它计算机系统)接收信息。虽然在图1的系统中未明确示出,但是一个或者多个通信接口促进在系统400的组件之间的信息流动。在一些实施方式中,可以将(多个)通信接口配置(例如,经由各种硬件组件或者软件组件)为提供作为至计算机系统400的至少一些方面的访问入口的网站。通信接口405的示例包括用户界面(例如,网页),通过该用户界面,用户可以与数据处理系统210进行通信。
可以提供在图4中示出的计算机系统400的输出装置410以允许查看或者以其它方式感知与指令的执行有关的各种信息。可以提供(多个)输入装置415以允许用户在指令的执行期间进行手动调整、进行选择、输入数据、或者按照任何各种方式来与处理器进行交互。本文进一步提供了本文所讨论的各种系统可以采用的与一般计算机系统架构有关的附加信息。
可以在数字电子电路系统中、或者在包含在有形介质中的计算机软件、固件、或者硬件中(包括本说明书中所公开的结构及其结构等效物)、或者它们中的一个或者多个的组合中实施本说明书中描述的主题的实施方式和操作。可以将本说明书中描述的主题的实施方式实施为一个或者多个计算机程序,即,编码在一个或者多个计算机存储介质上以由数据处理设备执行或者以控制数据处理设备的操作的计算机程序指令的一个或者多个模块。程序指令可以编码在人工生成的传播信号上,例如,机器生成的电气、光学、或者电磁信号,生成该信号是为了对信息进行编码以便传输至合适的接收器设备供数据处理设备执行。计算机存储介质可以是计算机可读存储装置、计算机可读存储基板、随机或者串行存取存储器阵列或者装置、或者它们中的一个或者多个的组合,或者被包括在其中。此外,当计算机存储介质不是传播信号时,计算机存储介质可以包括编码在人工生成的传播信号中的计算机程序指令的源或者目的地。计算机存储介质也可以是一个或者多个单独的物理部件或者介质(例如,多个CD、磁盘、或者其它存储装置),或者被包括在其中。
可以在智能电视模块(或者连接的电视模块、混合电视模块等)上实施本文所公开的特征,该智能电视模块可以包括配置为将互联网连接性与更传统的电视节目源(例如,经由电缆、卫星、无线、或者其它信号接收到的)集成的处理电路。可以物理地将智能电视模块并入电视机中,或者智能电视模块可以包括单独的装置,诸如,机顶盒、蓝光或者其它数字媒体播放器、游戏机、酒店电视系统、和其它配套装置。可以将智能电视模块配置为允许观看者搜索和查找在网络上、在本地有线电视频道上、在卫星电视频道上、或者存储在本地硬盘驱动器上的视频、电影、照片和其它内容。机顶盒(STB)或者机顶单元(STU)可以包括信息应用装置,该信息应用装置可以包含调谐器并且连接至电视机和外部信号源,将信号转换成内容,然后将该内容显示在电视屏幕或者其它显示装置上。可以将智能电视模块配置为提供包括多个不同应用(诸如,网络浏览器和多种流媒体服务、连接的电缆或者卫星媒体源、其它网络“信道”等)的图标的主屏幕或者顶层屏幕。可以将智能电视模块进一步配置为向用户提供电子节目指南。智能电视模块的配套应用可以在移动计算装置上操作以向用户提供有关可用节目的附加信息,以允许用户控制智能电视模块等。在替代实施方式中,可以在膝上型计算机或者其它个人计算机、智能电话、其它移动电话、手持式计算机、平板PC、或者其它计算装置上实施该特征。
可以将本说明书中描述的操作实施为由数据处理设备对存储在一个或者多个计算机可读存储装置或者从其它源接收到的数据执行的操作。
术语“数据处理设备”、“数据处理系统”、“用户装置”或者“计算装置”囊括了用于处理数据的所有种类的设备、装置、和机器,包括:例如,可编程处理器、计算机、片上系统、或者前述中的多种或者组合。该设备可以包括专用逻辑电路系统,例如,FPGA(现场可编程门阵列)或者ASIC(专用集成电路)。除了硬件之外,该设备还可以包括为探讨中的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时间环境、虚拟机、或者它们中的一个或者多个的组合的代码。该设备和执行环境可以实现各种不同的计算模型基础设施,诸如,网络服务、分布式计算和网格计算基础设施。应用分发器218、应用数据库220、记录聚合器222、记录的视频数据库240、视频选择器226、和交互日志数据库228可以包括或者共享一个或者多个数据处理设备、计算装置、或者处理器。应用238、记录器脚本240、交互测量脚本242、和播放器脚本244可以包括或者共享一个或者多个数据处理设备、计算装置、或者处理器。
可以按照任何形式的程序语言来写入计算机程序(也称为程序、软件、软件应用、脚本、或者代码),包括编译的或者解译的语言、宣告式语言或者程序式语言,并且可以按照任何形式来部署计算机程序,包括部署为独立的程序或者部署为模块、部件、子例程、对象、或者适合在计算环境中使用的其它单元。计算机程序可以但并非必须与文件系统中的文件对应。可以将程序存储在保存其它程序或者数据(例如,存储在标记语言文档中的一个或者多个脚本)的文件的一部分中、在专用于讨论中的程序的单个文件中、或者在多个协调文件中(例如,存储一个或者多个模块、子程序、或者代码的部分的文件)。可以将计算机程序部署为在一个计算机上执行或者在位于一个站点处或者分发在多个站点中并且通过通信网络互相连接的多个计算机上执行。
可以通过一个或者多个可编程处理器来进行本说明书中描述的过程和逻辑流程,该一个或者多个可编程处理器执行一个或者多个计算机程序以通过操作输入数据并且生成输出来进行动作。还可以由专用逻辑电路系统(例如,FPGA(现场编程门阵列)或者ASIC(专用集成电路))来执行过程和逻辑流,并且还可以将设备实施为专用逻辑电路系统(例如,FPGA(现场编程门阵列)或者ASIC(专用集成电路))。
适合执行计算机程序的处理器包括:例如,通用微处理器、专用微处理器、以及任何种类的数字计算机的任何一个或者多个处理器。一般而言,处理器将接收来自只读存储器或者随机存取存储器或者两者的指令和数据。计算机的必要元件是:用于根据指令执行动作的处理器、和用于存储指令和数据的一个或者多个存储器装置。一般而言,计算机还将包括用于存储数据的一个或者多个海量存储装置(例如,磁盘、磁光盘、或者光盘),或者计算机可以操作地耦合以接收来自该海量存储装置的数据或者将数据传输至该海量存储装置或者进行两者。然而,计算机不需要具有这种装置。此外,计算机可以嵌入在另一装置中,例如,移动电话、个人数字助理(PDA)、移动音频或者视频播放器、游戏机、全球定位系统(GPS)接收器、或者便携式存储装置(例如,通用串行总线(USB)闪存驱动)。适合于存储计算机程序指令和数据的装置包括所有形式的非易失性存储器、介质和存储器装置,包括:例如,半导体存储器装置(例如,EPROM、EEPROM、和闪速存储器装置)、磁盘(例如,内部硬盘或者可移动盘)、磁光盘、CD-ROM盘和DVD-ROM盘。处理器和存储器可以由专用逻辑电路系统补充或者可以并入该专用逻辑电路系统中。
为了提供与用户的交互,可以在计算机上实施本说明书中描述的主题的实施例,该计算机具有:用于向用户显示信息的显示装置,例如,CRT(阴极射线管)、等离子体、或者LCD(液晶显示器)监视器;以及键盘和指向装置,例如,鼠标或者轨迹球,用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;提供给用户的反馈可以是任何形式的传感反馈,例如,视觉反馈、听觉反馈或者触觉反馈;并且可以用任何形式(包括声输入、语音输入或者触觉输入)来接收来自用户的输入。另外,计算机可以通过将文档发送至用户所使用的装置并且接收来自该装置的文档;通过响应于从网络浏览器接收到的请求来将网页发送至在用户的用户装置上的网络浏览器来与用户进行交互。
可以将本说明书中描述的主题的实施方式实施在包括后台组件的计算系统(例如,作为数据服务器)、或者包括中间件组件的计算系统(例如,应用服务器)、或者包括前端组件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与本发明中所描述的主题的实施方式进行交互)、或者包括一个或者多个这种后台组件、中间件组件或者前端组件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(“LAN”)和广域网(“WAN”)、网际网(例如,互联网)、以及点对点网络(例如,ad hoc点对点网络)。
计算系统(诸如,系统400或者系统210)可以包括客户端和服务器。在一些实施方式中,数据处理系统210可以包括一个或者多个数据中心或者服务器场中的一个或者多个服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。在一些实施方式中,服务器向客户端装置传输数据(例如,HTML页面)(例如,为了向与客户端装置进行交互的用户显示数据并且接收来自该用户的用户输入)。可以从在服务器处的客户端装置接收在客户端装置上生成的数据(例如,用户交互的结果)。
虽然本说明书包含了许多具体实施细节,但是不应该将这些细节视为对任何发明或者可能被要求的内容的范围的限制,而是作为针对本文描述的系统和方法的特定实施方式的特征的描述。在本说明书中在单独实施方式的背景下描述的某些特征还可以组合地实施在单个实施方式中。相反,在单个实施方式的背景中描述的各种特征也可以单独地或者按照任何合适的子组合实施在多个实施方式中。此外,虽然上文可能将特征描述为以某些组合来起作用并且最初甚至同样地对该特征进行了要求,但是在一些情况下,可以从组合中删除来自所要求的组合的一个或者多个特征。并且所要求的组合可以指向子组合或者子组合的变化。
同样,虽然在附图中按照特定顺序示出了操作,但是不应该将其理解为需要按照所述的特定顺序或者按照相继的顺序来进行这种操作,或者需要进行所有图示的操作以实现期望的结果。在一些情况下,在权利要求书中叙述的动作可以按照不同的顺序来进行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定需要所示的特定顺序或者相继顺序,以实现期望的结果。
在某些情况下,多任务处理和并行处理可以是有利的。此外,不应该将在上述实施方式中的各种系统组件的分离理解为在所有实施方式中需要这种分离,并且应该理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或者封装到多个软件产品中。在一些实施方式中,应用分发器218、应用数据库220、记录聚合器222、记录的视频数据库240、视频选择器226、和交互日志数据库228可以是数据处理系统210的一部分、单个模块、具有一个或者多个处理模块的逻辑装置、一个或者多个服务器、或者搜索引擎的一部分。另外,应用238、记录器脚本240、和交互测量脚本242、以及播放器脚本244可以包括或者可以是客户端装置105的一部分、单个模块、或者具有一个或者多个处理模块的逻辑装置。
现在,在已经描述了一些说明性实施方式和实施方式之后,显而易见的是,前述内容是说明性的而非限制性的,其是以示例的方式呈现的。具体地,虽然本文呈现的许多示例涉及方法动作或者系统元件的特定组合,但是那些动作和那些元件可以按照其它方式组合以实现相同的目标。仅结合一种实施方式讨论的动作、元件和特征不旨在从其它实施方式或者实施方式中的相似作用排除。
本文使用的短语和术语是为了进行描述,并且不应该将其视为具有限制性。本文对“包括”(including)、“包括”(comprising)、“具有”(having)、“包含”、“涉及”、“特征在于”(characterized by)、“特征在于(characterized in that)”及其变型的使用是指囊括其后列出的项、其等效物、和附加项,以及由其后排外地列出的项组成的替代实施方式。在一种实施方式中,本文所描述的系统和方法由所描述的元件、动作、或者组件中的一个、所描述的元件、动作、或者部件中的超过一个的各个组合、或者所有所描述的元件、动作、或者部件组成。
对本文中以单数表示的系统和方法的实施方式或者元件或者动作的任何引用还可以包括以下实施方式:该实施方式包括多个这些元件,并且本文中以复数形式对任何实施方式或者元件或者动作的任何引用还可以包括以下实施方式:该实施方式仅包括单个元件。以单数或者复数形式的引用不旨在将目前公开的系统或者方法、它们的组件、动作、或者元件限制为单个或者多个配置。对任何动作或者元件的引用基于任何信息、动作或者元件可以包括动作或者元件至少部分地基于任何信息、动作或者元件的实施方式。
本文公开的任何实施方式可以与任何其它实施方式组合,并且对“实施方式”、“一些实施方式”、“替代实施方式”、“各种实施方式”、“一种实施方式”等的引用不一定是相互排斥的并且旨在指示结合实施方式描述的特定特征、结构、或者特性可以包括在至少一种实施方式中。如本文使用的这种术语不一定都是指相同的实施方式。可以按照与本文公开的方面和实施方式一致的任何方式来包括地或者排外地将任何实施方式与任何其它实施方式组合。
可以将对“或者”的引用解释为包括的,从而使得使用“或者”描述的任何术语可以指示单个所描述的术语、超过一个所描述的术语、和所有所描述的术语中的任何一种。
在附图、详细描述或者任何权利要求中的技术特征带有附图标记的情况下,为了增加附图、详细描述、和权利要求书的可懂性,已经将附图标记包括进来。因此,附图标记和附图标记的缺少都对任何权利要求要素的范围没有任何限制。
在不脱离本文所描述的系统和方法的特性的情况下,可以按照其它具体形式来体现本文所描述的系统和方法。虽然本文提供的示例涉及对有关应用的滚动事件进行归属,但是本文描述的系统和方法可以包括应用于其它环境。上述实施方式是说明性的而不是限制所描述的系统和方法。因此,本文所描述的系统和方法的范围由随附权利要求书而不是前述描述来指示,并且在权利要求书的等效性含义和范围内的变化包括在其中。
Claims (36)
1.一种用于在数据处理系统处自动选择并且分发在终端用户装置上执行的应用的记录的方法,所述方法包括:
在所述数据处理系统处接收在第一客户端装置上执行的应用的至少一个记录;
将在所述第一客户端装置上执行的所述应用的所述至少一个记录从所述数据处理系统传输至第二客户端装置;
向所述第二客户端装置传输交互测量脚本,所述交互测量脚本的接收触发所述第二客户端装置:
播放在所述第一客户端装置上执行的所述应用的所述至少一个记录,
在播放所述至少一个记录之后,生成与在所述第二客户端装置上运行的所述应用进行的一个或者多个交互事件的交互日志,以及
将生成的交互日志传输至所述数据处理系统;
在所述数据处理系统处接收所述生成的交互日志;以及
基于所述生成的交互日志来选择在相应第一客户端装置上执行的所述应用的所述至少一个记录中的记录。
2.根据权利要求1所述的方法,其中,传输在所述第一客户端装置上执行的所述应用的所述至少一个记录包括从在所述第一客户端装置上执行的所述应用的多个记录中选择记录。
3.根据权利要求1所述的方法,进一步包括:
基于在所述生成的交互日志中识别到的所述一个或者多个交互事件来生成所述应用的所述至少一个记录的性能度量,其中,选择在相应第一客户端装置上执行的应用的所述至少一个记录中的记录是进一步基于所述性能度量。
4.根据权利要求3所述的方法,其中,生成所述性能度量进一步包括:
识别在多个客户端装置处针对所述应用的所述记录进行播放的次数;
确定针对所述应用的所述记录进行播放的次数高于阈值;以及
响应于确定针对所述应用的所述记录进行播放的次数高于所述阈值,基于在从所述第二客户端装置接收到的所述生成的交互日志中识别到的所述一个或者多个交互事件来计算所述性能度量。
5.根据权利要求3所述的方法,其中,生成所述性能度量进一步包括:
识别在从所述第二客户端装置接收到的所述生成的交互日志中识别到的所述一个或者多个交互事件中的每一个交互事件的事件类型;以及
基于所述一个或者多个交互事件中的每一个交互事件的所述事件类型来生成所述性能度量。
6.根据权利要求3所述的方法,其中,生成所述性能度量进一步包括:
维护用于所述应用在多个客户端装置上的多个执行记录的聚合性能模型;
响应于从所述第一客户端装置接收到所述记录,向用于所述应用在所述第一客户端装置上的所述执行记录的所述聚合性能模型中的权重分配初始值;以及
响应于从所述第二客户端装置接收到所述一个或者多个交互的所述生成的交互日志,在所述聚合性能模型中将所述权重从所述初始值调整到第二值。
7.根据权利要求3所述的方法,进一步包括:
基于所述性能度量和通过所述第二客户端装置与所述应用进行的所述一个或者多个交互事件,确定在所述第一客户端装置上执行的所述应用的所述记录的开始时间和结束时间;以及
基于所述开始时间和所述结束时间来修改所述应用的所述记录的时间长度。
8.根据权利要求3所述的方法,进一步包括:识别在所述第一客户端装置上执行的所述应用的所述记录内的一个或者多个特征;以及
其中,生成所述性能度量进一步包括:基于一个或者多个识别的特征来生成所述性能度量的初始值。
9.根据权利要求1至8中任一项所述的方法,进一步包括:基于在第一客户端装置上执行的所述应用的至少一个进一步的记录来修改在相应第一客户端装置上执行的所述应用的所述至少一个记录中的记录,所述至少一个进一步的记录是基于在所述第一客户端装置上执行的所述应用的交互的日志获得的。
10.根据权利要求1至8中任一项所述的方法,进一步包括:
从所述第一客户端装置接收下载应用的第一请求;
响应于接收到所述第一请求,确定所述应用的执行记录的数量低于阈值;
响应于确定记录数量低于所述阈值,向所述第一客户端装置传输所述应用和记录器脚本,所述记录器脚本的接收触发所述第一客户端装置记录在所述第一客户端装置上运行的所述应用的执行并且将所述记录传输至所述数据处理系统;以及
从所述第一客户端装置接收在所述第一客户端装置上执行的所述应用的所述记录。
11.根据权利要求10所述的方法,进一步包括:
在从所述第一客户端装置接收到所述应用的所述记录之后,从所述第二客户端装置接收下载所述应用的第二请求;
确定所述应用的执行记录的数量大于所述阈值;
其中,将在所述第一客户端装置上执行的所述应用的所述至少一个记录传输至所述第二客户端装置是响应于确定所述应用的执行记录的数量大于所述阈值。
12.根据权利要求10所述的方法,进一步包括:
响应于接收到下载所述应用的所述第一请求,识别所述应用已经被所述第一客户端装置下载的次数;
确定所述应用已经被所述第一客户端装置下载的次数等于零;以及
其中,将所述记录器脚本传输至所述第一客户端装置进一步包括:响应于确定所述应用已经被所述第一客户端装置下载的次数等于零,将所述记录器脚本传输至所述第一客户端装置。
13.根据权利要求10所述的方法,其中,将所述应用和所述记录器脚本传输至所述第一客户端装置进一步包括:将所述应用和所述记录器脚本传输至所述第一客户端装置,所述记录器脚本的接收触发所述第一客户端装置记录与所述应用进行的一个或者多个第二交互事件并且将所述一个或者多个第二交互传输至所述数据处理系统;并且所述方法进一步包括:
基于所述应用和在所述第一客户端装置上与所述应用进行的所述一个或者多个第二交互事件来生成所述记录。
14.根据权利要求10所述的方法,其中,将所述应用和所述记录器脚本传输至所述第一客户端装置进一步包括:将所述应用和所述记录器脚本传输至所述第一客户端装置,所述记录器脚本的接收触发所述第一客户端装置:
确定所述应用正在所述第一客户端装置上执行,
响应于确定所述应用正在所述第一客户端装置上执行,将所述应用的执行记录初始化,以及
在预定义的时间内记录在所述第一客户端装置上执行的所述应用的输出。
15.根据权利要求10所述的方法,其中,将所述应用和所述记录器脚本传输至所述第一客户端装置进一步包括:将所述应用和所述记录器脚本传输至所述第一客户端装置,所述记录器脚本的接收触发所述第一客户端装置:
监视与所述第一客户端装置上的所述应用进行的一个或者多个第二交互事件,
确定所述一个或者多个第二交互事件的数量超过预定事件数量,以及
响应于确定所述一个或者多个第二交互事件的数量超过所述预定事件数量,终止对在所述第一客户端装置上运行的所述应用的执行的记录。
16.一种携带计算机可执行指令的非易失性计算机可读存储介质,所述计算机可执行指令在被处理器执行时使所述处理器执行根据权利要求1-15中任一项所述的方法。
17.一种用于在数据处理系统处自动选择并且分发在终端用户装置上执行的应用的记录的系统,所述系统包括:
所述数据处理系统,所述数据处理系统包括处理器、网络接口、和存储器存储装置,所述处理器被配置为执行根据权利要求1至15中任一项所述的方法。
18.一种用于自动选择并且分发在终端用户计算装置上执行的应用的记录的方法,包括:
通过数据处理系统从多个第一客户端装置中的每个第一客户端装置接收下载应用的第一请求;
响应于接收到所述第一请求,通过所述数据处理系统确定所述应用的执行的记录的数量低于阈值;
响应于记录的所述数量低于所述阈值的确定,通过所述数据处理系统向所述多个第一客户端装置中的每个第一客户端装置传输所述应用和记录器脚本,以生成在所述多个第一客户端装置中的对应客户端装置上运行的所述应用的执行的记录并且提供给所述数据处理系统;以及
通过所述数据处理系统,针对从所述多个第一客户端装置中的对应客户端装置接收的所述应用的执行的每个记录,基于与对应客户端装置上的所述应用的一个或多个交互事件,生成性能度量;
通过所述数据处理系统,使用所述多个第一客户端装置中的对应客户端装置上执行的所述应用的记录和针对对应的多个客户端装置所生成的多个性能度量,维护多个记录;
在从所述多个第一客户端装置接收到所述应用的所述记录之后,通过所述数据处理系统从第二客户端装置接收下载所述应用的第二请求;
通过所述数据处理系统确定与所述应用的执行的多个记录相对应的数量大于所述阈值;
响应于确定记录的所述数量大于所述阈值,通过所述数据处理系统基于记录的性能度量来从所述多个记录中选择记录;以及
通过所述数据处理系统向所述第二客户端装置传输从所述应用的所述多个记录中选择的记录。
19.根据权利要求18所述的方法,其中,将在所述第一客户端装置上执行的所述应用的所述记录传输至所述第二客户端装置进一步包括传输交互测量脚本,所述交互测量脚本的接收触发所述第二客户端装置:
播放在所述第一客户端装置上执行的所述应用的所述记录,
在播放所述记录之后,生成与在所述第二客户端装置上运行的所述应用进行的一个或者多个交互事件的交互日志,以及将生成的交互日志传输至所述数据处理系统;以及
通过所述数据处理系统从所述第二客户端装置接收所述生成的交互日志;以及
通过所述数据处理系统,基于在所述生成的交互日志中识别到的所述一个或者多个交互事件来更新所述应用的所述记录的性能度量。
20.根据权利要求19所述的方法,进一步包括:
通过所述数据处理系统从第三客户端装置接收下载所述应用的第三请求;
响应于接收到下载所述应用的所述第三请求,通过所述数据处理系统,选择所述应用的具有最高性能度量的记录;以及
通过所述数据处理系统向所述第三客户端装置传输所述应用和播放器脚本,所述播放器脚本的接收触发所述第三客户端装置播放所述应用的具有最高性能度量的所述记录。
21.根据权利要求20所述的方法,其中,生成所述性能度量进一步包括:
识别在多个客户端装置处针对所述应用的所述记录进行播放的次数;
确定针对所述应用的所述记录进行播放的次数高于第二阈值;以及
响应于确定针对所述应用的所述记录进行播放的次数高于所述第二阈值,基于在从所述第二客户端装置接收到的所述生成的交互日志中识别到的所述一个或者多个交互事件来计算所述性能度量。
22.根据权利要求20所述的方法,其中,生成所述性能度量进一步包括:
维护用于所述应用在多个客户端装置上的多个执行记录的聚合性能模型;
响应于从所述第一客户端装置接收到所述记录,向用于所述应用在所述第一客户端装置上的所述执行记录的所述聚合性能模型中的权重分配初始值;以及
响应于从所述第二客户端装置接收到所述一个或者多个交互的所述生成的交互日志,在所述聚合性能模型中将所述权重从所述初始值调整到第二值。
23.根据权利要求20所述的方法,进一步包括:
通过所述数据处理系统,基于所述性能度量和通过所述第二客户端装置在所述应用上进行的所述一个或者多个交互事件来确定所述应用在所述第一客户端装置上的执行记录的开始时间和结束时间;
通过所述数据处理系统,基于所述开始时间和所述结束时间来设置所述应用在所述第一客户端装置上的执行记录的时间长度;以及
其中,将所述应用和所述播放器脚本传输至所述第三客户端装置进一步包括:传输具有被设置到所述开始时间和所述结束时间的所述时间长度的所述记录。
24.根据权利要求19所述的方法,进一步包括:
响应于接收到下载所述应用的所述第一请求,通过所述数据处理系统识别所述应用已经被所述第一客户端装置下载的次数;
通过所述数据处理系统确定所述应用已经被所述第一客户端装置下载的次数等于零;以及
其中,将所述记录器脚本传输至所述第一客户端装置进一步包括:响应于确定所述应用已经被所述第一客户端装置下载的次数等于零,将所述记录器脚本传输至所述第一客户端装置。
25.根据权利要求19所述的方法,其中,将所述应用和所述记录器脚本传输至所述第一客户端装置进一步包括:将所述应用和所述记录器脚本传输至所述第一客户端装置,所述记录器脚本的接收触发所述第一客户端装置记录与所述应用进行的一个或者多个第二交互事件并且将所述一个或者多个第二交互传输至所述数据处理系统;并且进一步包括:
通过所述数据处理系统,基于所述应用和在所述第一客户端装置上与所述应用进行的所述一个或者多个第二交互事件来生成所述记录。
26.根据权利要求19所述的方法,其中,将所述应用和所述记录器脚本传输至所述第一客户端装置进一步包括:将所述应用和所述记录器脚本传输至所述第一客户端装置,所述记录器脚本的接收触发所述第一客户端装置:
确定所述应用正在所述第一客户端装置上执行,
响应于确定所述应用正在所述第一客户端装置上执行,将所述应用的执行记录初始化,以及
在预定义的时间内记录在所述第一客户端装置上执行的所述应用的输出。
27.根据权利要求19所述的方法,其中,将所述应用和所述记录器脚本传输至所述第一客户端装置进一步包括:将所述应用和所述记录器脚本传输至所述第一客户端装置,所述记录器脚本的接收触发所述第一客户端装置:
监视与所述第一客户端装置上的所述应用进行的一个或者多个第二交互事件,
确定所述一个或者多个第二交互事件的数量超过预定事件数量,以及
响应于确定所述一个或者多个第二交互事件的数量超过所述预定事件数量,终止对在所述第一客户端装置上运行的所述应用的执行的记录。
28.一种用于自动选择并且分发在终端用户计算装置上执行的应用的记录的系统,包括:
数据处理系统,具有与存储器耦合的一个或者多个处理器,所述数据处理系统被配置为:
从多个第一客户端装置中的每个第一客户端装置接收下载应用的第一请求;以及
响应于接收到所述第一请求,确定存储在所述存储器存储装置中的所述应用的执行记录的数量低于阈值;
响应于确定记录数量低于所述阈值,向所述多个第一客户端装置中的每个第一客户端装置传输所述应用和记录器脚本,以生成在所述多个第一客户端装置中的对应客户端装置上运行的所述应用的执行的记录并且提供给所述数据处理系统;
针对从所述多个客户端装置中的对应客户端装置接收的所述应用的执行的每个记录,基于与对应客户端装置上的所述应用的一个或多个交互事件,生成性能度量;
使用所述多个第一客户端装置中的对应客户端装置上执行的所述应用的所述记录,维护多个记录;
在接收到来自所述多个第一客户端装置的所述应用的所述记录以及针对对应的多个客户端装置所生成的多个性能度量之后,从第二客户端装置接收下载所述应用的第二请求;
确定与所述应用的执行的多个记录相对应的数量大于所述阈值;以及
响应于确定记录的所述数量大于所述阈值,基于记录的性能度量来从所述多个记录中选择记录;以及
向所述第二客户端装置传输从所述应用的所述多个记录中选择的记录。
29.根据权利要求28所述的系统,其中,所述数据处理系统进一步配置为传输交互测量脚本,所述交互测量脚本的接收触发所述第二客户端装置:
播放在所述第一客户端装置上执行的所述应用的所述记录,
在播放所述记录之后,生成与在所述第二客户端装置上运行的所述应用进行的一个或者多个交互事件的交互日志,以及
将生成的交互日志传输至所述数据处理系统;以及
其中,所述数据处理系统进一步配置为从所述第二客户端装置接收所述生成的交互日志,并且基于在所述生成的交互日志中识别到的所述一个或者多个交互事件来更新所述应用的所述记录的性能度量。
30.根据权利要求29所述的系统,其中,所述数据处理系统进一步配置为:
从第三客户端装置接收下载所述应用的第三请求;
响应于接收到下载所述应用的所述第三请求,选择所述应用的具有最高性能度量的记录;以及
向所述第三客户端装置传输所述应用和播放器脚本,所述播放器脚本的接收触发所述第三客户端装置播放所述应用的具有最高性能度量的所述记录。
31.根据权利要求29所述的系统,其中,所述数据处理系统进一步配置为:
识别在多个客户端装置处针对所述应用的所述记录进行播放的次数;
确定针对所述应用的所述记录进行播放的次数高于第二阈值;以及
响应于确定针对所述应用的所述记录进行播放的次数高于所述第二阈值,基于在从所述第二客户端装置接收到的所述生成的交互日志中识别到的所述一个或者多个交互事件来计算所述性能度量。
32.根据权利要求29所述的系统,其中,所述数据处理系统进一步配置为:
识别在从所述第二客户端装置接收到的所述生成的交互日志中识别到的所述一个或者多个交互事件中的每一个交互事件的事件类型;以及
基于所述一个或者多个交互事件中的每一个交互事件的所述事件类型来生成所述性能度量。
33.根据权利要求29所述的系统,其中,所述数据处理系统进一步配置为:
维护用于所述应用在多个客户端装置上的多个执行记录的聚合性能模型;
响应于从所述第一客户端装置接收到所述记录,向用于所述应用在所述第一客户端装置上的所述执行记录的所述聚合性能模型中的权重分配初始值;以及
响应于从所述第二客户端装置接收到所述一个或者多个交互的所述生成的交互日志,在所述聚合性能模型中将所述权重从所述初始值调整到第二值。
34.根据权利要求29所述的系统,其中,所述数据处理系统进一步配置为:
基于所述性能度量和所述第二客户端装置与所述应用进行的所述一个或者多个交互事件来确定在所述第一客户端装置上的所述应用的所述执行记录的开始时间和结束时间;
基于所述开始时间和所述结束时间来设置所述应用在所述第一客户端装置上的所述执行记录的时间长度;以及
传输具有被设置到所述开始时间和所述结束时间的所述时间长度的所述记录。
35.根据权利要求29所述的系统,其中,所述数据处理系统进一步配置为:
将所述应用和所述记录器脚本传输至所述第一客户端装置,所述记录器脚本的接收触发所述第一客户端装置记录与所述应用进行的一个或者多个第二交互事件,并且将所述一个或者多个第二交互事件传输至所述数据处理系统;以及
基于所述应用和在所述第一客户端装置上与所述应用进行的所述一个或者多个第二交互事件来生成所述记录。
36.根据权利要求29所述的系统,其中,所述数据处理系统进一步配置为将所述应用和所述记录器脚本传输至所述第一客户端装置,所述记录器脚本的接收触发所述第一客户端装置:
监视与所述第一客户端装置上的所述应用进行的一个或者多个第二交互事件,
确定所述一个或者多个第二交互事件的数量超过预定事件数量,以及
响应于确定所述一个或者多个第二交互事件的数量超过所述预定事件数量,终止对在所述第一客户端装置上运行的所述应用的执行的记录。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2016/065026 WO2018106214A1 (en) | 2016-12-05 | 2016-12-05 | Automatically selecting and distributing recordings of applications executing on computer devices over networked environments |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108604204A CN108604204A (zh) | 2018-09-28 |
CN108604204B true CN108604204B (zh) | 2021-10-19 |
Family
ID=57629688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680040914.8A Active CN108604204B (zh) | 2016-12-05 | 2016-12-05 | 在网络环境中选择并分发在计算装置上执行的应用的记录 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11036526B2 (zh) |
EP (2) | EP3543859B1 (zh) |
CN (1) | CN108604204B (zh) |
WO (1) | WO2018106214A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10845953B1 (en) * | 2017-06-28 | 2020-11-24 | Amazon Technologies, Inc. | Identifying actionable content for navigation |
EP3627400A1 (en) * | 2018-09-20 | 2020-03-25 | Visa International Service Association | Continuous learning neural network system using rolling window |
US10708382B2 (en) * | 2018-11-08 | 2020-07-07 | Citrix Systems, Inc. | Systems and methods for latency masking via prefix caching |
US11822943B2 (en) * | 2019-01-18 | 2023-11-21 | Apple Inc. | User interfaces for presenting information about and facilitating application functions |
US11178112B2 (en) * | 2019-07-23 | 2021-11-16 | Microsoft Technology Licensing, Llc | Enforcing security policies on client-side generated content in cloud application communications |
US10922105B1 (en) * | 2020-03-02 | 2021-02-16 | International Business Machines Corporation | Realtime generated assistance video |
US11221937B1 (en) * | 2021-06-11 | 2022-01-11 | App Annie Inc. | Using machine learning model to make action recommendation to improve performance of client application |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003075178A2 (en) * | 2002-03-01 | 2003-09-12 | Sap Aktiengesellschaft | Method and system for recording user interaction with an application |
WO2007113573A3 (en) * | 2006-04-05 | 2008-12-18 | Box Uk Ltd | Automated measuring of interaction with user interfaces |
CN101399821A (zh) * | 2007-09-28 | 2009-04-01 | 国际商业机器公司 | 记录/重放系统、记录器/播放器、和方法 |
CN103152363A (zh) * | 2006-10-20 | 2013-06-12 | 思杰系统有限公司 | 用于表示层协议数据流的记录及实时回放和搜索的方法和系统 |
CN104598133A (zh) * | 2015-01-30 | 2015-05-06 | 广东欧珀移动通信有限公司 | 对象的说明书生成方法和装置 |
CN105208082A (zh) * | 2015-08-14 | 2015-12-30 | 努比亚技术有限公司 | 一种指导用户使用终端的方法及装置、终端 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7653896B2 (en) | 2004-06-30 | 2010-01-26 | Microsoft Corporation | Smart UI recording and playback framework |
US9166882B1 (en) * | 2011-12-13 | 2015-10-20 | Amazon Technologies, Inc. | Remote browsing session management |
US10003847B2 (en) * | 2016-04-22 | 2018-06-19 | Google Llc | Watch-time clustering for improving video searches, selection and provision |
-
2016
- 2016-12-05 US US15/737,264 patent/US11036526B2/en active Active
- 2016-12-05 EP EP19174779.9A patent/EP3543859B1/en active Active
- 2016-12-05 WO PCT/US2016/065026 patent/WO2018106214A1/en active Application Filing
- 2016-12-05 EP EP16819391.0A patent/EP3356942B1/en active Active
- 2016-12-05 CN CN201680040914.8A patent/CN108604204B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003075178A2 (en) * | 2002-03-01 | 2003-09-12 | Sap Aktiengesellschaft | Method and system for recording user interaction with an application |
WO2007113573A3 (en) * | 2006-04-05 | 2008-12-18 | Box Uk Ltd | Automated measuring of interaction with user interfaces |
CN103152363A (zh) * | 2006-10-20 | 2013-06-12 | 思杰系统有限公司 | 用于表示层协议数据流的记录及实时回放和搜索的方法和系统 |
CN101399821A (zh) * | 2007-09-28 | 2009-04-01 | 国际商业机器公司 | 记录/重放系统、记录器/播放器、和方法 |
CN104598133A (zh) * | 2015-01-30 | 2015-05-06 | 广东欧珀移动通信有限公司 | 对象的说明书生成方法和装置 |
CN105208082A (zh) * | 2015-08-14 | 2015-12-30 | 努比亚技术有限公司 | 一种指导用户使用终端的方法及装置、终端 |
Also Published As
Publication number | Publication date |
---|---|
WO2018106214A1 (en) | 2018-06-14 |
EP3543859A1 (en) | 2019-09-25 |
CN108604204A (zh) | 2018-09-28 |
EP3356942B1 (en) | 2019-06-05 |
US11036526B2 (en) | 2021-06-15 |
US20190286461A1 (en) | 2019-09-19 |
EP3543859B1 (en) | 2021-12-01 |
EP3356942A1 (en) | 2018-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108604204B (zh) | 在网络环境中选择并分发在计算装置上执行的应用的记录 | |
US10489395B2 (en) | Methods and systems for providing functional extensions with a landing page of a creative | |
US11677806B2 (en) | Platform-independent content generation for thin client applications | |
US11871063B2 (en) | Intelligent multi-device content distribution based on internet protocol addressing | |
US20140279075A1 (en) | Interactive advertising | |
US20230368250A1 (en) | Systems and methods for dynamically inserting content item slots in an information resource | |
US10120839B2 (en) | Methods and systems for identifying elements of a mobile application | |
EP3533228B1 (en) | Distribution of network traffic for streaming content | |
US20170017382A1 (en) | System and method for interaction between touch points on a graphical display | |
US10424273B2 (en) | Methods, systems, and media for presenting interstitial animations | |
US11625472B2 (en) | Converting static content items into interactive content items |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |