作业调度和监测的制作方法

文档序号:11450837阅读:196来源:国知局
作业调度和监测的制造方法与工艺



背景技术:

处理大量数据或所谓的大数据以收集有价值的见解首先涉及转换数据。通过创建、调度和执行一个或多个作业,数据被转换成可用于由商业智能端点(诸如仪表板)发布或消耗的形式。在该上下文中,作业是包括一个或多个转换操作的针对数据的工作单元。通常,作业由数据开发者、数据架构师、商业智能架构师等手动编码。随后,作业可以被调度和执行。



技术实现要素:

以下呈现简化的总结,以便提供对所公开的主题的一些方面的基本理解。这个总结不是一个广泛的概述。其并非意图标识关键/至关重要的要素,也并非意图描绘所要求保护的主题的范围。其唯一目的是以简化的形式呈现一些概念,作为稍后呈现的更详细描述的序言。

简言之,主题公开涉及作业调度和监测。作业可以被调度用于执行,并且产生可视化,其允许用户查看和与作业调度和执行交互。根据一方面,响应于作业的选择,可以基于数据依赖性自动确定一个或多个相关作业。随后,可以突出显示所选择的作业以及相关作业。也可以确定和呈现执行状态,例如,使得能够区分成功和失败的作业执行。此外,响应于选择失败的作业运行,可以标识一个或多个相关的失败作业运行或被预测为失败的作业运行。可以随后突出显示所选择的失败的作业运行和相关的失败的作业运行或者被预测为失败的作业运行。

为了实现前述和相关目的,本文中结合以下描述和附图描述要求保护的主题的某些说明性方面。这些方面指示可以实践主题的各种方式,所有这些方式都意图在所要求保护的主题的范围内。当结合附图考虑时,从下面的详细描述中,其他的优点和新颖特征可以变得显而易见。

附图说明

图1是作业系统的框图。

图2是代表性用户界面组件的框图。

图3是代表性调度组件的框图。

图4是代表性调度器组件的框图。

图5是代表性监测器组件的框图。

图6是用于作业驱动的调度和监测的界面的示例性屏幕截图。

图7是区分相关作业的界面的示例性屏幕截图。

图8是区分相关作业失败的界面的示例性屏幕截图。

图9是产生图表视图并且区分相关作业和数据的界面的示例性屏幕截图。

图10是用于数据驱动的调度和监测的界面的示例性屏幕截图。

图11是作业系统的框图。

图12是调度和监测作业的方法的流程图。

图13是区分相关作业的方法的流程图。

图14是区分成功和失败的作业执行的方法的流程图。

图15是支持对调度链进行故障排除的方法的流程图。

图16是区分相关作业和数据集的流程图。

图17是作业的数据驱动处理的方法的流程图。

图18是示出用于主题公开的各方面的合适的操作环境的示意性框图。

具体实施方式

下面的细节总体上涉及作业调度和监测。作业对应于至少一个数据转换操作。可以例如结合调度以及监测作业的执行来在界面中的显示上呈现一个或多个作业。例如,可以在时间线视图上呈现作业,以指示要在何时执行作业,作业已经在何时被执行,以及作业的执行时间长度。可以选择作业,其后基于作业之间的数据依赖性自动标识相关作业并且将其呈现给用户。相关作业可以包括依赖于所选择的作业的作业和/或所选择的作业所依赖的作业。这有助于用户有效地获取有关作业调度的信息和与该信息交互。除了数据依赖性信息之外,可以捕获执行状态,使得能够区分被执行或被预测为成功执行的作业与失败或被预测为失败的作业。此外,可以选择失败的作业运行,其后可以基于数据依赖性、状态和调度信息来自动标识失败或被预测为失败的相关作业运行。随后,可以突出显示所选择的失败的作业运行、相关的失败的作业运行、或者被预测为失败的作业运行。因此,提供了对调度链进行故障排除的方便的方法。此外,附加视图也可以至少利用依赖性数据。例如,作业或作业管线的图表可以采用依赖性信息来标识作业家族(lineage),作业家族包括由选择作业使用的作业和数据集以及依赖于选择作业的作业和数据源。这些和其他方面至少帮助用户有效地调度和监测作业执行以及减少错误。

现在参考附图更详细地描述主题公开的各个方面,其中相同的附图标记通常始终指代相同或相应的元件。然而,应当理解,附图和与其有关的详细描述并非意图将所要求保护的主题限制于所公开的特定形式。相反,其意图在于涵盖落入所要求保护的主题的精神和范围内的所有修改、等同物和替代物。

首先参考图1,示出了作业系统100。作业系统100提供用于包括数据转换操作的作业的调度、执行和监测的装置。作业系统包括用户界面组件110、数据储存库120、调度器组件130、执行组件140和监测器组件150。用户界面组件110被配置为允许用户查看、规定和控制作业。在一个实例中,用户界面110被配置为提供定义作业或作业管线的机制。作为该定义的一部分,可以规定一个或多个关系,包括作业所依赖的一个或多个数据集以及由作业产生的输出数据集。包括数据依赖性信息的作业可以被保存在作为计算机可读存储介质的数据储存库120中。调度器组件130被配置为鉴于关于作业以及作业之间的关系规定的调度来调度作业用于执行。调度可以被提供给用户界面用于显示,并且用户可以与调度交互以获取特定信息并且可选地修改调度。调度器组件130启动由执行组件140的作业处理。执行组件140可以包括使得作业能够在计算机上执行的软件和硬件资源的集合。作业执行的结果可以存储在数据储存库120中。此外,监测器组件150可以监测由执行组件140的作业执行。例如,监测器组件150可以标识作业状态,诸如执行失败还是成功。此外,监测器组件150可以获取关于处理作业的计算资源利用率。由监测器组件150获取的数据或信息可以存储在数据储存库120中,并且被使得可用于用户界面组件110用于呈现。

图2更详细地描绘了代表性用户界面组件110。用户界面组件110包括作者组件210和调度组件220。作者组件210被配置为允许用户规定作业和包括一组一个或多个相关作业的管线,其中第一作业的输出可选地向第二作业提供输入。根据实施例,作者组件210可以提供用于图表化地创作作业和管线的交互式视觉工作区或画布。例如,数据集可以被表示为圆柱体并且通过箭头连接到表示作业的立方体,作业消耗数据集并且产生修改后的数据集。基本上,用户可以绘制数据集和作业之间的关系图。这导致可以节省与理解关系并且最终规定管线相关的时间的直观的体验。根据其他方面,作者组件210可以被实现为接受程序代码的代码编辑器或者规定作业和作业之间的关系的一个或多个对话框。调度组件220被配置为呈现关于调度作业用于执行和监测执行的可视化。

