999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Boa 嵌入式Web服務器的應用研究

2018-09-22 04:15:40黃雅菁上海市貿易學校計算機教研部
數碼世界 2018年8期
關鍵詞:進程嵌入式系統

黃雅菁 上海市貿易學校計算機教研部

1 嵌入式Web服務器概述

嵌入式系統以其可裁剪、可靠性和高性價比贏得了市場青睞,可接入Internet的嵌入式設備使得未來的生活更加自動化,智能化和人性化。在嵌入式設備的管理與交互中,客戶端可以通過Web瀏覽器對嵌入式設備進行管理和監控。嵌入式Web服務器(EWS ,Embedded Web Server)是專門針對嵌入式設備設計,目的是在于擴展式設備功能,為遠程監控提供有力支持,使傳統的測試和控制設備轉變為具備了以TCP/IP為底層通信協議,Web技術為核心的基于互聯網的網絡測試和控制設備。

2 現有的嵌入式WEB 服務器

目前,常用的Web服務器,有GoAhead、thttdpd和Boa。

GoAhead Web服務器是開源的,體積小,性能高,支持需要在基于瀏覽器管理模式的設備上傳遞動態信息。同時,GoAhead Web服務器支持多種操作系統和開發平臺,具有很強的可移植性。缺點是對ASP的支持意味著要依靠微軟平臺,在安全方面的沒有過多的考慮。

Thttpd服務器代碼少,占用內存少,缺點是只能運行在類Linux操作系統上,對所有文件都是一次讀取完畢,同時緩存下來,因此在運行過程中占用資源多。

Boa是單任務的Web服務器,通過建立 HTTP 請求列表來處理多路 HTTP 連接請求,只為 CGI 程序創建新的進程,占用資源少。同時它還具有自動生成目錄、自動解壓文件等功能,具有很高的HTTP 請求處理速度和效率。

表一 幾種嵌入式WEB服務器性能比較

由表一可見,對于程序性能指標沒有很高要求的需求,建議選擇輕量級的Thttpd;對于安全性沒有很高要求而且對跨平臺要求的需求,建議采用GoAhead;對于安全性和軟件性能指標有高要求的需求,建議采用Boa。相比較而言,Boa的功能強,速度快,安全性高,占用資源少,適合資源相對有限的嵌入式系統。

3 Boa Web服務器在車輛檢測系統的應用

3.1 Boa的原理

在嵌入式Web 服務器的設計方法中,多進程并發結構為了響應客戶機的請求創建多個進程,而創建子進程會占用系統較多的資源。Boa Web服務器中的多路復用I/O模型解決了多進程并發結構中創建子進程帶來的系統資源消耗問題。它允許把進程本身掛起來,而同時使系統內核監聽所要求的一組文件描述符的任何活動,主要確認在任何被監控的文件描述符上出現活動,select()調用將返回指示該文件描述符已準備好的消息,從而實現了為進程選出隨機的變化,而不必由進程本身對輸入進行測試而浪費CPU開銷。文件描述符有兩種工作方式:阻塞與非阻塞。阻塞方式是指,當試圖對該文件描述符進行讀寫時,如果當時沒有東西可讀或者暫時不可寫,程序就進入等待狀態,直到有東西可讀或者可寫為止。非阻塞方式是指,如果沒有東西可讀,或者不可寫,讀寫函數馬上返回,而不會等待。使用select判斷一組文件描述符中是否有一個可讀或可寫,如果沒有就阻塞,直到有一個的時候就被喚醒。只要設置好select的各個參數,那么當文件可以讀寫的時候select會“通知”。select模式服務器端構架如下:

多路復用I/O解決了多進程并發結構中創建子進程帶來的資源問題,此模型實際上是將UDP循環模型用在了TCP上面。這也會帶來一些問題,如由于服務器依次處理客戶的請求,所以可能導致有的客戶會等待很久,多線程并發結構的代價很小,但另一方面由于線程間共享內存,增加了編程的復雜性。

3.2 系統需求分析

本次主要利用嵌入式Web服務器完成車輛檢測系統的遠程查看和設置工作。原則上要方便管理人員對系統的管理和維護,并且滿足對數據的高效管理,保證用戶通過瀏覽器將配置信息下發,并將需要查看的數據及時迅速的顯示給用戶,所有的數據結果存儲在本地配置文件中,當客戶端使用Web瀏覽器訪問嵌入式Web服務器時,需要進行身份驗證,以確保系統的安全性和防止非法用戶的訪問。

