《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 業(yè)界動態(tài) > 基于Web的嵌入式設(shè)備管理

基于Web的嵌入式設(shè)備管理

2008-12-22
作者:周 山 李向濤 何 燕

??? 摘? 要: 討論了嵌入式系統(tǒng)" title="嵌入式系統(tǒng)">嵌入式系統(tǒng)中用Wind Web Server進(jìn)行設(shè)備管理" title="設(shè)備管理">設(shè)備管理接口的開發(fā),敘述了系統(tǒng)的結(jié)構(gòu)和開發(fā)中的關(guān)鍵技術(shù),介紹在ADSL匯接設(shè)備中的應(yīng)用實例。?

??? 關(guān)鍵詞: 嵌入式系統(tǒng)? Wind Web Server? 設(shè)備管理

?

  隨著互聯(lián)網(wǎng)絡(luò)硬件、軟件的迅猛發(fā)展,嵌入式系統(tǒng)被廣泛應(yīng)用到工作和生活的各個領(lǐng)域中,如何對這些設(shè)備進(jìn)行管理成為嵌入式系統(tǒng)軟件開發(fā)中的一個重要方面。用戶只有通過設(shè)備所提供的管理接口對其進(jìn)行配置、管理和監(jiān)控,因此管理接口的易用程度和效率成為衡量設(shè)備優(yōu)劣的重要標(biāo)準(zhǔn)之一。在嵌入式設(shè)備中加入HTTP服務(wù)能將其轉(zhuǎn)化成Web Server,可以向Internet或內(nèi)部網(wǎng)提供基于Web的圖形化管理接口,用戶可以使用瀏覽器作為接口來訪問嵌入式設(shè)備。這樣不僅使設(shè)備的易用性大大提高,而且可以省去專用管理軟件,從而方便地進(jìn)行統(tǒng)一管理。?

1 Wind Web Server介紹?

  VxWorks是WindRiver公司開發(fā)的具有工業(yè)領(lǐng)導(dǎo)地位的高性能實時操作系統(tǒng)內(nèi)核,它是一個運行在目標(biāo)機(jī)上的高性能、可裁減的嵌入式實時操作系統(tǒng),具有先進(jìn)的網(wǎng)絡(luò)功能,支持市面上逾90%的處理器。該公司的網(wǎng)絡(luò)協(xié)議棧產(chǎn)品Wind Web Server提供了功能強(qiáng)大的基于Web方式的網(wǎng)絡(luò)管理系統(tǒng),可以無縫地集成到任何基于VxWorks的嵌入式應(yīng)用中。?

  Wind Web Server具有以下特性: ?

  ·完全支持HTTP 1.1標(biāo)準(zhǔn) ?

  ·不需要文件系統(tǒng) ?

  ·支持Java Applets、圖像文件、聲音文件等 ?

  ·可通過標(biāo)記支持SSI?

  ·URL處理可定制 ?

  ·靈活配置的模塊結(jié)構(gòu) ?

  ·腳本小(7~40KB) ?

  ·支持用戶/用戶組/密碼認(rèn)證 ?

  ·有IP過濾機(jī)制 ?

  ·支持CGI ?

  ·可記錄日志 ?

  ·支持別名 ?

  ·支持服務(wù)器推送(Server push)技術(shù)。?

  Wind Web Server采用模塊設(shè)計,可以方便地進(jìn)行裁剪以滿足應(yīng)用的特殊要求。根據(jù)配置,Wind Web Server需要7~40KB的內(nèi)存。在嵌入式系統(tǒng)中硬件資源寶貴,有時并不需要文件系統(tǒng)。Wind Web Server提供了一個工具Pagepack,可以在編譯和連接時將Web內(nèi)容放在程序代碼中,從而可以存儲在ROM中。?

2 Wind Web Server結(jié)構(gòu)?

  嵌入式系統(tǒng)所能使用的資源是受限的,在許多情況下甚至沒有外部存儲系統(tǒng),這一點要求嵌入式系統(tǒng)的 Web服務(wù)器與UNIX和Windows平臺上的Web服務(wù)器有很大不同。Wind Web Server采用模塊化和可伸縮的系統(tǒng)結(jié)構(gòu),允許用戶進(jìn)行裁剪以滿足資源的不同限制。Wind Web Server的結(jié)構(gòu)如圖1所示。?

?

?

  Wind Web Server由以下關(guān)鍵部分組成:?

  ·Web服務(wù)器核心?

  ·HTTP請求處理模塊(RPM)?

  ·RPM調(diào)度程序?

  ·服務(wù)器端符號表?

  ·API函數(shù)?