将注意力转向图3,更详细地示出了代表性调度组件220以便于清楚和理解。调度组件220包括视图组件310、更新组件320、相关作业组件330、修改组件340和日志组件350。视图组件310被配置为呈现被调度用于执行的作业的至少一个视图。根据一方面,视图可以对应于对按照执行的时间排序的一组作业进行可视化的时间线,执行包括调度的执行和完成的执行。这样的时间线还可以使得作业执行的长度能够被可视化。

更新组件320被配置为关于作业执行来更新由视图组件310产生的可视化或者使得由视图组件310产生的可视化最新。例如,更新组件320可以改变可视化以反映已经执行的作业。在一个实施例中,更新组件320可以与视图组件310交互以包括表示当前时间的线,其中调度但未执行的作业在该线后面为灰色或变灰。此外,更新组件320可以用于标识和区分已经成功执行的作业与失败或可能被预测为失败的作业。例如,成功执行的作业可以为绿色,而失败可以用红色表示。

根据特定实施例,视图组件310和更新组件320可以协作以呈现包括时间线和计算资源利用的可视化的分割视图。在第一部分中,可以如上所述呈现调度作业的时间线。在第二部分中,例如在第一部分下方,可以呈现诸如图形的可视化,其表示与作业执行对准地利用的资源。在该实例中,更新组件320可以获取关于资源利用和作业执行的数据,并且相应地更新图形。

相关作业组件330被配置为基于作业之间的关系来区分作业。关系可以包括选择作业所依赖或者依赖于选择作业的作业和数据。在一个实例中,所选择的作业可以启动确定与所选择的作业相关的作业,并且在由视图组件310提供的可视化中在视觉上区分这些相关作业。作为示例,在接收到在可视化中选择作业或其表示的信号之后,可以基于数据依赖性来确定与所选择的作业相关的作业并且突出显示这些作业。相关作业可以从保存作业之间的关系的数据储存库120中标识。根据一个实施例,可以保存有向图,其包括作为顶点的作业和作为连接作业的有向边的数据集。为了确定相关作业,可以从表示所选择的作业的顶点向前和向后遍历图,其中向前遍历(例如,从所选择的作业向下游)捕获依赖于所选择的作业的作业和数据集,向后遍历(例如,从所选择的作业向上游)标识所选择的作业所依赖的作业和数据集。作业运行或作业的实例也可以基于特性或属性来区分。例如,如果用户选择已经无法成功地执行的作业运行,则可以在视图中自动标识并且突出显示与已经失败或被预测为失败的选择作业运行相关的其他作业运行。可以基于关于作业之间的数据依赖性的信息、与作业相关联的状态(例如,失败、成功……)以及执行调度来标识这样的作业运行。这里,如果作业运行依赖于已经无法成功执行的作业运行,则可以预测作业运行失败。

修改组件340被配置为实现作业调度的修改。修改组件340被配置为结合视图组件310工作以获取关于作业执行调度的修改的用户输入。例如,修改组件340可以至少基于关于所呈现的交互视图作为信号从用户接收的一个或多个手势来初始化作业的重新调度用于执行。根据一个非限制性示例,用户可以选择无法成功执行的作业的实例,或者执行某个附加手势(诸如右键点击或拖放)以重新调度执行。

日志组件350被配置为实现执行日志的获取和显示。根据一个实施例,日志组件350可以借助于叠加的搜索窗格(pane)或面板来提供搜索机制。在该场景中,用户可以规定并且提交搜索,并且接收关于执行日志的结果。根据另一实施例,日志组件350可以例如基于特定作业运行的选择来自动生成并且提交查询。响应于与日志文件获取相关联的特定手势,可以返回与所选择的作业运行相对应的结果。以这种方式,用户可以迅速地从失败通知到达例如到原点。在事件中,使执行日志可访问有助于故障排除,诸如解决失败。

图4示出了根据一个特定实现的代表性调度器组件130。调度器组件130包括输出切片选择组件410、依赖性时段确定组件420和依赖性评估组件430、以及执行启动组件440。在该上下文中,数据集由捕获数据处理操作的作业或活动生成或消耗,并且对应于时间轴上的数据集合。具体地,数据集将数据片段(被称为数据切片)与时间段相关联。换言之,数据集由数据切片的连续体(continuum)组成。每个数据切片可以具有特定的切片长度以及开始时间和结束时间。

输出切片选择组件410被配置为确定要生成的数据切片。确定基于活动时段中的状态以及可选策略。每个数据切片可以具有指示对应数据的可用性的状态。状态可以取多个值,包括“待执行”,其表示数据尚未生成,“正在进行”,其表示切片正在生成,“准备就绪”,其表示数据已准备用于消耗,以及“执行失败”,其表示生成数据的一个或多个尝试已经失败。输出切片选择组件410在规定作业将生成其输出的时间窗口的活动时段内标识具有“待执行”状态的数据切片。这些数据切片可以通过对由状态和活动时段过滤的数据切片执行查询来标识。此外,输出切片选择组件410还可以基于策略对切片执行或数据切片的生成排序。具有待执行状态的切片可以与挂钟时间进行比较,并且以某种顺序被拾取。例如,策略可以指示首先生成最旧的切片,或者首先生成最新的切片,例如,基于何时将状态设置为“待执行”。最终,输出切片选择组件410标识要生成的单个切片、输出切片。

依赖性时段确定组件420被配置为确定依赖性时段。依赖性时段是生成所标识的输出切片所需的输入数据的数据时间范围。依赖性时段是关于作业定义的依赖性信息的一部分。例如,作业可以被规定为运行来自第一源的三个小时的数据和来自第二源的一个小时的数据。因此,如果所有数据集具有小时调度(例如,切片为一小时),则生成一小时的输出切片数据需要来自第一源的三个小时的数据和来自第二源的一个小时的数据。

依赖性评估组件430被配置为确定输出切片的依赖性是否满足。依赖性评估组件430可以标识先前确定的依赖性时段内的输入数据切片。此外,获取每个输入切片的状态,并且确定每个切片的状态是否为“准备就绪”,这意味着切片准备用于消耗(例如,切片被成功生成或在外部被使得可用)。如果依赖性时段内的输入切片具有“准备就绪”状态,则依赖性已经满足。否则,依赖性尚未满足。

一旦依赖性条件满足,执行启动组件440被配置为启动作业的执行以产生输出切片。换言之,活动执行在执行组件140上被触发,并且所选择的输出数据切片生成开始。执行被启动之后,输出数据切片的状态从“待执行”改变为“正在执行”。如果最终输出切片成功生成,则输出状态可以设置为“准备就绪”。这意味着消耗切片作为其输入的下游活动现在可以使用切片。如果执行失败,则可以基于预定策略多次重试执行,在该时间期间,可以将状态设置为“重试”,以表示先前的失败和执行重试。如果随后执行不成功,则可以将其状态设置为“执行失败”。此外,每次执行都可以记录在与输出数据切片相关联的运行记录中。

