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
主站蜘蛛池模板: 97人人做人人爽香蕉精品| 国产麻豆精品在线观看| 无码人中文字幕| 成人在线不卡视频| 毛片免费在线| 四虎永久在线| www.亚洲一区二区三区| 亚洲天堂日本| 欧美亚洲激情| 国产精品久久久久久久伊一| 亚洲人在线| 欧美国产在线看| 国内精品小视频福利网址| 亚欧美国产综合| 在线观看无码av免费不卡网站| 91亚洲精选| 91麻豆精品国产91久久久久| 亚洲91在线精品| 无码高潮喷水在线观看| 日韩性网站| 国产成人8x视频一区二区| 国产成人高清在线精品| 国产自产视频一区二区三区| 99人妻碰碰碰久久久久禁片| 日韩第九页| 亚洲国产精品国自产拍A| 欧美一级在线看| 亚洲日本韩在线观看| 成年A级毛片| 色偷偷男人的天堂亚洲av| 手机永久AV在线播放| jizz国产视频| 国内精品视频区在线2021| 日韩AV无码免费一二三区| 亚洲精品日产AⅤ| 亚洲码一区二区三区| 欧美色图第一页| 亚洲婷婷六月| 午夜视频在线观看免费网站| 成人午夜免费视频| 亚洲国产欧洲精品路线久久| 日韩国产黄色网站| 自偷自拍三级全三级视频| 人妻一区二区三区无码精品一区| 欧美在线精品一区二区三区| 日韩欧美中文亚洲高清在线| 欧美一区二区三区不卡免费| 国产成人精品第一区二区| 久久semm亚洲国产| 国产日韩欧美一区二区三区在线 | 99热这里只有精品国产99| 国产资源免费观看| 亚洲AⅤ无码国产精品| 91精品免费高清在线| 国产第一页第二页| 国产精品熟女亚洲AV麻豆| 国内精品伊人久久久久7777人| 91午夜福利在线观看| 日本高清免费一本在线观看| 另类专区亚洲| 色亚洲成人| 国产精品久久自在自2021| 成人国产精品网站在线看| 成人免费午夜视频| 精品国产99久久| 久久久久亚洲精品无码网站| 亚洲色图欧美在线| 亚洲精品无码日韩国产不卡| 狠狠色综合网| 一本色道久久88| 色悠久久久| 国产亚洲精品在天天在线麻豆| 就去色综合| 精品少妇人妻av无码久久| 97青草最新免费精品视频| 国产一区在线视频观看| 国产综合精品日本亚洲777| 欧洲亚洲欧美国产日本高清| 无码久看视频| 国产91丝袜在线观看| 专干老肥熟女视频网站| 国产小视频在线高清播放|