电视播出系统文件流程监管系统的设计与实践

2022-03-14 02:19方嘉珂杨剑霖
电视技术 2022年2期
关键词:视图引擎客户端

方嘉珂,杨剑霖

(昆明广播电视台,云南 昆明 650100)

0 引 言

随着数字化建设的不断推进,过去的文件化流程解决了互联互通问题,避免了大规模磁带/介质上载带来的设备投资,大幅度降低了送播节目的错误率,并降低了送带、上载人员的人工工作量,但也带来了一些新的问题。例如,制作部门的送带动作变为在制作非编站上发起打包,打包后续全部为后台自动流程,这些流程对于制作人员和审片人员不可见,他们无法了解后续节目是否及时到位。流程自动运行时,技术人员只有到后台才能看到是那个流程出现问题,那么制作人员因关心自己所送播节目的情况就可能反复给播出部门打电话询问。这是由人工交接变成自动化交接面临的一个典型问题[1]。

总之,在播出制作部门,无论是值班人员、技术人员,都存在需要查询多个软件才能判断某素材状态的工作形态[3]。这也是后台自动化工作后对前台人员缺乏可见性的一种典型问题,非常影响运维工作效率。

1 流程管理与监控的设计与实现

要想切实解决上述问题,急需从制播业务流程的结构、组成、功能、应用等方面进行科学有效的监管,从素材制作到成品入库,从审核迁移到最终播出,每个环节都离不开具体或抽象的流程。因此,在播出系统高清化改造过程中,技术团队着重考虑了流程管理上的优化措施并基于此实现流程监控,改善之前文件化流程所带来的问题。

具体地,技术团队引入了正奇精瀚整备系统和工作流引擎模块、流程监控模块,工作流引擎模块最大的优势是可以结合台站业务特点和各个非编网的特点需求,自定义工作流引擎模板,通过工作流引擎将EMB服务器、媒体处理中心服务端及执行端等服务器组进行串联,并配套流程监控模块,实现对工作流的精确监控和集中展现,应急时也可以手动进行人工干预。

工作流引擎以数据为中心、以节目素材为流程依据,可根据不同场景定义不同的触发条件。当某节目素材触发流程时,根据该素材目前的状态、素材类型、开播时间等元数据信息,匹配不同频道的播出节目单,匹配不同的流程模板,根据流程模板生成一个独立的流程步骤表,通过工作流引擎的接口,获取和刷新流程状态,并通过大屏、客户端、App等方式进行展现。监控角度能够着眼全局,全面覆盖各个子功能模块,对海量细节数据进行综合分析,呈现潜在的流程关联,让人清楚直观地了解进度并第一时间发现问题,及时做出响应。

1.1 工作流管理的实现机制

系统设计根据工作流系统参考模型,核心依赖于工作流引擎,是工作流系统的心脏。围绕工作流引擎,将工作流系统应用到播出系统节目文件备播、处理、送播业务流程中。首先,将业务流程的使用到的业务对象标准化,定义出素材对象、迁移任务、MD5校验任务、技审任务、人工复审任务,以抽象出工作流流程中的各个流程节点,定义流程节点的输入参数、输出参数以及判断条件。通过业务流程定义,将各个流程节点连接起来。启动一个工作流时,工作流引擎会启动一个线程,负责该业务流程定义实例化,逐个执行流程定义中各个流程节点的逻辑计算,通常对于简单的逻辑判断直接返回,如果逻辑判断较为复杂,需要大量参数进行比对计算时,则通过Web Services、Http服务去调用外部的一个或多个接口,得到结果后将结果交给工作流引擎;工作流引擎根据逻辑结果和业务流程定义,启动下一个流程节点,在流程定义中可以根据结果设置分支、并发等子流程。例如,判断文件备份位置的流程如图1所示,其中的“判断文件备份位置”为其中一个业务流程节点,工作流引擎会根据设定的调整将文件镜像到另外一个存储当中[4]。

1.2 工作流执行流程实例

本次高清系统改造要满足与高清新闻网、高清广告网及高标清制作网的互联互通,高清制作网打包生成符合播出视频服务器MXF_ OP1a 标准的高清文件,并通过接口向播出送播。因此,在工作流引擎的设置上,进行了针对性的模板配置,包括针对这2个制作网各自的入库和迁移流程,入库后的技审、软审流程,二级存储送视频服务器流程等多个流程环节,每个环节都具备多种流程模板[5]。