为了便于关于调度器组件130的操作的进一步的清楚和理解,描述几个示例性场景。首先,考虑其中包括数据转换操作的作业具有一个输入和一个输出的场景。这里,执行很简单。随着时间的推移,在当前运行时间之前状态为“待执行”的数据切片被拾取并且在依赖性时段准备就绪的情况下被生成。考虑其中作业关于一个输入和多个输出而操作的下一场景。在这种情况下,将使用来自所有输出的数据切片的并集作为要生成的切片池。针对输出数据切片的状态变化发生在所有输出数据集上。其余的执行与先前的情况没有区别。接下来,考虑具有多个输入和多个输出的作业。再次将来自所有输出的数据切片的并集用作要生成的切片池。为了生成“待执行”输出切片,确定依赖性时段,并且如果活动时段内的所有切片都具有“准备就绪”状态,则可以为输出切片执行作业。针对输出数据切片的状态变化发生在所有输出数据集上,并且执行与第一场景相同。

图5更详细地描绘了代表性监测器组件150。监测器组件150包括状态组件510和执行记录组件520。状态组件510监测作业和/或它们产生的数据的状态。例如,状态组件可以监测通过作业执行成功地生成了输出数据还是作业执行无法成功地生成输出数据。如前所述,可以借助于用户界面向用户呈现失败或成功的执行。状态组件510还可以监测附加状态信息,监测附加状态信息包括产生数据的作业何时待执行,正在进行中,或准备就绪用于消耗等。执行记录组件520被配置为在作业执行期间获取关于计算机资源利用的数据。在一个实例中,可以从操作系统等控制机制请求和获取该信息。资源利用随后可以由用户界面利用以呈现包括时间线和与时间线对准的数据利用的分割视图。

图6-10是示出由用户界面组件110关于作业调度和监测产生的各种可视化的示例性屏幕截图。这些屏幕截图意图帮助关于本公开的各方面的清楚和理解,而非意图将所要求保护的主题限制于此。应当理解,所提供的屏幕截图仅描绘了一个实现。图形元素和文本的各种其他组合和布置被设想并且意图落入所附权利要求的范围内。此外,应当理解,也可以结合可视化来采用各种声音以帮助用户理解作业调度。作为示例而非限制,可以在选择作业或数据时或在检测到执行失败时播放声音。

图6是可以由用户界面组件110产生的界面600的屏幕截图。如图所示,界面600包括三个面板:源面板610、发布面板620和调度面板630。源面板610呈现多个可用数据集,并且使得源能够从其中被添加或删除。应当理解,源面板610中描绘的数据集可以是任意的数据源。例如,一些数据集可以与本地数据相关联,而其他数据源与网络或云数据储存库相关联。此外,数据集可以具有基本上任何结构或格式。发布面板620在所需的转换被执行之后提供已发布或可消耗的数据源的视觉表示。

调度面板630可视化作业执行的调度以及被监测的执行结果。更具体地,调度面板630呈现分割视图,分割视图包括被显示为甘特图的时间线视图640和资源利用视图650,甘特图包括作业的开始和停止执行时间,资源利用视图650包括描绘与作业执行对准的资源消耗的线图。作业调度很容易基于图形来确定。例如,这里,执行去除重复操作的第一作业被调度为每天执行,并且执行条件分割的第二作业被调度为每隔一天执行。注意,线660表示关于执行的当前时间。在线之前的作业是已经执行的作业,并且跨越线的作业被调度用于在将来的某个时间执行。为了突出显示这种区别,被调度但尚未执行的操作以灰色图示,换言之,操作变灰。一旦操作被执行,操作将不再变灰。此外,关于作业运行的颜色差异可以表示附加信息。这里,例如,黑色的作业表示执行失败。根据一方面,用户可以选择黑色的作业运行,并且重新调度作业的执行。

图7是可以由用户界面组件110产生的界面700的屏幕截图。类似于图6的界面600,界面700包括源面板610、发布面板620、以及包括时间线视图640和资源利用视图650的调度面板630,如前所述。然而,界面700示出了作业的选择以及与选择相关的作业的突出显示。这里,执行条件分割的第二作业710由用户例如通过点击、触摸或其他手势来选择。在作业被选择之后,与所选择的作业相关的作业将被自动标识,并且与其他作业在视觉上区分呈现。在该示例中,执行去除重复操作的第一作业712、执行销售数据的清理的第五作业714、执行联合的第七作业716、以及执行排序操作的八作业718被标识为相关作业,并且关于其他作业被突出显示。具体地,所选择的作业以及相关作业用白色背景呈现,而所有其他非相关作业都变灰。相关作业包括依赖于所选择的作业的作业和所选择的作业所依赖的作业。这里,第五作业714、第七作业716和第八作业718依赖于所选择的作业,而所选择的作业依赖于第一作业712。这些依赖性可以基于作业的位置来标识,其中被呈现在所选择的作业之后的作业依赖于所选择的作业,而位于所选择的作业之前的作业是所选择的作业所依赖的作业。

图8是可以由用户界面组件110响应于对作业的失败运行的选择而呈现的界面800的屏幕截图。类似于图7和图8的截图,界面800包括源面板610、发布面板620、以及包括时间线视图640和资源利用视图650的调度面板630,如前所述。界面800还指示由实心黑色捕获的无法成功执行的作业的特定运行的选择。这里,在810示出了条件分割作业的运行。失败的作业运行的选择触发标识可能已经导致所选择的作业运行已经失败的其他相关的失败的作业运行、或者可能已经失败的其他作业运行、或者基于所选择的作业运行的失败被预测失败的其他作业运行。这些相关作业可以基于作业之间的记录的依赖性、执行状态(例如,失败、成功)和调度来标识。在对依赖性、状态和调度信息进行分析之后,如820所示,可以标识去除重复作业的运行,作为在810处指出的所选择的“条件分割”作业运行失败的可能原因。此外,如830所示,“清理销售转换”作业的运行失败可以被预测为“条件分割”作业失败的结果。此外,如在840处指出的,“联合”作业的运行失败可以基于“条件分割”作业和“清理销售转换”作业中的一个或两个的失败来预测。类似地,如850所示,“排序”作业的失败可以根据“条件分割”作业、“清理数据转换”作业或“联合”作业的失败来预测。界面800区分所选择的失败的作业运行和相关的失败的作业运行与其他作业运行。换言之,所选择的和相关的失败的作业运行被突出显示。这里,除了所选择的和相关的失败的作业运行之外的所有作业运行都将变灰。当然,可以使用相反的、不同的颜色、不同的字体、不同的尺寸等用于区分目的。这种方便的机制有助于用户对调度链进行故障排除。进一步地,在关于失败的作业运行之一的选择或其他手势时,可以呈现对话搜索窗格(未示出),其可以使得能够搜索与作业执行相关联的执行日志或日志文件。以这种方式,用户能够快速地从失败的标识和在日志文件中的原始点转换。此外,用户可以关于失败的运行选择或做手势,并且重新调度作业的执行。例如,用户可以将失败的作业运行拖放到另一时间点,以重新调度执行。作为另一示例,用户可以右键点击失败的作业运行,以呈现允许用户重新调度作业的对话框。

