方嘉珂,楊劍霖
(昆明廣播電視臺(tái),云南 昆明 650100)
隨著數(shù)字化建設(shè)的不斷推進(jìn),過(guò)去的文件化流程解決了互聯(lián)互通問(wèn)題,避免了大規(guī)模磁帶/介質(zhì)上載帶來(lái)的設(shè)備投資,大幅度降低了送播節(jié)目的錯(cuò)誤率,并降低了送帶、上載人員的人工工作量,但也帶來(lái)了一些新的問(wèn)題。例如,制作部門的送帶動(dòng)作變?yōu)樵谥谱鞣蔷幷旧习l(fā)起打包,打包后續(xù)全部為后臺(tái)自動(dòng)流程,這些流程對(duì)于制作人員和審片人員不可見,他們無(wú)法了解后續(xù)節(jié)目是否及時(shí)到位。流程自動(dòng)運(yùn)行時(shí),技術(shù)人員只有到后臺(tái)才能看到是那個(gè)流程出現(xiàn)問(wèn)題,那么制作人員因關(guān)心自己所送播節(jié)目的情況就可能反復(fù)給播出部門打電話詢問(wèn)。這是由人工交接變成自動(dòng)化交接面臨的一個(gè)典型問(wèn)題[1]。
總之,在播出制作部門,無(wú)論是值班人員、技術(shù)人員,都存在需要查詢多個(gè)軟件才能判斷某素材狀態(tài)的工作形態(tài)[3]。這也是后臺(tái)自動(dòng)化工作后對(duì)前臺(tái)人員缺乏可見性的一種典型問(wèn)題,非常影響運(yùn)維工作效率。
要想切實(shí)解決上述問(wèn)題,急需從制播業(yè)務(wù)流程的結(jié)構(gòu)、組成、功能、應(yīng)用等方面進(jìn)行科學(xué)有效的監(jiān)管,從素材制作到成品入庫(kù),從審核遷移到最終播出,每個(gè)環(huán)節(jié)都離不開具體或抽象的流程。因此,在播出系統(tǒng)高清化改造過(guò)程中,技術(shù)團(tuán)隊(duì)著重考慮了流程管理上的優(yōu)化措施并基于此實(shí)現(xiàn)流程監(jiān)控,改善之前文件化流程所帶來(lái)的問(wèn)題。
具體地,技術(shù)團(tuán)隊(duì)引入了正奇精瀚整備系統(tǒng)和工作流引擎模塊、流程監(jiān)控模塊,工作流引擎模塊最大的優(yōu)勢(shì)是可以結(jié)合臺(tái)站業(yè)務(wù)特點(diǎn)和各個(gè)非編網(wǎng)的特點(diǎn)需求,自定義工作流引擎模板,通過(guò)工作流引擎將EMB服務(wù)器、媒體處理中心服務(wù)端及執(zhí)行端等服務(wù)器組進(jìn)行串聯(lián),并配套流程監(jiān)控模塊,實(shí)現(xiàn)對(duì)工作流的精確監(jiān)控和集中展現(xiàn),應(yīng)急時(shí)也可以手動(dòng)進(jìn)行人工干預(yù)。
工作流引擎以數(shù)據(jù)為中心、以節(jié)目素材為流程依據(jù),可根據(jù)不同場(chǎng)景定義不同的觸發(fā)條件。當(dāng)某節(jié)目素材觸發(fā)流程時(shí),根據(jù)該素材目前的狀態(tài)、素材類型、開播時(shí)間等元數(shù)據(jù)信息,匹配不同頻道的播出節(jié)目單,匹配不同的流程模板,根據(jù)流程模板生成一個(gè)獨(dú)立的流程步驟表,通過(guò)工作流引擎的接口,獲取和刷新流程狀態(tài),并通過(guò)大屏、客戶端、App等方式進(jìn)行展現(xiàn)。監(jiān)控角度能夠著眼全局,全面覆蓋各個(gè)子功能模塊,對(duì)海量細(xì)節(jié)數(shù)據(jù)進(jìn)行綜合分析,呈現(xiàn)潛在的流程關(guān)聯(lián),讓人清楚直觀地了解進(jìn)度并第一時(shí)間發(fā)現(xiàn)問(wèn)題,及時(shí)做出響應(yīng)。
系統(tǒng)設(shè)計(jì)根據(jù)工作流系統(tǒng)參考模型,核心依賴于工作流引擎,是工作流系統(tǒng)的心臟。圍繞工作流引擎,將工作流系統(tǒng)應(yīng)用到播出系統(tǒng)節(jié)目文件備播、處理、送播業(yè)務(wù)流程中。首先,將業(yè)務(wù)流程的使用到的業(yè)務(wù)對(duì)象標(biāo)準(zhǔn)化,定義出素材對(duì)象、遷移任務(wù)、MD5校驗(yàn)任務(wù)、技審任務(wù)、人工復(fù)審任務(wù),以抽象出工作流流程中的各個(gè)流程節(jié)點(diǎn),定義流程節(jié)點(diǎn)的輸入?yún)?shù)、輸出參數(shù)以及判斷條件。通過(guò)業(yè)務(wù)流程定義,將各個(gè)流程節(jié)點(diǎn)連接起來(lái)。啟動(dòng)一個(gè)工作流時(shí),工作流引擎會(huì)啟動(dòng)一個(gè)線程,負(fù)責(zé)該業(yè)務(wù)流程定義實(shí)例化,逐個(gè)執(zhí)行流程定義中各個(gè)流程節(jié)點(diǎn)的邏輯計(jì)算,通常對(duì)于簡(jiǎn)單的邏輯判斷直接返回,如果邏輯判斷較為復(fù)雜,需要大量參數(shù)進(jìn)行比對(duì)計(jì)算時(shí),則通過(guò)Web Services、Http服務(wù)去調(diào)用外部的一個(gè)或多個(gè)接口,得到結(jié)果后將結(jié)果交給工作流引擎;工作流引擎根據(jù)邏輯結(jié)果和業(yè)務(wù)流程定義,啟動(dòng)下一個(gè)流程節(jié)點(diǎn),在流程定義中可以根據(jù)結(jié)果設(shè)置分支、并發(fā)等子流程。例如,判斷文件備份位置的流程如圖1所示,其中的“判斷文件備份位置”為其中一個(gè)業(yè)務(wù)流程節(jié)點(diǎn),工作流引擎會(huì)根據(jù)設(shè)定的調(diào)整將文件鏡像到另外一個(gè)存儲(chǔ)當(dāng)中[4]。
本次高清系統(tǒng)改造要滿足與高清新聞網(wǎng)、高清廣告網(wǎng)及高標(biāo)清制作網(wǎng)的互聯(lián)互通,高清制作網(wǎng)打包生成符合播出視頻服務(wù)器MXF_ OP1a 標(biāo)準(zhǔn)的高清文件,并通過(guò)接口向播出送播。因此,在工作流引擎的設(shè)置上,進(jìn)行了針對(duì)性的模板配置,包括針對(duì)這2個(gè)制作網(wǎng)各自的入庫(kù)和遷移流程,入庫(kù)后的技審、軟審流程,二級(jí)存儲(chǔ)送視頻服務(wù)器流程等多個(gè)流程環(huán)節(jié),每個(gè)環(huán)節(jié)都具備多種流程模板[5]。
以文件遷移流程為例,工作流執(zhí)行流程如圖2所示,其中的“文件遷移”流程節(jié)點(diǎn),就是工作流引擎驅(qū)動(dòng)下去調(diào)用媒體處理中心來(lái)實(shí)現(xiàn)實(shí)際文件的調(diào)度,遷移結(jié)束后將遷移結(jié)果反饋給工作流平臺(tái),工作流引擎繼續(xù)執(zhí)行后續(xù)流程。
媽媽和勞拉、瑪麗在篷車?yán)锍灾姘吞敲郏R吃著掛在脖頸上的飼料袋里的谷粒,爸爸則走進(jìn)那家商店用獸皮交換旅途上需要的東西。他們不能在鎮(zhèn)子里待得太久,因?yàn)樗麄儽仨氃诋?dāng)天穿過(guò)丕平湖。
工作流服務(wù)系統(tǒng)是針對(duì)整體的系統(tǒng)業(yè)務(wù)根據(jù)既定流程進(jìn)行業(yè)務(wù)驅(qū)動(dòng)的工作模塊,完成對(duì)整個(gè)系統(tǒng)業(yè)務(wù)的統(tǒng)一管理、監(jiān)控,根據(jù)流程數(shù)據(jù),可快速了解系統(tǒng)現(xiàn)有任務(wù)執(zhí)行情況,提供快速的業(yè)務(wù)處理方案,提高系統(tǒng)業(yè)務(wù)管理、執(zhí)行效率。工作流系統(tǒng)功能結(jié)構(gòu)如圖3所示。
1.3.1 流程定義、流程管理與流程控制服務(wù)
根據(jù)不同的業(yè)務(wù)需求定義不同的工作流程,對(duì)系統(tǒng)中各個(gè)工作流程協(xié)作完成業(yè)務(wù)的處理。流程各個(gè)節(jié)點(diǎn)的任務(wù)驅(qū)動(dòng)根據(jù)節(jié)點(diǎn)不同的結(jié)果執(zhí)行不同的流程,流程狀態(tài)的管理根據(jù)執(zhí)行結(jié)果更新流程整體狀態(tài)。
整個(gè)系統(tǒng)的業(yè)務(wù)運(yùn)行以流程來(lái)驅(qū)動(dòng),所有的消息交換通過(guò)流程節(jié)點(diǎn)來(lái)完成。工作流管理引擎肩負(fù)著對(duì)整個(gè)系統(tǒng)中所有處理消息的傳遞以及轉(zhuǎn)換功能,將對(duì)應(yīng)的消息處理傳遞給不同的系統(tǒng)模塊和系統(tǒng)服務(wù)來(lái)完成不同任務(wù)的執(zhí)行,從而驅(qū)動(dòng)整個(gè)流程運(yùn)行。
工作流將完成不同功能的各個(gè)節(jié)點(diǎn)串聯(lián)在一起,成為對(duì)應(yīng)的工作流。工作流引擎需要對(duì)各個(gè)節(jié)點(diǎn)的服務(wù)進(jìn)行統(tǒng)一調(diào)度管理,保證各個(gè)節(jié)點(diǎn)正確地執(zhí)行相應(yīng)的任務(wù)處理功能。
工作流作為系統(tǒng)的驅(qū)動(dòng)主線,處理不同節(jié)點(diǎn)傳來(lái)的數(shù)據(jù),將各個(gè)節(jié)點(diǎn)的任務(wù)信息傳遞給其他節(jié)點(diǎn),而不同的兩個(gè)節(jié)點(diǎn)之間會(huì)根據(jù)任務(wù)不同而需要不同的協(xié)議來(lái)協(xié)調(diào)完成系統(tǒng)工作。工作流作為數(shù)據(jù)交換的中心,支持各個(gè)協(xié)議之間的自由轉(zhuǎn)換,從而支持不同節(jié)點(diǎn)的任務(wù)驅(qū)動(dòng),將各個(gè)節(jié)點(diǎn)的任務(wù)執(zhí)行結(jié)果反饋到需要消息的功能模塊,處理這些消息,完成信息有效轉(zhuǎn)換。流程節(jié)點(diǎn)服務(wù)注冊(cè)、管理,根據(jù)各個(gè)節(jié)點(diǎn)的執(zhí)行結(jié)果,調(diào)用相關(guān)的服務(wù),驅(qū)動(dòng)下一個(gè)節(jié)點(diǎn)處理對(duì)應(yīng)的任務(wù),同時(shí)實(shí)現(xiàn)對(duì)后臺(tái)其他服務(wù)的注冊(cè)監(jiān)視功能。根據(jù)定義好的流程策略,工作流引擎對(duì)系統(tǒng)中流程的狀態(tài)進(jìn)行實(shí)時(shí)的監(jiān)視以及運(yùn)行管理,以保證系統(tǒng)流程可以正常運(yùn)行;根據(jù)節(jié)點(diǎn)任務(wù)的執(zhí)行狀態(tài)來(lái)確定相關(guān)流程的運(yùn)行狀態(tài),將流程正常與否的狀態(tài)實(shí)時(shí)反饋到工作流客戶端。
在項(xiàng)目實(shí)踐中,可以采用工作流工具,針對(duì)不同的流程,生成不同的工作流模板,為不同的任務(wù)形態(tài)、階段提供適配能力。如果未來(lái)系統(tǒng)業(yè)務(wù)需求出現(xiàn)變化,工作人員只需要重新設(shè)置工作流模板,就可以適配新的業(yè)務(wù)流程,而不需要對(duì)系統(tǒng)的結(jié)構(gòu)進(jìn)行變動(dòng)。這種建設(shè)方式充分利用了工作流引擎帶來(lái)的架構(gòu)靈活性,提高了系統(tǒng)彈性,保護(hù)投資。下面是文件導(dǎo)入流程在工作流客戶端中的體現(xiàn),如圖4所示。