以文件迁移流程为例,工作流执行流程如图2所示,其中的“文件迁移”流程节点,就是工作流引擎驱动下去调用媒体处理中心来实现实际文件的调度,迁移结束后将迁移结果反馈给工作流平台,工作流引擎继续执行后续流程。

妈妈和劳拉、玛丽在篷车里吃着面包和糖蜜,马吃着挂在脖颈上的饲料袋里的谷粒,爸爸则走进那家商店用兽皮交换旅途上需要的东西。他们不能在镇子里待得太久,因为他们必须在当天穿过丕平湖。

1.3 工作流引擎和流程监控的实现

工作流服务系统是针对整体的系统业务根据既定流程进行业务驱动的工作模块,完成对整个系统业务的统一管理、监控,根据流程数据,可快速了解系统现有任务执行情况,提供快速的业务处理方案,提高系统业务管理、执行效率。工作流系统功能结构如图3所示。

1.3.1 流程定义、流程管理与流程控制服务

根据不同的业务需求定义不同的工作流程,对系统中各个工作流程协作完成业务的处理。流程各个节点的任务驱动根据节点不同的结果执行不同的流程,流程状态的管理根据执行结果更新流程整体状态。

整个系统的业务运行以流程来驱动,所有的消息交换通过流程节点来完成。工作流管理引擎肩负着对整个系统中所有处理消息的传递以及转换功能,将对应的消息处理传递给不同的系统模块和系统服务来完成不同任务的执行,从而驱动整个流程运行。

工作流将完成不同功能的各个节点串联在一起,成为对应的工作流。工作流引擎需要对各个节点的服务进行统一调度管理,保证各个节点正确地执行相应的任务处理功能。

工作流作为系统的驱动主线,处理不同节点传来的数据,将各个节点的任务信息传递给其他节点,而不同的两个节点之间会根据任务不同而需要不同的协议来协调完成系统工作。工作流作为数据交换的中心,支持各个协议之间的自由转换,从而支持不同节点的任务驱动,将各个节点的任务执行结果反馈到需要消息的功能模块,处理这些消息,完成信息有效转换。流程节点服务注册、管理,根据各个节点的执行结果,调用相关的服务,驱动下一个节点处理对应的任务,同时实现对后台其他服务的注册监视功能。根据定义好的流程策略,工作流引擎对系统中流程的状态进行实时的监视以及运行管理,以保证系统流程可以正常运行;根据节点任务的执行状态来确定相关流程的运行状态,将流程正常与否的状态实时反馈到工作流客户端。

在项目实践中,可以采用工作流工具,针对不同的流程,生成不同的工作流模板,为不同的任务形态、阶段提供适配能力。如果未来系统业务需求出现变化,工作人员只需要重新设置工作流模板,就可以适配新的业务流程,而不需要对系统的结构进行变动。这种建设方式充分利用了工作流引擎带来的架构灵活性,提高了系统弹性,保护投资。下面是文件导入流程在工作流客户端中的体现,如图4所示。

图4 素材导入流程图

1.3.2 业务流程监控

业务流程监控主要包括串联单状态监控、流程执行状态监控、节目备播状态监控以及流程可视化管理等。

(1)串联单状态监控。在串联单的创建、审核、上线、修改、删除整个生命周期中对各个节点状态的监视,保证工作人员实时、方便地了解串联单的更新状态,保证播出串联单正确无误。

(2)流程执行状态监控。对系统中正在运行的任务流程的实时监控,通过流程客户端可以查询所有的系统任务流程,包括正在执行、执行结束、等待执行的任务流程,了解流程系统任务节点的执行 状态。

(3)节目备播状态监控。在流程客户端中,根据数据库串联单,实时查询串联单中节目对应实体文件的备播状态,及时了解节目文件的备播任务执行情况,包括所处流程节点、各个节点任务执行状态。对于到时未就绪的素材,提前给出消息提醒。

(4)流程可视化管理。所有流程的任务节点的执行状态可以实时地通过流程客户端进行展示,并且在客户端上以线性流程图的图文形式进行呈现。在可视化的流程图中可以直接对任务节点上执行的任务进行处理。

1.4 内容服务平台软件及服务监控

系统对后台运行的执行端进行实时的监控,监控软件的运行状态、任务执行状态等软件及服务器状态信息;通过监测不同服务器上的后台服务,在客户端上呈现各个服务的运行状态。工作人员可通过前台软件实时了解后台软件的运行状态。