图9示出了可以由用户界面组件110产生的界面900的屏幕截图。类似于先前的屏幕截图,界面900包括源面板610和发布面板620,源面板610呈现多个可用数据集并且使得源能够从其中被添加或删除,发布面板620在所需转换被执行之后提供已发布或可消耗的数据集的视觉表示。此外,界面900包括工作区面板910。工作区面板910借助于图表来实现作业和流水线的可视化创作。例如,用户可以通过从源面板610拖放数据集的可视表示来获取数据集。接下来,数据集可以连接到先前创作的作业(例如,使用数据预览自动创建和/或手动编码的),例如通过绘制从数据集表示到作业的立方体表示的箭头,以指示数据集提供作业消耗的输入并且对其执行一个或多个数据转换操作(例如,排序、分组、枢转(pivot)、分割、过滤...)。另外,转换后的输出的表示可以链接到工作区上的作业的表示。因此,显示了从数据源接收输入并且输出新数据源的作业的图表,新数据源反映作业的一个或多个转换操作的应用。界面900允许在用于作业创作的该图表视图与用于作业调度和监测的时间线视图之间进行转换。此外,调度和监测数据可以在工作区面板910中的在该图表视图内呈现。如920所示,“排序”作业的表示包括分割视图,其包括调度数据和资源利用的图。此外,在接收到选择在工作区面板910中呈现的作业表示的信号之后,或者先前关于时间线,确定并且突出显示相关作业和数据集。这里,屏幕截图描绘了在930处的“条件分割”作业的选择。在接收到选择之后,可用利用关于作业和数据收集的依赖性数据来标识所选择的作业所依赖的作业和数据、以及依赖于所选择的作业的作业和数据。换言之,可以确定并且随后显示包括上游和下游作业和数据的作业家族。此外,相关数据和作业可以关于其他数据和作业在视觉上区分或突出显示。这里,相关作业和数据为白色,而其他数据和作业为灰色或变灰。

图10描绘了可以由用户界面组件110产生的界面1000的屏幕截图。类似于图6的界面600,界面1000包括源面板610和发布面板620,源面板610呈现多个可用数据集并且使得源能够从其中被添加或删除,发布面板620在所需转换被执行之后提供已发布或可消耗的数据集的视觉表示。界面1000还包括调度面板630,调度面板630包括分割视图,分割视图包括时间线视图以及资源利用视图650。然而,这里,时间线视图1020在数据切片时间方面来呈现,这与用于作业执行的处理时间相对。换言之,时间线视图1020示出了数据的时间而不是处理的时间。例如,考虑其中要对事件执行小时处理的情况。处理开始于进行一小时价值的事件,然后是一些转换操作。更具体地,从上午9点到上午10点的一小时处理可以从上午10:15开始。随后,可以在上午11点执行一些聚合,可以在下午12点与其他数据执行合并,并且结果可以在下午1点完成。因此,与关于作业要运行多长时间的作业执行时间相对,时间线视图1020提供数据的时间以及在整个时间段(例如,日,周……)中如何处理数据的视图。调度面板630还包括表示关于数据处理的当前时间的线660。在线之前的数据表示已经产生的数据,在线之后的数据表示被调度用于在将来某个时间生产的数据。为了突出显示这种区别,被调度但尚未产生的数据以灰色示出,换言之,操作变灰。在数据产生之后,数据将不再变灰。此外,关于数据的色差可以表示附加信息。例如,黑色数据表示关联数据的生成失败。根据一方面,用户可以选择黑色数据并且重新调度执行以产生数据。尽管未示出,但是通过关于数据的颜色或其他视觉特征,还可以传达其他信息(包括数据状态,诸如“待执行”,“准备就绪”、“正在进行”和“失败”等)。

图11描绘作业系统1100。系统1100包括视图生成装置1110,视图生成装置1110接收包括数据转换作业的输入并且提供用于生成数据转换作业的视图的装置。硬件、软件或硬件和软件的组合可以用于生成视图,其是包括或涉及数据转换作业的可视化。可以将由视图生成装置1110生成的视图提供给显示器用于呈现。在一个实例中,视图生成装置1110可以是或形成图形用户界面的一部分。根据一个实施例,所生成的视图可以是数据转换作业或作业流水线的图表,其包括一组一个或多个相关作业,其中第一作业的输出可选地向第二作业提供输入。

选择装置1120是产生指示在视图中的作业的选择的信号的机制。可以使用硬件、软件或硬件和软件的组合来实现选择装置1120。用户可以采用输入机制来选择或以其他方式标识作业,并且选择装置1120可以接收输入并且标识所选择的作业,例如通过将用户输入的位置与作业在视图中的位置进行比较。用户可以采用各种输入机制,包括但不限于触摸板、鼠标、触摸屏、相机或麦克风。

相关作业装置1130提供自动标识与所选择的作业相关的作业的机制。给定由选择装置1120提供的所选择的作业,相关作业装置可以接收、检索或者以其它方式获得或获取关于作业的依赖性信息。随后,相关作业装置可以例如通过查找所选择的作业并且标识与所选择的作业相关的作业来标识相关作业,其中相关作业是依赖于所选择的作业的作业或所选择的作业所依赖的作业。根据一方面,可以在作业数据依赖性方面来捕获依赖性,作业数据依赖性包括作业所依赖的输入数据和由作业产生的输出数据。在一个实施例中,可以在有向图中捕获依赖性数据,该有向图包括作为顶点的作业以及作为连接作业的有向边的数据集。为了确定相关作业,可以从表示所选择的作业的顶点向前和向后遍历图,其中向前遍历(例如,从所选择的作业向下游)捕获依赖于所选择的作业的作业和数据集,并且向后遍历(例如,从所选择的作业向上游)标识所选择的作业所依赖的作业和数据集。相关作业装置1130可以采用硬件、软件或硬件和软件的组合来标识相关作业(以及数据集),例如作为计算机可执行软件组件或固件。

视图更新装置1140是允许对视图进行改变的机制。在一个实例中,视图更新装置包括硬件、软件或硬件和软件的组合,直接从相关作业装置1130,或者间接地从一个位置(例如,存储器、存储装置……),接收、检索或者以其他方式获得或获取所选择的作业、一个或多个相关作业和可选地相关的数据集,并且在视觉上区分所选择的作业和相关作业以及数据源与视图中呈现的其他作业和数据源。换言之,视图更新装置1140可以在视图中突出显示所选择的作业和相关作业以及数据源。

