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
主站蜘蛛池模板: 99热免费在线| 国产成人精品男人的天堂下载 | 日韩区欧美国产区在线观看| 日本五区在线不卡精品| 国产精品网曝门免费视频| 欧美不卡视频一区发布| 国产精品深爱在线| 精品免费在线视频| 国产在线观看人成激情视频| 成人在线观看不卡| 亚洲精品男人天堂| 亚洲男人的天堂视频| 亚洲bt欧美bt精品| 精品日韩亚洲欧美高清a | 免费在线视频a| 久久美女精品| 国产成人无码Av在线播放无广告| 国产成人福利在线视老湿机| 中文字幕久久精品波多野结| 欧美视频在线第一页| 欧美在线一二区| 欧美视频在线播放观看免费福利资源| 无码免费视频| 欧美成人亚洲综合精品欧美激情| 国产全黄a一级毛片| 亚洲男人的天堂久久香蕉网| 毛片在线播放a| 欧美日本在线一区二区三区| 人妻丰满熟妇AV无码区| 亚洲精品欧美日韩在线| 久久精品电影| 欧美激情首页| 亚洲国产天堂久久综合226114| 国产人人射| 国产毛片片精品天天看视频| 国产精品99久久久| 亚洲不卡无码av中文字幕| 久久中文字幕2021精品| 久久美女精品| 色综合手机在线| 亚洲无码熟妇人妻AV在线| 欧美亚洲一区二区三区在线| 欧美中日韩在线| 国产精品美女免费视频大全| 粉嫩国产白浆在线观看| 欧美视频在线观看第一页| 国产精品美乳| 久久99国产乱子伦精品免| 国产白浆在线| 亚洲AV色香蕉一区二区| 超清人妻系列无码专区| 国国产a国产片免费麻豆| 日韩无码真实干出血视频| 自偷自拍三级全三级视频| аⅴ资源中文在线天堂| 男女精品视频| 欧美精品成人一区二区在线观看| 熟妇人妻无乱码中文字幕真矢织江| 91精品视频播放| 色综合激情网| 尤物精品视频一区二区三区| 日本免费一级视频| 国产精品美女在线| 国产精品jizz在线观看软件| 久草视频中文| 久久青草热| 熟女日韩精品2区| 深夜福利视频一区二区| 伊人久久精品无码麻豆精品| 高清不卡毛片| 久久精品亚洲热综合一区二区| 福利片91| 国产成人精品午夜视频'| 手机永久AV在线播放| 欧美日韩动态图| 亚洲综合久久成人AV| 欧美特黄一级大黄录像| 97免费在线观看视频| 国产午夜一级淫片| 丝袜无码一区二区三区| 国产精品自拍合集| 手机在线免费不卡一区二|