计算开发过程中的开发者时间的制作方法

文档序号:33507450发布日期:2023-03-18 05:07阅读:159来源:国知局
计算开发过程中的开发者时间的制作方法
计算开发过程中的开发者时间


背景技术:

1.本发明总体上涉及可编程计算系统,并且更具体地涉及聚合开发者活动数据以计算开发过程期间的时间的计算系统。
2.采用计算系统来跟踪员工为完成整体任务而进行的个人活动所花费的时间。监视员工花费的时间的目标是提高与完成整体任务有关的有效性、效率和/或生产力。计算机系统可以接收用户输入的关于任务描述和完成任务所花费的时间的时间数据。确定花费在工作项上的活跃时间的能力对于提供对软件开发过程的有效性的洞察是重要的。


技术实现要素:

3.本发明的各实施例涉及用于计算软件应用上关于第一工作项的活跃时间的计算机实现的方法、计算系统和计算机程序产品。计算机实现的方法的非限制性示例包括从软件开发应用检索活动数据和由外围设备生成的多个输入信号。该方法还包括确定输入数据和由活动数据描述的任何事件之间的因果关系。响应于因果关系的确定,计算所述多个输入信号中的初始信号与最终信号之间的第一时间间隔。将第一时间间隔与估计的时间间隔进行比较。基于所述比较确定第二工作项的进度表,其中所述第一时间间隔与第一工作项相关。
4.本发明的其他实施例在计算机系统和计算机程序产品中实现上述方法的特征。
5.通过本发明的技术实现了附加技术特征和优点。在本文中详细描述了本发明的实施例和方面,并且这些实施例和方面被认为是所要求保护的主题的一部分。为了更好的理解,参考详细说明和附图。
附图说明
6.在说明书结尾处的权利要求中特别指出并明确要求保护本文所述的独占权利的细节。从以下结合附图进行的详细描述中,本发明的实施例的前述和其他特征和优点将变得显而易见,在附图中:
7.图1示出了根据本发明一个或多个实施例的用于监视开发者的工作活动的系统的组件的框图;
8.图2示出了根据本发明的一个或多个实施例的用于确定由开发者执行的活跃的工作的过程的流程图;
9.图3示出根据本发明的一个或多个实施例的用于调度工作项的过程的流程图;
10.图4描绘了根据本发明的一个或多个实施例的云计算环境;
11.图5描绘了根据本发明的一个或多个实施例的抽象模型层;以及
12.图6描绘了用于实现本发明的一个或多个实施例的计算机系统的框图。
13.本文所描绘的图是说明性的。在不偏离本发明的情况下,可以对这里所描述的图或操作有许多变化。例如,可以以不同的顺序执行动作,或者可以添加、删除或修改动作。而且,术语“耦接”及其变形描述了在两个元件之间具有通信路径,并且不暗示元件之间的直
接连接,在它们之间没有介入元件/连接。所有这些变型被认为是说明书的一部分。
具体实施方式
14.本发明的一个或多个实施例提供一种计算系统,所述计算系统监视开发者使用软件开发应用程序来完成第一工作项所花费的总时间。该系统将开发者活跃地参与软件开发应用的时间和应用执行自动功能的时间分开。所述系统基于活跃地参与所述软件开发应用程序以完成所述第一工作项所花费的时间来计算所述开发者的效率。
15.在现代软件开发过程中,软件公司建立流水线来管理代码、测试和部署软件所必需的任务。流水线是预定义的、自动化的、和可重复的过程,其并入了对不同软件开发应用执行的工作。公司还采用时间跟踪软件来帮助跟踪开发者对完成工作项目的软件开发应用的参与。时间跟踪软件可以依赖于来自开发者的时间条目。然而,荣誉系统时间条目在精确地监视开发者活跃地参与软件开发应用的时间方面是无效的。常规的时间跟踪系统不区分开发者活跃地使用软件开发应用的时间和软件开发应用执行自动功能的时间。
16.本发明的一个或多个实施例通过提供聚合来自不同软件开发应用的数据的系统来解决上述缺点中的一个或多个。该系统区分所花费的活跃时间与应用执行自动功能的时间。活跃时间包括需要开发者活跃参与的时间,例如代码起草和代码编辑。自动功能时间包括不需要开发者参与的活动的时间,包括编译代码、自动代码错误检查和执行代码。系统确定在工作项上花费的总活跃时间并随后向任何用户返回反馈。
17.现在转向图1,根据本发明的一个或多个实施例,一般地示出用于确定软件开发应用上的活跃时间的系统100。系统100包括效率计算单元102,用于确定软件开发者在工作项上花费的时间。系统100包括一套应用编程接口104以使系统100能够与不同软件开发应用交互。系统100还包括用于调度软件开发工作项的开发调度器单元106。系统100可操作以经由网络108从第一开发者计算设备110和第二开发者计算设备112传输和收集数据。系统100可在计算设备上本地执行或经由外部连接(例如,在服务器50上)执行。可以理解,尽管仅示出了两个开发者计算设备110 112,但系统100可操作来与两个以上开发者计算设备通信。
18.效率计算单元102可经由来自该套应用编程接口(api)104的相应应用编程接口与软件开发应用通信。效率计算单元102可使用相应的api来从开发者所使用的每个软件开发应用检索活动数据。活动数据包括关于在应用的操作期间使用的功能和文件的事件的描述。事件是可由程序检测并可由程序内部或外部源启动的任何发生的事情。例如,事件可以包括来自外围设备的外部输入、到外围设备的连接或断开连接、命令、达到存储器容量、编程错误或其他计算发生的事情。
19.活动数据包括日志文件和审计踪迹(trail),其由软件开发应用、操作系统或第三方应用生成。日志文件包括软件开发应用执行什么动作以及谁发起该动作。审计踪迹包括发生的事件序列,以便软件开发应用处于特定状态。活动数据包括应用特定的审计踪迹并且可以被存储为文本文件或数据库表。活动数据还包括功能日志,所述功能日志包括可能不包括在审计踪迹中的事件,例如,调试消息和异常。活动数据还可以包括数据库或存储器日志,其包括诸如数据库查询、数据改变和数据库功能改变的事件。活动数据可以包括访问日志,所述访问日志包括诸如对应用的访问和访问软件开发应用的用户的ip地址的事件。在许多情况下,活动数据是纯文本形式。在这些情况下,效率计算单元102可采用自然语言
(nlp)处理技术来分析活动数据。例如,效率计算单元可以采用词语嵌入模型和领域专用字典来导出活动数据的文本的含义。活动数据进一步包括包含每个事件的时间戳数据。如果使用多于一个功能,则活动数据包括针对每个功能发生的相应事件。效率计算单元102可用于从包括时间跟踪功能但不一定作为核心功能的任何软件开发应用接收活动数据。
20.效率计算单元102可通过检测来自外围设备(例如,键盘、鼠标、触摸屏)的输入来跟踪开发者的活动。效率计算单元102包括击键记录功能,其可检测由开发者在软件开发应用的操作期间输入的每个击键、鼠标点击和触摸屏输入。该功能包括确定外围设备的类型以及基于输入信号的输入。例如,效率计算单元可基于输入信号区分鼠标点击和键盘敲击。此外,效率计算单元102可基于输入信号确定输入。例如,效率计算单元102可基于输入信号确定开发者在键盘上写入单词“鼠标”。
21.效率计算单元102能够通过比较来自外围设备的活动数据和输入信号进一步确定软件开发应用是操作自动功能还是开发者活跃地参与应用。在本发明的一些实施例中,效率计算单元102可被布置为神经网络,并采用机器学习算法来检测来自外围设备的输入信号与软件开发应用中的事件之间的关系。效率计算单元102可应用机器学习算法并接收来自外围装置的输入信号和活动数据(例如,审计踪迹)作为输入。效率计算单元102可被训练成预测输入信号与活动数据中描述的事件之间是否存在关系。如果来自外围设备的输入信号引起记录到活动数据中的可检测事件的生成,则存在关系。输入信号与活动数据中描述的事件之间是否存在关系是基于可量化的结果是否在置信区间的统计下限和上限内。在开发者离线工作的情况下,效率计算单元102可从外围设备接收输入信号的日志并从存储器存储设备接收活动数据。
22.效率计算单元102可被训练成区分发起自动功能的开发者和活跃地使用软件开发应用的功能的开发者。例如,效率计算单元102可被训练成依赖于不同参数,诸如输入信号的频率、输入信号的数目、由输入信号引起的事件的性质、或各种其他相关参数。例如,如果效率计算单元102接收来自第一开发者的计算设备110的输入信号和来自软件应用的审计踪迹,则该审计踪迹可指示该输入信号致使发起自动功能。在这种情况下,效率计算单元102可被训练来识别开发者仅启动自动功能并且开发者不在软件开发应用上活跃地工作。如果软件开发应用正在执行自动化功能,则活动数据仍将示出在自动化功能的执行期间检测到的事件的记录。在这种情况下,效率计算单元102仍然可以从任何外围设备接收任何输入信号。然而,效率计算单元102被训练来识别不是由输入信号引起的而是由软件开发应用的自动功能引起的事件。
23.在效率计算单元102确定开发者活跃地参与的情况下,它可以计算来自外围设备的初始输入信号与来自任何外围设备的最终输入信号之间的时间间隔的长度。效率计算单元102还可计算每个连续输入信号之间的单位时间间隔。如果任何单位时间间隔超过阈值量(例如,开发者没有在半小时内输入任何输入),那么效率计算单元102可从初始输入信号与最终输入信号之间的时间间隔扣除单位时间间隔(不活动时间)。在减去不活动时间之后计算的时间值被认为是活跃时间值。
24.效率计算单元102可计算开发者正朝着工作项工作的每个实例的活跃时间值的总和。效率计算单元102可计算开发者针对相同工作项使用的每个软件开发应用的每个功能的活跃时间值。换言之,开发者可能偏好来自一个软件开发应用的代码编辑器的图形用户
界面,并且偏好另一软件开发应用的测试能力。效率计算单元102可计算两个软件开发应用的活跃时间花费值并生成两者的总和。这套应用编程接口104使效率计算单元能够与多个软件开发应用通信,即使在一个应用与另一个应用不兼容的情况下。api使得效率计算单元102能够检索活动数据和输入信号数据,而不管一个软件开发应用与另一个软件应用的兼容性如何。
25.效率计算单元102还可基于同时对一个以上工作项工作的开发者来确定是否需要调整活跃时间花费值。周期性地,开发者可同时操作多于一个软件开发应用、使用应用的多于一个功能或使用一个功能来作用于多于一个工作项。例如,软件开发者可使用代码编辑器来编辑两个不同工作项的代码。效率计算单元102可基于工作项标识区分第一工作项和第二工作项。工作项标识是用于识别相应工作项的数字、标题、代码或字的集合。软件开发者将代码文件存储在储存库中并且在需要时检索代码文件。从存储库检索的每个代码文件包括路径名,该路径名是包括每个代码文件在存储库中的位置的字符串。该路径名可以包括工作项标识。如果开发者已经为工作项创建了一个以上的代码文件,则每个代码文件可以包括路径名,该路径名包括工作项标识。效率计算单元102可以分析路径名并且将路径名的部分与工作项的主列表进行比较。例如,路径名可以包括
“…
string/acme2/elevatorsensor/
…”
,并且工作项标识可以是“elevatorsensor”。效率计算单元102可以在路径名中搜索匹配字符串“elevatorsensor”的字符串,以确定开发者已经检索的代码文件的工作项。因此,即使开发者正在审阅另一开发者的代码,效率计算单元102也可将时间归因于正确的工作项。
26.效率计算单元102可操作用于从多个软件开发应用接收活动数据。效率计算单元102可确定开发者正在使用软件开发应用来完成第一工作项。效率计算单元102可进一步确定开发者也在使用软件开发应用来完成第二工作项。在效率计算单元102确定开发者正在对第二工作项工作的情况下,它可以计算开发者对第二工作项工作的时间长度。用于计算时间的方法如上文使用输入信号的时间戳所描述,只是未从可归因于第二工作项的时间间隔减去不活动时间。从活跃时间花费值中减去花费在第二工作项上的时间。
27.根据本发明的一个或多个实施例,效率计算单元102可进一步确定开发者关于工作项的完成的效率。效率计算单元102可操作用于确定开发者在工作项上花费的实际时间值并将该值与估计的时间长度进行比较。效率计算单元102可确定开发者的活跃时间是在所估计的时间长度的上阈值时间内还是下阈值时间内。如果开发者的活跃时间花费值大于估计时间长度,则可认为开发者具有低于平均效率。另一方面,如果开发者的活跃时间花费值低于估计的时间长度,则可认为开发者具有高于平均效率。所估计的时间长度可由用户(例如,主管或程序管理器)确定。
28.短语“神经网络”和“机器学习”广泛地描述从数据学习的电子系统的功能。机器学习系统、引擎或模块可包括机器学习算法,所述机器学习算法可例如在外部云环境(例如,云计算环境50)中被训练以学习当前未知的输入和输出之间的函数关系。在一个或多个实施例中,机器学习功能可以使用效率计算单元102来实现,效率计算单元102具有被训练来执行当前未知功能的能力。在机器学习和认知科学中,神经网络是由动物(并且特别是脑)的生物神经网络启发的统计学学习模型的家族。神经网络可以用于估计或近似取决于大量输入的系统和函数。
29.效率计算单元102可以被实施为互连处理器元件的所谓的“神经元形态”系统,这些系统充当仿真的“神经元”并且在彼此之间以电子信号的形式交换“消息”。类似于在生物神经元之间传递消息的突触神经递质连接的所谓的“可塑性”,效率计算单元102中在模拟神经元之间传递电子消息的连接被提供有与给定连接的强度或弱点对应的数字权重。在训练期间,可基于经验来调整和调谐权重,从而使效率计算单元102适应输入并且能够学习。在通过由网络的设计者确定的函数进行加权和转换之后,然后将这些输入神经元的激活传递至其他下游神经元,这些下游神经元通常被称为“隐藏”神经元。重复该过程,直到输出神经元被激活。激活的输出神经元确定读取了哪个字符。
30.应用编程接口套件104使得效率计算单元102能够与不同的软件开发应用通信。应用编程接口(api)是使效率计算单元102能够与软件开发应用通信的软件中介。效率计算单元102可选择适当的api来与软件开发应用通信。所选择的应用编程接口使得效率计算单元102能够请求和接收数据以确定软件开发应用的描述和使用该应用所花费的时间。例如,效率计算单元102可经由api请求并从软件开发应用接收日志文件或审计踪迹。
31.开发调度器单元106可操作用于至少部分地基于所计算的活跃时间花费值来向开发者调度工作项。开发调度器单元106可接收正在开发的软件应用的递送调度。基于预期完成日期,开发调度器单元106可建立工作项的目标完成日期。调度器单元106可创建或调整工作订单并将该工作订单传送给开发者。工作订单可以是电子邮件、在电子日历上创建的项目或其他电子通信的形式。
32.系统100能够经由通信网络108与第一开发者计算设备110和第二开发者计算设备112可操作地通信。系统100可以经由通信端口、有线收发器、无线收发器和/或网络卡连接至通信网络。通信网络108可以使用诸如以太网、光纤、微波、xdsl(数字用户线路)、无线局域网(wlan)技术、无线蜂窝技术、5g、蓝牙技术和/或任何其他适当技术的技术来传输数据。
33.计算单元102可操作地经由通信网络108与第一开发者计算设备110和第二开发者计算设备112通信。效率计算单元102还可例如基于mac地址、ip地址、注册码或其组合的其他适当标识来识别每个计算设备。效率计算单元102还可与在第一和第二开发者计算设备110 112上操作的一个或多个软件开发应用可操作地通信。效率计算单元102可基于哪个开发者登录到相应应用来识别哪个开发者正在使用哪个软件开发应用。如果开发者登录到多个软件开发应用中,则效率计算单元102可基于登录到每个应用来识别开发者身份。
34.参考图2,图示了根据本发明的一个或多个实施例的用于确定活跃时间花费值的方法200。在框202,系统与用户的计算设备处于可操作的通信并且连续地从在用户的计算机的计算设备上运行的任何软件开发应用接收活动数据。活动数据包括所使用的软件应用的描述、开发者所使用的软件应用的功能、以及指示每个功能的开始和结束时间的时间数据。活动数据可被包括在软件开发应用的日志文件或审计踪迹中。系统可以进一步从连接到用户的计算设备的外围设备接收关于输入信号的信息。
35.在框204,系统确定开发者活跃地使用每个软件开发应用的时间长度。该系统可通过从外围设备检索活动数据和输入数据来计算活跃时间花费值。该系统可应用机器学习算法并接收来自外围设备的输入信号和活动数据(例如,审计踪迹)作为输入。训练该系统以预测在来自用户的外围设备的输入信号与在活动数据中描述的事件之间是否存在关系。如果来自外围设备的输入信号引起记录到活动数据中的事件的生成,则系统将找到输入信号
与事件之间的关系。系统然后可以计算来自外围设备的初始输入信号与来自任何外围设备的最终输入信号之间的时间间隔的长度。该系统可以进一步计算每个连续输入信号之间的单位时间间隔。如果任何单位时间间隔超过阈值量,则从初始输入信号和最终输入信号之间的时间间隔中减去单位时间间隔。
36.在框206,系统验证开发者是对第一工作项工作还是对第二工作项工作。该系统可以分析开发者在其上工作的每个文件的路径名并且将该路径名的多个部分与工作项的主列表进行比较。在没有找到第二工作项的路径名中,不需要进一步分析。如果发现第二工作项的路径名,则系统分析输入数据以检测与第二工作项相关的初始和最终时间戳。系统计算来自任何外围设备的初始时间信号与最终时间信号之间的第二工作项时间间隔。系统随后在框208从第一工作项的活跃时间花费值减去第二工作项的时间间隔。
37.参考图3,示出了用于调整流水线调度的方法300。在框302,系统将开发者的当前活跃时间花费值与估计的活跃时间值进行比较。估计的活跃值是完成工作项所需的总活跃时间的估计量。估计的活跃时间值可以由用户(例如,项目经理或监督者)确定。
38.在框304,系统确定开发者的实际花费时间是否在小于估计的花费时间值的阈值内。阈值可以由用户(例如,项目经理)确定。阈值可以是固定时间或估计的活跃时间值的百分比。例如,阈值是五小时并且估计的活跃时间花费值是三十小时。系统可确定开发者是否具有二十五小时的活跃时间。例如,如果阈值为20%,则系统还可确定开发者是否具有至少二十五小时的活跃时间。
39.在框306,如果开发者所花费的实际时间在所估计活跃时间值的阈值内,那么系统调度第二工作项。例如,如果开发者已经在工作项目上工作了二十五小时,则开发者处于所估计的三十小时中的五小时阈值。响应于工作二十五小时,可在开发者完成第一工作项之前为开发者调度第二工作项。在框308,如果开发者不在花费阈值量的平均活跃时间的阈值内,那么系统制止调度第二工作项。
40.应当理解,虽然本公开包括关于云计算的详细描述,但是本文所引用的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知的或以后开发的任何其他类型的计算环境来实现。
41.云计算是服务交付的模型,用于使得能够方便地、按需地网络访问可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池,所述可配置计算资源可以以最小的管理努力或与所述服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
42.特性如下:
43.按需自助服务:云消费者可以单方面地根据需要自动地提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者的人类交互。
44.广泛的网络接入:能力可通过网络获得并且通过标准机制接入,该标准机制促进异构瘦客户机平台或厚客户机平台(例如,移动电话、膝上型计算机和pda)的使用。
45.资源池:提供者的计算资源被池化以使用多租户模型来服务于多个消费者,其中不同的物理和虚拟资源根据需要动态地指派和重新指派。存在位置独立性的感觉,因为消费者通常不具有对所提供的资源的确切位置的控制或了解,但可能能够以较高抽象级别(例如,国家、州或数据中心)指定位置。
46.快速弹性:能够快速和弹性地提供能力,在一些情况下自动地快速缩小和快速释放以快速放大。对于消费者而言,可用于供应的能力通常显得不受限制并且可以在任何时间以任何数量购买。
47.测量的服务:云系统通过在适合于服务类型(例如,存储、处理、带宽和活跃用户账户)的某个抽象级别处利用计量能力来自动控制和优化资源使用。可以监视、控制和报告资源使用,为所利用的服务的提供者和消费者提供透明度。
48.服务模型如下:
49.软件即服务(saas):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。可通过诸如web浏览器(例如,基于web的电子邮件)之类的瘦客户端接口从不同客户端设备访问应用。消费者不管理或控制包括网络、服务器、操作系统、存储或甚至单独的应用能力的底层云基础设施,可能的例外是有限的用户特定应用配置设置。
50.平台即服务(paas):提供给消费者的能力是将消费者创建的或获取的使用由提供商支持的编程语言和工具创建的应用部署到云基础设施上。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但是对所部署的应用和可能的应用托管环境配置具有控制。
51.基础设施即服务(iaas):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其他基本计算资源,所述软件可以包括操作系统和应用。消费者不管理或控制底层云基础设施,而是具有对操作系统、存储、所部署的应用的控制以及对所选联网组件(例如,主机防火墙)的可能受限的控制。
52.部署模型如下:
53.私有云:云基础架构仅为组织运作。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
54.社区云:云基础架构被若干组织共享并支持共享了关注(例如,任务、安全要求、策略、和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
55.公共云:使云基础架构对公众或大型行业组可用,并且由出售云服务的组织拥有。
56.混合云:云基础架构是两个或更多个云(私有、社区或公共)的组合,这些云保持唯一实体但通过使数据和应用能够移植的标准化或专有技术(例如,云突发以用于云之间的负载平衡)绑定在一起。
57.云计算环境是面向服务的,集中于无状态、低耦合、模块化和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
58.现在参考图4,描述了说明性云计算环境50。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点10,本地计算设备诸如例如个人数字助理(pda)或蜂窝电话54a、台式计算机54b、膝上型计算机54c和/或汽车计算机系统54n。节点10可彼此通信。它们可以物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上所述的私有云、社区云、公共云或混合云、或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为云消费者不需要为其维护本地计算设备上的资源的服务。应当理解,图4中所示的计算设备54a-n的类型仅旨在是说明性的,并且计算节点10和云计算环境50可通过任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的
计算机化设备通信。
59.现在参见图5,示出了由云计算环境50(图4)提供的一组功能抽象层。应提前理解,图5中所示的组件、层和功能仅旨在是说明性的,并且本发明的实施例不限于此。如所描述的,提供以下层和对应功能:
60.硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:大型机61;基于risc(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和联网组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
61.虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储器72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作系统74;以及虚拟客户端75。
62.在一个示例中,管理层80可以提供以下描述的功能。资源供应81提供用于在云计算环境内执行任务的计算资源和其他资源的动态采购。计量和定价82在云计算环境内利用资源时提供成本跟踪,并为这些资源的消费开账单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务水平管理84提供云计算资源分配和管理,使得满足所需的服务水平。服务水平协议(sla)规划和履行85提供根据sla预期未来需求的云计算资源的预安排和采购。
63.工作负载层90提供可以利用云计算环境的功能的示例。可以从该层提供的工作负荷和功能的示例包括:地图和导航91;软件开发和生命周期管理92;虚拟课堂教育交付93;数据分析处理94;事务处理95;以及聚合开发者日志数据96。
64.应当理解,本公开能够结合现在已知或以后开发的任何其他类型的计算环境来实现。例如,图6描绘了用于实施本文所描述的技术的处理系统600的框图。在示例中,处理系统600具有一个或多个中央处理单元(处理器)621a、621b、621c等。(统称为或一般地称为(一个或多个)处理器621和/或(一个或多个)处理设备)。在本公开的各方面中,每个处理器621可包括精简指令集计算机(risc)微处理器。处理器621经由系统总线633耦合到系统存储器(例如,随机存取存储器(ram)624)和不同其他组件。只读存储器(rom)622耦合到系统总线633并且可以包括基本输入/输出系统(bios),其控制处理系统600的某些基本功能。
65.进一步描绘的是耦合到系统总线633的输入/输出(i/o)适配器627和网络适配器626。i/o适配器627可以是与硬盘623和/或存储设备625或任何其他类似组件通信的小型计算机系统接口(scsi)适配器。i/o适配器627、硬盘623和存储设备625在本文中统称为大容量存储设备634。用于在处理系统600上执行的操作系统640可存储在大容量存储装置634中。网络适配器626将系统总线633与外部网络636互连,使得处理系统600能够与其他这样的系统通信。
66.显示器(例如,显示监视器)635通过显示适配器632连接到系统总线633,显示适配器632可包括用于改善图形密集型应用的性能的图形适配器和视频控制器。在本公开的一个方面中,适配器626、627和/或632可以连接到经由中间总线桥(未示出)连接到系统总线633的一个或多个i/o总线。用于连接诸如硬盘控制器、网络适配器和图形适配器之类的外围设备的合适的i/o总线通常包括诸如外围组件互连(pci)之类的公共协议。附加输入/输出设备被示为经由用户接口适配器628和显示适配器632连接到系统总线633。输入设备629
(例如,键盘、麦克风、触摸屏等)、输入指针630(例如,鼠标、触控板、触摸屏等)和/或扬声器631可以经由用户接口适配器628互连到系统总线633,用户接口适配器628可以包括例如将多个设备适配器集成到单个集成电路中的超级i/o芯片。
67.在本公开的一些方面,处理系统600包括图形处理单元637。图形处理单元637是经设计以操纵和改变存储器以加速预期用于输出到显示器的帧缓冲器中的图像的创建的专用电子电路。一般来说,图形处理单元637在操纵计算机图形和图像处理时是非常高效的,并且具有高度并行的结构,该结构使得它对于并行完成大数据块的处理的算法而言比通用cpu更有效。
68.由此,如此处所配置的,处理系统600包括处理器621形式的处理能力、包括系统存储器(例如,ram624)和大容量存储器634的存储能力、诸如键盘629和鼠标630之类的输入装置、以及包括扬声器631和显示器635的输出能力。在本公开的一些方面,系统存储器(例如,ram624)和大容量存储设备634的一部分共同存储操作系统640以协调处理系统600中示出的不同组件的功能。
69.本文参考相关附图描述了本发明的各种实施例。在不脱离本发明的范围的情况下,可设计本发明的替代实施例。在以下描述和附图中,在元件之间阐述了各种连接和位置关系(例如,上方、下方、相邻等)。除非另有规定,否则这些连接和/或位置关系可以是直接或间接的,并且本发明不打算在这方面进行限制。因此,实体的连接可以指直接的或间接的连接,并且实体之间的位置关系可以是直接的或间接的位置关系。此外,本文描述的各种任务和过程步骤可以并入具有本文未详细描述的附加步骤或功能的更全面的程序或过程中。
70.本文描述的一种或多种方法可以用任何以下技术或以下技术的组合来实现,每个技术都是本领域公知的:具有用于对数据信号实现逻辑功能的逻辑门的分立逻辑电路、具有适当组合逻辑门的专用集成电路(asic)、可编程门阵列(pga)、现场可编程门阵列(fpga)等。
71.为了简洁起见,涉及制造和使用本发明的方面的常规技术可以或可以不在本文中详细描述。具体地,用于实现本文所描述的不同技术特征的计算系统和特定计算机程序的各个方面是众所周知的。因而,为了简洁起见,许多常规实施细节在本文中仅简要提到或完全省略,而不提供众所周知的系统和/或过程细节。
72.在一些实施例中,各种功能或动作可以在给定位置处发生和/或与一个或多个装置或系统的操作结合发生。在一些实施例中,可以在第一设备或位置处执行给定功能或动作的一部分,并且可以在一个或多个附加设备或位置处执行该功能或动作的剩余部分。
73.本文中使用的术语仅用于描述具体实施方式的目的,而并非旨在进行限制。如本文中使用的,除非上下文另有明确指示,否则单数形式“一”、“一个”和“该”旨在也包括复数形式。还应当理解,当在本说明书中使用术语“包括”和/或“包含”时,其指定所述特征、整体、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、整体、步骤、操作、元件组件和/或其组合的存在或添加。
74.以下权利要求中的所有装置或步骤加上功能元件的对应结构、材料、动作和等效物旨在包括用于结合如具体要求保护的其他要求保护的元件来执行所述功能的任何结构、材料或动作。本公开已出于说明和描述的目的而呈现,但并不旨在是详尽的或限于所公开的形式。在不背离本公开的范围的情况下,许多修改和变化对于本领域普通技术人员来说
是显而易见的。选择和描述这些实施例以便最好地解释本公开的原理和实际应用,并且使本领域的其他普通技术人员能够针对具有适合于所预期的特定用途的不同修改的不同实施例来理解本公开。
75.此处所描绘的图是说明性的。在不背离本公开的情况下,可以对本文所述的图或步骤(或操作)进行许多变化。例如,可以以不同的顺序执行动作,或者可以添加、删除或修改动作。而且,术语“耦接”描述了在两个元件之间具有信号路径,并且不暗示元件之间的直接连接,其间没有中间元件/连接。所有这些变型被认为是本公开的一部分。
76.以下定义和缩写将用于解释权利要求书和说明书。如在本文中使用的,术语“包括”、“包含”、“组成”、“具有”、“拥有”、“含有”或“容纳”或其任何其他变体旨在涵盖非排他性的包括。例如,包含一系列要素的组合物、混合物、工艺、方法、物品或设备不必仅限于那些要素,而是可以包括未明确列出的或这种组合物、混合物、工艺、方法、物品或设备固有的其他要素。
77.此外,术语“示例性的”在本文中用于表示“用作示例、实例或例证”。本文中描述为“示例性”的任何实施方式或设计不一定被解释为优于或优于其他实施方式或设计。术语“至少一个”和“一个或多个”应理解为包括大于或等于一的任何整数,即。一个、两个、三个、四个等。术语“多个”应理解为包括大于或等于二的任何整数,即,两个、三个、四个、五个等。术语“连接”可包括间接“连接”和直接“连接”。
78.术语“约”、“基本上”、“大致”及其变型旨在包括与基于提交申请时可用的设备的特定量的测量相关联的误差程度。例如,“约”可以包括给定值的
±
8%或5%、或2%的范围。
79.本发明可以是任何可能的技术细节集成度的系统、方法和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质(或多个介质)。
80.计算机可读存储介质可为可保留和存储供指令执行装置使用的指令的有形装置。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式紧凑盘只读存储器(cd-rom)、数字通用盘(dvd)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
81.本文中所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
82.用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构
(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如smalltalk、c++等)和过程程序设计语言(诸如“c”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(lan)或广域网(wan))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
83.下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
84.这些计算机可读程序指令可被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的或多个方框中规定的功能/动作的方面的指令的制造品。
85.也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
86.附图中的流程图和框图示出了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
87.已经出于说明的目的呈现了本发明的各种实施方式的描述,但并不旨在是详尽的或者限于所公开的实施方式。在不脱离所描述的实施例的范围的情况下,许多修改和变化对于本领域普通技术人员来说是显而易见的。本文使用的术语被选择来最好地解释实施例的原理、实际应用或优于市场中发现的技术的技术改进,或者使得本领域普通技术人员能够理解本文描述的实施例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1