调度装置1150提供关于作业执行的调度功能。被实施为硬件、软件或硬件和软件的组合,调度装置1150可以接收、检索或者以其他方式获得或获取一个或多个作业,并且根据作业的定义或与提供调度信息的其相关联的信息来生成用于作业执行的调度。例如,如果作业指示每天执行,则可以每天调度作业或作业运行。同样,如果作业规定每隔一天执行,则可以每隔一天调度作业或作业运行。当然,调度也可以解决各种数据依赖性,使得作业被调度以在其输入数据可用之后执行。

调度装置1150可以使调度可用于视图生成装置。因此,视图生成装置可以生成调度的视图作为调度的作业的时间线。在该实例中,选择装置1120能够从调度的时间线视图选择作业。随后,相关作业装置可以确定与所选择的作业相关的作业,并且视图更新装置1140可以更新调度的时间线视图以突出显示所选择的作业和相关作业。

执行装置1160执行由调度装置1150提供或以其它方式使得可用的作业。执行装置1160可以采用硬件、软件或硬件和软件的组合来对一个或多个输入数据集执行数据转换作业,并且产生反映由作业规定的数据转换操作的应用的一个或多个输出数据集。执行装置1160可以从第一指定位置读取输入数据,并且然后将输出数据写入第二指定位置,其中位置可以是存储器或存储设备位置。

监测装置1170是包括监测由执行装置1160对作业的执行的硬件、软件或硬件和软件的组合的机制。根据一个实施例,监测装置1170可以检测或者以其他方式确定作业成功执行还是无法成功执行。这可以通过监测执行装置1160的输出来实现,执行装置1160的输出包括关于执行成功或失败的潜在消息。在一个实例中,监测装置1170可以确定作业的执行是否按照调度被启动、以及是否关于判断执行是成功还是不成功而产生作业的输出。在另一实施例中,监测装置1170可以监测关于作业执行的资源利用。在一个实例中,监测装置1170可以用直接监测资源的机制来实现,资源包括处理器、存储器、存储装置和网络利用。备选地,监测装置1170可以从监测资源利用的操作系统或者其他系统或组件请求和接收这种信息。

监测装置1170可以使得所获取的数据或信息可用于视图生成装置1110用于在生成视图时使用。在一个实例中,视图生成装置1110可以基于由监测装置1170提供的信息来生成指示调度的作业运行成功还是失败的调度的时间线视图。在这种情况下,选择装置1120可以提供信号传输失败的执行运行的选择的机制。随后,相关作业装置1130标识相关作业运行,并且可以更具体地标识失败的或者可以基于对失败的作业运行的依赖性而被预测为失败的相关作业运行。根据一个实施例,除了数据依赖性信息之外,相关作业装置可以接收操作信息,操作信息包括作业被成功执行还是无法成功执行。在一个实例中,操作信息可以与依赖性信息一起存储。备选地,操作信息可以单独地存储和访问。视图更新装置1140随后可以突出显示所选择的失败的作业运行、以及失败或被预测为失败的相关作业运行。另外,视图生成装置1110可以包括产生与作业运行对准的由监测装置1170提供的资源利用信息的可视化。例如,视图生成装置1110生成诸如表示资源利用的线图的图。

已经关于若干组件之间的交互描述了上述系统、架构、环境等。应当理解,这样的系统和组件可以包括其中规定的那些组件或子组件、规定的组件或子组件中的一些、和/或附加组件。子组件也可以被实现为通信地耦合到并非被包括在父组件内的其他组件的组件。此外,一个或多个组件和/或子组件可以组合成单个组件以提供聚合功能。系统、组件和/或子组件之间的通信可以根据推和/或拉模型来实现。为了简洁起见,组件还可以与本文中未具体描述但本领域技术人员已知的一个或多个其它组件交互。

此外,以上公开的系统的各个部分和以下方法可以包括或采用人工智能、机器学习、或者基于知识或基于规则的组件、子组件、过程、手段、方法或机制(例如,支持矢量机器、神经网络、专家系统、贝叶斯信念网络、模糊逻辑、数据融合引擎、分类器……)。这样的组件尤其可以使由此执行的某些机制或过程自动化,以使得系统和方法的部分更具适应性以及高效和智能。作为示例而非限制,调度器组件130和用户界面110可以采用这样的机制来分别基于先前的交互和其他上下文信息来确定或推断作业调度和数据呈现。

鉴于上述示例性系统,可以参考图12-17的流程图来更好地理解可以根据所公开的主题实现的方法。虽然为了简化说明的目的,将方法示出和描述为一系列框,但是要理解和意识到,所要求保护的主题不受框的顺序的限制,因为一些框可能以不同的顺序发生和/或与除了本文中所描绘和描述之外的其他框同时发生。此外,实现下文中描述的方法可能并不是需要所有图示的框。

参考图12,示出了作业调度和监测的方法1200。在附图标记1210处,接收一组作业,包括针对每个作业的依赖性,针对每个作业的依赖性至少包括作业所依赖的数据和由作业产生的数据的标识。换言之,接收一组作业,包括关于每个作业规定的数据依赖性。在附图标记1220处,基于依赖性以及关于由每个作业定义的执行时间和频率的其他信息来生成用于处理该组作业的调度。在附图标记1230处,显示所生成的调度。根据一方面,调度可以存在于甘特图中,甘特图包括作业或由作业产生的数据的开始和停止执行时间。在附图标记1240处,可以根据调度发起作业或作业运行的执行。例如,可以向执行组件提供作业用于处理。在1250处,关于其执行被发起的作业确定处理成功还是失败。这样的确定可以仅通过从执行组件接收关于执行状态的通知或从诸如存储器或磁盘的位置检索执行状态来进行。在附图标记1260处,关于调度显示作业运行的成功或失败。例如,成功地执行的作业运行可以为绿色,并且作业运行的失败可以为红色,以提供关于作业运行的成功或失败的明确指示。此外,工作可以基于其依赖性来被预测为成功或失败,并且相应地被着色。

图13描绘了区分相关作业的方法1300。在附图标记1310处,从调度接收选择包括一个或多个作业运行的作业的信号。例如,可以从示出被调度用于执行的一个或多个作业和作业运行的时间线视图选择诸如“去除重复”的作业,例如通过左键点击或触摸作业。在附图标记1320处,标识依赖于所选择的作业的作业。在附图标记1330处,标识所选择的作业所依赖的作业。作业的标识可以基于依赖性的分析。根据一个实施例,可以捕获依赖性作为有向图,有向图以作业作为顶点并且以数据集作为连接作业的有向边。在该实例中,可以在该图中标识所选择的作业,并且分析可以从所选择的作业向前进行以标识依赖于所选择的作业的作业并且向后进行以标识所选择的作业所依赖的作业。在附图标记1340处,突出显示所选择的作业和所标识的作业。换言之,例如,在调度上,所选择的作业和所标识的作业在视觉上与所显示的其他作业区分开。以这种方式,用户可以快速地理解作业之间的关系。

