一種嵌入式web伺服器的製作方法
2023-06-23 14:04:11 2
專利名稱:一種嵌入式web伺服器的製作方法
技術領域:
本發明涉及一種嵌入式web伺服器,屬於嵌入式技術領域。
背景技術:
隨著網際網路的快速發展,web技術廣泛地應用於我們的生活中,我們每天瀏覽互聯 網,每一次點擊頁面,都是web伺服器在幕後為我們提供相應的服務。當前市場上比較常用的web伺服器軟體有微軟的iis,tomcat的apach,jetty等, 但都是針對桌面系統,特點是功能強大,支持標準的腳本語言,相應的對軟硬體的資源要求 也比較高,啟動速度慢。近年來,隨著嵌入式系統的快速發展,以及web技術的廣泛應用,對 嵌入式web伺服器的需求越來越多,現有的嵌入式web服務技術主要是CGI,這種技術也廣 泛應用於桌面系統,其優點是接口控制靈活,技術規範;但其不足之處是對系統軟硬體的資 源要求高,需要文件系統的支持,對作業系統及處理器等硬體的依賴性強,不支持簡易的操 作系統,應用開發也比較複雜,與嵌入式系統設備追求的低功耗、低成本目標相悖。由於嵌 入式設備的web應用主要是設備監控,交互的內容比較簡單,不需要強大的功能,因此需要 一種簡易的嵌入式web伺服器以滿足其具體的特定的需求。
發明內容
本發明的技術解決問題的目的在於提供一種嵌入式web伺服器。採用本發明減 少了 web伺服器對軟硬體資源的過多需求,並降低了對作業系統的依賴性等缺點,更加符 合嵌入式設備低功耗、低成本的要求。本發明的技術解決方案是一種嵌入式web伺服器,包括接口模塊、存儲模塊、協議解析模塊、文件檢索模塊 和腳本處理模塊;存儲模塊,用於存儲客戶端請求的頁面文件及頁面文件的附屬文件;接口模塊,用於與客戶端進行tcp/ip協議通信,接收時,將客戶端發送的http數 據包轉發給協議解析模塊;發送時,將由協議解析模塊傳入的http數據包,通過tcp/ip協 議發送給客戶端;協議解析模塊,接收時,將從接口模塊傳入的http數據包進行http協議解析,獲 得客戶端要請求的文件,並將客戶端要請求的文件發送給文件檢索模塊;發送時,將由文件 檢索模塊或者腳本處理模塊傳入的http數據文件,以數據包的形式發送給接口模塊;文件檢索模塊,接收協議解析模塊傳入的客戶端要請求的文件,並根據客戶端要 請求的文件的文件名對存儲模塊中的文件進行檢索;檢索到客戶端要請求的文件後,判斷 客戶端要請求的文件中是否包含自定義腳本數據,如果不包含腳本數據,則將客戶端要請 求的文件直接返回給協議解析模塊,否則將客戶端要請求的文件傳送給腳本處理模塊;腳本處理模塊,對傳入的客戶端要請求的文件中的腳本數據按照腳本映射表進行 腳本解析,將解析後的客戶端要請求的文件返回給協議解析模塊。
存儲模塊按照目錄區、數據區的格式進行存儲;在數據區中每一個文件都是一條記錄,記錄格式包括文件頭標記、文件最後修改 時間、文件大小、文件名、擴展名、文件數據;在目錄區中每一條記錄對應於數據區中的一條 數據,記錄格式包括目錄文件頭標記、文件最後修改時間、文件大小、文件名長度、擴展名長 度、文件屬性、文件名、擴展名、文件內容索引;所有文件在一個連續的地址空間中存儲。所述文件檢索模塊按照存儲模塊存儲的文件格式進行檢索,先檢索目錄區,然後 根據目錄區的文件內容索引到文件數據區中讀取文件內容。本發明與現有技術相比具有如下優點(1)插入到html文件中的腳本格式為自定義,根據腳本內容定義腳本映射表,實 現簡單,不需要開發者去學習複雜的html腳本程式語言。(2)所有頁面文件及其附屬文件(圖片,ess文件等)的封裝格式類似於磁碟文件 系統的格式,但要比磁碟文件系統格式簡單,文件檢索效率高。(3)外部存儲器可支持Flash,EPCS等常用的存儲晶片,在內存中進行文件檢索及 解析,處理速度非常快。(4)腳本映射表為根據腳本內容自定義的映射表,映射表檢索採用折半查找法,腳 本解析效率高。(5)系統僅僅對客戶端請求的頁面文件及其附屬文件(圖片,ess文件等)進行存 儲及檢索,僅僅對html文件中定義的腳本標識進行解析,沒有任何多餘的處理,所以系統 資源佔用少,效率高,啟動速度快。(6)系統使用自己定義的文件存儲格式進行文件打包存儲,並按照自定義格式實 現文件檢索,所以系統運行不需要文件系統的支持,不依賴於作業系統,可以運行在一些簡 易作業系統上如uc/OS等。(7)本發明在具體實現時,資源佔用少,效率高,啟動速度快,對硬體的依賴性小; 系統兼容性好,不需要移植即可適用於各種軟硬體平臺;動態分配軟硬體資源,依據實現動 態頁面的複雜度來分配軟硬體資源。(8)本發明有效地提高了嵌入式系統的軟硬體資源利用率,對嵌入式設備的監控 提供了一種方便快捷的方式,大大節省了設備的軟硬體資源,降低了成本。
圖1為本發明結構示意圖;圖2為本發明實施例圖。
具體實施例方式如圖1所示,本發明包括接口模塊、存儲模塊、協議解析模塊、文件檢索模塊和腳 本處理模塊。使用前,首先構造使用的html文件及其附屬文件,例如ess文件,圖片文件等;然 後在需要動態顯示的html文件中出入自定義腳本標識,自定義腳本標識以為起始標 識,以% @為結束標識,例如實時顯示設備接收點頻,則腳本標識可以定義如下@% recv_freq% @
腳本標識定義完成以後,再根據自定義腳本的內容構造腳本映射表,用於對腳本 的含義進行解析。腳本映射表包含腳本標識和腳本內容(初始內容為空),腳本解析處理 模塊根據腳本映射表定義的腳本標識動態生成腳本內容,在進行腳本解析時檢索腳本映射 表,用腳本內容替換腳本標識,動態生成html文件。在使用時,將使用的http文件及其附屬文件(ess文件,圖片文件等),按照一定的 格式重新打包成一個文件,通過存儲模塊將重新打包的文件寫入EPCS晶片的某一個連續 的地址空間,作為web伺服器的文件系統(以下簡稱文件系統)。文件重新打包按照「目錄
區+ ■據區」的格式進行存儲,在_女據區中每一個文件都是一條記錄,記錄格式如下
組成長度
文件頭標記4bytes
文件最後修改日期2bytes
文件最後修改時間2bytes
文件大小4bytes
文件名長度2bytes
擴展名長度2bytes
文件名不定長度
擴展名不定長度
文件數據不定長度
在目錄區中每一條記錄對應於數據區中的一條數據,記錄格式如下
組成長度
目錄文件頭標記4bytes
文件最後修改日期2bytes
文件最後修改時間2bytes
文件大小4bytes
文件名長度2bytes
擴展名長度2bytes
文件名不定長度
擴展名不定長度
文件內容索引4bytes
如圖1、2所示,存儲器包括由EPCS晶片實現的外部存儲器,和由DDR晶片實現的
內部存儲器,在系統啟動時,將存儲在外部存儲器上的文件及其附屬文件讀到內部存儲器 中,這樣可大大提高文件的解析和檢索速度。接口模塊在接收時,將客戶端發送的tcp/ip數據包轉發給http協議解析模塊;在 發送時,將協議解析模塊傳入的http數據包,通過tcp/ip協議發送給客戶端。協議解析模塊在接收時,對由接口模塊傳入的數據包進行http協議解析,獲得客 戶端的請求文件,並將客戶端的請求文件發送給文件檢索模塊;發送時,將由文件檢索模塊 或者腳本處理模塊傳入的http數據文件,以數據包的形式發送給接口模塊。文件檢索模塊在接收協議解析模塊傳入的客戶端請求文件後,根據文件名對存儲 在內部存儲器中的文件按照存儲格式進行文件檢索,檢索到客戶端的請求文件後,判斷文件中是否包含自定義腳本數據,如果不包含腳本數據,則將文件直接返回給協議解析模塊, 否則將文件傳送給腳本處理模塊。腳本處理模塊對傳入的用戶請求文件按照腳本映射表進行腳本解析,腳本解析處 理模塊根據腳本映射表定義的腳本標識動態生成腳本內容,在進行腳本解析時檢索腳本映 射表,用腳本內容替換腳本標識,動態生成html文件,將解析後的文件返回給協議解析模 塊。如圖1所示,本發明採用的硬體平臺主要包括FPGA晶片,EPCS晶片,LAN接口晶片 及DDR晶片組成,系統不需要專門處理器晶片的支持,通在使用FPGA內置軟核實現處理芯 片的功能。本發明未詳細說明部分屬本領域技術人員公知常識。
權利要求
1.一種嵌入式web伺服器,其特徵在於包括接口模塊、存儲模塊、協議解析模塊、文件 檢索模塊和腳本處理模塊;存儲模塊,用於存儲客戶端請求的頁面文件及頁面文件的附屬文件;接口模塊,用於與客戶端進行tcp/ip協議通信,接收時,將客戶端發送的http數據包 轉發給協議解析模塊;發送時,將由協議解析模塊傳入的http數據包,通過tcp/ip協議發 送給客戶端;協議解析模塊,接收時,將從接口模塊傳入的http數據包進行http協議解析,獲得客 戶端要請求的文件,並將客戶端要請求的文件發送給文件檢索模塊;發送時,將由文件檢索 模塊或者腳本處理模塊傳入的http數據文件,以數據包的形式發送給接口模塊;文件檢索模塊,接收協議解析模塊傳入的客戶端要請求的文件,並根據客戶端要請求 的文件的文件名對存儲模塊中的文件進行檢索;檢索到客戶端要請求的文件後,判斷客戶 端要請求的文件中是否包含自定義腳本數據,如果不包含腳本數據,則將客戶端要請求的 文件直接返回給協議解析模塊,否則將客戶端要請求的文件傳送給腳本處理模塊;腳本處理模塊,對傳入的客戶端要請求的文件中的腳本數據按照腳本映射表進行腳本 解析,將解析後的客戶端要請求的文件返回給協議解析模塊。
2.根據權利要求1所述的一種嵌入式web伺服器,其特徵在於存儲模塊按照目錄區、 數據區的格式進行存儲;在數據區中每一個文件都是一條記錄,記錄格式包括文件頭標記、文件最後修改時間、 文件大小、文件名、擴展名、文件數據;在目錄區中每一條記錄對應於數據區中的一條數據, 記錄格式包括目錄文件頭標記、文件最後修改時間、文件大小、文件名長度、擴展名長度、文 件屬性、文件名、擴展名、文件內容索引;所有文件在一個連續的地址空間中存儲。
3.根據權利要求1或2所述的一種嵌入式web伺服器,其特徵在於所述文件檢索模 塊按照存儲模塊存儲的文件格式進行檢索,先檢索目錄區,然後根據目錄區的文件內容索 弓I到文件數據區中讀取文件內容。
全文摘要
本發明公開了一種嵌入式web伺服器,包括接口模塊、存儲模塊、協議解析模塊、文件檢索模塊和腳本處理模塊。採用本發明減少了web伺服器對軟硬體資源的過多需求,並降低了對作業系統的依賴性等缺點,更加符合嵌入式設備低功耗、低成本的要求。
文檔編號G06F17/30GK102075572SQ20101062277
公開日2011年5月25日 申請日期2010年12月29日 優先權日2010年12月29日
發明者王恆彬 申請人:北京遙測技術研究所