文/華修文
上海報業(yè)集團(tuán)成立于2013年10月28日,由解放日報報業(yè)集團(tuán)和文匯新民聯(lián)合報業(yè)集團(tuán)整合重組而成。旗下?lián)碛薪夥湃請?、文匯報、新民晚報等20多家報刊雜志、出版社。
解放日報、文匯報、新民晚報三大報的重要新聞稿源大都由新華社供稿,因此上報集團(tuán)的采編系統(tǒng)與新華社衛(wèi)星供稿系統(tǒng)連接,通過采編分稿系統(tǒng),稿件自動分類并導(dǎo)入采編系統(tǒng)庫,最后提供給記者編輯使用。
因為環(huán)境、網(wǎng)絡(luò)、設(shè)備、系統(tǒng)等不確定因素,所以為確保采編系統(tǒng)的供稿正常,技術(shù)處人員需要定時對采編分稿系統(tǒng)進(jìn)行檢查,原先檢查分稿系統(tǒng)的方式是人工檢查,技術(shù)人員每隔一小時對新華社接收稿件數(shù)和分稿總數(shù)進(jìn)行記錄并對比,這樣的檢查方式造成了很多問題。首先是檢查的時效性不高,往往要過很久才能發(fā)現(xiàn)漏稿,從而一定程度影響了出報的進(jìn)度,二是判斷漏稿困難,需要人工檢索,逐一對比后才能找出漏稿,造成工作效率低。
本文所闡述的上海報業(yè)集團(tuán)采編分稿監(jiān)控系統(tǒng)解決方案針對上訴問題,旨在通過明確的業(yè)務(wù)分工,并在保證采編系統(tǒng)內(nèi)核保密性的前提下,從而解決及時發(fā)現(xiàn)采編分發(fā)系統(tǒng)的漏稿,并對漏稿情況進(jìn)行提醒報警等問題。
上海報業(yè)集團(tuán)采編分稿監(jiān)控系統(tǒng)解決方案,即實時自動監(jiān)控采編分稿系統(tǒng)的分類和入庫,對出現(xiàn)漏稿情況進(jìn)行提醒報警的工作。這樣做有以下幾個好處:
定時自動檢查:采編分稿監(jiān)控系統(tǒng)會每隔15分鐘自動檢查稿件的分發(fā)和入庫情況,無需人工操作,大大提高了檢查工作的效率。
漏稿提醒功能:在及時發(fā)現(xiàn)漏稿或者未分開稿件后,加以記錄,并自動觸發(fā)頁面提醒和短信推送提醒,極大地提高了技術(shù)人員處理問題的工作效率。
業(yè)務(wù)保密:上海報業(yè)集團(tuán)的開發(fā)團(tuán)隊對集團(tuán)工作系統(tǒng)的業(yè)務(wù)邏輯非常清楚,整個業(yè)務(wù)系統(tǒng)的調(diào)研也不需要外包公司參與,從而減少了系統(tǒng)在開發(fā)時的調(diào)研時間。保證采編系統(tǒng)內(nèi)核保密性。
系統(tǒng)在功能結(jié)構(gòu)上采用的是模塊化結(jié)構(gòu),就是把整個監(jiān)控系統(tǒng)按功能劃分成幾個功能模塊,這種模塊結(jié)構(gòu)的特點是功能明確、操作方便簡單、易于系統(tǒng)今后的功能擴(kuò)展,讓整個監(jiān)控系統(tǒng)具有可擴(kuò)展性。這樣既能滿足現(xiàn)有的監(jiān)控和報警的需求,又能適應(yīng)今后新的的監(jiān)控需求,可不斷完善升級。
b/s和c/s相結(jié)合后臺數(shù)據(jù)庫管理系統(tǒng)采用Sql Server2008,Web服務(wù)器操作系統(tǒng)采用Windows 2008 Server,Web服務(wù)器管理軟件采用運(yùn)行于Win2008上的IIS,開發(fā)工具采用Visual Studio2008,開發(fā)語言采用.Net和等。
整個系統(tǒng)由稿件的統(tǒng)計信息、報警提醒、日志記錄等構(gòu)成,以求達(dá)到監(jiān)控的及時性、準(zhǔn)確性。稿件統(tǒng)計信息主要統(tǒng)計接收到稿件數(shù)、分稿稿件數(shù)、接收到圖片數(shù)、分稿圖片數(shù)等,報警提醒主要以頁面提醒、聲音提醒、短信提醒等方式來體現(xiàn);日志記錄主要記錄未接收到文件的時間、未分發(fā)部分稿件的時間、未分稿明細(xì)等。如圖1所示。
圖1 系統(tǒng)模塊結(jié)構(gòu)圖
2.2.1 新華社稿件的接收和分稿
新華社稿件是通過衛(wèi)星進(jìn)行發(fā)送和接收的,然后將接收信息通過解碼器進(jìn)行解碼,再將解碼后的稿件寫入稿件接收服務(wù)器的共享文件夾中。每隔15分鐘采編服務(wù)器就會訪問共享目錄,讀取新的稿件,并根據(jù)稿件的屬性進(jìn)行分類,同時對分類好的稿件進(jìn)行分發(fā)處理,最后提供給用戶使用。如圖2所示
圖2 新華社稿件接收和分稿
2.2.2 主要功能簡介
根據(jù)圖3,對系統(tǒng)的幾個主要的功能做一個簡單的介紹。
2.2.2.1 稿件信息統(tǒng)計
稿件信息統(tǒng)計功能主要是由信息記錄、信息發(fā)布和定時檢查來實現(xiàn)的(見圖3)。
圖3 分稿系統(tǒng)主要功能
(1)信息記錄
信息記錄的工作流程如圖4所示,首先監(jiān)控系統(tǒng)會先遍歷錄入對比庫,提取上次輪詢后標(biāo)記為未分類的文件記錄,并在采編的分發(fā)數(shù)據(jù)庫中查找該文件的分發(fā)記錄,比對分發(fā)的類型集和分發(fā)記錄,看看分發(fā)類型集中的元素是不是和分發(fā)記錄相匹配。如果都已匹配則將比對庫中的記錄設(shè)置成已分類。如果沒有找到記錄或者找到的記錄與類型集中的元素不匹配,則將未匹配的元素作為屬性,未分類作為結(jié)果一起插入到比對庫。
隨后開始遍歷新華社稿件的共享目錄進(jìn)行遍歷,查找文件。根據(jù)最后一篇文件的接受時間判斷是不是在上次遍歷后新產(chǎn)生的文件。如果不是則跳過。如果是新文件,則打開這個的文件索引,尋找需要分發(fā)的類型集。以文件名為依據(jù),類型集為屬性,錄入到比對庫。
如果這個文件是文本文件的話,則在完成以上操作后,繼續(xù)查看下個文件。如果是圖片文件,則還要比對圖片文件是否已經(jīng)下載完成。
圖4 信息記錄
(2)信息發(fā)布
信息發(fā)布就是在網(wǎng)頁上顯示記錄下來的數(shù)據(jù)信息,如圖5所示,主要是用WebLogShowService、WebPhotoService、WebTextService來 調(diào) 取 數(shù) 據(jù), 用WebLogShow、WebPhotoClass、WebTextClass來存放調(diào)取后的數(shù)據(jù),隨后用ViewControl來整合并顯示數(shù)據(jù)、用Default將整合的數(shù)據(jù)顯示在網(wǎng)面上。
圖5 信息發(fā)布
(3)定時輪詢
圖6 定時輪詢
定時輪詢就是通過循環(huán)程序,定時啟動遍歷程序,如圖6所示。定時輪詢是由matchtest、matchWenHui、matchXinMin三個循環(huán)程序組成,首先是由matchtest來調(diào)用matchWenHui和matchXinMin這兩個子程序,進(jìn)而再個子分別調(diào)用Check()進(jìn)行遍歷,檢查分類情況。
2.2.2.2 報警提醒
報警提醒主要由網(wǎng)頁報警、聲音報警、報警消息推送三部分組成,從視覺、聽覺等多方面提醒運(yùn)維人員處理報警信息。
(1)網(wǎng)頁報警
網(wǎng)頁報警就是當(dāng)有未分類和未匹配的情況發(fā)生時,系統(tǒng)就會調(diào)用程序中的Color()函數(shù)。并將“最后接收文件時間”和“最后分稿時間”的底色從綠色改變成紅色。這樣醒目的設(shè)置,能夠讓技術(shù)人員更加及時有效的發(fā)現(xiàn)采編系統(tǒng)漏稿和未分發(fā)的情況。
(2)聲音報警
聲音報警基于頁面報警,當(dāng)頁面報警觸發(fā)時,系統(tǒng)就會調(diào)用程序的Sound()函數(shù),進(jìn)而播放數(shù)據(jù)庫中的Sound.mp3文件。這樣的設(shè)置能讓技術(shù)人員在不方便查看監(jiān)控頁面的情況下,通過聲音的形式獲得監(jiān)控系統(tǒng)的報警提示,大大提高了技術(shù)人員的工作效率。
(3) 報警消息推送
報警消息推送主要以手機(jī)短信為主,報警消息推送主要以發(fā)現(xiàn)漏稿提醒的具體時間、漏稿內(nèi)容說明的推送為主要目的,以求達(dá)到信息的實時性、準(zhǔn)確性、有效性。
SendMessage在MessageService中以獨(dú)立線程的模式進(jìn)行工作;不過在所有的Service.Server進(jìn)程中,都會運(yùn)用統(tǒng)一的一套配置信息。而不同類型的Message信息則會以Adapter模式進(jìn)行擴(kuò)充。ServiceServer的Adapter將以配置方式動態(tài)加載。
2.2.2.3 日志記錄
日志記錄主要記錄未接收到文件的時間、未分發(fā)部分稿件的時間、未分稿明細(xì)等。在出現(xiàn)未分稿的情況下,不需要再進(jìn)行人工檢索,逐一對比后才找出漏稿,系統(tǒng)能夠根據(jù)采編分稿規(guī)則,自動找出漏稿,并記錄和顯示在日志系統(tǒng)中,極大的提高了技術(shù)人員的工作效率。
2.3 系統(tǒng)接口
對于集團(tuán)開發(fā)人員,提供了所有業(yè)務(wù)操作的接口,以便于展示調(diào)用。具體列表如下。
ReturnRecord 記錄返回自定義類FolderClass 遍歷基類PhotoFolderClass 圖片稿件遍歷時所指的自定義類,繼承了FolderClass TravelDataBase 數(shù)據(jù)庫中未分稿圖片稿件記錄遍歷函數(shù)TravelDirectory 遍歷所有日期文件夾的寫日期,確定新接收文件的寫入時間CheckPhotoDirectory 遍歷新接收文件的文件夾 ,根據(jù)文件類型和寫入時間判斷是否是所需要分稿的文字稿件Material 匹配實體基礎(chǔ)類FoundFile 根據(jù)文件路徑查找該文件的最后寫入時間FoundTitle 由全路徑訪問XML文件,返回的string未替換單引號OneToTwo 個位數(shù)前加零PhotoClass 圖片稿件實例CheckPhoto 檢查該稿件是否已經(jīng)分稿,并入庫InsertOrUpdateSQL 根據(jù)自定義類的實例,提交數(shù)據(jù)庫FoundRecord 根據(jù)參數(shù)查找記錄,若失敗且文件創(chuàng)建時間在23點后則需要根據(jù)標(biāo)題進(jìn)行擴(kuò)大范圍的查詢LoadObjectByPhotoName 根據(jù)文件名,在cache中查找是否有同名稿件AddCache 在cache中添加新的PhotoClass實例GetPhotoName 根據(jù)文件名提取數(shù)據(jù)庫中的稿件名TypeTransition 分類匹配實例PhotoQuestion 圖片稿件實體SQL函數(shù)自定義類ExecuteInsertSQL 根據(jù)PhotoClass實例向數(shù)據(jù)庫提交插入請求,并在日志表中記錄ExecuteUpdateSQL 根據(jù)PhotoClass實例向數(shù)據(jù)庫提交修改請求,并在日志表中記錄GetUnMatch 查找為完成分稿的圖片稿件記錄列表
PhotoLib 包含分稿系統(tǒng)所用數(shù)據(jù)庫的連接及其中各種關(guān)于圖片稿件sql函數(shù)的自定義類GetProduceDate 以稿件名為依據(jù),從分稿系統(tǒng)所用數(shù)據(jù)庫中取得分稿時間TextLib 包含分稿系統(tǒng)所用數(shù)據(jù)庫的連接及其中各種關(guān)于文字稿件sql函數(shù)的自定義類GetProduceDate 以稿件名為依據(jù),從分稿系統(tǒng)所用數(shù)據(jù)庫中取得分稿時間LastTime 記錄上次訪問的最后訪問時間和系統(tǒng)最后接收到的文件的寫入時間ExecuteLastTime 刪除3天前訪問時間的記錄GetLastTime 從數(shù)據(jù)庫中取得上次遍歷時間GetLastWriteTime 返回上次遍歷時,最后傳送的文件的寫入時間SetLastTime 設(shè)置本次遍歷地執(zhí)行時間NoteLog 自定義的日志記錄類WriteLog 日志記錄函數(shù)GetSystemID 取得系統(tǒng)編號,都以17位為準(zhǔn),年月日時分秒加3位自增漲編號ExecuteNoteLogDeleteSQL 刪除3天前已分稿記錄的函數(shù)SQLClass 數(shù)據(jù)庫連接自定義類GetKeyWord 依靠關(guān)鍵字查找參數(shù)CheckProgram 執(zhí)行檢查WriteFile 創(chuàng)建日志文件
......
隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,伴隨著環(huán)境、網(wǎng)絡(luò)、設(shè)備、系統(tǒng)等不確定因素的增多,技術(shù)人員如何確保采編系統(tǒng)的供稿正常,如何及時有效地對采編分稿系統(tǒng)進(jìn)行檢查和處理,已成為工作中的重中之重。
上海報業(yè)集團(tuán)的“集團(tuán)采編分稿監(jiān)控系統(tǒng)解決方案”,在這些問題上做了有效的嘗試和突破,成功解決了實時監(jiān)控采編分稿系統(tǒng)的問題,同時滿足了采編系統(tǒng)保密性、監(jiān)控系統(tǒng)的安全性、開發(fā)成本低等方面的要求。集團(tuán)分稿監(jiān)控系統(tǒng)的建成為今后技術(shù)人員對于采編分稿的監(jiān)控提供了一個很好的工具,極大地提高維護(hù)人員的工作效率和處理相應(yīng)問題的時效性。
上海報業(yè)集團(tuán)的“集團(tuán)采編分稿監(jiān)控系統(tǒng)解決方案”的解決方法雖然實時監(jiān)控采編分稿系統(tǒng)的問題,但是還需要技術(shù)人員處理相關(guān)的問題。在今后的項目中,我們還會繼續(xù)研究,讓監(jiān)控系統(tǒng)能夠根據(jù)識別出來的報警提示,根據(jù)事先設(shè)定好的處理預(yù)案,自動解決相應(yīng)問題,從而實現(xiàn)發(fā)現(xiàn)與解決問題的自動化。