图14示出了区分成功和失败的作业执行的方法1400。在附图标记1410处,启动作业运行的执行。这里,作业运行是作业的实例,该作业被调度以在特定时间运行。在附图标记1420处,标识依赖于其执行被启动的作业运行的执行的作业运行。依赖性信息可以用于标识依赖的作业运行。例如,依赖性信息可以被记录在作业的有向图中,有向图包括作为顶点的作业以及作为连接作业的有向边而被连接的数据集。其执行被启动的作业可以在图中标识,并且依赖的作业可以通过从作业向下遍历图来标识。随后,如果依赖的作业的调度的运行针对每个作业被记录,则可以从调度中或者从图确定调度的运行。在附图标记1430处,确定是否存在关于作业运行的执行的失败。如果没有失败(“否”),则该方法进行到1440,在1440针对作业运行记录成功执行。根据一方面,记录操作依赖性信息,其除了依赖性信息之外还包括作业状态。成功执行是在该方面中可以保存的工作状态。接下来,在1450处,关于执行的作业以及可选地对于依赖的作业,显示成功的执行作为成功执行的预测。例如,在调度上显示的作业运行可以为绿色。如果在1430处确定执行失败(“是”),则该方法在1460处继续,在1460记录执行失败。如上所述,失败是可以关于保留操作依赖性信息被保存的工作状态。然后,该方法进行到1470,在1470例如在调度上指示关于执行的作业的失败的显示。此外,如果执行的作业失败,则依赖于执行的作业的作业也可能失败。因此,可以以指示失败被预测的方式来显示依赖的作业运行。例如,执行的作业运行和依赖的作业运行可以为红色以分别指示失败和预测的失败。

图15示出了支持对调度链进行故障排除的方法1500。在附图标记1510处,接收选择失败或被预测为失败、或者更具体地其中例如关于调度指示失败的作业运行的信号。例如,调度可以包括多个作业,并且对于每个作业,作业运行被调度在某个时间执行。此外,对于每个作业运行,可以提供视觉指示,其指出作业运行成功或失败(如果先前执行)、或者被预测为成功或失败(如果尚未执行)。选择信号可以与指示失败的作业运行中的一个相关联,并且例如在用户点击或触摸作业运行的视觉表示时生成。在附图标记1520处,标识失败或被预测为失败的相关作业运行。相关作业运行包括依赖于所选择的作业运行的作业运行和所选择的作业运行所依赖的作业运行。可以通过分析有关作业的依赖性信息来标识相关作业。作为示例,可以在有向图中标识所选择的作业,有向图包括作为顶点的作业以及作为连接作业的有向边被连接的数据集。随后,可以从所选择的作业的上游以及从所选择的作业的下游遍历图,以标识相关作业。根据一个实施例,作业运行和状态可以结合依赖性信息而记录。因此,在标识相关作业时,可以标识作业运行,并且可以标识包括实际的或预测的失败状态的作业运行。当然,包括作业运行的一些信息可以关于调度被保存,并且用于确定相关的作业运行。在附图标记1530处,突出显示所选择的作业运行和相关作业运行。换言之,可以在视觉上区分所选择的和相关的作业运行与其他作业运行。这可以允许用户专注于失败和级联失败以用于故障排除。

图16是区分相关作业和数据集的方法1600的流程图。在附图标记1610处,接收选择作业(或数据集)的信号。例如,可以在用户借助于调度视图中或作业和数据集的示意图中的一个或多个预定手势来选择作业时接收信号。在附图标记1620处,标识相关作业和数据集。根据实施例,关于作业和数据集的依赖性信息可以被保存和查阅,以标识相关的作业和数据集,相关的作业和数据集包括依赖于所选择的作业的作业和数据集(例如,下游)以及所选择的作业所依赖的作业和数据集(例如上游)。在一个实例中,有向图可以包括作为顶点的作业和作为连接作业的有向边的数据集。所选择的作业(或数据集)可以在图中标识,并且图被遍历以标识依赖于所选择的作业的作业和数据集以及所选择的作业(或数据集)所依赖的作业和数据集。在附图标记1630处,在可视显示上突出显示所选择的作业(或数据集)以及相关的作业和数据集。换言之,所选择的和相关的作业和数据集与其他作业和数据集在视觉上区分。例如,在规定的作业和数据集的图解视图中,相关的作业和数据集的子集可以在视觉上区分。在存在大量作业和数据集以及复杂的管线或链时,这对于理解关系尤其有帮助。

图17描绘了作业的数据驱动处理方法1700。在附图标记1710处,确定要生成的输出数据切片,其中数据切片是数据集中以某个时间段切片的数据片段,这些数据片段与该时间段相关联。在一个特定实现中,可以标识输出数据切片,以分析数据切片的状态。如果状态为“待执行”等,则可以将数据切片确定为要生成的输出数据切片。在附图标记1720处,选择用于生成的输出数据切片。这里,从要生成的多个输出数据切片中的选择可以基于策略。例如,用于作业执行的策略可以规定基于状态何时设置为“待执行”等来首先选择最旧的输出数据切片或是首先选择最新的输出数据切片用于生成。在附图标记1730处,确定依赖性时段。依赖性时段是生成输出数据切片所需的输入数据的时间范围。这可以针对选择输出数据切片基于关于生成输出数据切片的作业定义的依赖性信息来确定。例如,可以规定运行来自第一源的三个小时的数据和来自第二源的一个小时的数据的作业。因此,如果所有数据集具有小时调度(例如,切片为一小时),则生成一小时的输出切片数据需要来自第一源的三小时的数据和来自第二源的一小时的数据。在附图标记1740处,确定依赖性时段中所有需要的输入数据切片是否准备就绪。这可以通过查询输入数据切片的状态来确定。如果每个输入数据切片具有“准备就绪”状态,这意味着数据准备用于消耗,则该方法可以进行到附图标记1750。否则,该方法可以继续循环并且等待输入数据切片变为准备就绪。在附图标记1750处,触发或启动产生所选择的输出切片的作业的执行。在附图标记1760处,可以设置输出切片的状态。在正在产生数据时,可以将状态设置为“正在进行”,以表示正在为作业产生数据切片。一旦执行完成(或无法执行),如果尝试生成输出切片失败,则状态可以改变为“失败”,或者如果尝试生成成功并且数据切片准备用于消耗,则状态可以改变为“准备就绪”。在附图标记1770处,记录关于执行的信息。例如,可以记录输出切片的状态以及执行的开始和结束时间。可以关于生成用于呈现给用户以便于理解和控制作业执行的信息和可视化来使用这样的数据。

主题公开支持执行或被配置为执行关于作业调度和监测的各种动作的各种产品和过程。接下来是一个或多个示例性方法和系统。

