一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于基于网络的媒体处理的方法、装置和计算机可读介质与流程

2022-03-02 08:30:13 来源:中国专利 TAG:


1.一个或多个示例实施例涉及基于网络的媒体处理(nbmp)。


背景技术:

2.基于网络的媒体处理(nbmp)允许服务提供商和终端用户分配媒体处理操作。nbmp提供用于分布式媒体和元数据处理的框架,该分布式媒体和元数据处理可以在信息技术(it)和电信云网络中被执行。
3.nbmp抽象底层计算平台交互以建立、加载、实例化和监视将执行/运行媒体处理任务的媒体处理实体(mpe)。nbmp系统可以执行:将媒体数据上传到网络以进行处理;实例化mpe;配置mpe以动态创建媒体处理管道;和/或以实时或以延迟的方式以可扩展方式访问处理后的媒体数据和所得到的元数据。mpe可以由nbmp平台中的工作流管理器控制和操作,该nbmp平台包括用于实现工作流管理器和mpe的计算资源。


技术实现要素:

4.本发明的各种示例实施例所寻求的保护范围由独立权利要求阐述。在本说明书中描述的未落入独立权利要求的范围的示例实施例和特征(如果有的话)将被解释为对理解本发明的各种示例实施例有用的示例。
5.一个或多个示例实施例提供允许更灵活的工作流执行模式和/或任务调度的机制。
6.一个或多个示例实施例提供用于“易中断(breakable)”工作流和相关联的步进式执行模式的机制。任务之间的“易中断”特征可以为工作流生命周期和数据管理提供多层次的意义。例如,“易中断”可以指将任务分离成被分配(或执行)状态和被调度状态。这允许在稍后的时间点绑定任务,从而为工作流管理器提供更大的灵活性。
[0007]“易中断”特征可以类似于调试计算机代码中的步进模式。在调试模式下,编译器一次运行一步以跟踪执行的内容和代码的所有状态。在基于网络的媒体处理(nbmp)的上下文中,工作流执行不会被停止,而是与其他工作流以协作模式运行。
[0008]
至少一个示例实施例提供一种用于向一个或多个媒体接收器提供媒体内容的方法,该方法包括:基于连接图,在至少第一切片窗口和第二切片窗口之中分配用于处理第一媒体内容的第一多个任务,该连接图被包括在来自基于网络的媒体处理(nbmp)源的工作流描述中,该第一切片窗口包括第一多个任务中的至少一个第一任务,并且该第二切片窗口包括第一多个任务中的至少一个第二任务;以及通过以下操作向一个或多个媒体接收器中的至少第一媒体接收器提供第一媒体内容:将至少一个第一任务部署到一个或多个第一媒体处理实体,以及响应于接收到至少一个第一任务已被成功部署的指示,将至少一个第二任务部署到一个或多个第一媒体处理实体。
[0009]
至少一个其他示例实施例提供一种非暂时性计算机可读介质,其存储有计算机可执行指令,这些计算机可执行指令在由在网络装置处的至少一个处理器执行时使该网络装
置执行一种用于向一个或多个媒体接收器提供媒体内容的方法,该方法包括:基于连接图,在至少第一切片窗口和第二切片窗口之中分配用于处理第一媒体内容的第一多个任务,该连接图被包括在来自基于网络的媒体处理(nbmp)源的工作流描述中,该第一切片窗口包括第一多个任务中的至少一个第一任务,并且该第二切片窗口包括第一多个任务中的至少一个第二任务;以及通过以下操作向一个或多个媒体接收器中的至少第一媒体接收器提供第一媒体内容:将至少一个第一任务部署到一个或多个第一媒体处理实体,以及响应于接收到至少一个第一任务已被成功部署的指示,将至少一个第二任务部署到一个或多个第一媒体处理实体。
[0010]
至少一个其他示例实施例提供一种网络装置,其包括:至少一个处理器和包括计算机程序代码的至少一个存储器。该至少一个存储器和计算机程序代码被配置为与至少一个处理器一起使该网络装置:基于连接图,在至少第一切片窗口和第二切片窗口之中分配用于处理第一媒体内容的第一多个任务,该连接图被包括在来自基于网络的媒体处理(nbmp)源的工作流描述中,该第一切片窗口包括第一多个任务中的至少一个第一任务,并且该第二切片窗口包括第一多个任务中的至少一个第二任务;以及通过以下操作向一个或多个媒体接收器中的至少第一媒体接收器提供第一媒体内容:将至少一个第一任务部署到一个或多个第一媒体处理实体,以及响应于接收到至少一个第一任务已被成功部署的指示,将至少一个第二任务部署到一个或多个第一媒体处理实体。
[0011]
至少一个其他示例实施例提供一种网络装置,其包括:用于基于连接图,在至少第一切片窗口和第二切片窗口之中分配用于处理第一媒体内容的第一多个任务的部件,该连接图被包括在来自基于网络的媒体处理(nbmp)源的工作流描述中,该第一切片窗口包括第一多个任务中的至少一个第一任务,并且该第二切片窗口包括第一多个任务中的至少一个第二任务;以及用于向一个或多个媒体接收器中的至少第一媒体接收器提供第一媒体内容的部件。用于提供的部件包括用于将至少一个第一任务部署到一个或多个第一媒体处理实体的部件,以及用于响应于接收到至少一个第一任务已被成功部署的指示,将至少一个第二任务部署到一个或多个第一媒体处理实体的部件。
[0012]
根据至少一些示例实施例,连接图可以包括流控制参数,该流控制参数指示第一多个任务中的相应的任务对是否必须被包括在同一切片窗口中;并且该分配可以基于该流控制参数来分配相应的任务对。
[0013]
流控制参数可以是易中断参数。
[0014]
用于相应的任务对的流控制参数可以进一步包括可共享参数,该可共享参数指示相应的任务对是否必须被部署在同一媒体处理实体处。
[0015]
工作流描述可以包括执行模式参数,该执行模式参数指示用于处理第一多个任务的执行模式。
[0016]
执行模式可以是流式执行模式和步进式执行模式之一。
[0017]
该提供可以进一步包括:在部署至少一个第一任务之前并且在部署至少一个第二任务之前,调度至少一个第一任务和至少一个第二任务以用于部署到一个或多个第一媒体处理实体。
[0018]
第一多个任务可以构成包括至少两个被连接的任务的工作流。
[0019]
根据至少一些示例实施例的方法可以进一步包括:在至少第一切片窗口和第二切
片窗口之中分配用于处理第二媒体内容的第二多个任务,该第一切片窗口包括第二多个任务中的至少一个第三任务,并且该第二切片窗口包括第二多个任务中的至少一个第四任务;以及通过以下操作向一个或多个媒体接收器中的至少第二媒体接收器提供第二媒体内容:将至少一个第三任务部署到一个或多个第二媒体处理实体,以及响应于接收到至少一个第一任务已被成功部署的指示,将至少一个第四任务部署到一个或多个第二媒体处理实体。
[0020]
第一多个任务可以构成第一工作流,第二多个任务可以构成第二工作流,并且可以根据第一切片窗口和第二切片窗口来协作地执行并同步第一工作流和第二工作流。
[0021]
至少一个存储器和计算机程序代码可以被配置为与至少一个处理器一起使网络装置基于流控制参数来分配相应的任务对。
[0022]
至少一个存储器和计算机程序代码可以被配置为与至少一个处理器一起使网络装置:在部署至少一个第一任务之前并且在部署至少一个第二任务之前,调度至少一个第一任务和至少一个第二任务以用于部署到一个或多个第一媒体处理实体。
[0023]
至少一个存储器和计算机程序代码可以被配置为与至少一个处理器一起使网络装置:在至少第一切片窗口和第二切片窗口之中分配用于处理第二媒体内容的第二多个任务,该第一切片窗口包括第二多个任务中的至少一个第三任务,并且该第二切片窗口包括第二多个任务中的至少一个第四任务;以及通过以下操作向一个或多个媒体接收器中的至少第二媒体接收器提供第二媒体内容:将至少一个第三任务部署到一个或多个第二媒体处理实体,以及响应于接收到至少一个第一任务已被成功部署的指示,将至少一个第四任务部署到一个或多个第二媒体处理实体。
附图说明
[0024]
示例实施例将从本文下面给出的详细描述和附图中变得被更充分地理解,其中,相同的元件由相同的附图标记表示,这些附图标记仅通过说明的方式给出并因此不是对本公开的限制。
[0025]
图1示出用于实现一个或多个示例实施例的基于网络的媒体处理(nbmp)系统。
[0026]
图2示出根据一个或多个示例实施例的两个不同的切片窗口配置。
[0027]
图3示出根据一个或多个其他示例实施例的切片窗口配置。
[0028]
图4示出根据一个或多个示例实施例的以任务边缘定义的特性。
[0029]
图5是示出根据一个或多个示例实施例的任务的生命周期的状态图。
[0030]
图6是示出根据一个或多个示例实施例的方法的流程图。
[0031]
图7描绘适用于实现尤其是网络管理设备以及其他网络单元和/或设备的计算机、计算或电子设备的高级框图。
[0032]
应当注意,这些附图旨在图示在某些示例实施例中使用的方法、结构和/或材料的一般特征,并且旨在补充下面提供的书面描述。然而,这些附图并非是按比例绘制的,并且可以不精确反映任何给定实施例的精确结构或性能特性,并且不应被解释为限定或限制示例实施例所包含的值或特性的范围。在各附图中使用相似或相同的附图标记旨在指示相似或相同的元件或特征的存在。
具体实施方式
[0033]
现在将参考在其中示出一些示例实施例的附图更全面地描述各种示例实施例。
[0034]
本文公开了详细的说明性实施例。然而,本文公开的具体结构和功能细节仅代表描述示例实施例的目的。然而,示例实施例可以以多种替代形式体现并且不应被解释为仅限于本文阐述的实施例。
[0035]
因此,虽然示例实施例能够进行各种修改和替代形式,但是这些实施例在附图中通过示例方式被示出并将在本文中详细描述。然而,应当理解,无意将示例实施例限制为所公开的特定形式。相反,示例实施例将覆盖落入本公开的范围内的所有修改、等同物和替代物。在附图的描述中,相同的数字指代相同的元件。
[0036]
图1示出用于实现一个或多个示例实施例的基于网络的媒体处理(nbmp)系统100。nbmp系统100是用于媒体处理的系统,该媒体处理在网络中跨媒体处理实体(mpe)被执行。在本文中,媒体也可以被称为媒体内容、媒体数据或多媒体内容。
[0037]
系统100尤其包括nbmp源110,其是提供要被处理的媒体内容的实体。nbmp源110具有到工作流管理器120和功能储存库130的通信连接。
[0038]
nbmp源110通过工作流描述来触发和描述针对nbmp系统100的媒体处理,该工作流描述可以采用工作流描述文档(wdd)的形式并且被称为工作流描述文档(wdd)。工作流描述描述了所请求的媒体处理,并提供关于相关联媒体数据的性质和格式的信息。nbmp源110可以包括或被连接到一个或多个媒体源112,诸如摄像机、编码器、永久性存储设备等中的一个或多个。nbmp源110可以由诸如用户设备(ue)或者向nbmp源110提供例如反馈、元数据、网络度量等中的一个或多个的另一类型的实体或设备之类的第三方实体111来控制。
[0039]
工作流管理器120是编排基于网络的媒体处理的实体。工作流管理器120也可以被称为控制功能或nbmp控制功能。在图1中所示的示例实施例中,工作流管理器120具有与nbmp源110和功能储存库130的通信连接,并且与底层基础架构(例如,云编排器(未示出))通信以提供诸如容器、虚拟机(vm)或物理计算机主机之类的执行环境,因此它们可以操作为mpe。
[0040]
工作流管理器120经由工作流应用程序接口(api)从nbmp源110接收工作流描述,并且为所请求的媒体处理构建工作流(也被称为nbmp工作流)。工作流描述描述了使能工作流的信息。
[0041]
工作流管理器120提供任务并连接任务,以基于从功能储存库130取得的工作流描述和功能描述来创建完整的工作流。工作流提供一个或多个任务的链以实现特定媒体处理。在工作流的任何级别,任务链可以是顺序的、并行的、或者两者兼而有之。工作流可以被表示为有向无环图(dag)。因此,工作流可以被理解为任务(也被称为媒体处理任务)的连接图,每个任务执行媒体处理操作以传送媒体数据和相关元数据以供媒体接收器150或其他任务消费。如本文所讨论的任务(或媒体处理任务)是由诸如图1中的mpe 140之类的mpe执行的基于网络的媒体处理功能的运行实例。在工作流中包括的任务在任务的执行时的不同点通过不同的状态组进行转变。
[0042]
工作流管理器120可以在专用服务器内实现,可以被虚拟化为云计算环境中的功能,或者可以被实现为云计算环境中的功能。因此,代替一个或多个处理器和一个或多个存储器,工作流管理器120可以包括一个或多个处理功能和用于处理和存储数据的一个或多
个存储器功能。在这些功能之上,工作流管理器120还可以包括更多的功能,诸如永久存储功能、通信接口功能等。然而,为了简洁和简单起见,并没有示出此类功能。
[0043]
仍然参考图1,功能储存库130是基于网络的功能,其存储有多个功能规范132以供工作流管理器120在针对mpe 140定义任务时使用。在功能储存库130处的功能发现api使工作流管理器120和/或nbmp源110能够发现媒体处理功能,其可以被加载为工作流的一部分。
[0044]
mpe是被配置为执行由工作流管理器120提供的一个或多个媒体处理任务的实体。mpe执行关于经由nbmp任务api或另一个mpe从nbmp源110接收的媒体数据和相关元数据的任务。如上类似提及的,在mpe处执行的任务产生媒体数据和相关元数据,以供媒体接收器(也被称为媒体接收器实体)150或另一个mpe中的其他任务消费。
[0045]
媒体接收器150通常是诸如mpe 140之类的mpe的任务的输出的消费者。由诸如图1中的任务142之类的任务处理的内容可以通过已有的传送方法用合适的媒体格式以nbmp发布格式被发送到媒体接收器150;例如,通过下载、基于超文本传输协议(dash)的动态自适应流传输、运动图像专家组(mpeg)媒体传输(mmt)、或其他方式。
[0046]
功能储存库130包括nbmp功能。nbmp功能可以是独立且自包含的媒体处理操作以及该操作的对应描述。nbmp功能对输入媒体进行处理以生成输出媒体或元数据。这种媒体处理的非限制性示例包括:内容编码、内容解码、内容加密、到高动态范围(hdr)的内容转换、容器格式的内容传输复用、流传输清单生成、帧速率或纵横比转换、内容拼接等。
[0047]
在一个示例中,mpe 140可以是计算机中的进程或执行上下文(例如,合适的硬件(hw)加速),并且可以在单个计算机中定义多个mpe。在这种情况下,跨mpe的任务之间的通信可以通过诸如进程间通信(ipc)之类的进程友好的协议发生。
[0048]
在另一个示例实施例中,mpe 140可以是诸如服务器计算机之类的专用装置。在又一个示例实施例中,mpe 140可以是由工作流管理器120使用例如合适的虚拟化平台或云计算为此目的而建立的功能。在这些情况下,可以使用例如基于因特网协议(ip)的协议跨mpe执行任务之间的通信。
[0049]
仍然参考图1,nbmp系统100还可以包括一个或多个流桥,其可选地分别将媒体处理实体140与媒体源112和媒体接收器150接口连接。
[0050]
一个或多个示例实施例提供允许更灵活的工作流执行模式和/或任务调度的机制。
[0051]
一个或多个示例实施例还提供对至少具有以下因素的更优化的资源利用的支持:
[0052]
·
推后或延迟分配以使用不同定价水平的计算资源;或者在高峰时段动态共享资源分配(相对于不同的定价模型)。例如,媒体处理请求/要求诸如图形处理单元(gpu)之类的硬件(hw)-加速与机器/深度学习方法(例如,神经网络)一起变得更加普遍。具有合适的gpu支持的mpe相对昂贵。然而,并非工作流中的所有任务都需要gpu-驱动的mpe。一个或多个示例实施例使用调度以允许更经济高效的后期任务实例化,以使得可以在适当的时间在输入数据变得可用时调度gpu-mpe的实例化,但不会在工作流的整个生命周期期间预先占用那些昂贵的资源。
[0053]
·
云爆发带来的峰值工作负载需求。在有限或受控的预算内,可以被部署的工作流数量是有限的。当对计算能力的需求激增时,用于mpe的资源可能会耗尽,并且新工作流的创建可能会失败(例如,“资源不足”或由于成本限制而导致的其他类型的故障)。通过增
加上游相对于下游的容量并重新调度或预先调度允许处理资源要求的动态变化的灵活性,一个或多个示例实施例使能工作流资源使用的优先级排序。例如,工作流管理器可以基于任务之间的一个或多个连接(工作流dag的边缘)是否被指定为“易中断”,以步进式执行模式自动地执行工作流。通过这样做,工作流管理器可以将工作流的执行模式改变为步进式执行模式,例如,当消耗的总资源超过阈值时(例如,在一段时间超过85%的存储器容量/虚拟cpu负载)。工作流管理器可以将那些被部署的任务从其诸如“运行中”之类的状态强制改变为“被调度”,并按需为新的工作流实例释放更多资源。
[0054]
·
流处理与批处理:一个或多个示例实施例允许确定哪个处理模式更适合于给定的工作流,以及选择更合适的处理模式。
[0055]
一个或多个示例实施例引入了工作流切片窗口(在本文中也被称为切片窗口或切片、或工作流分区)的概念。当生成工作流时,工作流管理器可以将任务一起分组到切片窗口中(在切片窗口之中分配任务),并且可以按照切片窗口的顺序来执行工作流,其中,在每个相应的切片窗口中的任务被单独地且顺序地部署并执行,以使得在执行在下一切片窗口中的任务之前完成一个切片窗口中的任务。根据至少一些示例实施例,工作流可以包括零个、一个或多个切片窗口,直到工作流中的任务的最大数量为止。切片窗口的符号可以被表示为如下所示。
[0056]
|slicingwindows|《=length(tasks)
[0057]
图2示出了根据一个或多个示例实施例的两个不同的切片窗口配置。虽然在每个配置中仅示出四个切片窗口,但是示例实施例不应限于这些示例。
[0058]
参考图2,切片窗口配置302包括四个切片窗口s10、s12、s14和s16,每个切片窗口包括一个任务,从而切片窗口的数量与任务的数量相同。具体地,切片窗口s10包括任务t10,切片窗口s12包括任务t12,切片窗口s14包括任务t14,切片窗口s16包括任务t16。
[0059]
切片窗口配置304包括用于六个任务t20、t22、t24、t26、t28和t30的四个切片窗口s20、s22、s24和s26。如图所示,切片窗口s20包括任务t20和t22,切片窗口s22包括任务t24,切片窗口s24包括任务t26和t28,切片窗口s26包括任务t30。
[0060]
根据一个或多个示例实施例,工作流管理器可以将来自多个工作流的具有相同标识符的所有切片窗口分组在一起,并同步每个切片窗口中的任务的执行。只有在前一切片窗口中的任务完成之后,在下一切片窗口中的任务才会被部署和执行。
[0061]
图3是示出在其中同步多工作流执行的切片窗口配置的示意图。如图3中所示,来自第一工作流的第一任务task1-1和第二工作流的第一任务task1-2被分组到第一切片窗口中,从而同步这些任务的执行。类似地,来自第一工作流的第二任务task2-1和来自第二工作流的第二任务task2-2可以被分组到第二切片窗口中,以跨工作流同步这些任务的执行。
[0062]
在至少一个其他示例实施例中,工作流管理器可以使用切片窗口来调度计算资源(例如,mpe)。在此示例中,只有在前一切片窗口中的任务完成之后,在下一切片窗口中的任务才会被调度,进而被部署和执行。
[0063]
切片窗口可以在来自nbmp源的工作流描述中被明确地定义,其中,dag的边缘定义切片窗口标识符。因此,切片窗口可以由nbmp源、工作流描述提供者来定义。这种模式可以被称为“手动模式”。因此,每次工作流被执行时,都可发生基于“手动模式”切片窗口的执
字段中标识的任务单独地进行分配或分发(到不同的切片窗口中)。相反,工作流管理器应当将这些任务包括在同一切片窗口中,以使得在同一时间对这些任务进行调度和实例化(例如,同时地或并发地)。可以按照在工作流描述中所指定的完成个体任务的布置或增强。
[0076]
当“breakable”参数是true(例如,
‘1’
)时,工作流管理器可以按需在不同的切片窗口之中分配或分发在“from”和“to”字段中的任务。
[0077]“shareable”参数指示connectionmap对象的“from”和“to”字段中的任务是否必须被部署到同一mpe中以确保最小延迟。
[0078]
根据一个或多个示例实施例的connectionmap对象的示例json模式如下所示。
[0079][0080]
[0081]
切片窗口标识符被用于引导工作流的同步执行(例如,如图3中所示)。
[0082]
常规地,用于工作流的工作流执行模式是流式执行模式,其中,在工作流中的所有任务被并发地或同时地调度、实例化并等待数据。在这样做时,用于工作流中的所有任务的资源总量被估计,并且计算环境(mpe)被并发地或同时地从云提供商/基础架构请求和分配。
[0083]
一个或多个示例实施例提供了一种使用上述切片窗口的步进式执行模式(也被称为步进模式)。步进式执行模式涉及工作流的增量执行,其中,任务可以根据切片窗口被批量地处理。批处理定义一次实例化的任务数量,其中,任务数量可以从工作流中的一个任务到所有任务。
[0084]
根据一个或多个示例实施例,步进式执行模式可以利用不同的处理延迟和/或资源优化和重新使用。
[0085]
当步进式执行模式被启用时,任务可以具有“被调度”状态,并且工作流管理器可以支持后期任务实例化。可以在运行时(例如,在输入数据准备好时)以延迟的方式请求和/或分配实际的资源分配。被调度的任务的输入数据可以是先前完成的任务的任何输出。工作流管理器可以被已执行任务的相应mpe通知该任务的完成。下面将更详细地讨论任务的“被调度”状态。
[0086]
工作流描述可以包括全局变量以指示工作流应当根据步进式执行模式来执行。更具体地,例如,可以在工作流描述的要求描述符(requirements descriptor)中在“工作流/任务要求(workflow/task requirement)”下定义“execution_mode”参数。表2示出了根据一个或多个示例实施例的一组示例工作流/任务要求参数。
[0087][0088]
表2
[0089]
表3示出了根据一个或多个示例实施例的包括表2的工作流/任务要求参数的要求描述符的示例。
[0090][0091][0092]
表3表4定义了要求元数据,其被用作要求描述符的一部分。
[0093][0094][0095]
表4
[0096]
execution_mode参数(表2)可以是定义用于工作流的执行模式的字符串类型参数。在至少一个示例实施例中,执行模式可以包括流式执行模式或步进式执行模式。然而,字符串类型参数也可以被“保留”以用于其他执行模式。虽然被示出为字符串,但是如果只有两个模式可用(例如,流式和步进式执行模式),则execution_mode参数可以是布尔值。
[0097]
如上所提及的,根据一个或多个示例实施例,在步进式执行模式下,任务可以具有“被调度(scheduled)”状态。
[0098]
当前的nbmp规范定义了五个任务状态:被实例化(instantiated)、空闲(idle)、运行中(running)、错误(error)、以及被破坏(destroyed),其中,每个状态具有其来自工作流管理器的相关联事件。然而,在步进式执行模式下,一些任务可以被调度,进而随后被实例化。因此,一个或多个示例实施例提供被调度状态,其被定义为使任务可用(例如,创建并分配任务标识符(id)等),而并不真正将实际计算资源计入工作流的总体资源要求中。被调度状态允许工作流管理器从nbmp功能调度任务而无需为任务实际分配资源,并进而随后实例化被调度的任务。
[0099]
在一个示例实施例中,可以在任务被调度以运行时创建mpe,被调度的任务将在该mpe上被实例化。在另一个示例实施例中,被调度的任务将在其上被实例化的mpe可以从先前完成的任务中共享,如果用于此被共享的mpe的计算资源(如虚拟cpu、gpu、存储器、存储设备等)满足被调度的任务的需要/要求的话。
[0100]
图5是示出根据一个或多个示例实施例的任务的生命周期的状态图。
[0101]
如图5中所示,该状态图包括“被调度”状态以及在当前的nbmp规范中包括的被实例化、空闲、运行中、错误和被破坏状态。诸如被实例化和运行中之类的工作流状态可以支持其状态为被调度的任务。被调度的任务对工作流状态没有影响。
[0102]
图6是示出根据一个或多个示例实施例的用于执行工作流的方法的流程图。出于举例的目的,在图6中示出的方法将关于在图1中示出的nbmp系统100来讨论。然而,示例实施例不应限于该示例。
[0103]
参考图6,在步骤s702处,nbmp源110创建nbmp工作流描述,并将该工作流描述输出到工作流管理器120。
[0104]
在步骤s704处,工作流管理器120解析在来自nbmp源110的工作流描述中包括的pd和connectionmap,以识别用于在工作流描述中描述的工作流的相关功能描述。
[0105]
在步骤s706处,工作流管理器120从功能储存库130取得相关功能描述以生成工作流。
[0106]
在步骤s707处,工作流管理器120确定由来自nbmp源110的工作流描述所描述的工作流是否需要资源约束。在一个示例中,工作流管理器120基于用于在云基础架构中执行工作流的资源可用性来确定是否需要资源约束。例如,如果资源可用性大于或等于阈值水平,则可以不需要资源约束。另一方面,如果资源可用性小于阈值水平,则工作流管理器120可以确定需要资源约束。阈值水平可以由网络运营商基于经验数据按需设置。根据至少一个示例实施例,工作流管理器120可以基于来自云基础架构的资源指示来确定资源可用性。
[0107]
更详细地,例如,工作流管理器120可以基于可用资源和/或云基础架构响应时间(资源指示)(其可以通过接口从云基础架构(未示出)获得,并且可以指示缺乏资源)来确定是否需要资源约束。在另一个示例中,工作流管理器120可以知道在不同访问级别的云基础架构中可用的资源。例如,一组特定的gpu使能的mpe可以对于级别1访问可用,而其他gpu使能的mpe可以对于更高的级别可用,诸如级别2。因此,根据诸如acl(访问控制列表)或rbac(基于角色的访问控制)之类的nbmp源“访问级别”或“访问模式
””
,可用的工作流资源可以发生改变。在这种情况下,工作流管理器120可以基于在适用于特定工作流的访问级别可用
的资源来确定是否需要资源约束。
[0108]
如果工作流管理器120在步骤s707处确定需要资源约束,则在步骤s708处,工作流管理器120基于在要求描述符中包括的execution_mode参数来确定是否需要步进式执行模式。如上所讨论的,execution_mode参数可以指示是应当根据步进式执行模式还是流式执行模式来执行工作流。因此,工作流管理器120基于在工作流描述的要求描述符中包括的execution_mode参数来确定是否需要步进式执行模式。
[0109]
如果工作流管理器120确定步进式执行模式是必需的,则在步骤s710处,工作流管理器120基于在connectionmap对象中指定的断点来生成切片窗口。如上所提及的,在connectionmap对象中的断点可以包括任务对,“flow_control参数”对象包括针对该任务对而被设置为“true”的易中断参数。同样在步骤s710处,工作流管理器120通过将任务的状态更新为被调度来调度在每个切片窗口中的任务以用于执行。根据至少一些其他示例实施例,工作流管理器120可以将(仅)切片窗口子集(少于全部)中的任务的状态更新为被调度。在该子集中的切片窗口的数量可以通过表1中的切片窗口标识符来确定,或者由网络运营商根据网络条件、在工作流中包括的任务、可用资源等来确定。
[0110]
在步骤s712处,工作流管理器120计算在步骤s710处生成的一个或多个切片窗口中包括的被调度的任务所需的资源。根据至少一个示例实施例,工作流管理器120基于要求描述符的要求元数据部分来计算在每个切片窗口中包括的被调度的任务所需的资源。在给定切片窗口中的任务所需的计算资源量可以是基于是否需要cpu和/或gpu、存储器容量、媒体编码器可用性(例如,支持h.264硬件加速器编解码器)、任务间连接性链接数据速率等,这可以由要求描述符的要求元数据部分指示。
[0111]
在至少一个示例实施例中,在步骤s712处,工作流管理器120可以在每切片窗口的基础上计算在每个切片窗口中包括的被调度的任务所需的资源。也就是说,例如,工作流管理器120可以单独地计算在每个相应的切片窗口中的被调度的任务所需的资源。在步骤s712处针对大量(例如,所有)切片窗口计算所需资源可以提供更长的前置时间以获得所需资源和/或使工作流管理器120能够跨切片窗口执行更高级别的优化。
[0112]
在步骤s713处,工作流管理器120向基础架构提供商申请所选择的mpe 140(资源),以用于执行在下一(例如,第一)活动切片窗口中包括的任务。mpe的数量及其能力可以是基于至少下一切片窗口内的任务所需的所计算资源。
[0113]
在步骤s714处,工作流管理器120将在活动工作流切片窗口中的任务部署到所选择的mpe 140以用于执行。虽然mpe被选择,但是用于执行的任务的实际布置可以由云编排器(未示出)来执行,该云编排器可以驻留在云系统平台(未示出)中。一个或多个mpe执行任务以向媒体接收器150提供媒体。
[0114]
同样在步骤s714处,响应于从mpe 140接收到任务已被成功部署和/或执行的确认,工作流管理器120将在当前切片窗口中的被部署的任务的状态更新为被实例化。在后续的工作流切片窗口中的任务(随后将被执行)被保持在被调度状态。根据至少一些示例实施例,如果在仅切片窗口的子集中的任务当前被设置为被调度状态,则工作流管理器120还可以按需将一个或多个下一切片窗口的状态更新为被调度状态。
[0115]
在s715处,工作流管理器120确定工作流是否包括附加的切片窗口(例如,当前的切片窗口是工作流中的仅有一个切片窗口还是最后一个切片窗口)。
[0116]
如果工作流包括附加的切片窗口,则进程返回到步骤s713,并且如本文所讨论的那样继续下一个切片窗口。
[0117]
返回到步骤s715,如果工作流不包括附加的切片窗口,则工作流管理器120确定工作流的执行完成。
[0118]
返回到步骤s708,如果不需要步进式执行模式,则工作流管理器120确定应当根据流式执行模式来执行工作流。在这种情况下,在步骤s716处,工作流管理器120计算用于执行工作流中的所有任务所需的资源,并向基础架构提供商申请所选择的mpe 140(资源)以用于执行工作流中的任务。工作流管理器120可以在步骤s716处以与上文关于步骤s712和s713所讨论的相同或基本相同的方式计算所需资源并申请所选择的mpe140,不同之处在于针对工作流中的所有任务来执行计算和申请,而并不仅仅是在给定切片窗口中的任务。
[0119]
在步骤s718处,工作流管理器120以与步骤s714相同或基本相同的方式将工作流中的任务部署到所选择的mpe 140以用于执行。此外,与步骤s714一样,用于执行的任务的实际布置可以由可驻留在云系统平台(未示出)中的云编排器(未示出)来执行。一个或多个mpe执行任务以向媒体接收器150提供媒体。
[0120]
同样在步骤s718处,响应于从mpe 140接收到任务已被成功部署和/或执行的确认,工作流管理器120将在当前切片窗口中的被部署的任务的状态更新为被实例化。
[0121]
返回到步骤s707,如果工作流管理器120确定工作流不需要资源约束,则进程进行到步骤s716并如上所述地继续。
[0122]
在图6中示出的示例实施例是自动模式的示例,在自动模式下,工作流管理器在运行时确定是否以及如何应用切片窗口。在手动模式下,可以执行类似的方法,不同之处在于可以省略步骤s707、s708、s716和s718,并且该方法可以从图6中所示的流程中的步骤s706直接进行到步骤s710。
[0123]
在替代的示例实施例中,在图6中的步骤s708处,基于任务之间的一个或多个连接(工作流dag的边缘)在connectionmap对象中的“flow_control参数”对象中是否被定义为“易中断”,而不是基于execution_mode参数,工作流管理器120可以确定是否应当根据步进式执行模式来执行工作流。另外,在此示例实施例中,可以省略步骤s707。
[0124]
根据一个或多个示例实施例,所提出的任务之间的“易中断”特性可以允许工作流管理器自动强制工作流进入步进式执行模式。通过这样做,工作流管理器120可以将工作流的执行模式改变到步进式执行模式,例如,当消耗的总资源超过阈值时(例如,在一段时间超过85%的存储器容量/虚拟cpu负载)。工作流管理器可以将那些被部署的任务从其诸如“运行中”之类的状态强制成为“被调度”,并按需为新的工作流实例释放更多的资源。
[0125]
图7描绘了尤其适用于实现工作流管理器120、mpe 140、媒体源112、nbmp源110、第三方实体111、媒体接收器150、功能储存库130、其他网络单元和/或设备的计算机、计算或电子设备的高级框图。
[0126]
参考图7,计算机1900包括一个或多个处理器1902(例如,中央处理单元(cpu)或其他合适的处理器)和存储器1904(例如,随机存取存储器(ram)、只读存储器(rom)等)。计算机1900还可以包括协作模块/进程1905。协作进程1905可以被加载到存储器1904中并由处理器1902执行以实现如本文所讨论的功能,因此,协作进程1905(包括相关联的数据结构)可以被存储在计算机可读存储介质(例如,ram存储器、磁或光驱动器或磁盘等)上。
[0127]
计算机1900还可以包括一个或多个输入/输出设备1906(例如,用户输入设备(诸如键盘、小键盘、鼠标等)、用户输出设备(例如,显示器、扬声器等)、输入端口、输出端口、接收器、发射器、一个或多个存储设备(例如,磁带驱动器、软盘驱动器、硬盘驱动器、光盘驱动器等)等及其各种组合。
[0128]
虽然本文可以使用术语第一、第二等来描述各种元件,但是这些元件不应受这些术语的限制。这些术语仅用于将一个元件与另一个元件区分开来。例如,在不背离本公开的范围的情况下,第一单元可以被称为第二元件,并且类似地,第二元件可以被称为第一元件。如本文所使用的,术语“和/或”包括一个或多个相关联的所列项的任何和所有组合。
[0129]
当一个元件被称为被“连接”或“耦合”到另一个元件时,它可以直接被连接或耦合到另一个元件,或者可以存在中间元件。相比之下,当一个元件被称为被“直接连接”或“直接耦合”到另一个元件时,不存在中间元件。用于描述元件之间的关系的其他词语应当以类似的方式进行解释(例如,“在
……
之间”与“直接在
……
之间”、“相邻”与“直接相邻”等)。
[0130]
在本文中使用的术语仅用于描述特定实施例的目的而并不旨在进行限制。如本文所使用的,单数形式的“一”、“一个”和“该”也旨在包括复数形式,除非上下文另有明确指示。将进一步理解,术语“包括”和/或“包含”在本文中使用时指定所述特征、整数、步骤、操作、元件和/或组件的存在,但并不排除存在或添加一个或多个其他的特征、整数、步骤、操作、元件、组件和/或其群组。
[0131]
还应当注意,在一些替代实现中,所指出的功能/动作可以并不按照附图中所指出的顺序发生。例如,根据所涉及的功能/动作,连续示出的两个附图实际上可以基本上同时执行或者有时可以以相反的顺序执行。
[0132]
在以下描述中提供具体细节以提供对示例实施例的透彻理解。然而,本领域普通技术人员将理解,可以实践示例实施例而无需这些具体细节。例如,可以在框图中示出系统以避免因不必要的细节而模糊示例实施例。在其他情况下,可以示出众所周知的进程、结构和技术而没有不必要的细节以避免混淆示例实施例。
[0133]
如本文所讨论的,将参考操作的动作和符号表示(例如,采用流程图、作业图、数据流图、结构图、框图等形式)来描述说明性实施例,这些操作可以被实现为包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等的程序模块或功能进程,并且可以使用现有硬件在例如现有的网络单元或实体处实现,现有的网络单元或实体包括工作流管理器、数据服务器、网络资源控制器、客户端、路由器、网关、网络节点、计算机、基于云的服务器、web服务器、应用服务器、代理或代理服务器等。这种现有硬件可以是处理或控制电路,诸如但不限于一个或多个处理器、一个或多个中央处理单元(cpu)、一个或多个控制器、一个或多个算术逻辑单元(alu)、一个或多个数字信号处理器(dsp)、一个或多个微型计算机、一个或多个现场可编程门阵列(fpga)、一个或多个片上系统(soc)、一个或多个可编程逻辑单元(plu)、一个或多个微处理器,一个或多个专用集成电路(asic)、或能够以所定义的方式响应并执行指令的任何其他设备。
[0134]
虽然流程图可以将操作描述为顺序的进程,但是可以并行地、并发地或同时地执行许多操作。另外,可以重新布置操作的顺序。进程可以在其操作完成时终止,但也可以具有附图中未包括的附加步骤。进程可以对应于方法、函数、过程、子例程、子程序等。当进程对应于函数时,其终止可以对应于函数返回调用函数或主函数。
[0135]
如本文所公开的,术语“存储介质”、“计算机可读存储介质”或“非暂时性计算机可读存储介质”可以表示用于存储数据的一个或多个设备,包括只读存储器(rom)、随机存取存储器(ram)、磁性ram、核心存储器、磁盘存储介质、光存储介质、闪存存储器设备和/或用于存储信息的其他有形机器可读介质。术语“计算机可读介质”可以包括但不限于便携式或固定存储设备、光存储设备以及能够存储、包含或携带指令和/或数据的各种其他介质。
[0136]
此外,示例实施例可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合来实现。当以软件、固件、中间件或微代码实现时,用于执行必要任务的程序代码或代码段可以被存储在机器或诸如计算机可读存储介质之类的计算机可读介质中。当以软件实现时,一个或多个处理器将执行必要的任务。例如,如上所提及的,根据一个或多个示例实施例,至少一个存储器可以包括或存储计算机程序代码,并且至少一个存储器和计算机程序代码可以被配置为与至少一个处理器一起使网络单元或网络设备执行必要的任务。另外,处理器、存储器和被编码为计算机程序代码的示例算法用作用于提供或导致在本文中所讨论的操作的性能的部件。
[0137]
计算机程序代码的代码段可以表示过程、功能、子程序、程序、例程、子例程、模块、软件包、类、或指令、数据结构或程序语句的任何组合。代码段可以通过传递和/或接收信息、数据、变量、参数或存储器内容而被耦合到另一代码段或硬件电路。信息、变量、参数、数据等可以经由任何合适的技术而被传递、转发或传输,这些技术包括存储器共享、消息传递、令牌传递、网络传输等。
[0138]
如本文所使用的,术语“包括”和/或“具有”被定义为包括(即,开放语言)。如本文所使用的,术语“耦合”被定义为被连接,但未必是直接连接,也未必是机械连接。源自“指示(indicating)”一词的术语(例如,“指示(indicates)”和“指示(indication)”)旨在涵盖所有可用于传达或引用所指示的对象/信息的各种技术。可用于传达或引用所指示的对象/信息的技术的一些(但并非全部)示例包括所指示的对象/信息的传送、所指示的对象/信息的标识符的传送、用于生成所指示的对象/信息的信息的传送、所指示的对象/信息的某些部分或一部分的传送、所指示的对象/信息的某些派生的传送、以及表示所指示的对象/信息的某些符号的传送。
[0139]
虽然本文关于数据服务器讨论了示例实施例,但是网络设备还可以包括诸如网络资源控制器、客户端、路由器、网关、网络节点、计算机、基于云的服务器、web服务器、应用服务器、代理或代理服务器等之类的网络单元。
[0140]
根据示例实施例,网络单元、网络设备、数据服务器、网络资源控制器、客户端、路由器、网关、网络节点、计算机、基于云的服务器、web服务器、应用服务器、代理或代理服务器等可以是(或包括)硬件、固件、硬件执行软件或其任何组合。这种硬件可以包括处理或控制电路,诸如但不限于一个或多个处理器、一个或多个cpu、一个或多个控制器、一个或多个alu、一个或多个dsp、一个或多个微型计算机、一个或多个fpga、一个或多个soc、一个或多个plu、一个或多个微处理器、一个或多个asic、或能够以所定义的方式响应并执行指令的任何其他设备。
[0141]
以上已经关于本发明的具体实施例描述了益处、其他优势和问题的解决方案。然而,这些益处、优势、问题的解决方案、以及可导致或得到这种利益、优势或解决方案或导致这种利益、优势或解决方案变得更加显著的任何元素不得被解释为任一或所有权利要求的
关键、必需或必要的特征或元素。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献