前言:尋找寫作靈感?中文期刊網用心挑選的嵌入式Web服務器技術的發展,希望能為您的閱讀和創作帶來靈感,歡迎大家閱讀并分享。
0概述 集群通信系統是一種高級專業指揮調度系統,它在使用、系統入網、系統維護管理及多區聯網等方面具有較齊全的功能。其中系統維護管理的主要功能有:統計功能———統計每個信道的話務量、每條中繼線話務量、系統內不同組用戶的話務量;修改運行參數———可根據業務需要,修改運行參數,如用戶分組、用戶限時參數、優先級別和接續權限;監視信道忙閑狀態———可通過操作終端顯示出系統內各信道的忙閑;基站無人職守;系統自我診斷———包括周期性檢驗控制器的運行情況,周期性檢驗基站收發信機及接口的運行情況,周期性檢驗供電情況等。該文以單基站集群通信系統為例,論述系統維護管理終端的設計與實現。系統控制中心由集群控制管理模塊、轉發器接口電路、電話互連器、交換單元及電源等組成??刂浦行闹骺匕迨且粋€嵌入式系統。對基站調度維護的傳統方法即是通過系統管理終端的1臺計算機及其所包含的控制臺程序與主控板連接(一般通過RS-232C接口)。還有一種Telnet方法對系統控制中心實施管理。 這2種方法各有缺陷。使用控制臺程序的方法不能實現遠程管理嵌入式系統,Telnet方法雖然可以遠程管理嵌入式系統,但Telnet的命令行界面使用戶管理極不方便。而現在主流的基于web的網絡管理方法不僅可以利用瀏覽器提供的豐富的圖形用戶界面實現遠程管理、監控嵌入式系統的功能,并且可以在服務器端進行進一步開發,提高設計效率?;赪eb的網絡管理(WBM:Web-BasedManagement)允許管理人員使用任何一種Web瀏覽器在網絡的任何節點上方便迅速地配置、控制以及存取網絡和它的各個部分。WBM有2種實現策略,它們之間平行發展而互不干涉。第一種是方案,也就是將Web服務器加到一個內部工作站()上,這個設備輪流與端設備通信,瀏覽器用戶通過HTTP協議與通信,通過SNMP協議與端設備通信;第二種方案是嵌入式方式,將Web能力真正嵌入到網絡設備中,管理人員可以輕松地通過瀏覽器訪問到該設備實現網絡管理功能。方式保留了現存的基于工作站的網管系統的全部優點,同時增加了訪問的靈活性,適合大型機構進行全部網絡的網絡監測與管理。與此同時,嵌入式方式對于小規模的環境更為理想,文中討論的就是以嵌入式的方式實現WBM。 1系統軟硬件體系結構 1.1系統組成 以嵌入式方式實現WBM,即在嵌入式系統中安裝嵌入式Web服務器(EWS:EmbeddedWebServ-er),EWS包含HTTP引擎、API模塊、虛擬文件系統、配置模塊、安全模塊等,通過普通的瀏覽器就能與EWS取得連接,進行交互來完成相應的管理功能。經過對各類微處理器的比較與測試,課題組使用包含PowerQUICC系列微處理器的HHPPC8270開發板作為主控板開發硬件。HHPPC8270開發板適合于集成控制和推進處理的高端網絡和通信設備,每個芯片都集成了2個處理單元:一個嵌入式Pow-erPC603e核,一個精簡指令集(RISC)的通訊處理模塊(CPM)。8270HHPPC開發板提供了3個高速的百兆以太網接口、16M的FLASH、128M的SDRAM、1個2線RS232串口,HDD(PCI)支持電子盤、IDE、SATA、SCSI硬盤(陣列)存儲,同時提供2個PCI插槽可以方便擴展多種PCI接口卡,實現硬盤存儲、無線通訊、圖像采集/顯示等功能。EWS操作系統采用嵌入式實時操作系統VxWorks,系統中運行的Web服務器軟件是GoAheadWebServer。它負責接受、處理和應答客戶端提出的請求,傳遞用戶請求的靜態頁面、調用后臺的通用網關接口(CGI)程序或者GoAheadWebServer自帶的內存中的CGI處理GoForms,CGI程序以及GoForms負責調用具體的控制程序對設備進行管理,CGI程、GoForms處理后的結果以HTML的方式返回客戶端。 1.2軟件體系結構 系統用到的主要軟件有:嵌入式操作系統Vx-Works及其來發環境Tornado和公開源碼的Web服務器軟件GoAheadWebServer。VxWorks系統運行環境支持的CPU包括:PowerPC、68K、CPU32、x86等。VxWorks的微內核是一個具有較高性能的、標準的嵌入式實時操作系統內核,其主要特點包括:快速多任務切換、搶占式任務調度、任務間通信手段多樣化等。該內核具有任務間切換時間短、中斷延遲小、網絡流量大等特點,與其他嵌入式實時操作系統相比具有一定的優勢。TornadoⅡ是一個友好的開發環境,它可以運行在多種主機上,包括:Sun、HP、Dec、Mips等;主機操作系統則支持UNIX、WindowsNT、WindowsXP等。系統的各項配置由于使用較為流行的圖形界面而方便使用者較快地理解和掌握。GoAheadWebServer是一個開放源碼、功能強大、可以運行在WindowsCE、ECOS、LINUX、MACOSX、QNX、VXWORKS等多個平臺。GoAheadWebServer的主要特征有:支持ASP,嵌入式的javascript,標準的CGI執行,內存中的CGI處理GoForms,擴展的API,如果不包含SSI僅要求60K內存;包含SSI要求500K內存,web頁面可存在ROM或文件系統中。 2系統實現關鍵技術 2.1GoAheadWebServer的移植 步驟1:網絡上下載最新的GoAheadWebServer源碼文件夾webs218,即GoAhead2.1.8。 步驟2:運行TornadoⅡ建立一個Downloadable工程,編譯GoAheadWebServer的源碼。(1)把webs218文件夾下所有的源文件(*.c和*.h文件)以及VxWorks文件夾下的main.c文件添加到所建立的工程中,注意其中不要加入webSSL.c和webcomp.c文件,否則會報錯。webSSL.c文件用在SSL上,如果需要使用SSL的話,還需要下載openSSL系列的文件,此處省略。webcomp.c文件用于web文檔壓縮,在沒有文件系統的環境在使用。(2)參考../VxWorks/makefile來修改工程的makefile。在工程中增加宏定義:-DWEBS-DUEMF-DOS="VXWORKS"-DVXWORKS-g-mapcs-32-mlittle-endian-march=ar-mv4-ansi-fno-builtin-DARMEL-I.-IG:/Tornado2.0/target/h/-DCPU=ARM7TDMI-DTOOL_FAMILY=gnu-DTOOL=gnu。如果需要增加用戶管理、存取控制支持,則還需增加-DUSER_MANAGEMENT_SUPPORT和-DDI-GEST_ACCESS_SUPPORT。(3)根據實際系統要求修改main.c文件:設定根目錄名,例如:#defineROOT_DIRT("/tffs0/");設定WEB頁面的路徑,例如:Staticchar_t*rootweb=T("webs");設定安全密碼,例如:Staticchar_t*password=T("1234");設定服務端口,例如:Staticintport=80;設定默認訪問的頁面,例如:websSetDefaultPage(wp,T("home.asp"));利用搜索工具查找home.asp可能不止一處,將碰到的都修改完成。#p#分頁標題#e# 步驟3:復制網頁文件及程序等相關文件到指定文件夾:網頁文件路徑:/tffs0/webs/;程序文件路徑:/tffs0/cgi_bin/;圖片文件路徑:/tffs0/jpeg/;記錄數據的txt文件路徑:/tffs0/counter/; 步驟4:在瀏覽器端鍵入目標板網口IP地址就可以訪問home.asp了。 2.2系統實現的其他關鍵技術 VxWorks中提供TFFS對閃存的塊設備接口,TFFS應用程序能從閃存中讀寫,其過程如同從磁性介質的機械硬盤驅動器上的MS-DOS文件系統分中讀寫一樣。TFFS由3層實現:翻譯層(FTL)、MTD層和Socket層。FTL為上層軟件提供標準的快設備接口,實現如塊映射、平均使用、垃圾回收和數據保護等;MTD層和具體芯片相關,用于Flash存儲器的相關操作指令序列;Socket層為具體的硬板提供接口,實現電壓控制、基地址設置、寫保護控制等。Socket層要修改sysTffs.c和Config.c。在sysTffs.c主要添加自己的MTD宏定義,設置Flash存儲器基址和大小,屏蔽無關的寫保護操作,Config.c的修改就是要向mtdTable[]表注冊自己的MTD。TFFS驅動的工作主要集中在MTD上,MTD和具體的Flash存儲器有關,實現讀、寫、擦除等基本操作。這可以參照芯片手冊來編寫。實現了Socket層和MTD層并格式化Flash后就可以在Vxworks中加載TFFS文件系統。 GoAheadWebServer支持基本認證BAA(BasicAccessAuthentication),用戶密碼從客戶端經過Base64方式加密后傳到瀏覽器端,雖然不是以明文傳輸,但這種方法顯然很容易被破譯。實現BAA需要對GoAheadWebServer源碼中security.c預定義部分進行,如下:#ifndefUSER_MANAGEMENT_SUPPORT#defineumGetAccessMethodForURL(url)AM_BASIC#defineumUserExists(userid)1#defineumUserCanAccessURL(userid,url)1#defineumGetUserPassword(userid)websGetPassword()#defineumGetAccessLimitSecure(accessLimit)0#defineumGetAccessLimit(url)(char*)1#endif注釋掉:bfree(B_L,accessLimit);做了上述修改,訪問home.asp則服務器會自動返回一個登陸窗口,要求驗證用戶名和密碼。GoAheadWebServer還支持DAA(DigestAc-cessAuthentication),DAA應答中包含一個有效的校驗和,即摘要。DAA假定客戶方和服務器都知道一個有權使用資源的用戶名和用戶密碼,相對于基本認證,它不要求客戶方向服務器端提供顯式的用戶密碼,從而避免了密碼被竊。系統管理員通過Web頁面完全添加用戶、用戶組、用戶訪問權限的設置,在完成這些配置后,只有擁有相應操作權限的用戶才可以訪問相應的服務器資源。 GoAheadWebServer支持GoForms。GoForms是GoAhead公司自創的一種表單技術,它的任務直接運行在內存,而非像傳統CGI程序,每一次和服務器連接都要產生新的任務。通過和Web服務任務共享地址空間,GoForms進程能直接訪問所請求的內容。當GoAheadWebServer運行時,若解析到URL包含有"/goform"時即開始調用執行某個表單處理程序。URL字段中"/goform"之后的信息定義了該表單的名稱和具體參數。GoAheadWebServer支持標準CGI。CGI是在WEB服務器上運行的程序代碼,它的工作就是控制信息要求產生和傳回所需結果。用留言簿程序來解釋其流程:用戶在客戶端輸入一些信息,如名字和E-mail。用戶按下"留言"按鈕,瀏覽器將信息傳給服務器端的特定CGI程序,該程序按照預定方法處理,把用戶傳來的信息存入指定文件夾。CGI程序可以給客戶端返回一個信息,表示請求任務已完成。編寫CGI的語言有很多:Perl、C、C++、CShell和VB。Perl以其強大的字符竄處理能力成為編寫CGI的最佳選擇。但嵌入式系統大都不支持安裝Perl解釋器,基于GoAheadWebServer源代碼都是用C編寫,所以本文也都用C編寫CGI程序,用C編寫的程序特點是運行速度快、通用性好、易于移植。CGI程序相比goform具有更廣范的功能,它可以把HTML語言嵌入在程序中,輸出圖像、表格、表單。而goform只能以字符的形式輸出。 2.3調度維護功能的實現 (1)系統管理:建立連接、用戶登陸。(2)配置管理:配置基站控制器各種參數(通過文件上傳、下載實現整體配置;也可通過頁面表單實現具體參數的單個配置)。(3)維護和告警管理:對基站控制器進行監視、設置基站控制器各種參數、管理移動臺數據、基站系統號管理、查看告警信息等。(4)調度管理:實現單呼、組呼、全呼、文件發送等。 3結束語 隨著嵌入式Web服務器技術的發展和成熟,其廣泛應用將會大大提高設備性能,從根本上改變設備運行管理方式?;谇度胧絎eb服務器技術建立的新型控制系統,將有效地降低運行和維護費用,提高系統的管理水平。實驗表明基于VxWorks的Web-Server系統具有運行可靠,維護、更新簡易的特點,所述方法對嵌入式遠程控制具有一定的參考價值。