一種制作應(yīng)急系統(tǒng)的制作方法
【專利摘要】一種制作應(yīng)急系統(tǒng),包括:備存儲設(shè)備和備數(shù)據(jù)庫;元數(shù)據(jù)分發(fā)模塊,用于對數(shù)據(jù)庫管理模塊發(fā)向中心數(shù)據(jù)庫的操作消息進(jìn)行截獲、緩存并發(fā)送;元數(shù)據(jù)代理模塊,用于接收元數(shù)據(jù)分發(fā)模塊發(fā)來的操作消息并根據(jù)該操作消息對備數(shù)據(jù)庫進(jìn)行同步操作;媒體遷移消息轉(zhuǎn)發(fā)模塊,用于過濾元數(shù)據(jù)代理模塊所接收的操作消息中的元數(shù)據(jù),抽取其中與媒體文件相關(guān)的元數(shù)據(jù)并發(fā)送相應(yīng)的操作指令;媒體文件遷移模塊,用于接收操作指令,根據(jù)增加媒體文件的操作指令將所述主系統(tǒng)中相應(yīng)的媒體文件復(fù)制到所述備存儲設(shè)備中,根據(jù)刪除/修改媒體文件的操作指令刪除/修改所述備存儲設(shè)備中相應(yīng)的媒體文件。本申請能夠完成整個制作網(wǎng)的備份工作。
【專利說明】一種制作應(yīng)急系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及多媒體領(lǐng)域,尤其涉及一種制作應(yīng)急系統(tǒng)。
【背景技術(shù)】
[0002]電視臺制播網(wǎng)絡(luò)系統(tǒng)經(jīng)過近10年的發(fā)展,網(wǎng)絡(luò)制播是核心節(jié)目生產(chǎn)形態(tài),已經(jīng)完全替代了傳統(tǒng)的對編、單機(jī)編輯。網(wǎng)絡(luò)化共享編輯、流程化制作已經(jīng)是絕大多數(shù)電視臺的核心必備生產(chǎn)工具,對系統(tǒng)依賴性也越來越大。同時,對制播出系統(tǒng)的安全也提出更高的要求。雖然目前在制播系統(tǒng)中,已經(jīng)針對存儲、數(shù)據(jù)庫以及交換設(shè)備等分別考慮高安全措施。但在系統(tǒng)整體應(yīng)急方面,還未有好的措施。尤其是能夠在短時間內(nèi)完成應(yīng)急切換,并保證數(shù)據(jù)庫丟失在可接受范圍。
[0003]當(dāng)前的所有安全措施都是針對關(guān)鍵應(yīng)用點,并且對管理、維護(hù)有一定的要求;都需要一定的時間窗口進(jìn)行判定,無法完全做到短時間內(nèi)“業(yè)務(wù)可持續(xù)性”要求,而且沒有解決小概率、但性質(zhì)嚴(yán)重的系統(tǒng)“UFO”癱瘓情況下,如何快速恢復(fù)業(yè)務(wù)的問題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明要解決的技術(shù)問題是如何完成整個制作網(wǎng)的備份工作。
[0005]為了解決上述問題,本發(fā)明提供了一種制作應(yīng)急系統(tǒng),與用于制作播放多媒體節(jié)目的主系統(tǒng)相連,所述主系統(tǒng)包括用于保存媒體文件的主存儲設(shè)備、中心數(shù)據(jù)庫及對該中心數(shù)據(jù)庫進(jìn)行操作的數(shù)據(jù)庫管理模塊;所述制作應(yīng)急系統(tǒng)包括:
[0006]備存儲設(shè)備和備數(shù)據(jù)庫;
[0007]元數(shù)據(jù)分發(fā)模塊,用于對數(shù)據(jù)庫管理模塊發(fā)向所述中心數(shù)據(jù)庫的操作消息進(jìn)行截獲、緩存并發(fā)送;
[0008]元數(shù)據(jù)代理模塊,用于接收所述元數(shù)據(jù)分發(fā)模塊發(fā)來的操作消息并根據(jù)該操作消息對所述備數(shù)據(jù)庫進(jìn)行同步操作,包括增加、或刪除、或修改相應(yīng)的元數(shù)據(jù);所述元數(shù)據(jù)為與媒體文件相關(guān)的數(shù)據(jù)庫信息;
[0009]媒體遷移消息轉(zhuǎn)發(fā)模塊,用于過濾元數(shù)據(jù)代理模塊所接收的操作消息中的元數(shù)據(jù),抽取其中與媒體文件相關(guān)的元數(shù)據(jù)并發(fā)送相應(yīng)的操作指令,包括增加、刪除和修改媒體文件的操作指令;
[0010]媒體文件遷移模塊,用于接收媒體遷移消息轉(zhuǎn)發(fā)模塊所發(fā)送的的操作指令,根據(jù)增加媒體文件的操作指令將所述主系統(tǒng)中相應(yīng)的媒體文件復(fù)制到所述備存儲設(shè)備中,根據(jù)刪除/修改媒體文件的操作指令刪除/修改所述備存儲設(shè)備中相應(yīng)的媒體文件。
[0011]進(jìn)一步地,所述的系統(tǒng)還包括:
[0012]數(shù)據(jù)回寫模塊,用于按用戶選擇的時間段和欄目,將所述備數(shù)據(jù)庫中的元數(shù)據(jù)復(fù)制或移動到主系統(tǒng)的中心數(shù)據(jù)庫中;根據(jù)備數(shù)據(jù)庫確定媒體文件在所述備存儲設(shè)備中的存放路徑,將所述媒體文件從所述備存儲設(shè)備復(fù)制或移動到主系統(tǒng)的主存儲設(shè)備中。
[0013]進(jìn)一步地,所述數(shù)據(jù)回寫模塊在回寫時,將用戶選擇的時間段內(nèi)的所述備數(shù)據(jù)庫保存的媒體文件的全局唯一標(biāo)識符,同中心數(shù)據(jù)庫中的媒體文件的全局唯一標(biāo)識符進(jìn)行比較,如果發(fā)現(xiàn)所述備數(shù)據(jù)庫中存在而中心數(shù)據(jù)庫不存在的媒體文件,則將備數(shù)據(jù)庫中的元數(shù)據(jù)復(fù)制或移動到中心數(shù)據(jù)庫,將該元數(shù)據(jù)對應(yīng)的媒體文件從所述備存儲設(shè)備復(fù)制或移動到主系統(tǒng)的主存儲設(shè)備中。
[0014]進(jìn)一步地,所述媒體遷移消息轉(zhuǎn)發(fā)模塊過濾操作消息中的元數(shù)據(jù),抽取其中與媒體文件相關(guān)的元數(shù)據(jù)并據(jù)此發(fā)送相應(yīng)指令是指:
[0015]所述媒體遷移消息轉(zhuǎn)發(fā)模塊分析所述操作消息涉及的相關(guān)表,如果是與媒體文件相關(guān)的關(guān)鍵表,則立即依據(jù)操作消息中指示的操作,相應(yīng)發(fā)出從主存儲設(shè)備復(fù)制多媒體文件到備存儲設(shè)備、或修改、或刪除備存儲設(shè)備中媒體文件的操作指令。
[0016]進(jìn)一步地,元數(shù)據(jù)分發(fā)模塊還用于在收到操作消息后,按以下規(guī)則進(jìn)行分發(fā)過濾:
[0017]當(dāng)需要同步序列時,對于查詢和創(chuàng)建序列的元數(shù)據(jù)將會被同步,不需要同步序列則所有查詢類SQL語句全部丟棄;
[0018]所有執(zhí)行的SQL語句會首先解析操作的數(shù)據(jù)表是否在已經(jīng)配置好的同步表中,只有需要同步的數(shù)據(jù)表操作才進(jìn)行同步;
[0019]所有對記錄集進(jìn)行的增刪改操作,首先解析操作的數(shù)據(jù)表是否在已經(jīng)配置好的同步表中,只有需要同步的數(shù)據(jù)表操作才進(jìn)行同步。
[0020]進(jìn)一步地,一個元數(shù)據(jù)代理模塊接收一個或多個元數(shù)據(jù)分發(fā)模塊發(fā)送的操作消
肩、O
[0021]進(jìn)一步地,所述媒體文件遷移模塊提供限速與極速復(fù)制兩種方式;限速復(fù)制方式通過單線程讀寫,實時調(diào)整單次傳輸大??;極速復(fù)制方式通過讀寫雙線程實現(xiàn)。
[0022]進(jìn)一步地,所述媒體文件遷移模塊具備錯誤重做機(jī)制,重做隊列可持久化;所述媒體文件遷移模塊關(guān)閉時將重做隊列序列化為xml文件保存到本地,在啟動前預(yù)讀保存的xml文件。
[0023]進(jìn)一步地,所述媒體文件遷移模塊在出現(xiàn)更新多媒體文件的操作指令時先發(fā)送將目標(biāo)媒體文件改名的指令,然后再發(fā)送生成新的媒體文件的指令。
[0024]本發(fā)明的技術(shù)方案在中心數(shù)據(jù)庫進(jìn)行增加、修改、刪除等操作時,把數(shù)據(jù)庫操作消息截獲出來,實現(xiàn)修改的緩存和轉(zhuǎn)發(fā)工作,把應(yīng)急系統(tǒng)的數(shù)據(jù)庫不工作導(dǎo)致數(shù)據(jù)庫中間件不能正常的危機(jī)化解掉,同時提供配置可選擇同步的數(shù)據(jù)庫表;實現(xiàn)接收服務(wù)端發(fā)來的數(shù)據(jù)庫修改命令同步執(zhí)行本地數(shù)據(jù)庫的修改,并通過分析修改的數(shù)據(jù)來啟動媒體數(shù)據(jù)、節(jié)目信息等數(shù)據(jù)的復(fù)制工作;這樣就實現(xiàn)了網(wǎng)絡(luò)數(shù)據(jù)庫、媒體文件、節(jié)目信息等節(jié)目制作過程中需要的所有數(shù)據(jù)的同步工作,當(dāng)制作網(wǎng)出現(xiàn)任何原因(包括:數(shù)據(jù)庫宕機(jī)、存儲故障、網(wǎng)絡(luò)故障)時能夠提供一個小規(guī)模的制作網(wǎng)供節(jié)目制作應(yīng)急使用,最終完成整個制作網(wǎng)的備份工作和應(yīng)急制作。
【專利附圖】
【附圖說明】
[0025]圖1是實施例一的制作應(yīng)急系統(tǒng)的示意框圖;
[0026]圖2是元數(shù)據(jù)同步流程的流程示意圖;
[0027]圖3是多媒體數(shù)據(jù)同步流程的流程示意圖;[0028]圖4是素材回寫功能的流程不意圖;
【具體實施方式】
[0029]下面將結(jié)合附圖及實施例對本發(fā)明的技術(shù)方案進(jìn)行更詳細(xì)的說明。
[0030]需要說明的是,如果不沖突,本發(fā)明實施例以及實施例中的各個特征可以相互結(jié)合,均在本發(fā)明的保護(hù)范圍之內(nèi)。
[0031]實施例一,一種制作應(yīng)急系統(tǒng),與用于制作播放多媒體節(jié)目的主系統(tǒng)相連,用于對主系統(tǒng)中的媒體文件進(jìn)行備份供應(yīng)急時使用;所述主系統(tǒng)包括用于保存媒體文件的主存儲設(shè)備、中心數(shù)據(jù)庫及對該中心數(shù)據(jù)庫進(jìn)行操作的數(shù)據(jù)庫管理模塊;
[0032]如圖1所示,所述制作應(yīng)急系統(tǒng)包括:
[0033]備存儲設(shè)備和備數(shù)據(jù)庫;
[0034]元數(shù)據(jù)分發(fā)模塊,用于對發(fā)向所述中心數(shù)據(jù)庫的操作消息進(jìn)行截獲、緩存并發(fā)送;可與數(shù)據(jù)庫管理模塊部署在主系統(tǒng)的同一個服務(wù)器中;
[0035]元數(shù)據(jù)代理模塊,用于接收所述元數(shù)據(jù)分發(fā)模塊發(fā)來的操作消息,并根據(jù)該操作消息對所述備數(shù)據(jù)庫進(jìn)行同步操作,包括增加、或刪除、或修改相應(yīng)的元數(shù)據(jù);所述元數(shù)據(jù)為與媒體文件相關(guān)的數(shù)據(jù)庫信息;
[0036]媒體遷移消息轉(zhuǎn)發(fā)模塊,用于過濾元數(shù)據(jù)代理模塊所接收的操作消息中的元數(shù)據(jù),抽取其中與媒體文件相關(guān)的元數(shù)據(jù)并發(fā)送相應(yīng)的操作指令,包括增加、刪除和修改媒體文件的操作指令;
[0037]媒體文件遷移模塊,用于接收媒體遷移消息轉(zhuǎn)發(fā)模塊所發(fā)送的操作指令,根據(jù)增加媒體文件的操作指令將所述主系統(tǒng)中相應(yīng)的媒體文件復(fù)制到所述備存儲設(shè)備中,根據(jù)刪除/修改媒體文件的操作指令刪除/修改所述備存儲設(shè)備中相應(yīng)的媒體文件。所述媒體文件可以但不限于包括以下一種或幾種:串聯(lián)單、文稿、節(jié)目、素材、工程文件以及圖片。
[0038]后文將制作應(yīng)急系統(tǒng)中元數(shù)據(jù)分發(fā)模塊之外的模塊統(tǒng)稱為制作應(yīng)急引擎設(shè)備(Emergency Edit Engine)。
[0039]主系統(tǒng)中所有業(yè)務(wù)都是由對中心數(shù)據(jù)庫的操作開始,因此本實施例利用此特性將各軟件對主系統(tǒng)的中心數(shù)據(jù)庫的操作分發(fā)到制作應(yīng)急引擎設(shè)備上。制作應(yīng)急引擎設(shè)備再將操作同步到本設(shè)備中的備數(shù)據(jù)庫后分析該操作,過濾出與媒體文件相關(guān)的操作并完成同步,從而達(dá)到元數(shù)據(jù)、媒體文件對備份支持業(yè)務(wù)的要求。
[0040]本實施例的制作應(yīng)急引擎設(shè)備的關(guān)鍵技術(shù)核心是解決數(shù)據(jù)一致性。
[0041]所有數(shù)據(jù)同步是由對主系統(tǒng)的中心數(shù)據(jù)庫的操作觸發(fā),在元數(shù)據(jù)代理模塊接收到數(shù)據(jù)庫管理模塊轉(zhuǎn)發(fā)(通過元數(shù)據(jù)分發(fā)模塊)的數(shù)據(jù)庫的操作消息(增,刪,改)以后,會立即將數(shù)據(jù)庫操作同步到所述備數(shù)據(jù)庫中。
[0042]定位媒體文件在文件系統(tǒng)的位置是通過查詢數(shù)據(jù)庫中與媒體文件相關(guān)的數(shù)據(jù)表。
[0043]本實施例中,所述媒體遷移消息轉(zhuǎn)發(fā)模塊過濾操作消息中的元數(shù)據(jù),抽取其中與媒體文件相關(guān)的元數(shù)據(jù)并據(jù)此發(fā)送相應(yīng)指令具體可以是指:
[0044]所述媒體遷移消息轉(zhuǎn)發(fā)模塊分析所述操作消息涉及的相關(guān)表,如果是與媒體文件相關(guān)的關(guān)鍵表,則立即依據(jù)操作消息中指示的操作,相應(yīng)發(fā)出從主系統(tǒng)的主存儲設(shè)備復(fù)制多媒體文件(即遷移)到備存儲設(shè)備、或修改、或刪除備存儲設(shè)備中媒體文件的操作指令。[0045]最后媒體文件遷移模塊執(zhí)行相應(yīng)的媒體文件操作指令,完成媒體文件的同步。元數(shù)據(jù)的同步是由元數(shù)據(jù)代理模塊完成的。
[0046]本實施例的制作應(yīng)急系統(tǒng)還可以包括:
[0047]數(shù)據(jù)回寫模塊,用于按用戶選擇的時間段和欄目,將所述備數(shù)據(jù)庫中的元數(shù)據(jù)復(fù)制或移動到主系統(tǒng)的中心數(shù)據(jù)庫中;根據(jù)備數(shù)據(jù)庫確定媒體文件在所述備存儲設(shè)備中的存放路徑,將所述媒體文件從所述備存儲設(shè)備復(fù)制或移動到主系統(tǒng)的主存儲設(shè)備中,以便主系統(tǒng)應(yīng)急使用。
[0048]在主系統(tǒng)災(zāi)難恢復(fù)以后,為了最大可能的保證用戶勞動成果,數(shù)據(jù)回寫模塊將所述備數(shù)據(jù)庫中的用戶工作成果回灌到主系統(tǒng),考慮到新聞業(yè)務(wù)的特殊點,元數(shù)據(jù)回灌以串聯(lián)單為主線,將某一時間段內(nèi)某一欄目的串聯(lián)單、稿件、節(jié)目(含工程文件)回寫入到主系統(tǒng)的中心數(shù)據(jù)庫,在中心數(shù)據(jù)庫已有該串聯(lián)單、稿件、節(jié)目時數(shù)據(jù)回寫模塊會提示用戶是覆蓋中心數(shù)據(jù)庫的數(shù)據(jù)還是新建相關(guān)數(shù)據(jù),如果新建數(shù)據(jù),與之相關(guān)的所有關(guān)聯(lián)關(guān)系也會自動修改,以保證串聯(lián)單、稿件、節(jié)目的完整關(guān)聯(lián)關(guān)系。
[0049]本實施例中,所述數(shù)據(jù)回寫模塊在回寫時,通過采用將用戶選擇的時間段內(nèi)的所述備數(shù)據(jù)庫保存的媒體文件的GUID,同中心數(shù)據(jù)庫中的媒體文件的GUID (全局唯一標(biāo)識符)進(jìn)行比較,如果發(fā)現(xiàn)所述備數(shù)據(jù)庫中存在而中心數(shù)據(jù)庫不存在的媒體文件,則在用戶需要的情況下,可將備數(shù)據(jù)庫中的元數(shù)據(jù)回灌(復(fù)制或移動)到中心數(shù)據(jù)庫,將該元數(shù)據(jù)對應(yīng)的媒體文件從所述備存儲設(shè)備回灌到主系統(tǒng)的主存儲設(shè)備中。
[0050]考慮到回寫的執(zhí)行頻率很低,而執(zhí)行效率要求很高因此可不作限速等影響效率的功能限制。
[0051]本實施例中,所述主系統(tǒng)的數(shù)據(jù)庫管理模塊可分發(fā)對于中心數(shù)據(jù)庫的操作消息,該分發(fā)與對中心數(shù)據(jù)庫的操作分線程隔離,避免分發(fā)影響中心數(shù)據(jù)庫的讀寫性能:出于最大限度的減少同步功能對數(shù)據(jù)庫管理模塊的影響,只有對中心數(shù)據(jù)庫操作成功后,才會將操作消息發(fā)送給元數(shù)據(jù)分發(fā)模塊作為同步使用。
[0052]由于數(shù)據(jù)庫管理模塊的COM+實現(xiàn),為了減少其設(shè)計復(fù)雜性,每個實例為建立TCP主動連接到元數(shù)據(jù)分發(fā)模塊,用于發(fā)送所述操作消息;
[0053]當(dāng)數(shù)據(jù)庫管理模塊在發(fā)送數(shù)據(jù)前,會檢查元數(shù)據(jù)分發(fā)模塊的服務(wù)是否已經(jīng)啟動,如果沒有啟動或已經(jīng)異常終止,則會先嘗啟動元數(shù)據(jù)分發(fā)模塊的服務(wù),然后再連接發(fā)送數(shù)據(jù);當(dāng)數(shù)據(jù)庫管理模塊不用進(jìn)行主備同步時,只需要更改注冊表相關(guān)參數(shù)即可。
[0054]本實施例中,所述主系統(tǒng)的數(shù)據(jù)庫管理模塊還可以進(jìn)行數(shù)據(jù)過濾,避免分發(fā)影響中心數(shù)據(jù)庫的讀寫性能;數(shù)據(jù)過濾主要減少不必要的信息分發(fā),可以只對需要同步的表數(shù)據(jù)進(jìn)行同步;一般僅將對元數(shù)據(jù)進(jìn)行增、刪、改的操作消息進(jìn)行轉(zhuǎn)發(fā),當(dāng)需要同步序列時對更改序列的操作消息也會進(jìn)行轉(zhuǎn)發(fā)。
[0055]本實施例中,所述元數(shù)據(jù)分發(fā)模塊用于緩存主系統(tǒng)中數(shù)據(jù)庫管理模塊分發(fā)的操作消息;
[0056]所述元數(shù)據(jù)分發(fā)模塊的緩存大小可設(shè)置,默認(rèn)大小為400M左右,增加配置參數(shù)可設(shè)置大小。
[0057]當(dāng)超過最大緩存后,后續(xù)的數(shù)據(jù)信息將被元數(shù)據(jù)分發(fā)模塊丟棄,直到最開始的操作消息成功同步到所述制作應(yīng)急引擎設(shè)備中;[0058]所有傳輸成功的操作消息將會被緩存,部分傳輸成功后沒有同步成功的操作消息會在超時后進(jìn)行緩存;軟件異常本地緩存內(nèi)容不丟失。
[0059]所述元數(shù)據(jù)分發(fā)模塊為了保證數(shù)據(jù)的存儲效率,可以對大數(shù)據(jù)采用先壓縮,后存儲的方式。
[0060]對歷史操作消息如果不需要同步,可以關(guān)閉所有系統(tǒng)后,將緩存文件手動刪除,或使用元數(shù)據(jù)分發(fā)模塊的服務(wù)的一個控制臺工具,對相關(guān)數(shù)據(jù)任務(wù)進(jìn)行刪除操作。
[0061]本實施例中,元數(shù)據(jù)的同步流程如圖2所示,數(shù)據(jù)庫管理模塊根據(jù)客戶端的操作,進(jìn)行ExecuteCommand(執(zhí)行指令)、GetRecordset (獲取記錄設(shè)置)函數(shù)入庫,然后進(jìn)行同步服務(wù)處理,操作消息(比如但不限于為SQL語句)將發(fā)送到元數(shù)據(jù)分發(fā)模塊;最后通過ADO接口(執(zhí)行接口)對中心數(shù)據(jù)庫(主數(shù)據(jù)庫)進(jìn)行操作。元數(shù)據(jù)分發(fā)模塊分析SQL語句,根據(jù)本地配置信息,過濾出需要的操作消息并緩存;所述元數(shù)據(jù)分發(fā)模塊可以但不限于通過TCP/IP將緩存的操作消息發(fā)送至制作應(yīng)急引擎設(shè)備中的元數(shù)據(jù)代理模塊;
[0062]作為緩存分發(fā)數(shù)據(jù)庫操作的一個服務(wù),數(shù)據(jù)需要發(fā)送給遠(yuǎn)端的制作應(yīng)急引擎設(shè)備里的元數(shù)據(jù)代理模塊,以使得其執(zhí)行相關(guān)SQL語句完成對備數(shù)據(jù)庫更新操作,其操作限于對備數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行增加、刪除、修改,從而將對主數(shù)據(jù)庫的操作同步到備數(shù)據(jù)庫,使用TCP主動連接到元數(shù)據(jù)代理模塊,然后循環(huán)發(fā)送數(shù)據(jù)。
[0063]本實施例中,元數(shù)據(jù)分發(fā)模塊配置的目標(biāo)地址和端口和元數(shù)據(jù)代理模塊監(jiān)聽的地
址和端口 一致。
[0064]當(dāng)與元數(shù)據(jù)代理模塊之間的網(wǎng)絡(luò)出現(xiàn)問題恢復(fù)后,發(fā)送的數(shù)據(jù)將會繼續(xù)。
[0065]本實施例中,每次元數(shù)據(jù)分發(fā)模塊重新啟動后,會檢測是否有未發(fā)送完成的操作消息,如果有則將這些未發(fā)送成功的操作消息發(fā)到元數(shù)據(jù)代理模塊;
[0066]當(dāng)配置目前元數(shù)據(jù)代理模塊的目標(biāo)地址和端口改變后,需要重新啟動元數(shù)據(jù)分發(fā)模塊的服務(wù)。
[0067]本實施例中,元數(shù)據(jù)分發(fā)模塊還用于在收到操作消息后,按以下規(guī)則進(jìn)行分發(fā)過濾:
[0068]當(dāng)需要同步序列時,對于查詢和創(chuàng)建序列的元數(shù)據(jù)將會被同步,不需要同步序列則所有查詢類SQL語句全部丟棄(不同步);
[0069]所有執(zhí)行的SQL語句會首先解析操作的數(shù)據(jù)表是否在已經(jīng)配置好的同步表中,只有需要同步的數(shù)據(jù)表操作才進(jìn)行同步;
[0070]所有對ADO記錄集進(jìn)行的增刪改操作,首先解析操作的數(shù)據(jù)表是否在已經(jīng)配置好的同步表中,只有需要同步的數(shù)據(jù)表操作才進(jìn)行同步。
[0071 ] 本實施例中,元數(shù)據(jù)分發(fā)模塊的服務(wù)可自動啟動。
[0072]元數(shù)據(jù)分發(fā)模塊與數(shù)據(jù)庫管理模塊在同臺PC機(jī)上,數(shù)據(jù)庫管理模塊的同步操作前會自動檢測元數(shù)據(jù)分發(fā)模塊服務(wù)是否已經(jīng)啟動,如果沒有啟動則會先啟動本服務(wù);
[0073]元數(shù)據(jù)分發(fā)模塊本身沒有異常情況下的自啟動功能,也可以增加看門狗之類的輔助工具,以實現(xiàn)異常情況下的服務(wù)自啟動。
[0074]本實施例中,一個元數(shù)據(jù)代理模塊可以接收多個元數(shù)據(jù)分發(fā)模塊發(fā)送的操作消息,可以接收多個元數(shù)據(jù)分發(fā)模塊的連接操作并同步到數(shù)據(jù)存儲模塊的備數(shù)據(jù)庫中;可以同步ORACLE、DB2數(shù)據(jù)庫,但主備的數(shù)據(jù)庫類型需要一致。[0075]本實施例中,元數(shù)據(jù)備份過程如下:
[0076]數(shù)據(jù)庫管理模塊在執(zhí)行對于主系統(tǒng)的中心數(shù)據(jù)庫的操作消息成功后,通過TCP方式同步通知元數(shù)據(jù)分發(fā)模塊進(jìn)行緩存,元數(shù)據(jù)分發(fā)模塊再根據(jù)當(dāng)前的緩存使用狀態(tài)異步通知元數(shù)據(jù)代理模塊,而元數(shù)據(jù)代理模塊激活容器中插件媒體遷移消息轉(zhuǎn)發(fā)模塊進(jìn)行插件自定義的操縱。
[0077]本實施例中,媒體數(shù)據(jù)同步流程如圖3所示,元數(shù)據(jù)代理模塊的功能就是將對中心數(shù)據(jù)庫的操作同步到備數(shù)據(jù)庫,就是接收中心數(shù)據(jù)庫的操作(數(shù)據(jù)庫同步消息),判斷是否對媒體文件表進(jìn)行的更改,如果不是則下次繼續(xù)判斷,如果是則發(fā)送媒體文件同步消息(異步消息)到媒體遷移消息轉(zhuǎn)發(fā)模塊,由其分析消息內(nèi)容,提取需同步的物理文件,將操作消息還原成SQL語句,記錄集操作等再由媒體文件遷移模塊對備存儲設(shè)備進(jìn)行相同的操作,比如從主存儲設(shè)備存儲復(fù)制物理文件JiORACLE由于其實現(xiàn)的機(jī)制,有可能部分對數(shù)據(jù)庫操作的數(shù)據(jù)不能完整的傳給元數(shù)據(jù)分發(fā)模塊并導(dǎo)致元數(shù)據(jù)代理模塊不能完整的將數(shù)據(jù)信息同步到備數(shù)據(jù)庫中。這時,元數(shù)據(jù)代理模塊將從中心數(shù)據(jù)庫主動讀取完整的信息,以完成冋步的功能。
[0078]本實施例中,所述媒體文件遷移消息轉(zhuǎn)發(fā)模塊用于媒體遷移命令分發(fā),通過MQ(消息隊列)方式,根據(jù)數(shù)據(jù)庫操縱途徑(語句,記錄集)分別發(fā)到不同的MQ中。
[0079]本實施例中,媒體文件備份的實現(xiàn)是通過監(jiān)聽MQ的方式,以媒體文件為核心,過濾出需要的操作消息,將收到的操作消息,轉(zhuǎn)換成文件遷移,文件刪除,文件對比等操作指令進(jìn)行優(yōu)化并行處理。
[0080]本實施例中,所述媒體遷移消息轉(zhuǎn)發(fā)模塊還可用于消息過濾,僅處理與節(jié)目,素材相關(guān)的語句或記錄集操作。
[0081]本實施例中,所述媒體文件遷移模塊能夠進(jìn)行高效的文件遷移、提供限速與極速遷移功能;限速方式通過單線程讀寫,實時調(diào)整單次傳輸大小,傳輸休眠時間實現(xiàn);極速遷移通過讀寫雙線程實現(xiàn)。
[0082]本實施例中,所述媒體文件遷移模塊具備錯誤重做機(jī)制,重做隊列可持久化;所述媒體文件遷移模塊關(guān)閉時可以把重做隊列序列化為xml文件保存到本地,在啟動前預(yù)讀保存的xml文件。
[0083]本實施例中,所述媒體文件遷移模塊可具備看門狗服務(wù)和容錯機(jī)制。
[0084]本實施例中,所述媒體文件遷移模塊在網(wǎng)絡(luò)斷開,數(shù)據(jù)讀取、寫入文件時存儲盤異常影響后續(xù)任務(wù)的執(zhí)行時將該后續(xù)任務(wù)放入重做隊列。
[0085]程序線程由線程守護(hù)監(jiān)控,可以捕捉到所有遷移環(huán)節(jié)的異常,內(nèi)存,文件,系統(tǒng)錯誤,都將自動將任務(wù)推送到重做隊列中;
[0086]重做隊列5秒掃描一次,推送一個重做任務(wù)到待遷移隊列中。
[0087]本實施例中,所述媒體文件遷移模塊在出現(xiàn)更新媒體文件的操作指令(修改媒體文件的操作指令中的一種)時先發(fā)送將目標(biāo)媒體文件改名的指令,然后再發(fā)送生成新的媒體文件的指令,以便可挽回,不允許先刪除目標(biāo)媒體文件再生成;文件遷移完成需要進(jìn)行基于字節(jié)的大小校驗,如果是媒體文件還需調(diào)用底層媒體分析SDK再進(jìn)行一次媒體文件驗證,保證文件可用。
[0088]本實施例中,所述數(shù)據(jù)回寫模塊用于進(jìn)行串聯(lián)單,稿件,節(jié)目等媒體文件的回寫;可按節(jié)目欄目,日期限定制作應(yīng)急引擎中串聯(lián)單回寫的范圍;串聯(lián)單中相關(guān)的文稿、節(jié)目、節(jié)目工程文件均自動回寫;出現(xiàn)GUID重復(fù)時提示用戶可選擇覆蓋中心或新建;如果新建、保證中心系統(tǒng)中串聯(lián)、稿件、節(jié)目關(guān)聯(lián)關(guān)系不變。還可選素材上載的時間段進(jìn)行回寫范圍限定,自動比較中心系統(tǒng)沒有的素材進(jìn)行回寫,物理素材遷移不限速。
[0089]本實施例中,如圖4所示,回寫時可以串聯(lián)單為主線,選擇查詢的時間段,比如由用戶輸入上載素材的日期段,據(jù)此查詢出串聯(lián)單、創(chuàng)建串聯(lián)單的日期、素材、素材的日期段,然后從備數(shù)據(jù)庫回寫到中心數(shù)據(jù)庫:首先在備數(shù)據(jù)庫中查詢該日期段中的所有素材,通過素材GUID在中心數(shù)據(jù)庫中對比來判斷中心數(shù)據(jù)庫是否已有該素材,如果沒有則可以復(fù)制素材的物理文件到中心數(shù)據(jù)庫,遇到⑶ID重復(fù)情況由用戶判斷進(jìn)行覆蓋或新建;判斷完一個素材繼續(xù)判斷下一個素材,直到所選擇的日期段的素材已完成對比,結(jié)束?;貙懗绦虮WC串聯(lián)單,文稿、節(jié)目的關(guān)聯(lián)關(guān)系不變。以素材創(chuàng)建時間和素材GUID為條件,將用戶選擇時段內(nèi)的備數(shù)據(jù)庫中有而中心數(shù)據(jù)庫中沒有的GUID對應(yīng)的素材,從備存儲設(shè)備遷移到主系統(tǒng)的主存儲設(shè)備,并將其元數(shù)據(jù)寫入中心數(shù)據(jù)庫。
[0090]本實施例在技術(shù)實現(xiàn)上,核心技術(shù)點就是如何在對主系統(tǒng)最小改動的情況下,最快速的將元數(shù)據(jù)和媒體文件由主系統(tǒng)同步到應(yīng)急系統(tǒng)。
[0091]對于元數(shù)據(jù)同步,采用了數(shù)據(jù)訪問中間件雙寫的方式完成,其時間限差是秒級以內(nèi),完全符合元數(shù)據(jù)備份的實效性要求。同時,由于元數(shù)據(jù)同步機(jī)制僅僅是將對數(shù)據(jù)庫進(jìn)行更改的操作從中心數(shù)據(jù)庫同步到備數(shù)據(jù)庫庫,此類操作僅僅占主系統(tǒng)對數(shù)據(jù)庫訪問的30%(主系統(tǒng)的中心數(shù)據(jù)庫很大負(fù)載是用于業(yè)務(wù)查詢)。再配合應(yīng)急僅同步關(guān)鍵數(shù)據(jù)表功能,因此備數(shù)據(jù)庫庫所需的IOPS僅為中心數(shù)據(jù)庫的1/5?1/4,同時備數(shù)據(jù)庫僅需支撐10臺左右的客戶端,因此在目前水平的硬件選型上支持應(yīng)急系統(tǒng)的正常運行時綽綽有余的。
[0092]對于媒體文件同步,在實效性上采用了觸發(fā)式同步,在元數(shù)據(jù)同步的同時應(yīng)急系統(tǒng)會根據(jù)元數(shù)據(jù)內(nèi)容判斷是否需要進(jìn)行媒體文件的同步,如果需要就立即發(fā)出從主存儲設(shè)備復(fù)制媒體文件到備存儲設(shè)備的遷移命令。但由于媒體文件數(shù)據(jù)量較大,而遷移操作對存儲的讀寫都是搶占式的。雖應(yīng)急系統(tǒng)本地存儲常態(tài)下只有寫入需求,沒有讀的需求,但某些中心存儲系統(tǒng)在當(dāng)初設(shè)計時可能并沒有考慮應(yīng)急系統(tǒng)的遷移帶寬的加入,突然增加較大的讀帶寬很可能對中心存儲的帶寬造成沖擊,導(dǎo)致中心編輯網(wǎng)播卡、丟幀等問題。因此媒體文件遷移時必須采用限制帶寬的技術(shù),在實效性和對中心系統(tǒng)的影響性上取得一個折衷。
[0093]對于遷移帶寬限制技術(shù)。采用控制每次遷移(即復(fù)制)的數(shù)據(jù)塊大小來達(dá)到在一個統(tǒng)計時段內(nèi)平均遷移帶寬可控的方式。
[0094]平均帶寬Μ/S =[每次遷移數(shù)據(jù)塊大小(固定1024KB) X次數(shù)]/遷移用的時間。
[0095]每次遷移完成后,根據(jù)本次遷移用的時間按用上述公式統(tǒng)計本次遷移的平均帶寬,如發(fā)現(xiàn)平均帶寬高于設(shè)定值,則自動延長兩次遷移之間的間隔至一預(yù)定長度,以便在較長的統(tǒng)計時間內(nèi)其平均帶寬等于設(shè)定值。
[0096]當(dāng)然,本發(fā)明還可有其他多種實施例,在不背離本發(fā)明精神及其實質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明的權(quán)利要求的保護(hù)范圍。
【權(quán)利要求】
1.一種制作應(yīng)急系統(tǒng),與用于制作播放多媒體節(jié)目的主系統(tǒng)相連,所述主系統(tǒng)包括用于保存媒體文件的主存儲設(shè)備、中心數(shù)據(jù)庫及對該中心數(shù)據(jù)庫進(jìn)行操作的數(shù)據(jù)庫管理模塊;其特征在于,所述制作應(yīng)急系統(tǒng)包括: 備存儲設(shè)備和備數(shù)據(jù)庫; 元數(shù)據(jù)分發(fā)模塊,用于對數(shù)據(jù)庫管理模塊發(fā)向所述中心數(shù)據(jù)庫的操作消息進(jìn)行截獲、緩存并發(fā)送; 元數(shù)據(jù)代理模塊,用于接收所述元數(shù)據(jù)分發(fā)模塊發(fā)來的操作消息并根據(jù)該操作消息對所述備數(shù)據(jù)庫進(jìn)行同步操作,包括增加、或刪除、或修改相應(yīng)的元數(shù)據(jù);所述元數(shù)據(jù)為與媒體文件相關(guān)的數(shù)據(jù)庫信息; 媒體遷移消息轉(zhuǎn)發(fā)模塊,用于過濾元數(shù)據(jù)代理模塊所接收的操作消息中的元數(shù)據(jù),抽取其中與媒體文件相關(guān)的元數(shù)據(jù)并發(fā)送相應(yīng)的操作指令,包括增加、刪除和修改媒體文件的操作指令; 媒體文件遷移模塊,用于接收媒體遷移消息轉(zhuǎn)發(fā)模塊所發(fā)送的的操作指令,根據(jù)增加媒體文件的操作指令將所述主系統(tǒng)中相應(yīng)的媒體文件復(fù)制到所述備存儲設(shè)備中,根據(jù)刪除/修改媒體文件的操作指令刪除/修改所述備存儲設(shè)備中相應(yīng)的媒體文件。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,還包括: 數(shù)據(jù)回寫模塊,用于按用戶選擇的時間段和欄目,將所述備數(shù)據(jù)庫中的元數(shù)據(jù)復(fù)制或移動到主系統(tǒng)的中心數(shù)據(jù)庫中;根據(jù)備數(shù)據(jù)庫確定媒體文件在所述備存儲設(shè)備中的存放路徑,將所述媒體文件從所述備存儲設(shè)備復(fù)制或移動到主系統(tǒng)的主存儲設(shè)備中。
3.如權(quán)利要求2所述的系統(tǒng),其特征在于: 所述數(shù)據(jù)回寫模塊在回寫時·,將用戶選擇的時間段內(nèi)的所述備數(shù)據(jù)庫保存的媒體文件的全局唯一標(biāo)識符,同中心數(shù)據(jù)庫中的媒體文件的全局唯一標(biāo)識符進(jìn)行比較,如果發(fā)現(xiàn)所述備數(shù)據(jù)庫中存在而中心數(shù)據(jù)庫不存在的媒體文件,則將備數(shù)據(jù)庫中的元數(shù)據(jù)復(fù)制或移動到中心數(shù)據(jù)庫,將該元數(shù)據(jù)對應(yīng)的媒體文件從所述備存儲設(shè)備復(fù)制或移動到主系統(tǒng)的主存儲設(shè)備中。
4.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述媒體遷移消息轉(zhuǎn)發(fā)模塊過濾操作消息中的元數(shù)據(jù),抽取其中與媒體文件相關(guān)的元數(shù)據(jù)并據(jù)此發(fā)送相應(yīng)指令是指: 所述媒體遷移消息轉(zhuǎn)發(fā)模塊分析所述操作消息涉及的相關(guān)表,如果是與媒體文件相關(guān)的關(guān)鍵表,則立即依據(jù)操作消息中指示的操作,相應(yīng)發(fā)出從主存儲設(shè)備復(fù)制多媒體文件到備存儲設(shè)備、或修改、或刪除備存儲設(shè)備中媒體文件的操作指令。
5.如權(quán)利要求1所述的系統(tǒng),其特征在于,元數(shù)據(jù)分發(fā)模塊還用于在收到操作消息后,按以下規(guī)則進(jìn)行分發(fā)過濾: 當(dāng)需要同步序列時,對于查詢和創(chuàng)建序列的元數(shù)據(jù)將會被同步,不需要同步序列則所有查詢類SQL語句全部丟棄; 所有執(zhí)行的SQL語句會首先解析操作的數(shù)據(jù)表是否在已經(jīng)配置好的同步表中,只有需要同步的數(shù)據(jù)表操作才進(jìn)行同步; 所有對記錄集進(jìn)行的增刪改操作,首先解析操作的數(shù)據(jù)表是否在已經(jīng)配置好的同步表中,只有需要同步的數(shù)據(jù)表操作才進(jìn)行同步。
6.如權(quán)利要求1所述的系統(tǒng),其特征在于:一個元數(shù)據(jù)代理模塊接收一個或多個元數(shù)據(jù)分發(fā)模塊發(fā)送的操作消息。
7.如權(quán)利要求1所述的系統(tǒng),其特征在于: 所述媒體文件遷移模塊提供限速與極速復(fù)制兩種方式;限速復(fù)制方式通過單線程讀寫,實時調(diào)整單次傳輸大?。粯O速復(fù)制方式通過讀寫雙線程實現(xiàn)。
8.如權(quán)利要求1所述的系統(tǒng),其特征在于: 所述媒體文件遷移模塊具備錯誤重做機(jī)制,重做隊列可持久化;所述媒體文件遷移模塊關(guān)閉時將重做隊列序列化為xml文件保存到本地,在啟動前預(yù)讀保存的xml文件。
9.如權(quán)利要求1所述的系統(tǒng),其特征在于: 所述媒體文件遷移模塊在出現(xiàn)更新多媒體文件的操作指令時先發(fā)送將目標(biāo)媒體文件改名的指令,然后再發(fā)送生成新的 媒體文件的指令。
【文檔編號】H04N5/262GK103856724SQ201210515990
【公開日】2014年6月11日 申請日期:2012年12月5日 優(yōu)先權(quán)日:2012年12月5日
【發(fā)明者】王煒, 倪宇, 黃正兵, 吳春中, 張志云 申請人:成都索貝數(shù)碼科技股份有限公司