一种方法包括在界面中的显示上呈现一个或多个数据转换作业的视图;从用户接收借助于界面来从一个或多个数据转换作业选择作业的第一信号;基于作业之间的数据依赖性自动确定对于所选择的作业的一个或多个相关作业;以及在视觉上不同于一个或多个其他作业地呈现所选择的作业和一个或多个相关作业。该方法还包括在界面中的显示上呈现被调度用于执行的一个或多个作业。该方法还包括在界面中的显示上呈现一个或多个先前执行的作业。该方法还包括在界面中的显示上在视觉上不同于调度的作业地呈现先前执行的作业。该方法还包括在执行一个或多个作业期间确定计算负载;并且在界面中的显示上呈现与一个或多个作业对准的计算负载。该方法还包括在界面中的显示上呈现无法成功执行的至少一个作业的指示。该方法还包括接收选择无法成功执行的至少一个作业运行中的一个的第二信号;自动确定与无法成功执行、或者基于对无法成功执行的作业运行的依赖性而被预测为失败的所选择的作业运行相关的一个或多个相关作业运行;并且在界面中的显示上突出显示所选择的作业运行和一个或多个相关作业运行。该方法还包括:接收选择无法成功执行的至少一个作业中的一个作业的第二信号;以及响应于第二信号来重新调度至少一个作业的执行。该方法还包括在包括作业和数据集的表示以及作业和数据集之间的连接的图表中呈现所选择的作业和一个或多个相关作业。

一种方法包括采用被配置为执行存储在存储器中的计算机可执行指令的至少一个处理器执行以下动作:检测借助于图形用户界面的数据转换作业的选择;以及响应于检测到作业的选择基于作业之间的数据依赖性来自动确定一个或多个相关作业;并且在视觉上不同于在图形用户界面上显示的其他作业来呈现所选择的作业和一个或多个相关作业。该方法还包括结合作业执行来监测计算机资源利用;以及呈现与一个或多个相应作业对准的资源利用的可视化。该方法还包括确定作业运行的执行的成功或失败;并且与成功的执行运行不同地呈现失败的执行运行。该方法还包括基于关于无法成功执行的作业运行接收的信号来重新调度作业运行的执行。该方法还包括:在接收到标识选择失败的作业运行的信号之后,突出显示选择失败的作业运行和一个或多个相关的失败作业运行或者基于对失败作业运行的依赖性而被预测为失败的运行。该方法还包括在包括作业和数据集的表示以及作业与数据集之间的连接的图表中呈现所选择的作业和一个或多个相关作业。

一种系统包括耦合到存储器的处理器,处理器被配置为执行存储在存储器中的以下计算机可执行组件:被配置为基于由作业规定的要求来调度数据转换用于执行的第一组件;被配置为根据调度来在时间线图表上呈现作业的第二组件;以及被配置为响应于标识在时间线图表上的选择作业的信号突出显示基于数据依赖性与选择作业相关的一个或多个作业的第三组件。第三组件还被配置为突出显示依赖于选择作业的一个或多个作业。第三组件还被配置为突出显示选择作业所依赖的一个或多个作业。该系统还包括被配置为检测作业执行成功还是不成功的第四组件。该系统还包括第五组件,第五组件被配置为响应于在时间线上的不成功作业执行的表示的选择突出显示相关的不成功作业执行或者基于对于不成功作业执行的依赖性而被预测为不成功的作业执行。

一种系统包括用于生成一组数据转换作业的视图的装置;用于从一组数据转换作业接收作业的选择、所选择的作业的装置;用于基于依赖性信息来自动确定所选择的作业的一个或多个相关作业的装置;以及用于在视图中突出显示所选择的作业和一个或多个相关作业的装置。该系统还包括用于生成用于执行该组数据转换作业的调度的装置。用于生成视图的装置生成调度的视图。该系统还包括用于根据该调度来执行该组数据转换作业之一的装置。该系统还包括用于检测该组数据转换作业之一的运行的成功或失败的装置。用于生成视图的装置生成调度的视图,调度的视图包括作业运行成功或失败的标识。用于接收选择的装置接收对失败作业运行的选择,并且用于突出显示的装置突出显示失败或者基于对失败运行的依赖性而被预测为失败的一个或多个相关作业运行。

本公开的各方面涉及数据转换,或换言之涉及将数据放置在可用形式中用于由分析工具随后发布或消耗。更具体地,各方面涉及调度和监测数据转换作业的技术问题。用于解决该问题的技术手段包括基于作业依赖性来确定与用户选择的作业相关的作业,包括依赖于所选择的作业的作业和/或所选择的作业所依赖的作业。结合图形用户界面实现作业的选择以及突出显示所选择的作业和确定的相关作业,这有助于用户理解作业和故障排除之间的关系。因此,技术效果包括但不限于关于作业调度和错误减少而提高用户效率。

词语“示例性”或其各种形式在本文中用于表示用作示例、实例或说明。本文中描述为“示例性”的任何方面或设计不一定被解释为比其他方面或设计优选或有利。此外,仅为了清楚和理解的目的提供了示例,而不意图以任何方式限制或约束所要求保护的主题或本公开的相关部分。应当理解,可以提出各种范围的无数的附加或替代示例,但是为了简洁起见已被省略。

如本文中所使用的,术语“组件”和“系统”以及其各种形式(例如,组件、系统、子系统……)旨在表示计算机相关实体,或者是硬件、硬件和软件的组合、软件、或者是执行软件。例如,组件可以是但不限于在处理器上运行的进程、处理器、对象、实例、可执行文件、执行线程、程序和/或计算机。作为说明,在计算机上运行的应用和计算机都可以是组件。一个或多个组件可以驻留在进程和/或执行线程内,并且组件可以被本地化在一个计算机上和/或分布在两个或更多个计算机之间。

在本说明书和所附权利要求书中使用的连词“或”旨在表示包括性的“或”而不是排他性的“或”,除非另有说明或根据上下文很明确。换言之,“x”或“y”意在表示“x”和“y”的任何包括性排列。例如,如果“‘a’采用‘x’”,“‘a’采用‘y’”,以及“‘a’采用‘x’和‘y’二者”,则在任何上述情况下,“‘a’采用‘x’或‘y’”都满足。

此外,在详细描述或权利要求书中使用术语“包含(include)”、“含有(contain)”、“具有(has)”、“有(having)”或其形式的变体,这些术语旨在以与术语“包括(comprising)”当在权利要求中作为过渡词使用时被解释类似的方式是包括性的。

为了提供所要求保护的主题的上下文,图18以及以下讨论旨在提供可以实现主题的各个方面的合适环境的简要的一般描述。然而,合适的环境仅仅是一个示例,而不意图暗示对使用范围或功能的任何限制。

