深入研究嵌入式web服務器的監(jiān)控應用
1 引言
隨著微處理器技術、計算機網絡技術的進步,基于嵌入式WEB的網絡數字視頻監(jiān)控系統(tǒng)逐漸得到了人們的廣泛關注。把圖像采集、視頻壓縮和WEB功能集中到一個體積很小的設備內,可以直接連入局域網和Internet,達到即插即用,省掉多種復雜的電纜,安裝方便,用戶也無須安裝任何硬件設備即可觀看,這使得由嵌入式網絡視頻監(jiān)控服務器組成的監(jiān)控網絡組網和擴展都極為靈活方便。
2 WEB服務器所在系統(tǒng)工作原理
如圖1所示,系統(tǒng)有兩種網絡接入方式:通過PPPOE自動撥號,動態(tài)獲取IP聯入Internet;自定義靜態(tài)IP連入局域網。
之后,系統(tǒng)的整個工作流程包括兩條主線:
1.通過HTTP/TCP/IP方式,解析來自監(jiān)控端的網頁請求,包括:攝像機控制(云臺上下左右、鏡頭光圈、縮放等等),數據庫讀寫(視頻參數如分辨率、亮色度、碼流,畫質),視頻調度與傳輸(多個用戶之間視頻數據的發(fā)送停止及其相互協調,系統(tǒng)參數也放在這里)。
2.通過RTP/UDP/IP方式,為監(jiān)控端提供所需的實時視頻信息。RTP/UDP/IP的方式兼顧了視頻傳輸的實時性與QoS保證。
3 WEB服務器的選擇
根據工作原理的描述,WEB服務器處于整個系統(tǒng)核心的位置,需要解決的幾個難點包括:
1.安全性。只有授權登陸用戶才能進行系統(tǒng)配置(網絡參數、視頻
特性等等)。普通用戶只能簡單監(jiān)控。
2.流量控制。視頻數據連續(xù)且大量,服務器應該具備一定的協調各路監(jiān)控數據的能力。
3.實時性。對于監(jiān)控端的web請求指令響應速度,特別是在高負荷的情況下。
4.性能。在多路監(jiān)控請求同時存在的情況下,系統(tǒng)的響應速度。
5.支持串口命令。云臺控制指令需要串口支持。
6.數據庫交互。包括用戶數據庫,系統(tǒng)配置參數等等,都需要實現脫機保存。
uCLinux下,主要有3個WebServer:Httpd、Thttpd和BOA。Httpd是最簡單的一個WebServer,它的功能最弱,不支持認證,不支持CGI(CommonGatewayInterface,通用網關接口)。Thttpd和BOA都支持認證、CGI等,功能都比較全。BOA源代碼開放、性能可靠、穩(wěn)定性好,但是是一個單任務的Web服務器。所以,我們選擇簡單、小巧、易移植、快速和安全的Thttpd。
Thttpd在默認的狀況下,僅運行于普通用戶模式下,從而能夠有效地杜絕非授權的系統(tǒng)資源和數據的訪問,同時Thttpd全面支持HTTP基本驗證(RFC2617),可有效解決安全性的問題。
另外,Thttpd對于并發(fā)請求不使用fork()來派生子進程處理,而是采用多路復用(Multiplex)技術來實現,因此效能很高,可以有效提高系統(tǒng)的性能。
最后,Thttpd基于URL的文件流量限制,對于連續(xù)的視頻流量控制而言是非常方便的,象Apache就必須使用插件實現,效率較Thttpd低。在Thttpd的官方網站上有一個與其他webserver的對比圖Benchmark。
綜上所述,Thttpd在安全性、性能、流量控制等方面有效的滿足系統(tǒng)需要,當然,實時性也得到很好的保證。下面,結合源碼,首先實現Thttpd的基本功能,然后將視頻數據轉發(fā)、安全性、支持串口命令、數據庫交互的實現完善起來。
評論