工作流客户端提供了方便的工作流程、系统任务的管理功能。工作人员使用工作流客户端可以监视系统流程是否正常运行、任务是否正常执行、任务执行服务器运行情况、串联单节目就绪情况等系统服务信息。工作流客户端分为设备视图、流程视图、任务视图,使用不同的视图,可以对不同的模块进行监控。

1.4.1 设备视图

设备视图显示了后台在线的Actor(执行端)软件以及Actor所在服务器的系统运行状态信息。每个Actor显示该Actor当前正在执行的任务信息。Actor的状态分为“托管”和“取消托管”。“托管”状态的Actor可以自动接收服务端分配的任务并执行,“取消托管”状态的Actor需要手动指定任务给Actor执行。每个Actor中间的空白处显示该Actor当前正在执行的任务信息,包括任务的文件名称、任务类型以及任务进度等。CPU、内存、硬盘、网络显示的信息为Actor所在服务器的实时运行状态信息。IP地址为Actor所在服务器的IP地址及Actor与媒体处理中心服务通信端口。这样,除了由系统自动监控性能完成负载均衡外,工作人员也可以手动在设备视图中点击“托管”或“取消托管”来上下线Actor,进行在线的性能手动扩展或者对故障的Actor节点进行维护,如图5所示。

图5 设备视图

1.4.2 流程视图

在工作流流程视图中,运维人员可以查看系统流程的运行情况,监视流程是否正常、是否有任务执行失败,也可查看素材流程运行节点信息。运维人员可以在这个界面内对相关流程进行一些处理操作。系统通过多种颜色来区分流程的运行状态:绿色表示已完成的流程,黄色表示正在执行的流程,红色表示流程中有节点执行失败。界面右侧区域为查询结果流程列表,默认查询为当天所有流程。当系统中流程较多时,也可以使用界面左侧区域进行查询条件输入。流程查询后,在流程列表中选中一条流程,点击鼠标右键会弹出流程操作菜单,值班人员可以在这里取消或者重置流程,对流程进行在线维护。用鼠标双击该流程,即可打开该具体流程的工作流链路图,可以查看该流程中各个具体工作节点的详细运行信息,流程节点的不同状态以不同的颜色进行区分,包括运行中、已完成、有异常等多种情况,人员可以直观地了解和关注可能有问题的流程。

1.4.3 子流程视图

子流程视图可以将表格化的流程根据工作流的定义进行流程图式的展现,工作人员可以直观地了解该条任务的执行情况,更精确地掌握流程的异常故障点,以便指导维护人员快速介入。比如,执行中发现节点标红,说明此节点执行失败,用鼠标点击该节点,界面右侧会显示该节点任务的详细信息,人员可根据情况直接在界面上对该节点或整个任务进行重置、取消等操作。点击下方中间的折叠按钮,人员可以查看与该记录相关的其他工作流程的运行状态信息,鼠标双击可以切入相关联流程的流程节点图,这样运维人员就可以在整个全流程中进行快速切换和定位。

1.4.4 任务视图

在文件整备流程中,关键耗时的任务包括迁移、校验、技审、转码等,都是需要运维人员重点关注的,采用任务视图可以查看后台媒体处理中心所有任务的执行状态,可以对后台任务进行实时有效的监控。如图6所示,界面给出了任务的列表视图,显示了所有检索到的任务信息,任务列表中不同状态的任务会以不同的颜色进行区分显示。如果需要对一条任务进行维护,选中任务点击鼠标右键,可以通过右键菜单对该条任务进行相关操作,如任务重置、任务取消、优先级调整等,通过这些细节的干预来对系统的运行状态进行微调。

图6 任务视图

2 结 语

通过引入工作流对播出素材文件的备播、处理、送播流程进行管控,避免了迁移流程策略驱动带来的轮询间隔耗时问题,使文件送播过程中的各个处理环节衔接有序,达到了非常低的中间耗时。同时,工作流程管理带来了可视化的业务流程视图,运维人员可以较快地定位出现问题的环节,提升了运行维护的效率,降低了工作人员的工作压力,达到了系统设计的目标。

猜你喜欢
视图引擎客户端
你的手机安装了多少个客户端
你的手机安装了多少个客户端
新海珠,新引擎,新活力!
车坛往事4:引擎进化之屡次失败的蒸汽机车
如何看待传统媒体新闻客户端的“断舍离”?
蓝谷: “涉蓝”新引擎
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
Django 框架中通用类视图的用法