虽然可以在一个或多个计算机上运行的程序的计算机可执行指令的一般上下文中描述以上公开的系统和方法,但是本领域技术人员将认识到,这些方面也可以结合其他程序模块等来实现。通常,程序模块包括执行特定任务和/或实现特定抽象数据类型的例程、程序、组件、数据结构等。此外,本领域技术人员将理解,可以利用各种计算机系统配置来实践上述系统和方法,包括单处理器、多处理器或多核处理器计算机系统、微型计算设备、大型计算机、以及个人计算机、手持计算设备(例如,个人数字助理(pda)、电话、手表……)、基于微处理器的或可编程消费者或工业电子设备等。各方面也可以在分布式计算环境中实践,其中任务由通过通信网络链接的远程处理设备来执行。然而,所要求保护的主题的一些(如果不是全部)方面可以在独立的计算机上实践。在分布式计算环境中,程序模块可以位于本地和远程存储器设备中的一者或两者中。

参考图18,示出了示例通用计算机或计算设备1802(例如,台式计算机、笔记本计算机、平板计算机、手表、服务器、手持计算机、可编程消费者或工业电子设备、机顶盒、游戏系统、计算节点……)。计算机1802包括一个或多个处理器1820、存储器1830、系统总线1840、大容量存储设备1850、和一个或多个接口组件1870。系统总线1840至少通信地耦合至少上述系统组成部分。然而,应当理解,在其最简单的形式中,计算机1802可以包括耦合到存储器1830的一个或多个处理器1820,其执行存储在存储器1830中的各种计算机可执行动作、指令和/或组件。

一个或多个处理器1820可以用通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其他可编程逻辑器件、分立门或晶体管逻辑、分立硬件组件、或者被设计用于执行本文中所描述的功能的其任何组合来实现。通用处理器可以是微处理器,但是在备选方案中,处理器可以是任何处理器、控制器、微控制器或状态机。一个或多个处理器1820还可以被实现为计算设备的组合,例如dsp和微处理器的组合、多个微处理器、多核处理器、一个或多个微处理器结合dsp核、或任何其他这样的配置。在一个实施例中,一个或多个处理器可以是图形处理器。

计算机1802可以包括或以其他方式与各种计算机可读介质交互,以支持计算机1802的控制以实现所要求保护的主题的一个或多个方面。计算机可读介质可以是可以由计算机1802访问的任何可用介质,并且包括易失性和非易失性介质以及可移除和不可移除介质。计算机可读介质可以包括两种不同的和相互排斥的类型,即计算机存储介质和通信介质。

计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括存储设备,诸如存储器设备(例如,随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)……)、磁存储设备(例如硬盘、软盘、磁盒、磁带……)、光学盘(例如,光盘(cd)、数字通用盘(dvd)……)、和固态设备(例如固态驱动器(ssd)、闪存驱动器、(例如卡、棒、密钥驱动器……)……)、或任何其他类似的介质,其与传输或通信相反,存储计算机1802可访问的所需信息。因此,计算机存储介质排除调制数据信号以及包括通信介质的事物。

通信介质在诸如载波或其他传输机制的调制数据信号中实施计算机可读指令、数据结构、程序模块、或者其他数据,并且包括任何信息传递介质。术语“调制数据信号”是指以其特征中的一个或多个以能够在信号中编码信息的方式来设置或改变的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质、以及诸如声学、rf、红外和其它无线介质的无线介质。

存储器1830和一个或多个大容量存储设备1850是计算机可读存储介质的示例。取决于计算设备的确切配置和类型,存储器1830可以是易失性的(例如,ram)、非易失性的(例如,rom、闪存……)、或两者的某种组合。作为示例,基本输入/输出系统(bios)(包括在诸如启动期间在计算机1802内的元件之间传送信息的基本例程)可以存储在非易失性存储器中,而易失性存储器可以用作外部高速缓存存储器,以支持一个或多个处理器1820等的处理。

一个或多个大容量存储设备1850包括用于相对于存储器1830存储大量数据的可移除/不可移除、易失性/非易失性计算机存储介质。例如,一个或多个大容量存储设备1850包括但不限于一个或多个设备,诸如磁盘或光学盘驱动器、软盘驱动器、闪存、固态驱动器或记忆棒。

存储器1830和一个或多个大容量存储设备1850可以包括或存储有操作系统1860、一个或多个应用1862、一个或多个程序模块1864、和数据1866。操作系统1860用于控制和分配计算机1802的资源。应用1862包括系统和应用软件中的一个或两个,并且可以通过程序模块1864和存储在存储器1830和/或一个或多个大容量存储设备1850中的数据1866来利用操作系统1860对资源的管理以执行一个或多个动作。因此,应用1862可以根据由此提供的逻辑将通用计算机1802转换成专用机器。

所要求保护的主题的所有或部分可以使用标准编程和/或工程技术来实现,以产生软件、固件、硬件或其任何组合,以控制计算机来实现所公开的功能。作为示例而非限制,作业系统100或其部分可以是或形成应用1862的一部分,并且包括存储在存储器和/或一个或多个大容量存储设备1850中的一个或多个模块1864和数据1866,模块1864和数据1866的功能在由一个或多个处理器1820执行时可以被实现。

根据一个特定实施例,一个或多个处理器1820可以对应于在单个集成电路基板上包括或换言之集成硬件和软件的片上系统(soc)或类似的架构。这里,一个或多个处理器1820可以包括一个或多个处理器以及至少类似于一个或多个处理器1820和存储器1830的存储器等。传统处理器包括最少量的硬件和软件,并且广泛地依赖于外部硬件和软件。相比之下,处理器的soc实现更加强大,因为其中嵌入有硬件和软件,其使得能够以最小或不依赖于外部硬件和软件来实现特定功能。例如,作业系统100和/或相关联的功能可以嵌入在soc架构中的硬件内。

计算机1802还包括通信地耦合到系统总线1840并且支持与计算机1802的交互的一个或多个接口组件1870。作为示例,接口组件1870可以是端口(例如,串行、并行、pcmcia、usb、firewire……)或接口卡(例如,声音、视频……)等。在一个示例实现中,接口组件1870可以被实现为用户输入/输出接口,以使得用户能够向计算机1802中输入命令和信息,例如通过一个或多个手势或语音输入,通过一个或多个输入设备(例如,指示设备,诸如鼠标、轨迹球、触控笔、触摸板、键盘、麦克风、操纵杆、游戏垫、卫星天线、扫描仪、相机、其他计算机……)。在另一示例实现中,接口组件1870可以被实施为输出外围接口,以向显示器(例如lcd、led、等离子体……)、扬声器、打印机和/或其它计算机等提供输出。此外,接口组件1870可以被实现为网络接口,以实现与其他计算设备(未示出)的通信,诸如通过有线或无线通信链路。

上面描述的内容包括所要求保护的主题的各方面的示例。当然,为了描述所要求保护的主题的目的,不可能描述组件或方法的每个可想到的组合,但是本领域普通技术人员可以认识到,所公开的主题的很多另外的组合和排列是可能的。因此,所公开的主题旨在包含落在所附权利要求的精神和范围内的所有这样的改变、修改和变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1