嵌入式Web服務器技術及其在電力系統中的應用綜述
2.4 基于不同應用程序接口的信息流分析
通過應用程序接口模塊可以和嵌入式系統進行動態(tài)交換各種數據信息,在不同接口形式下,信息的處理方式和信息流動的途徑有較大的差別[3, 6, 7]。
(1)基于CGI接口形式的信息流分析
CGI提供EWS一個執(zhí)行外部程序的通道,CGI程序經過編譯成為可執(zhí)行文件,放在服務器端運行,其信息流圖如圖3所示。EWS根據用戶的請求調用相應的CGI程序,并由EWS將CGI程序得到的動態(tài)信息封裝到頁面中,發(fā)送到用戶瀏覽器上。
CGI接口是EWS系統中最簡單的實現方案,但是由于它必須是執(zhí)行后才可以看到結果,而且編程復雜。故對于嵌入式應用系統而言,必須將程序寫入到Flash存儲器中才可以進行在線測試,將大大增加開發(fā)和維護的難度。
(2)基于SSI接口形式的信息流分析
SSI 接口方法將含有內嵌腳本的HTML頁面存儲在EWS中,EWS將根據用戶請求啟動腳本引擎,調入相應帶有腳本代碼的HTML頁面,腳本引擎與嵌入式系統進行交互,將腳本代碼部分替換為實際數據,最后由EWS將替換后的HTML頁面發(fā)送到客戶端。具體的信息流圖如圖4所示。
SSI接口比CGI接口要簡單,便于開發(fā),但腳本引擎的運行必然要影響嵌入式系統的性能。而且腳本以及腳本名稱到嵌入式軟件系統中的函數和變量名的映射都將耗費EWS的寶貴存儲空間。
(3)基于HCPA接口形式的信息流分析
此接口形式與SSI類似,首先生成帶有C源碼的Web頁面,其中的C源碼帶有標記而且可以和嵌入式軟件系統進行簡單高效的接口。其處理過程如圖5所示,預處理器將Web源頁面壓縮,提取參量標記,解析HTML頁面,最終生成C代碼。C編譯器將生成的C代碼,Web端的C代碼和應用系統的C代碼連接編譯為可執(zhí)行文件??蓤?zhí)行文件存放在EWS的存儲器中,其信息流圖和CGI接口下的信息流圖類似。
通過預處理器的處理和解析過程,大大減輕了EWS系統的運行負荷,而嵌入C代碼和HTML頁面解析方法為開發(fā)嵌入式系統提供了很大的靈活性。它結合了CGI方式的高效運行和SSI方式的快捷開發(fā)的優(yōu)點,適合于小型、高效的嵌入式應用系統的開發(fā)。
2.5 實現EWS的關鍵問題
(1)資源分配問題
一個好的EWS設計方案一定是一個合理分配系統資源的系統方案。這里主要考慮的是系統硬件資源的分配問題。硬件資源主要包括CPU的計算資源和系統的存儲空間資源。
由于EWS的CPU同時承擔著應用系統本身的計算、控制等任務負荷,所以EWS進程必須盡可能少的使用CPU的計算資源,尤其是實時監(jiān)控設備,操作系統一般分配等級低的線程給EWS使用而不影響系統自身的性能。同時EWS采用HTTP 1.1通信協議,明確引入了緩沖控制機制,可以有效減輕CPU的負荷。對多個HTTP事務建立單一持續(xù)的連接,而不是對每一個HTTP請求建立各自的 TCP連結,同樣可以改善網絡和系統的性能。
存儲空間的分配主要解決減小軟件代碼量的問題,上一節(jié)分析的HCPA接口方案可以利用生成的可執(zhí)行文件減少代碼冗余,盡可能少地占用存儲空間,而簡化的實時操作系統內核和TCP/IP協議棧也可以減少存儲空間的需要量,高效的TCP/IP協議棧和Web服務器軟件只占用大約48k的ROM和16 k的RAM的存儲空間。
同時針對不同的應用系統,還必須考慮EWS系統的總體資源配置問題。EWS實現了對現場設備的網絡控制,但并不意味著系統的每一臺嵌入式設備都必須成為 Web服務器。在設備相對集中的區(qū)域可以考慮建立獨立的EWS系統,通過現場總線與一定數目的嵌入式設備通信,成為這些設備共同的Web服務器,在系統造價和性能間可以獲得更優(yōu)的組合設計。
(2)安全性問題
由于Web技術的開放性和標準性,其優(yōu)點有時也是缺點,即必須對訪問者有所區(qū)分,否則系統的安全將不可預料。沒有詳細的安全和保密措施的EWS系統是不完整的系統。目前可能的安全策略有[4]:
1)閉環(huán)網絡訪問策略:把網絡訪問范圍局限在Intranet范圍內,通過網內的任意PC機上的瀏覽器就可以進行遠程監(jiān)視、診斷,甚至實現遠程控制和參數設置。同時網絡是封閉的,所有可能的攻擊點全部局限在本網絡范圍內;
2)回呼策略:當用戶在Intranet范圍外通過電話撥號的方式訪問網內的設備資源時,通過授權的回呼連接,將提供高的安全性能?!盎睾簟北WC了只有授權的電話連接才可以訪問Intranet范圍內的資源,同時電話號碼也要保密,以防止該電話號碼被惡意撥打阻塞訪問通道,造成“拒絕服務”此類的錯誤。
3)只讀訪問策略:對關鍵信息和敏感信息,一個重要的安全措施就是將其標記為只讀特性,尤其是從Intranet范圍外的IP地址來的訪問請求。這樣用戶可以在任意地方查看嵌入式系統的狀況,出現問題可以及時采取措施。
4)密碼和防火墻策略:如果希望實現任意地點的用戶對嵌入式系統的控制和參數設定,則必須將防火墻技術引入到Intranet的網關中,必要時還須將其集成到EWS中,根據規(guī)則過濾掉外部的數據流。同時所有的數據傳送必須加密,訪問所有可能受到攻擊的點都必須提供正確的用戶名和密碼才可以訪問。
評論