設備產品WEB管理界面實現

1. 需求分析

須要在設備內部集成WEB管理功能,相似於家用路由器,經過網頁瀏覽器登錄設備,實現對設備進行狀態監視、參數設置、固件升級等功能。php

硬件條件:設備內部主控制器的嵌入式CPU廣泛低端,主頻只有幾百兆,內存有128M的,也有的只有幾百K片上配置,WEB管理功能的集成不能影響設備網絡主業務性能,可能無文件系統。html

輕量級 WEB Server

首先要找一個合適的輕量級的WEB Server,最好是C/C++實現的,有OS和沒有OS都能方便移植。WEB Server不須要太複雜,能支持1種動態語言,提供良好的CGI接口。前端

設備管理架構 Device Manager Framework

以輕量級的WEB Server爲基礎,提供一個設備管理框架,可經過代碼直接定製目錄結構,可直接修改模板增減狀態和配置頁面。linux

使用AJAX等技術實現不從新加載頁面的狀況下,刷新網頁局部,實現設備狀態「實時」監視功能。web

2. 輕量級WEB Server 對比

開源的輕量級WEB Server不少,好比GoAhead、Shttpd、Thttpd、Lighttpd、BOA、mathopd、minihttpd、appweb,但適合於移植到嵌入式平臺的並很少。ajax

GoAhead

GoAhead基於C語言的嵌入式WEB Server,由Embedthis公司維護,實現了服務端的嵌入式Javascript、CGI、DHTML,支持文件上傳,,網上資料比較多,最新V3.4.3源碼在這windows

GoAhead自己自帶Windows、Linux、各類RTOS的移植子目錄文件,其餘服務器公共模塊移植性作的很好,可不使用文件系統而將全部WEB資源文件ROM化,是學習進階C語言的很好例子。若開發linux平臺下的web監控,你能夠利用windows下的vs先調試好JS+CSS前端,再去linux平臺下解決數據交互層面的問題。瀏覽器

Lighttpd

Lighttpd是一個德國人領導的開源Web服務器軟件,具備很是低的內存開銷、cpu佔用率低、性能好以及豐富的模塊等特色,相比GoAhead更專業,支持php,固然更佔點資源。Lighttpd是衆多OpenSource輕量級的web server中較爲優秀的一個。支持FastCGI,CGI,Auth,輸出壓縮(output compress),URL重寫,Alias等重要功能。服務器

lighttpd針對web併發請求的特色,採用事件驅動模式架構以提升性能,能夠看做是一個輕量級的Apache,消耗內存更少,Apahche的不少功能在lighttpd上都有相應的實現。lighttpd支持FastCGI,利用臨時內存文件快速響應HTTP請求;支持COMET,服務器端的主動推送技術;並支持異步IO模式的響應。網絡

uHttpd

uHTTPd是一個OpenWrt/LUCI 開發者從頭編寫的Web服務器,能知足嵌入式設備在linux平臺下的輕量級任務需求,使用select模型進行多請求併發處理。

uHTTPd是OpenWRT上默認的Web服務器,支持CGI,以及靜態文件的服務,不少路由器使用OpenWRT架構,順便使用支持lua的uHTTPd開發管理界面。經過Luci處理CGI請求,實現基於Lua腳本的web開發。

busybox httpd

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

3. 設備管理架構

Luci

感興趣的童鞋能夠在虛擬機上先安裝OpenWrt鏡像,體驗下Luci的管理界面。

延伸閱讀

  1. Duktape在C/C++項目中嵌入JavaScript

相關文章
相關標籤/搜索