博客專欄

EEPW首頁 > 博客 > 設(shè)備產(chǎn)品WEB管理界面實(shí)現(xiàn)

設(shè)備產(chǎn)品WEB管理界面實(shí)現(xiàn)

發(fā)布人:電子禪石 時(shí)間:2022-02-23 來源:工程師 發(fā)布文章
1. 需求分析

需要在設(shè)備內(nèi)部集成WEB管理功能,類似于家用路由器,通過網(wǎng)頁瀏覽器登陸設(shè)備,實(shí)現(xiàn)對設(shè)備進(jìn)行狀態(tài)監(jiān)視、參數(shù)設(shè)置、固件升級等功能。

硬件條件:設(shè)備內(nèi)部主控制器的嵌入式CPU普遍低端,主頻只有幾百兆,內(nèi)存有128M的,也有的只有幾百K片上配置,WEB管理功能的集成不能影響設(shè)備網(wǎng)絡(luò)主業(yè)務(wù)性能,可能無文件系統(tǒng)。

輕量級 WEB Server

首先要找一個(gè)合適的輕量級的WEB Server,最好是C/C++實(shí)現(xiàn)的,有OS和沒有OS都能方便移植。WEB Server不需要太復(fù)雜,能支持1種動(dòng)態(tài)語言,提供良好的CGI接口。

設(shè)備管理架構(gòu) Device Manager Framework

以輕量級的WEB Server為基礎(chǔ),提供一個(gè)設(shè)備管理框架,可通過代碼直接定制目錄結(jié)構(gòu),可直接修改模板增減狀態(tài)和配置頁面。

使用AJAX等技術(shù)實(shí)現(xiàn)不重新加載頁面的情況下,刷新網(wǎng)頁局部,實(shí)現(xiàn)設(shè)備狀態(tài)“實(shí)時(shí)”監(jiān)視功能。

2. 輕量級WEB Server 對比

開源的輕量級WEB Server很多,比如GoAhead、Shttpd、Thttpd、Lighttpd、BOA、mathopd、minihttpd、appweb,但適合于移植到嵌入式平臺的并不多。

GoAhead

GoAhead基于C語言的嵌入式WEB Server,由Embedthis公司維護(hù),實(shí)現(xiàn)了服務(wù)端的嵌入式Javascript、CGI、DHTML,支持文件上傳,,網(wǎng)上資料比較多,最新V3.4.3源碼在這。

GoAhead本身自帶Windows、Linux、各種RTOS的移植子目錄文件,其他服務(wù)器公共模塊移植性做的很好,可不使用文件系統(tǒng)而將所有WEB資源文件ROM化,是學(xué)習(xí)進(jìn)階C語言的很好例子。若開發(fā)linux平臺下的web監(jiān)控,你可以利用windows下的vs先調(diào)試好JS+CSS前端,再去linux平臺下解決數(shù)據(jù)交互層面的問題。

Lighttpd

Lighttpd是一個(gè)德國人領(lǐng)導(dǎo)的開源Web服務(wù)器軟件,具有非常低的內(nèi)存開銷、cpu占用率低、性能好以及豐富的模塊等特點(diǎn),相比GoAhead更專業(yè),支持php,當(dāng)然更占點(diǎn)資源。Lighttpd是眾多OpenSource輕量級的web server中較為優(yōu)秀的一個(gè)。支持FastCGI,CGI,Auth,輸出壓縮(output compress),URL重寫,Alias等重要功能。

lighttpd針對web并發(fā)請求的特點(diǎn),采用事件驅(qū)動(dòng)模式架構(gòu)以提高性能,可以看作是一個(gè)輕量級的Apache,消耗內(nèi)存更少,Apahche的很多功能在lighttpd上都有相應(yīng)的實(shí)現(xiàn)。lighttpd支持FastCGI,利用臨時(shí)內(nèi)存文件快速響應(yīng)HTTP請求;支持COMET,服務(wù)器端的主動(dòng)推送技術(shù);并支持異步IO模式的響應(yīng)。

uHttpd

uHTTPd是一個(gè)OpenWrt/LUCI 開發(fā)者從頭編寫的Web服務(wù)器,能滿足嵌入式設(shè)備在linux平臺下的輕量級任務(wù)需求,使用select模型進(jìn)行多請求并發(fā)處理。

uHTTPd是OpenWRT上默認(rèn)的Web服務(wù)器,支持CGI,以及靜態(tài)文件的服務(wù),很多路由器使用OpenWRT架構(gòu),順便使用支持lua的uHTTPd開發(fā)管理界面。通過Luci處理CGI請求,實(shí)現(xiàn)基于Lua腳本的web開發(fā)。

busybox httpd

busybox是嵌入式Linux下的開發(fā)“瑞士軍刀”,基本上Android手機(jī)上都有安裝;httpd是busybox的附帶工具之一,輕量級,支持CGI。用的人少:(

3. 設(shè)備管理架構(gòu)Luci

感興趣的童鞋可以在虛擬機(jī)上先安裝OpenWrt鏡像,體驗(yàn)下Luci的管理界面。

延伸閱讀
  1. Duktape在C/C++項(xiàng)目中嵌入JavaScript


*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。



關(guān)鍵詞: web

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