2.1 Web服務(wù)器核心和RPM調(diào)度程序?

  Web服務(wù)器核心作為一個任務(wù)運行在目標(biāo)系統(tǒng)中,提供網(wǎng)絡(luò)服務(wù)綁定、Socket函數(shù)調(diào)用和初始化參數(shù)的設(shè)置等。RPM調(diào)度程序決定怎樣響應(yīng)HTTP請求,即決定了HTTP請求的地址和RPM的對應(yīng)關(guān)系。?

2.2 HTTP請求處理模塊(RPM)?

  HTTP請求處理模塊分為兩大類:系統(tǒng)RPM和用戶RPM。其中系統(tǒng)RPM執(zhí)行HTTP請求的基本處理,包括:記錄日志、處理別名與MIME頭、IP地址檢查、密碼驗證和訪問控制。而用戶RPM處理具體的頁面請求,包括:文件系統(tǒng)RPM、SSI(Server Side Include)RPM、CGI RPM、用戶函數(shù)調(diào)用RPM、服務(wù)器推送RPM等。另外用戶可以使用自定義RPM完成一些特殊的處理過程。?

2.3 服務(wù)器端符號表?

  Wind Web Server主要通過符號表來支持Web存取目標(biāo)機(jī)中的變量,每個符號表包含如下屬性:?

  ·Address???????內(nèi)存地址?

  ·Name????????? 名稱?

  ·Descrip???????描述?

  ·Type????????? 數(shù)據(jù)類型?

  ·Num Elems???? 變量個數(shù)?

  ·GET Routine?? 讀回調(diào)" title="回調(diào)">回調(diào)函數(shù)?

  ·GET Param???? 讀回調(diào)函數(shù)的參數(shù)?

  ·SET Routine?? 寫回調(diào)函數(shù)?

  ·SET Param???? 寫回調(diào)函數(shù)的參數(shù)?

  ·Access ID???? 變量的訪問控制?

  將網(wǎng)頁請求和符號表聯(lián)系起來的方法有兩種:擴(kuò)展SSI和服務(wù)器推送。?

  (1)擴(kuò)展SSI的實現(xiàn)?

  可以在HTML網(wǎng)頁中使用標(biāo)記,每個標(biāo)記都與存在于Wind Web Server符號表中的一個讀或?qū)懟卣{(diào)函數(shù)相對應(yīng)。當(dāng)網(wǎng)頁為Wind Web Server請求時,包含變量值等動態(tài)信息的讀或?qū)懟卣{(diào)函數(shù)輸出替代了網(wǎng)頁上的標(biāo)記,從而動態(tài)顯示或提交數(shù)據(jù)內(nèi)容。這項技術(shù)同時提高了在HTML頁中處理表單" title="表單">表單的能力。傳統(tǒng)的Web Server只能處理事先確定的缺省的表單元素,在Wind Web Server,實際值可以從符號表中得到,然后在HTML頁被提交到客戶端" title="客戶端">客戶端前插入到表單中。Wind Web Server還提供了一個工具formpack,用于在包含表單的普通網(wǎng)頁中加入標(biāo)記。?

  Wind Web Server中已經(jīng)包含標(biāo)準(zhǔn)的SSI實現(xiàn),如輸入框、下拉列表、復(fù)選框等。另外,用戶可以加入自定義的SSI函數(shù)以處理特定的HTTP請求。?

  (2)服務(wù)器推送的實現(xiàn)?

  HTTP是一種請求響應(yīng)協(xié)議,如果要對服務(wù)器端進(jìn)行持續(xù)的監(jiān)控,必須不斷地發(fā)送請求刷新頁面,這將大大加重服務(wù)器的負(fù)擔(dān)。Wind Web Server能夠使用內(nèi)嵌的Live Control模塊在頁面中的Java applet與服務(wù)器端的符號表之間建立一條持續(xù)的交互鏈路,使服務(wù)器端符號表變量的改變無需客戶端請求而直接對客戶端發(fā)布,從而實現(xiàn)了服務(wù)器推送的目的。?

2.4 HTTP請求處理過程?

  一個典型的HTTP請求處理包含以下步驟:?

  (1)接收到HTTP請求后,服務(wù)器取出包含目的URL的請求行字符串,將其存入描述HTTP請求的數(shù)據(jù)結(jié)構(gòu)中;?

  (2)如果該請求是頁面提交,即如下形式:http://target/xxx/xxx.htm?para1=xxx?2=xxx,則將提交參數(shù)存入環(huán)境變量QUERY_STRING中;?

  (3)調(diào)用所有已配置的系統(tǒng)RPM,如果返回正確,則繼續(xù);?

  (4)調(diào)用頁面對應(yīng)的用戶RPM,如果該頁面中包含SSI標(biāo)記,則調(diào)用SSI RPM;?

  (5)查找標(biāo)記,例如: 則調(diào)用標(biāo)準(zhǔn)SSI函數(shù)ShowValue( )對符號表中的變量usersymbol進(jìn)行處理,然后將得到的變量值插入要返回的HTML頁面中,傳送至客戶端。?

3 開發(fā)中的關(guān)鍵技術(shù)?

3.1 自定義用戶RPM?

  通過調(diào)用函數(shù)httpRpmConfAdd(HTTP_M_GET,″/user_rpm/″,User_rpm),把形如http://x.x.x.x/user_rpm/*.htm?para1=xxx?2=xxx的請求用函數(shù)User_rpm進(jìn)行處理和輸出。函數(shù)User_rpm的實現(xiàn)框架如下:?

short User_rpm ( HTTP_REQ_ID reqId ){?

  char* para;?

  httpStatusSet (reqId, HTTP_OK);?

  httpHeaderGenerate (reqId); ??? /*產(chǎn)生HTTP頭*/?

  para=httpGetEnv(reqId,″QUERY_STRING″); /*得到輸入?yún)?shù)*/?

  ……??????? /*處理輸入?yún)?shù)及準(zhǔn)備輸出結(jié)果*/?

  httpStringPut (reqId,″...n″); /*開始輸出*/?

  ……??????? /*輸出全部HTML語句*/ ?

  httpStringPut(reqId,″...n″); /*結(jié)束輸出*/?

  return(RPM_DONE);?

  }?

3.2. 自定義SSI處理函數(shù)?

  通過調(diào)用函數(shù)httpSsiFnConfAdd (″user_ssi″, User_ssi)建立自定義SSI處理函數(shù)User_ssi。當(dāng)頁面中包含如下?

  標(biāo)記時:,服務(wù)器將調(diào)用函數(shù)User_ssi(參數(shù)為para),并將輸出插入到準(zhǔn)備返回的HTTP頁面中。函數(shù)User_rpm的實現(xiàn)框架如下:?

short User_ssi ( HTTP_REQ_ID reqId ,char * szArg){?

  char * para;?

  para=szArg;? /*得到輸入?yún)?shù)*/?

  ……??????? ?? /*處理輸入?yún)?shù)及準(zhǔn)備輸出結(jié)果*/?

????httpStringPut (reqId,″...n″); /*輸出全部HTML語句*/?

 ? return(HTTP_OK);?

??? }?

3.3 用Java applet實現(xiàn)服務(wù)器推送?

  Live Control模塊的API提供如下Java類的實現(xiàn):?

  ·DirectRegistry??????? Applet與符號表進(jìn)行通訊的基本部件?

  ·DirectReadProxy?????? 從DirectRegistry中獲取符號表變量的改變?

  ·DirectWriteProxy????? 更新DirectRegistry中符號表變量的值?

  ·DataObjectChangeListener、DataObjectStatusListener?用于監(jiān)聽的容器?

  用Java applet實現(xiàn)服務(wù)器推送的框架如下:?

  (1)創(chuàng)建用于連接服務(wù)器端的DirectRegistry類的實例:?

  myServerURL=new URL(″http://″+getDocumentBase().getHost()+″/lc/″); ?

  myRegistry=new DirectRegistry(myServerURL);?

  (2)創(chuàng)建用于監(jiān)聽符號表變量的Java部件:?

  myWidget=new TextWidget(″0″,10);?

  (3)創(chuàng)建DirectReadProxy和DirectWriteProxy的實例用于讀寫符號表變量mySymbol:?

  myReadProxy=new DirectReadProxy(″mySymbol″);?

  myWriteProxy=new DirectWriteProxy(″mySymbol″);?

  (4)將Java部件myWidget加入myReadProxy和myWrite?

  Proxy,成為監(jiān)聽容器:?

  myReadProxy.addDataObjectChangeListener(myWidget);?

  myWriteProxy.addDataObjectChangeListener(myWidget);?

  (5)將已創(chuàng)建的監(jiān)聽容器myReadProxy、myWriteProxy加入myRegistry中,完成Applet與服務(wù)器端Live Control模塊的連接:?

  myRegistry.addPropertyChangeListener(myReadProxy);?

  myRegistry.addPropertyChangeListener(myWriteProxy);?

  另外,用戶可以創(chuàng)建自己的Java部件和DataObject ChangeListener方法,以完成更高級的應(yīng)用。?

3.4 配置HTTP服務(wù)?

  Wind Web Server可進(jìn)行裁剪用于不同的應(yīng)用環(huán)境,可配置的參數(shù)較多,同時參數(shù)之間相互影響。因此參數(shù)的配置是否妥當(dāng)將直接影響HTTP服務(wù)的性能,甚至導(dǎo)致HTTP服務(wù)不能正常工作。其中對Web Server內(nèi)存池的配置和使用尤為關(guān)鍵,需要進(jìn)行仔細(xì)調(diào)整和多次測試。另外整個系統(tǒng)的網(wǎng)絡(luò)內(nèi)存池的容量也直接影響HTTP服務(wù)的性能,需要結(jié)合系統(tǒng)規(guī)模進(jìn)行配置。?

4 實例應(yīng)用?

  在ADSL匯接器系統(tǒng)軟件的開發(fā)過程中,使用Wind Web Server開發(fā)了基于Web的圖形化設(shè)備管理接口,用戶在任何地點只需使用瀏覽器就可以對設(shè)備進(jìn)行全面的管理,包括:?

  ·可以對系統(tǒng)用戶認(rèn)證和管理,不同的用戶具有不同的操作權(quán)限;?

  ·可以對系統(tǒng)進(jìn)行實時監(jiān)控,頁面依照機(jī)柜布局設(shè)計。設(shè)備面板和頁面上的各種信號燈同步變化,一目了然。同時可以在頁面上直接使用設(shè)備面板上的各種按鍵,操作方便。采用了服務(wù)器推送技術(shù),降低了網(wǎng)絡(luò)通信量和系統(tǒng)負(fù)擔(dān);?

  ·可以對初始化數(shù)據(jù)進(jìn)行修改和保存;?

  ·可以遠(yuǎn)程更新整個軟件系統(tǒng);?

  ·可以隨時獲取和清除計費信息。?

  整個程序(含頁面代碼)共200K字節(jié)左右,任務(wù)的優(yōu)先級設(shè)為最低,不影響原系統(tǒng)的正常運行,達(dá)到了很好的效果。?

參考文獻(xiàn)?

1 Wind River Systems, Inc. Wind Web Server Programmer's Guide 2.0. 2000?

2 譚浩強(qiáng),辛運幃,饒一梅,張 均.Java 程序設(shè)計.北京:清華大學(xué)出版社.2000
本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美一区二区私人影院日本 | 136国产福利精品导航| 国产精品久久国产三级国电话系列| 美女亚洲精品| 久久久精品一品道一区| 欧美亚洲网站| 午夜性色一区二区三区免费视频| 亚洲一区二区在线免费观看| 99热在这里有精品免费| 亚洲品质自拍| 亚洲青色在线| 亚洲激情六月丁香| 91久久国产综合久久| 亚洲第一页在线| 久久精品视频导航| 亚洲国产精品第一区二区| 久久国产一区二区| 亚洲大胆视频| 亚洲高清三级视频| 亚洲激情在线视频| 亚洲欧洲日韩在线| 亚洲精品国产精品国自产观看| 亚洲国产天堂久久综合| 亚洲精品看片| 在线视频精品一| 亚洲综合色噜噜狠狠| 午夜精品久久久久久久久久久久 | 国内激情久久| 一区在线影院| 亚洲欧洲日夜超级视频| 日韩视频一区二区三区在线播放免费观看 | 国产在线播放一区二区三区| 一区一区视频| 亚洲日本免费| 在线一区视频| 欧美一区二区三区视频免费播放 | 国产精品久久久久久久久搜平片| 国产精品三级久久久久久电影| 国产日韩欧美麻豆| 黑人操亚洲美女惩罚| 亚洲电影在线| 一区二区三区高清在线| 午夜精品亚洲一区二区三区嫩草| 亚洲第一中文字幕在线观看| 99日韩精品| 欧美亚洲一区二区在线| 久久视频在线看| 欧美激情综合五月色丁香小说| 国产精品v日韩精品v欧美精品网站| 国产欧亚日韩视频| 亚洲高清网站| 亚洲一区二区三区四区五区午夜 | 久久久精品tv| 欧美精品久久久久久久免费观看 | 亚洲国产欧美不卡在线观看| 亚洲蜜桃精久久久久久久| 亚洲午夜羞羞片| 久久久久久久久久久久久久一区 | 国产伦精品一区二区三区| 精品福利免费观看| 一个人看的www久久| 欧美中文字幕视频| 一区二区三区久久| 久久久精品日韩欧美| 欧美日韩国产综合新一区| 国产精品视频999| 亚洲福利视频免费观看| 亚洲视频免费在线| 亚洲激情第一页| 欧美一区激情视频在线观看| 蜜月aⅴ免费一区二区三区| 国产精品美女久久久久久2018| 在线观看91精品国产入口| 亚洲一级片在线观看| 91久久黄色| 久久9热精品视频| 欧美久久久久中文字幕| 国产日韩欧美二区| 99国产一区二区三精品乱码| 亚洲电影免费| 性欧美8khd高清极品| 欧美国产视频在线| 韩国欧美国产1区| 亚洲一区二区三区精品在线| 日韩亚洲欧美精品| 久久在线观看视频| 国产精品久久久99| 亚洲美女少妇无套啪啪呻吟| 亚洲国产精品久久久久久女王| 亚洲欧美日韩精品在线| 欧美精品久久久久久| 精品电影在线观看| 午夜精品福利在线| 亚洲欧美日韩天堂| 欧美日韩专区| 亚洲人在线视频| 亚洲国产专区| 久久精品国产亚洲高清剧情介绍| 国产精品扒开腿做爽爽爽视频| 亚洲人体偷拍| 亚洲精品免费在线播放| 久久亚洲视频| 国产视频综合在线| 亚洲欧美另类久久久精品2019| 一本久久综合| 欧美精品一区二区三区在线播放 | 欧美日韩综合视频网址| 亚洲国产一区二区在线| 久久精品久久99精品久久| 欧美在线免费视屏| 国产精品免费观看在线| 中国av一区| 亚洲一区二区三区高清| 欧美日韩极品在线观看一区| 最近看过的日韩成人| 亚洲黄色三级| 免费高清在线一区| 亚洲福利视频在线| 亚洲精品少妇网址| 欧美高潮视频| 最近看过的日韩成人| 亚洲看片免费| 欧美精品v日韩精品v国产精品 | 亚洲精品资源| 一本色道综合亚洲| 欧美日韩亚洲一区二| 亚洲美女视频在线免费观看| 99视频精品全部免费在线| 欧美人与性动交cc0o| 亚洲美女在线看| 在线视频日本亚洲性| 欧美日韩在线视频观看| 宅男噜噜噜66国产日韩在线观看| 亚洲影音先锋| 国产精品一区二区三区免费观看| 亚洲在线视频免费观看| 久久精品国产第一区二区三区最新章节 | av72成人在线| 亚洲欧美日韩精品在线| 国产精品亚发布| 欧美一区二区观看视频| 久久―日本道色综合久久| 亚洲第一搞黄网站| 夜夜嗨网站十八久久| 国产精品伦一区| 欧美有码在线观看视频| 免费人成网站在线观看欧美高清 | 在线亚洲电影| 国产精品hd| 性娇小13――14欧美| 六月婷婷久久| 亚洲日本无吗高清不卡| 亚洲欧美成人一区二区三区| 国产日韩欧美在线一区| 最近中文字幕日韩精品| 欧美日韩国产首页| 亚洲午夜高清视频| 欧美在线|欧美| 伊人久久大香线蕉综合热线| 99国内精品久久久久久久软件| 欧美亚男人的天堂| 久久精品国产69国产精品亚洲| 欧美精品福利| 亚洲免费人成在线视频观看| 久久在线观看视频| 日韩性生活视频| 久久久久久伊人| 亚洲另类自拍| 欧美淫片网站| 亚洲激情av在线| 欧美一区二区免费| 亚洲国产天堂久久国产91| 亚洲欧美在线另类| 激情小说另类小说亚洲欧美 | 亚洲调教视频在线观看| 国产精品入口| 亚洲国产精品第一区二区| 欧美色综合网| 久久激情婷婷| 欧美日一区二区在线观看| 欧美在线一二三区| 欧美日韩国产综合新一区| 欧美一区二区三区在线播放| 欧美理论电影网| 欧美在线关看| 欧美日韩精品中文字幕| 欧美专区日韩专区| 欧美日韩免费在线视频| 久久国产一区| 国产精品任我爽爆在线播放 | 黄色资源网久久资源365| 亚洲一区二区视频在线| 在线日韩欧美| 久久国产精品高清| 一区二区三区精品在线| 欧美成人精品一区| 欧美一区二区三区四区夜夜大片| 欧美色一级片| 亚洲精品综合在线| 狠狠爱成人网|