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

圖4 素材導入流程圖
1.3.2 業務流程監控
業務流程監控主要包括串聯單狀態監控、流程執行狀態監控、節目備播狀態監控以及流程可視化管理等。
(1)串聯單狀態監控。在串聯單的創建、審核、上線、修改、刪除整個生命周期中對各個節點狀態的監視,保證工作人員實時、方便地了解串聯單的更新狀態,保證播出串聯單正確無誤。
(2)流程執行狀態監控。對系統中正在運行的任務流程的實時監控,通過流程客戶端可以查詢所有的系統任務流程,包括正在執行、執行結束、等待執行的任務流程,了解流程系統任務節點的執行 狀態。
(3)節目備播狀態監控。在流程客戶端中,根據數據庫串聯單,實時查詢串聯單中節目對應實體文件的備播狀態,及時了解節目文件的備播任務執行情況,包括所處流程節點、各個節點任務執行狀態。對于到時未就緒的素材,提前給出消息提醒。
(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 任務視圖
通過引入工作流對播出素材文件的備播、處理、送播流程進行管控,避免了遷移流程策略驅動帶來的輪詢間隔耗時問題,使文件送播過程中的各個處理環節銜接有序,達到了非常低的中間耗時。同時,工作流程管理帶來了可視化的業務流程視圖,運維人員可以較快地定位出現問題的環節,提升了運行維護的效率,降低了工作人員的工作壓力,達到了系統設計的目標。