圖4 素材導(dǎo)入流程圖
1.3.2 業(yè)務(wù)流程監(jiān)控
業(yè)務(wù)流程監(jiān)控主要包括串聯(lián)單狀態(tài)監(jiān)控、流程執(zhí)行狀態(tài)監(jiān)控、節(jié)目備播狀態(tài)監(jiān)控以及流程可視化管理等。
(1)串聯(lián)單狀態(tài)監(jiān)控。在串聯(lián)單的創(chuàng)建、審核、上線、修改、刪除整個(gè)生命周期中對(duì)各個(gè)節(jié)點(diǎn)狀態(tài)的監(jiān)視,保證工作人員實(shí)時(shí)、方便地了解串聯(lián)單的更新狀態(tài),保證播出串聯(lián)單正確無(wú)誤。
(2)流程執(zhí)行狀態(tài)監(jiān)控。對(duì)系統(tǒng)中正在運(yùn)行的任務(wù)流程的實(shí)時(shí)監(jiān)控,通過(guò)流程客戶端可以查詢所有的系統(tǒng)任務(wù)流程,包括正在執(zhí)行、執(zhí)行結(jié)束、等待執(zhí)行的任務(wù)流程,了解流程系統(tǒng)任務(wù)節(jié)點(diǎn)的執(zhí)行 狀態(tài)。
(3)節(jié)目備播狀態(tài)監(jiān)控。在流程客戶端中,根據(jù)數(shù)據(jù)庫(kù)串聯(lián)單,實(shí)時(shí)查詢串聯(lián)單中節(jié)目對(duì)應(yīng)實(shí)體文件的備播狀態(tài),及時(shí)了解節(jié)目文件的備播任務(wù)執(zhí)行情況,包括所處流程節(jié)點(diǎn)、各個(gè)節(jié)點(diǎn)任務(wù)執(zhí)行狀態(tài)。對(duì)于到時(shí)未就緒的素材,提前給出消息提醒。
(4)流程可視化管理。所有流程的任務(wù)節(jié)點(diǎn)的執(zhí)行狀態(tài)可以實(shí)時(shí)地通過(guò)流程客戶端進(jìn)行展示,并且在客戶端上以線性流程圖的圖文形式進(jìn)行呈現(xiàn)。在可視化的流程圖中可以直接對(duì)任務(wù)節(jié)點(diǎn)上執(zhí)行的任務(wù)進(jìn)行處理。
系統(tǒng)對(duì)后臺(tái)運(yùn)行的執(zhí)行端進(jìn)行實(shí)時(shí)的監(jiān)控,監(jiān)控軟件的運(yùn)行狀態(tài)、任務(wù)執(zhí)行狀態(tài)等軟件及服務(wù)器狀態(tài)信息;通過(guò)監(jiān)測(cè)不同服務(wù)器上的后臺(tái)服務(wù),在客戶端上呈現(xiàn)各個(gè)服務(wù)的運(yùn)行狀態(tài)。工作人員可通過(guò)前臺(tái)軟件實(shí)時(shí)了解后臺(tái)軟件的運(yùn)行狀態(tài)。
工作流客戶端提供了方便的工作流程、系統(tǒng)任務(wù)的管理功能。工作人員使用工作流客戶端可以監(jiān)視系統(tǒng)流程是否正常運(yùn)行、任務(wù)是否正常執(zhí)行、任務(wù)執(zhí)行服務(wù)器運(yùn)行情況、串聯(lián)單節(jié)目就緒情況等系統(tǒng)服務(wù)信息。工作流客戶端分為設(shè)備視圖、流程視圖、任務(wù)視圖,使用不同的視圖,可以對(duì)不同的模塊進(jìn)行監(jiān)控。
1.4.1 設(shè)備視圖
設(shè)備視圖顯示了后臺(tái)在線的Actor(執(zhí)行端)軟件以及Actor所在服務(wù)器的系統(tǒng)運(yùn)行狀態(tài)信息。每個(gè)Actor顯示該Actor當(dāng)前正在執(zhí)行的任務(wù)信息。Actor的狀態(tài)分為“托管”和“取消托管”。“托管”狀態(tài)的Actor可以自動(dòng)接收服務(wù)端分配的任務(wù)并執(zhí)行,“取消托管”狀態(tài)的Actor需要手動(dòng)指定任務(wù)給Actor執(zhí)行。每個(gè)Actor中間的空白處顯示該Actor當(dāng)前正在執(zhí)行的任務(wù)信息,包括任務(wù)的文件名稱、任務(wù)類型以及任務(wù)進(jìn)度等。CPU、內(nèi)存、硬盤、網(wǎng)絡(luò)顯示的信息為Actor所在服務(wù)器的實(shí)時(shí)運(yùn)行狀態(tài)信息。IP地址為Actor所在服務(wù)器的IP地址及Actor與媒體處理中心服務(wù)通信端口。這樣,除了由系統(tǒng)自動(dòng)監(jiān)控性能完成負(fù)載均衡外,工作人員也可以手動(dòng)在設(shè)備視圖中點(diǎn)擊“托管”或“取消托管”來(lái)上下線Actor,進(jìn)行在線的性能手動(dòng)擴(kuò)展或者對(duì)故障的Actor節(jié)點(diǎn)進(jìn)行維護(hù),如圖5所示。

