文/侯昶江
媒體融合是國際傳媒大整合之下的新作業(yè)模式,傳統(tǒng)媒體和新興媒體在實(shí)踐與探索中不斷互融互動,實(shí)現(xiàn)媒體平臺間的數(shù)據(jù)流轉(zhuǎn),最終實(shí)現(xiàn)一體化發(fā)展,是媒體融合發(fā)展的必然趨勢。
中新社是國家級通訊社,其采編平臺(以下簡稱社采)是中新社內(nèi)部人員完成稿件采寫、編輯、簽發(fā)的完整系統(tǒng),對外提供以中新社為電頭的文字通稿、文字特稿及圖片通稿三大主干新聞產(chǎn)品體系,形成了覆蓋海外大多數(shù)華文媒介的用戶網(wǎng)絡(luò)。
中國新聞網(wǎng)由中國新聞社主辦,是知名的中文新聞門戶網(wǎng)站,現(xiàn)通過中新網(wǎng)采編平臺(以下簡稱網(wǎng)采)對外提供文字、圖片、視頻、微博、微信等新興媒體稿件資訊服務(wù)。
整合前的社采與網(wǎng)采是跨平臺相互隔絕的,即在社采上無法撰寫網(wǎng)稿(反之亦然),這不僅給社內(nèi)記者的使用造成了不便,也造成了稿件資源的浪費(fèi)。隨著全媒體時(shí)代的到來,有必要對兩者進(jìn)行整合,實(shí)現(xiàn)傳統(tǒng)媒體與新興媒體的數(shù)據(jù)流轉(zhuǎn),推進(jìn)媒體技術(shù)融合。本文以記者在社采平臺發(fā)網(wǎng)稿為例,研究并介紹了一種跨平臺的稿件數(shù)據(jù)流轉(zhuǎn)方式。
SpringMVC是一個(gè)基于MVC的WEB框架,它為構(gòu)建穩(wěn)健的WEB應(yīng)用提供了豐富的功能,由于支持注解配置,易用性有了大幅度的提高,目前市場應(yīng)用已經(jīng)很成熟。
SpringMVC通過分發(fā)器DispatcherServlet類將接收到的Http請求進(jìn)行后臺分發(fā),并將處理好的結(jié)果通過視圖解析器返回給用戶,解析過程如圖1所示。中新社采編平臺的實(shí)現(xiàn)采用J2EE體系結(jié)構(gòu),其中,前后端的交互功能采用了SpringMVC框架。
“中文新聞信息置標(biāo)語言”,簡稱CNML,是一種新聞稿件國家標(biāo)準(zhǔn),它采用了XML寫法,和XML一樣通過節(jié)點(diǎn)及屬性值來傳遞稿件數(shù)據(jù),目前,應(yīng)用于國內(nèi)通訊社、報(bào)刊、新聞網(wǎng)站、電視臺、廣播電臺等部門及媒體應(yīng)用軟件。
利用CNML可以把與新聞信息相關(guān)的內(nèi)容、元數(shù)據(jù)、內(nèi)容間關(guān)系、稿件與附件對應(yīng)關(guān)系等這些交換數(shù)據(jù)封裝在一起,但是封裝哪些元素要根據(jù)自身的業(yè)務(wù)需求以及公共交換需求而定。
跨平臺傳遞稿件實(shí)體需要雙方平臺協(xié)定好稿件傳輸規(guī)格,CNML格式作為一種成熟的國家標(biāo)準(zhǔn)被新聞界廣泛應(yīng)用,中新社采編平臺與網(wǎng)采的稿件實(shí)體傳輸就采用了這個(gè)標(biāo)準(zhǔn)。即:社采編將要跨平臺傳遞的稿件裝配為CNML格式,網(wǎng)采接收到CNML格式稿件后解析并保存入數(shù)據(jù)庫。
CNML格式部分內(nèi)容樣例如表1所示。
表1 CNML格式部分內(nèi)容樣例
社采及網(wǎng)采平臺通過HTTP協(xié)議實(shí)現(xiàn)數(shù)據(jù)流的輸入輸出交互,我們選用JDK提供的原生類:HttpURLConnection,該類提供了一系列基于HTTP協(xié)議的方法,可向指定網(wǎng)站發(fā)送GET或POST請求,并以流的形式接受Response結(jié)果。
1.3.1 采編間跨平臺投稿流程設(shè)計(jì)及實(shí)現(xiàn)
社采與網(wǎng)采通過中間接口層進(jìn)行數(shù)據(jù)流轉(zhuǎn)。以社采投中新網(wǎng)稿為例,其數(shù)據(jù)流程設(shè)計(jì)如圖2所示。數(shù)據(jù)流轉(zhuǎn)的詳細(xì)說明如下:
(1) 社采平臺經(jīng)過記者撰網(wǎng)稿、值班主任初步審稿流程后,稿簽及稿件內(nèi)容等數(shù)據(jù)存入稿庫數(shù)據(jù)表中,利用工具對上傳圖片、視頻進(jìn)行數(shù)據(jù)處理(如規(guī)劃分辨率)后,標(biāo)記好附件ID并存入社采指定目錄下。
(2)值班主任審核通過后,社采投稿系統(tǒng)將值班主任審核版本也存入稿庫數(shù)據(jù)表,同時(shí),讀取Oracle數(shù)據(jù)庫表中保存的中新網(wǎng)接口鏈接拼接,并將值班主任最終審核稿件的稿號信息發(fā)送給網(wǎng)采接口。
圖2 投遞網(wǎng)稿的數(shù)據(jù)流泳道圖
(3)網(wǎng)采平臺獲取稿件稿號后查詢網(wǎng)采稿庫表,判斷稿件是否已經(jīng)存在于網(wǎng)采稿庫里。稿件不存在,則網(wǎng)采平臺傳遞社采有效下載賬號,密碼及待下載的稿號作為參數(shù)并調(diào)用社采提供的下載接口獲取稿件信息及附件,在未有HTTP協(xié)議數(shù)據(jù)包返回之前一直處于監(jiān)聽狀態(tài)。
(4)社采接口負(fù)責(zé)將稿件相關(guān)數(shù)據(jù)從庫和指定目錄下查出,利用DOM4J工具將稿簽信息裝配為標(biāo)準(zhǔn)的CNML格式文件(在內(nèi)存中生成,不用保存到文件)。
CNML類型稿件命名方式:類型_稿號.XML。
(5)稿件的附件(圖片、視頻等)是單獨(dú)的文件,在CNML中會有對該稿件所屬附件信息的描述。社采接口將CNML格式稿件及相應(yīng)附件打包為ZIP壓縮文件,再將該壓縮文件轉(zhuǎn)換為字節(jié)流,返回至網(wǎng)采監(jiān)聽接口。如果社采無法在稿庫找到指定稿件或在打包出現(xiàn)異常,則生成ERROR.XML一并放在ZIP包中返回,ERROR.XML中通過Message節(jié)點(diǎn)描述具體的錯誤信息。
附件命名方式:類型_稿號_附件編號.擴(kuò)展名,例如:一篇稿件屬于類型為微博稿(類型編號為2),稿號為64536,帶有兩個(gè)圖片,則可以這樣命名:
CNML格式稿件名:2_64536_1.XML 圖片附件1:2_64536_001.jpg
(6)網(wǎng)采接口獲取ZIP格式的流文件后結(jié)束監(jiān)聽狀態(tài),解壓ZIP獲得文件并將CNML格式的稿件重新裝配為稿件實(shí)體,按照類型保存入網(wǎng)采相應(yīng)稿庫,并將對應(yīng)附件保存入網(wǎng)采指定位置。如果ZIP包中包含ERROR.XML文件則表示稿件下載失敗,返回提交頁面錯誤信息。
(7)網(wǎng)采入庫成功后,調(diào)用社采提供的回傳信息接口(要求格式見表2)并寫入同步日志,社采接收到回傳XML流信息,更新社采稿庫稿件狀態(tài)為:已入網(wǎng)采稿庫。
表2 網(wǎng)采回傳信息
(8)網(wǎng)采審核人員從網(wǎng)采平臺獲取稿件進(jìn)行下一步審核。
本文以在中新社采編平臺撰寫網(wǎng)稿并發(fā)送至中新網(wǎng)網(wǎng)采平臺審核為例,實(shí)現(xiàn)了一種跨平臺的數(shù)據(jù)流轉(zhuǎn)功能,為平臺間的融合提供了一種技術(shù)手段。目前,社采平臺與網(wǎng)采平臺間每天有一百多篇新聞網(wǎng)稿通過該種方式實(shí)現(xiàn)數(shù)據(jù)流轉(zhuǎn),經(jīng)過實(shí)踐檢驗(yàn),采用該種方式流轉(zhuǎn)速度高效且相對可靠。但是,該方式采用同步傳輸?shù)姆绞綍斐删W(wǎng)絡(luò)資源的浪費(fèi),對網(wǎng)絡(luò)狀況要求較高,下一步考慮利用消息中間件產(chǎn)品達(dá)成稿件及其附件數(shù)據(jù)的異步傳輸,規(guī)避因網(wǎng)絡(luò)不穩(wěn)定造成的請求丟失情況。