3.3 移植和配置Boa

3.3.1 移植 Boa

建立Boa服務器的安裝配置步驟如下:

(1)下載boa源代碼。boa Web服務器的源代碼可以從http://www.boa.org下載。我們采用的是 boa-0.94.13 這個版本,下載然后解壓縮。

# tar zxvf boa-0.94.13.tar.gz

將其重命名為boa。

(2)安裝并編譯boa源代碼。我們將boa源代碼解壓到/home目錄下,編譯安裝源:

#cd /home/boa/src

在安裝之前我們需要設置boa安裝的主目錄

# cd src

在 src/defines.h中添加

# define SERVER_ROOT “/home/boa”

然后編譯

#./configure

修改Makefile文件

找到CC=gcc,將其改成CC = arm-linux-gcc,

找到CPP = gcc E,將其改成CPP = arm-linux-gcc E,

并保存退出。

然后運行make進行編譯,得到的可執行程序為boa,將調試信息剝去,得到的最后

程序只有約60KB大小。

# make

# arm-linux-strip boa

在boa/src目錄下將生成boa文件,該文件即為Boa服務器執行文件。

3.3.2 配置 Boa 服務器

boa啟動時將加載一個配置文件boa.conf,在boa程序運行前,必須首先編輯該文件,并將其放置于src/defines.h文件中SERVER_ROOT宏定義所定義的缺省目錄,或者在啟動boa時使用參數“-c”指定boa.conf的加載目錄。

將User root 改為User nobody

將Group root 改為Group 0

將DocumentRoot/var/www 改為DocumentRoot/home/boa

將 MimeTypes/etc/mime.types 改 為 MimeTypes /home/boa/mime.types

將ScriptAlias /cgi-bin/ 改為/home/boa/cgi-bin/

將 ScriptAlias /index.html/ 改 為 /home/boa/index.html/

用戶可以根據自己需要,對 boa.conf 進行修改,但必須要保證其他的輔助文件和設置必須和 boa.conf 里的配置相符,不然 Boa就不能正常工作。將所有的.cgi文件拷貝到/home/boa/cgi-bin/目錄下,將所有 HTML 文件拷貝到/home/boa/html文件夾下面,將 boa.conf 拷貝到/home/boa 下面。CGI 腳本測試很容易發生權限不夠的問題,要保證 Boa 訪問的主目錄、CGI腳本目錄以及臨時文件目錄(如果沒有設置 TMP 環境變量時,缺省值是/tmp 目錄)都必須能被 Boa 運行時所代表的用戶完全訪問,該用戶由 boa.conf 中的 user指出。

3.3.3 測試 Boa 服務器

測試 Boa 能否正常工作,靜態 HTML 頁面能否正常訪問,CGI 腳本能否正常運行。index.html為測試主頁面,images為存放各種圖片的子目錄,cgi-bin為CGI腳本的存放目錄。根據boa.conf的配置,目前HTML文檔的主目錄為/home/html,CGI腳本目錄為/home/boa/cgi-bin。在PC機上運行瀏覽器進行測試,在地址欄輸入目標系統 IP,即 http://10.24.1.121,可以看到相關頁面,表示靜態HTML頁面測試通過。

3.4 軟件實現基本原理

根據需求我們主要是用Web對嵌入式停車檢測系統中的數據進行遠程的設置和查看,管理員通過瀏覽器選擇要設置查看底層車輛信息采集器收集的的車輛信息,通過HTML表單將所選內容提交給CGI程序,CGI腳本獲取用戶發的信息并解碼,然后執行相應的數據庫程序,通過約定的路徑訪問數據庫,并將訪問結果通過HTML送回給用戶端瀏覽器。

3.5 系統驗證

在測試規范和目的明確的情況下,設計了測試方案,根據選擇的測試用例對系統功

能以及穩定性、可靠性進行了測試和分析。本次測試計劃為嵌入式Web服務器功能測試。其具體內容為:通過嵌入式Web服務器是否能實現對嵌入式車輛檢測系統進行遠程管理,即完成遠程用戶對信息的的訪問查詢與設置等功能。

(1)車位實時上報狀態:

a) 占用情況 正確

b) 在線情況 正確

c) 電量報警 正確

d) 通信超時報警 正確

(2)車位信息查詢

e) 占用情況 正確

f) 在線情況 正確

g) 電量情況 正確

h) 通信超時報警 正確

(3)車位信息配置

i) 上報周期 正確

j) 報警周期 正確

k) 網絡參數 正確