圖5 設(shè)備視圖
1.4.2 流程視圖
在工作流流程視圖中,運(yùn)維人員可以查看系統(tǒng)流程的運(yùn)行情況,監(jiān)視流程是否正常、是否有任務(wù)執(zhí)行失敗,也可查看素材流程運(yùn)行節(jié)點(diǎn)信息。運(yùn)維人員可以在這個(gè)界面內(nèi)對(duì)相關(guān)流程進(jìn)行一些處理操作。系統(tǒng)通過(guò)多種顏色來(lái)區(qū)分流程的運(yùn)行狀態(tài):綠色表示已完成的流程,黃色表示正在執(zhí)行的流程,紅色表示流程中有節(jié)點(diǎn)執(zhí)行失敗。界面右側(cè)區(qū)域?yàn)椴樵兘Y(jié)果流程列表,默認(rèn)查詢?yōu)楫?dāng)天所有流程。當(dāng)系統(tǒng)中流程較多時(shí),也可以使用界面左側(cè)區(qū)域進(jìn)行查詢條件輸入。流程查詢后,在流程列表中選中一條流程,點(diǎn)擊鼠標(biāo)右鍵會(huì)彈出流程操作菜單,值班人員可以在這里取消或者重置流程,對(duì)流程進(jìn)行在線維護(hù)。用鼠標(biāo)雙擊該流程,即可打開該具體流程的工作流鏈路圖,可以查看該流程中各個(gè)具體工作節(jié)點(diǎn)的詳細(xì)運(yùn)行信息,流程節(jié)點(diǎn)的不同狀態(tài)以不同的顏色進(jìn)行區(qū)分,包括運(yùn)行中、已完成、有異常等多種情況,人員可以直觀地了解和關(guān)注可能有問(wèn)題的流程。
1.4.3 子流程視圖
子流程視圖可以將表格化的流程根據(jù)工作流的定義進(jìn)行流程圖式的展現(xiàn),工作人員可以直觀地了解該條任務(wù)的執(zhí)行情況,更精確地掌握流程的異常故障點(diǎn),以便指導(dǎo)維護(hù)人員快速介入。比如,執(zhí)行中發(fā)現(xiàn)節(jié)點(diǎn)標(biāo)紅,說(shuō)明此節(jié)點(diǎn)執(zhí)行失敗,用鼠標(biāo)點(diǎn)擊該節(jié)點(diǎn),界面右側(cè)會(huì)顯示該節(jié)點(diǎn)任務(wù)的詳細(xì)信息,人員可根據(jù)情況直接在界面上對(duì)該節(jié)點(diǎn)或整個(gè)任務(wù)進(jìn)行重置、取消等操作。點(diǎn)擊下方中間的折疊按鈕,人員可以查看與該記錄相關(guān)的其他工作流程的運(yùn)行狀態(tài)信息,鼠標(biāo)雙擊可以切入相關(guān)聯(lián)流程的流程節(jié)點(diǎn)圖,這樣運(yùn)維人員就可以在整個(gè)全流程中進(jìn)行快速切換和定位。
1.4.4 任務(wù)視圖
在文件整備流程中,關(guān)鍵耗時(shí)的任務(wù)包括遷移、校驗(yàn)、技審、轉(zhuǎn)碼等,都是需要運(yùn)維人員重點(diǎn)關(guān)注的,采用任務(wù)視圖可以查看后臺(tái)媒體處理中心所有任務(wù)的執(zhí)行狀態(tài),可以對(duì)后臺(tái)任務(wù)進(jìn)行實(shí)時(shí)有效的監(jiān)控。如圖6所示,界面給出了任務(wù)的列表視圖,顯示了所有檢索到的任務(wù)信息,任務(wù)列表中不同狀態(tài)的任務(wù)會(huì)以不同的顏色進(jìn)行區(qū)分顯示。如果需要對(duì)一條任務(wù)進(jìn)行維護(hù),選中任務(wù)點(diǎn)擊鼠標(biāo)右鍵,可以通過(guò)右鍵菜單對(duì)該條任務(wù)進(jìn)行相關(guān)操作,如任務(wù)重置、任務(wù)取消、優(yōu)先級(jí)調(diào)整等,通過(guò)這些細(xì)節(jié)的干預(yù)來(lái)對(duì)系統(tǒng)的運(yùn)行狀態(tài)進(jìn)行微調(diào)。

圖6 任務(wù)視圖
通過(guò)引入工作流對(duì)播出素材文件的備播、處理、送播流程進(jìn)行管控,避免了遷移流程策略驅(qū)動(dòng)帶來(lái)的輪詢間隔耗時(shí)問(wèn)題,使文件送播過(guò)程中的各個(gè)處理環(huán)節(jié)銜接有序,達(dá)到了非常低的中間耗時(shí)。同時(shí),工作流程管理帶來(lái)了可視化的業(yè)務(wù)流程視圖,運(yùn)維人員可以較快地定位出現(xiàn)問(wèn)題的環(huán)節(jié),提升了運(yùn)行維護(hù)的效率,降低了工作人員的工作壓力,達(dá)到了系統(tǒng)設(shè)計(jì)的目標(biāo)。