常奕
摘 要:數(shù)字告示系統(tǒng)作為新興的廣告產(chǎn)業(yè),引起了人們的普遍重視,在本文中,系統(tǒng)特別強(qiáng)化了系統(tǒng)模塊獨(dú)立性,提高模塊的獨(dú)立性和擴(kuò)展性,盡量減少模塊間耦合度。優(yōu)化通訊方式,播放終端作為遠(yuǎn)程獨(dú)立運(yùn)行的設(shè)備,能夠有效地保障終端的工作、運(yùn)行和數(shù)據(jù)管理。
關(guān)鍵詞:獨(dú)立模塊;系統(tǒng)通訊
1 系統(tǒng)框架
在整個(gè)系統(tǒng)框架的設(shè)計(jì)中,按照功能分成獨(dú)立模塊,盡量減少模塊間耦合度,提高模塊的獨(dú)立性和擴(kuò)展性。各個(gè)模塊間采用統(tǒng)一的基礎(chǔ)平臺(tái)模塊和消息交換模塊?;A(chǔ)平臺(tái)為各個(gè)模塊編程提供操作系統(tǒng)所需的基礎(chǔ)函數(shù)封裝,對(duì)模塊進(jìn)行操作系統(tǒng)細(xì)節(jié)屏蔽。消息通訊接口為各個(gè)模塊提供統(tǒng)一的消息收發(fā)機(jī)制,實(shí)現(xiàn)模塊間跨線程、進(jìn)程、設(shè)備間、線程與內(nèi)核間通訊,以屏蔽各個(gè)模塊所在位置細(xì)節(jié)。
播放終端按照功能可以分為下面這些模塊。
2 系統(tǒng)通訊
系統(tǒng)內(nèi)的消息通訊由消息交換模塊負(fù)責(zé),是整個(gè)系統(tǒng)的核心模塊,可以實(shí)現(xiàn)跨線程、進(jìn)程、設(shè)備間、線程與內(nèi)核虛擬設(shè)備間通訊,為各個(gè)模塊實(shí)現(xiàn)一個(gè)統(tǒng)一的消息收發(fā)接口。這樣模塊主線程所有的處理都可以以消息為基礎(chǔ)進(jìn)行統(tǒng)一設(shè)計(jì)。消息發(fā)送可以支持同步與異步的RPC方式通訊,但為簡(jiǎn)化設(shè)計(jì),僅支持雙向信息可靠(不可靠)IPC通訊。消息中可攜帶的數(shù)據(jù)一般最好不能超過(guò)128KB限制。消息通訊只用于控制信令傳輸,而對(duì)于流數(shù)據(jù)收發(fā),則由其他方式來(lái)實(shí)現(xiàn)。整個(gè)消息交換的架構(gòu)類似于軟件交換機(jī),模塊+設(shè)備ID來(lái)唯一表示一個(gè)通訊node就如MAC地址,每個(gè)設(shè)備內(nèi)部都有一個(gè)消息交換中心,以支持設(shè)備內(nèi)模塊間線程、進(jìn)程間的消息交換。在需要支持分布式設(shè)備間通訊時(shí),需要由核心設(shè)備作為上一級(jí)交換中心,以實(shí)現(xiàn)消息的跨設(shè)備通訊。
收發(fā)模塊:收發(fā)模塊實(shí)際可以拆分成接收模塊和發(fā)送模塊。發(fā)送模塊可以擴(kuò)展支持同步與異步的RPC通訊方式。
消息頭一般為8個(gè)ULONG長(zhǎng)度(cache line長(zhǎng)度),如簡(jiǎn)單定義為:(圖3)
在線程間通訊時(shí),只需要發(fā)送消息頭即可,而在進(jìn)程間通訊時(shí)需要發(fā)送消息頭和消息內(nèi)攜帶的數(shù)據(jù)。
3 統(tǒng)一通訊模塊
播放終端作為遠(yuǎn)程獨(dú)立運(yùn)行的設(shè)備,需要和控制服務(wù)器進(jìn)行通訊才能正常工作。一方面,根據(jù)終端安裝現(xiàn)場(chǎng)的具體情況,通訊可能通過(guò)以太網(wǎng)、WIFI、GPRS、3G等不同的通訊方式進(jìn)行,另一方面,終端使用公共網(wǎng)絡(luò),從安全性考慮必須對(duì)通訊數(shù)據(jù)進(jìn)行保護(hù)。
統(tǒng)一通訊模塊負(fù)責(zé)根據(jù)終端的配置,選擇合適的通訊方式與服務(wù)器建立連接。一開(kāi)始,統(tǒng)一通訊模塊只允許注冊(cè)模塊與服務(wù)器進(jìn)行通訊,其他模塊如果有請(qǐng)求的都會(huì)被拒絕。等注冊(cè)模塊完成設(shè)備注冊(cè)后,才允許其他模塊與服務(wù)器進(jìn)行通訊。其他模塊需要與服務(wù)器通訊時(shí),將請(qǐng)求發(fā)送給通訊模塊,由通訊模塊對(duì)數(shù)據(jù)進(jìn)行加密后發(fā)送給服務(wù)器。服務(wù)器將數(shù)據(jù)發(fā)送給終端的某個(gè)模塊時(shí),也是將數(shù)據(jù)加密后發(fā)送給通訊模塊,通訊模塊處理后再轉(zhuǎn)發(fā)給指定的模塊。
4 注冊(cè)?;钅K
在整個(gè)系統(tǒng)中,同時(shí)有非常多的播放終端同時(shí)工作,終端與服務(wù)器通訊,必須有自己的唯一標(biāo)識(shí)。接入服務(wù)器的終端必須是經(jīng)過(guò)認(rèn)證的。如果由于業(yè)務(wù)需求,終端與服務(wù)器之間長(zhǎng)期沒(méi)有通訊請(qǐng)求,那么即使終端和服務(wù)器之間的通訊線路失效了,服務(wù)器也無(wú)法知道,等到需要使用時(shí)才會(huì)發(fā)現(xiàn)無(wú)法連接。
這個(gè)模塊保存了本播放終端的唯一ID,當(dāng)通訊模塊建立了與服務(wù)器的連接通道后,將唯一ID與注冊(cè)請(qǐng)求發(fā)送給服務(wù)器,服務(wù)器認(rèn)可本終端后,回應(yīng)注冊(cè)完成報(bào)文。然后注冊(cè)模塊通知統(tǒng)一通訊模塊可以接受其他模塊的發(fā)送請(qǐng)求,整個(gè)系統(tǒng)與服務(wù)器之間的通訊完全初始化成功。隨后,本模塊定時(shí)向服務(wù)器發(fā)送?;钫?qǐng)求,以此來(lái)告知服務(wù)器本終端的工作狀態(tài),同時(shí)驗(yàn)證通訊連接的有效。
5 下載模塊
播放終端播放的視頻、音頻、文本等媒體文件,節(jié)目單等播放控制文件,以及系統(tǒng)更新固件,都需要從服務(wù)器下載。下載方式可以是FTP、HTTP方式進(jìn)行。當(dāng)設(shè)備數(shù)量較多時(shí),也可以使用P2P方式下載,以減輕服務(wù)器負(fù)載。載模塊主進(jìn)程負(fù)責(zé)所有下載相關(guān)任務(wù)的維護(hù),BT、FTP、HTTP下載進(jìn)程各自以獨(dú)立進(jìn)程的形式存在,并統(tǒng)一由主進(jìn)程管理。其他模塊有下載請(qǐng)求時(shí),將請(qǐng)求的文件信息發(fā)送給下載模塊,下載模塊解析下載類型后,將下載任務(wù)發(fā)給給相關(guān)的子進(jìn)程。子進(jìn)程接收到命令后自行進(jìn)行下載。當(dāng)下載完成后,發(fā)送下載完成消息給請(qǐng)求的模塊。在下載過(guò)程中,其他模塊也可以發(fā)送請(qǐng)求取消下載。
6 總結(jié)
通過(guò)終端播放系統(tǒng)的設(shè)計(jì),強(qiáng)化終端處理器管理控制功能,使得播放終端在離線或是在線的狀態(tài)下均能較好地實(shí)現(xiàn)和管理多媒體數(shù)據(jù)播放。
參考文獻(xiàn):
[1]侯天超,于忠清.數(shù)字告示系統(tǒng)綜述[J].青島大學(xué)學(xué)報(bào)(自然科學(xué)版),2009(03).
[2]于振偉,趙巖,于忠清.數(shù)字告示系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].中國(guó)新技術(shù)新產(chǎn)品,2009(07).
[3]陳海東.多媒體廣告發(fā)布系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].大連理工大學(xué),2013.
[4]黃迎輝.高清廣告信息發(fā)布系統(tǒng)的研究開(kāi)發(fā)與實(shí)現(xiàn)[D].北京郵電大學(xué),2011.
[5]吳巧洋.我國(guó)戶外廣告的發(fā)展現(xiàn)狀和機(jī)遇分析[J].長(zhǎng)沙民政職業(yè)技術(shù)學(xué)院學(xué)報(bào),2007(01).