談播出網絡利用串口傳輸已播出文件
當前,隨著電視播控數字化和網絡化的發展,多家電視臺的電視播控系統采用了網絡化的播出結構,但是當該系統需要與外界計算機交換數據時又存在著播出網絡中的計算機如何預防病毒的問題,如何實現電視播控中心的播出網絡與外界進行安全的數據交換是一個重要的問題。
唐山電視臺采用的是如圖1所示結構的網絡化自動播出系統,它由主備數據服務器、準備站、主備播出站及網絡交換機組成,每一部分各自完成獨立的任務,在此不在贅述。
本文引用地址:http://www.j9360.com/article/201706/357768.htm 在唐山電視臺電視播控中心,每天每套的節目播出結束后,當天所有的已播出素材分別在相應的播出站的本地硬盤保存成PARADOX數據表,為使廣告管理部門能夠對各個頻道當天的所有播出廣告節目進行內容和時間的統計,需要將各個頻道已播出的PARADOX數據表傳輸給廣告管理部門,但是這些已播數據表如何從播出網絡傳輸給廣告管理部門的計算機呢?通過軟盤等移動存儲設備或通過網絡傳輸是我們首先想到的辦法,但考慮到網絡化自動播出系統要求較高的安全性,同時各種安全隱患中計算機病毒的危害表現最為嚴重,因為播出網絡一旦感染計算機病毒,它將導致整個播出系統無法正常工作、播出數據遭到破壞、網絡阻塞等,這對電視臺的安全播出來說將是致命的。對網絡化播出系統而言,計算機病毒感染的途徑主要有兩種,一種是通過受感染的軟盤或其他存儲介質讀寫感染,這是最古老也是最有效的攻擊手段,通過受感染的軟盤啟動系統引導病毒進入系統引導區或系統分區表,對于存儲介質的長期使用不可避免地會帶來計算機病毒的感染。另一種的病毒感染途徑就是通過網絡共享感染,如果靠網絡實現資源共享,而受病毒感染的文件共享所造成的惡果是傳統的病毒力所不及的,所以我們否決了采用軟盤或其他移動存儲設備拷貝已播播出表和將廣告管理部門的計算機與網絡化播出系統聯網的方法。
基于對現有的運行狀況的分析,考慮到系統運行的要求,我們提出了基于串口通信傳輸數據的方案,設計獨立的數據傳輸協議,開發獨立的串口數據傳輸系統,將網絡化播出系統的播后信息經過串口線傳送到廣告管理部門的計算機。由于串口通信傳輸數據的協議都是特定的,自己根據系統特點設計,不是標準協議,并且串口通訊采用單向傳輸方式,只能從播出網絡向網外傳輸數據,而網外數據不能向播出網絡內部傳輸數據,而且目前也沒有發現基于串口傳輸的計算機病毒的出現,因此可以很好的保證網絡化播出系統的安全。
二 實現串口傳輸文件的基本原理
串行端口的本質功能是作為CPU和串行設備間的編碼轉換器。當數據從 CPU經過串行端口發送出去時,字節數據轉換為串行的位;在接收數據時,串行的位被轉換為字節數據。Delphi語言是新一代可視化開發工具,它具有功能強大、簡便易用和代碼執行速度快等特點,用Delphi開發串口通信軟件一般有兩種方法:一是利用Windows的通信API函數,另一種是采用Microsoft的SPCCOM控件。這里我們采用了通過控件SPCCOM開發了串口傳輸已播數據表的應用程序。
* 進行程序設計時首先要設置好控件SPCCOM的各種屬性,SPCCOM包括以下屬性:CommName是用來填寫COM1、COM2…等串口的名字,在打開串口前,必須填寫好此值。設定BaudRate波特率9600,4800等,根據實際需要來定,在串口打開后也可更改波特率,實際波特率隨之更改。字節長度ByteSize可根據實際情況設定5/6/7/8等、Parity為奇偶校驗位、PBits為停止位、SendDataEmpty是一個布爾屬性,為true時表示發送緩存為空,或者發送隊列里沒有信息,為False時表示表示發送緩存不為空,或者發送隊列里有信息。
* 開發串口傳輸應用程序時,應用程序若要使用串口進行通信,必須在使用之前向操作系統提出資源申請要求(打開串口),通信完成后必須釋放資源(關閉串口)。使用Startcomm過程用于打開串口,當打開失敗時通常會報錯,錯誤主要有如下7種:第一,串口已經打開;第二,打開串口錯誤;第三,文件句柄不是通訊句;第四,不能夠安裝通訊緩存;第五,不能產生事件;第六,不能產生讀進程;第七,不能產生寫進程。StopComm過程用于關閉串口,沒有返回值。函數WriteCommData(pDataToWrite: PChar;dwSizeofDataToWrite:Word ): boolean 用于發送一個字符串到寫線程,發送成功返回true,發送失敗返回false, 執行此函數將立即得到返回值,發送操作隨后執行。函數有兩個參數,其中 pDatatowrite是要發送的字符串,dwSizeofDatatoWrite 是發送的長度。還有OnReceiveData,當輸入緩存有數據時將觸發該事件,在這里可以對從串口收到的數據進行處理。Buffer中是收到的數據,bufferlength是收到的數據長度。OnReceiveError 是當接受數據時出現錯誤將觸發該事件。
根據系統的特點,我們設計了應用層的通訊協議,接收數據的一般處理方法,最基本的思路就是通過協議進行分析,所以協議的制定是至關重要的:
首先要確定指令的起始點,從大量的數據流中將指令分離出來,沒有起始標志的話,結果就是一串無效的數據。然后就是指令結束識別點,可以利用指令的長度(如果長度一定或有表示長度的數據)或結束標志來確定,當然還可以利用下一條指令的指令頭。頭尾都明確之后,還有一種情況就是數據錯誤是的容錯,即發現不符合格式的指令,就將其拋掉或如要求重發。有效數據中如果增加一些冗余校驗,傳輸通訊將會更加可靠。保證每條數據能夠準確的識別與傳輸。
數據字段包括:類型|播出時間|標識|標題|節目長度|狀態|實播時間等,按照上述的數據格式封裝,進行數據的傳輸。系統包括了兩個部分,一個是發送端,另一個是接收端,安裝時發送端裝在源計算機上,接收端安裝在目的計算機。其中發送端運行于播出網絡中的一臺準備站上,主要包括兩個主要模塊:其一是數據庫操作模塊。該模塊通過播出系統局域網實現對播后數據信息的識別并取出并打包封裝;其二是發送模塊。將打包封裝的數據發送到發送數據緩沖區,發送數據,包括起始位 、數據位 、校驗位 、停止位。接收端運行于播出網絡外的任一臺電腦上,主要實現接收串口緩沖區數據,并根據數據封裝協議,拆分數據包,將數據存儲在指定類型的數據字段之中,以便廣告管理部門人員使用。
三 實際應用
目前較為常用的RS232串口有9針串口和25針串口,數據傳輸速率最大可到20Kbps,通信距離較近小于15m時,可以用電纜線直接連接標準RS232串口,若距離較遠,需附加調制解調器。RS232串口最為簡單且常用的是三線制接法,即地、接收數據和發送數據三腳相連,同一個串口的接收腳和發送腳直接用線相連,對9針串口和25針串口,均是2與3直接相連,當源計算機端和目標計算機端用RS232串口線連接好后,再分別在播出網絡的一臺準備站即源計算機端安裝軟件的發送端,在播出網絡外的任意一臺計算機上安裝軟件的接收端,通過點擊發送端軟件和接收端軟件的設置鍵可以對計算機的串口號進行選擇,并且對已播PARADOX數據文件表的存儲路徑進行相應的設置,如圖2所示,然后就可以傳輸播出站上的播后數據表文件了。在使用該應用軟件傳輸播后數據表時應同時打開接收端和發送端軟件,發送端位于播出網絡系統中,安裝發送端軟件的計算機可通過映射網絡驅動器的方式連接到各個播出站的存放播后PARADOX數據表的驅動器。在發送端選擇要傳輸的播后數據表文件,并且接收到發送端給接收端的接收請求信號后,就可進行已播播出表文件的傳輸了,圖3顯示的是已播數據表文件的傳輸過程。這樣就實現了播后數據表的安全傳輸,充分保障了網絡化播出系統的安全。


總之,基于串口傳輸已播數據表文件使得唐山電視臺在播出網絡安全和已播數據共享之間得到了很好得結合,應用一年多來取得了良好的效果,該種文件傳輸形式也將應用到涉及計算機安全的其他方面。
評論