潘佳,鄒仕祥,黃炳忠
(1.解放軍理工大學 通信工程學院,南京210007; 2.中國人民解放軍92126部隊)
潘佳(碩士研究生),研究方向為通信與信息系統(tǒng)。
基于Web的網絡管理(Web-Based Management,WBM),允許管理人員使用任何一種Web瀏覽器,在網絡的任何節(jié)點上方便迅速地配置、控制,以及存取網絡和它的各個部分。WBM有兩種實現策略,它們之間平行發(fā)展而互不干涉。第一種是代理方案,也就是將Web服務器加到一個內部工作站(代理)上。這個設備輪流與端設備通信,瀏覽器用戶通過HTTP協(xié)議與代理通信,代理通過SNMP協(xié)議與端設備通信。第二種方案是嵌入式方式,將Web能力真正嵌入到網絡設備中。管理人員可以輕松地通過瀏覽器訪問到該設備,從而實現網絡管理功能。代理方式保留了現存的基于工作站的網絡管理系統(tǒng)的全部優(yōu)點,同時增強了訪問的靈活性,適合大型機構進行全部網絡的網絡監(jiān)測與管理,而嵌入式方式對于小規(guī)模的環(huán)境更為理想。本文討論的就是以嵌入式方式實現WBM。
隨著計算機技術的發(fā)展,嵌入式系統(tǒng)已成為計算機領域的一個重要組成部分。嵌入式系統(tǒng)可以通過各種無線和有線形式的網絡連接,實現它們之間的相互連接,在網絡通信市場上極具生命力。只要在嵌入式設備中加入一個微型服務器,就可以使用任何一種Web瀏覽器接收和發(fā)送信息,向Internet或內部網提供高效的管理接口,用戶可以使用瀏覽器作為接口來訪問設備進行配置管理。嵌入式方式給每個設備帶來了圖形化的管理,提供了簡單易用的接口,操作簡單而不損失功能,為管理者提供了真正的即插即用的安裝方式。
嵌入式Web服務器是指,將Web服務器引入現場測試和控制設備中,在相應的硬件平臺和軟件系統(tǒng)的支撐下,以Web技術為核心的基于互聯網的網絡測試和控制設備。嵌入式Web服務器和傳統(tǒng)Web服務器相比有其自身的特點:
①在嵌入式系統(tǒng)中,由于處理能力、存儲器容量、內存等的限制,嵌入式Web服務器很難對占有大量系統(tǒng)資源的程序(如JAVA)提供支持。
②為了達到遠程管理和監(jiān)控設備的目的,用戶必須能同服務器交互。交互可通過SSI、FORM、CGI等來實現。
③嵌入式系統(tǒng)對安全性有一定的要求,對動態(tài)應用內容的驗證是它必須要解決的問題,最好能實現用戶的分級訪問。
系統(tǒng)服務器端硬件是以MPC8270為核心的HHPPC8270開發(fā)板。M PC8270為Freescale公司PowerQUICC系列新一代處理器,適合于集成控制和推進處理的高端網絡和通信設備。每個芯片都集成了2個處理單元:1個嵌入式PowerPC603e核和1個精簡指令集(RISC)的通信處理模塊(CPM)。HHPPC8270開發(fā)板提供了3個高速的百兆以太網接口、16 MB的 Flash、128 MB的SDRAM 、1個 2線RS232串口,HDD(PCI接口)支持電子盤 、IDE、SATA 、SCSI硬盤(陣列)存儲,同時提供 2個 PCI插槽可以方便擴展多種PCI接口卡,實現硬盤存儲、無線通信、圖像采集/顯示等功能。服務器操作系統(tǒng)采用嵌入式實時操作系統(tǒng)VxWorks,系統(tǒng)中運行的Web服務器軟件是GoAhead WebServer。它負責接收、處理和應答客戶端提出的請求,傳遞用戶請求的靜態(tài)頁面,或調用main.c中申明的Goform函數來調用具體的控制程序對設備進行管理,Goform函數處理后的結果以HTM L的方式返回客戶端。系統(tǒng)的結構圖如圖1所示。
圖1 系統(tǒng)結構圖
系統(tǒng)用到的主要軟件有:嵌入式操作系統(tǒng)VxWorks及其開發(fā)環(huán)境Tornado II,以及源碼公開的Web服務器軟件GoAhead WebServer。VxWorks系統(tǒng)運行環(huán)境支持的CPU 包括 Power PC、68K、CPU32、x86等。VxWorks的微內核是一個具有較高性能的、標準的嵌入式實時操作系統(tǒng)內核。其主要特點包括:搶占式任務調度,任務間通信手段多樣化,任務間切換時間短,中斷延遲小,網絡流量大等。Tornado II是一個友好的開發(fā)環(huán)境,它可以運行在多種主機上(如 Sun、HP、Dec、Mips等)。主機操作系統(tǒng)則支持Unix、Windows NT、Windows XP等。系統(tǒng)的各項配置由于使用較為流行的圖形界面,而方便使用者較快地理解和掌握。GoAhead WebServer功能強大,可以運行在Windows CE 、eCos、Linux 、MACOSX 、QNX、VxWorks 等多個平臺上。GoAhead WebServer的主要特征有:支持ASP、嵌入式的javascript、標準的CGI執(zhí)行、內存中的CGI處理GoForms和擴展的 API;如果不包含SSI僅要求60 KB內存,包含SSI則要求500 KB內存;Web頁面可存在ROM或文件系統(tǒng)中。
進行GoAhead WebServer移植之前,要在開發(fā)板上移植好VxWorks操作系統(tǒng)。GoAhead WebServer的所有代碼都是C語言編寫的,所以在不同操作系統(tǒng)上都可以方便地移植。GoAhead WebServer的具體移植步驟如下:
步驟1 下載最新的GoAhead WebServer源碼文件夾Webs218,即GoAhead2.1.8。
步驟2 運行 Tornado II建立一個Downloadable工程,編譯GoAhead WebServer的源碼。
①把Webs218文件夾下所有的源文件(*.c和*.h文件),以及VxWorks文件夾下的main.c文件添加到所建立的工程中。注意,要去掉WebSSL.c和Webcomp.c文件,否則會報錯。WebSSL.c文件用在SSL上,如果需要使用SSL,還需要下載openSSL系列的文件。Webcomp.c文件用于Web文檔壓縮,步驟3中會具體說明。
②參考../VxWorks/makefile來修改工程的makefile。在工程中增加宏定義:
-DWEBS-DUEMF-DOS="VXWORKS"-DVXWORKS-g-mapcs-32-mlittle-endian-march=ar-mv4-ansi-fno-builtin-DA RMEL-I.-IG:/Tornado 2.0/target/h/-DCPU=ARM 7TDMI-DTOOL_FAMILY=gnu-DTOOL=gnu
如果需要增加用戶管理、存取控制支持,則還需增加-DUSER_MANAGEM ENT_SUPPORT和-DDIGEST_ACCESS_SUPPORT。
③根據實際系統(tǒng)要求修改main.c文件。
設定根目錄名,例如:
#define ROOT_DIR T("//");
設定Web頁面的路徑,例如:
Static char_t*rootWeb=T("");
設定安全密碼,例如:
Static char_t*password=T("1234");
設定服務端口,例如:
Static int port=80;
設定默認訪問的頁面,例如:
WebsSetDefaultPage(wp,T("home.asp"));
利用搜索工具查找home.asp,將查到的都修改完成。
步驟3 壓縮網頁文件。HHPPC8270開發(fā)板沒有標準的文件系統(tǒng),所以要把所有網頁文件壓縮后存為靜態(tài)全局數組,工程makefile中還要定義宏WEBS_PAGE_ROM。GoAhead WebServer專門為將網頁文件打包成C語言的數組設置了文件合并程序。在../WIN/目錄下,有個Webcomp.dsw工程,先編譯得到可執(zhí)行文件Webcomp.exe,然后運行Webcomp.exe../Web Websfile>Webrom.c。其中,Websfile是所有網頁文件的文件列表;Webrom.c就是生成的網頁數據文件,包含所有網頁文件的內容,圖像、文字以及頁面文件之間的鏈接關系。然后替換掉原有的Webrom.c。
步驟4 編譯工程生成*.out文件,下載運行。這樣就完成了GoAhead WebServer的移植,在WindShell下加載WebServer:sp Websvxmain。
步驟5 在瀏覽器端鍵入目標板網口IP地址,就可以訪問home.asp了。
GoAhead WebServer支持基本認證(Basic Access Authentication,BAA)。用戶密碼從客戶端經過Base64方式加密后傳到瀏覽器端,雖然不是以明文傳輸,但這種方法顯然很容易被破譯。實現BAA,需要對GoAhead WebServer源碼中security.c的預定義部分進行修改。代碼如下:
進行上述修改后,訪問home.asp時服務器會自動返回一個登陸窗口,要求驗證用戶名和密碼。
GoAhead WebServer還支持(Digest Access Authentication,DAA)。DAA應答中包含一個有效的校驗和,即摘要。DAA假定客戶方和服務器都知道一個有權使用資源的用戶名和用戶密碼。相對于BAA,它不要求客戶方向服務器端提供顯式的用戶密碼,從而避免了密碼被盜。系統(tǒng)管理員通過Web頁面完全添加用戶、用戶組、用戶訪問權限的設置。在完成這些配置后,只有擁有相應操作權限的用戶,才可以訪問相應的服務器資源。
GoAhead WebServer支持 GoForms。GoForms是GoAhead公司自創(chuàng)的一種表單技術,它的任務直接運行在內存,而非像傳統(tǒng)CGI程序那樣,每一次和服務器連接都要產生新的任務。通過和Web服務任務共享地址空間,GoForms進程能直接訪問所請求的內容。當GoAhead WebServer運行時,若解析到URL包含有“/goform”,則開始調用某個表單處理函數。URL字段中“/goform”之后的信息定義了該表單的名稱和具體參數。下面是一個簡單的goform處理程序,用于在客戶端輸出名字與年齡:
本文詳細介紹了嵌入式Web服務器實現的關鍵技術,并對其以嵌入式方式實現WBM的應用做了簡要分析。嵌入式Web服務器技術的廣泛應用將會大大提高設備性能,從根本上改變設備維護、管理方式。基于嵌入式Web服務器技術建立的新型控制系統(tǒng),可以有效地降低運行和維護費用,提高系統(tǒng)的管理水平。實驗表明,基于HHPPC8270平臺的Web服務器系統(tǒng)運行可靠,實現了用戶訪問權限配置。所述方法對嵌入式遠程管理維護具有一定的參考價值。
[1]夏海濤,詹志強.新一代網絡管理技術[M].北京:北京郵電大學出版社,2002.
[2]胡杰,王風茂.動態(tài)網頁設計基礎教程[M].北京:科學出版社,2005.
[3]李黎,鄭成輝.基于B/S模式的分布式網管系統(tǒng)的設計與實現[J].鐵路計算機應用,2004,13(9).
[4]李磊,楊柏林.嵌入式Web服務器軟件的設計與實現[J].計算機工程與設計,2003,24(10).
[5]肖德寶,劉學超.一種基于Web的嵌入式設備網絡管理的設計[J].計算機工程,2006,32(15).
[6]何力.移動代理技術在網絡管理系統(tǒng)中的應用研究與部分實現[D].成都:電子科技大學,2005.
[7]李中健,等.基于 PC/104平臺的VxWorks Web服務器研究與實現[J].儀表技術與傳感器,2008(11).
[8]左明文,段懷敏,等.VxWorks中嵌入式Web服務器的應用研究.見:第十六屆全國煤炭自動化學術年會、中國煤炭學會自動化專業(yè)委員會學術會議論文集[C],2006.