測試表明該系統具有界面友好、低成本、設計簡單、操作方便等優點,完全滿足對嵌入式車輛檢測系統遠程設置和查看的要求。

4 總結與展望

本文主要對比了幾種現有的嵌入式Web服務器,將Boa Web服務器應用到車輛檢測系統,基本實現了通過客戶端來遠程監控車輛信息的功能。我們使用了開源的Boa Web Server,在使用的過程中也發現Boa的不足,我們可以通過采用以下措施來提高系統性能,以此作為未來改進Web服務器的方法:

(1)減小Web服務器中請求的生命周期。

請求的生命周期指的是當Web服務器收到客戶的一個HTTP請求并發出所請求的文件之前,Web服務器必須執行一系列指令。請求的生命周期直接影響到服務器的響應時間。所以將系統調用和其他處理開銷最小化是十分重要,可以通過減少文件緩存來達到。

(2)采用瘦服務器、胖客戶機的應用模式。

胖客戶端模式意味著在應用結構上相當數量的應用邏輯都在客戶端執行。不產生與服務器往返通信的過程,減少了網絡通信量、延遲等,減少了Web服務器的負擔。

(3)增加多用戶認證

目前的Boa是單用戶機制,對于多用戶不支持,這樣限制了多用戶的訪問和管理,我們可以引入多用戶認證機制,既實現了多用戶登錄的基本需求,也可以增加安全性。

猜你喜歡
進程嵌入式系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
搭建基于Qt的嵌入式開發平臺
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
Altera加入嵌入式視覺聯盟
倍福 CX8091嵌入式控制器
自動化博覽(2014年4期)2014-02-28 22:31:15
社會進程中的新聞學探尋
民主與科學(2014年3期)2014-02-28 11:23:03
主站蜘蛛池模板: 三级欧美在线| 国产在线观看精品| 538国产视频| 激情在线网| 91久久偷偷做嫩草影院免费看| 一级全免费视频播放| 午夜在线不卡| 国产精品香蕉在线观看不卡| 亚洲精品第一页不卡| 成人在线第一页| www.日韩三级| 国产一区二区三区在线观看视频 | 丁香亚洲综合五月天婷婷| 国产成人乱无码视频| 免费国产在线精品一区| 久久这里只有精品23| 伊人久久大香线蕉综合影视| 国产凹凸视频在线观看| 亚洲美女AV免费一区| 久久永久精品免费视频| 亚洲无码在线午夜电影| 成人午夜视频在线| 中字无码精油按摩中出视频| 久久婷婷五月综合色一区二区| 亚洲精品少妇熟女| 九色在线观看视频| 国产欧美日韩精品综合在线| 欧美一级99在线观看国产| 一级一毛片a级毛片| 999福利激情视频| 亚洲AV无码一区二区三区牲色| 国产在线91在线电影| 日韩免费中文字幕| 在线无码av一区二区三区| 精品国产成人a在线观看| 欧美全免费aaaaaa特黄在线| 日韩高清中文字幕| 亚洲成人在线免费观看| A级毛片无码久久精品免费| 亚洲swag精品自拍一区| av在线5g无码天天| 无码aaa视频| 激情综合激情| 午夜日b视频| 国内精品一区二区在线观看| 不卡无码网| 亚洲欧美一区二区三区蜜芽| 人与鲁专区| 亚洲第一黄色网址| 青青草原国产一区二区| 第一页亚洲| 国产美女一级毛片| 亚洲欧美一区二区三区麻豆| 久久亚洲国产一区二区| 免费在线成人网| 国产视频a| 国产精品刺激对白在线| 久久婷婷国产综合尤物精品| 欧美在线一级片| 亚洲精品制服丝袜二区| 日韩经典精品无码一区二区| 久久亚洲国产最新网站| 国产综合无码一区二区色蜜蜜| 国产SUV精品一区二区| 久久青草精品一区二区三区 | 亚洲午夜天堂| 国产在线拍偷自揄拍精品| 亚洲综合18p| 国产极品粉嫩小泬免费看| 91亚瑟视频| 欧美日韩动态图| 嫩草在线视频| 天天做天天爱天天爽综合区| 蝴蝶伊人久久中文娱乐网| av色爱 天堂网| 亚洲成人免费看| 免费Aⅴ片在线观看蜜芽Tⅴ | 免费一级无码在线网站| 日本在线国产| 亚洲一欧洲中文字幕在线| 69免费在线视频| 亚洲第一区精品日韩在线播放|