【摘 要】隨著現(xiàn)代通工程技術(shù)的全面發(fā)展,通過(guò)技術(shù)創(chuàng)新的綜合應(yīng)用,結(jié)合新時(shí)期嵌入式Webserver技術(shù)的運(yùn)用,更加有利于增強(qiáng)整個(gè)通信的整體發(fā)展。本文將圍繞嵌入式Webserver技術(shù)進(jìn)行討論,對(duì)基于TCP/IP協(xié)議棧,利用8位單片機(jī)構(gòu)建嵌入式WebServer的具體技術(shù)及相關(guān)實(shí)現(xiàn)方案進(jìn)行深入分析,并從硬件與軟件的角度進(jìn)行概述,更好的實(shí)現(xiàn)嵌入式Webserver技術(shù)的綜合效果。
【關(guān)鍵詞】WebServer TCP/IP協(xié)議棧 套接字
在通信工程與技術(shù)的不斷發(fā)展中,通過(guò)對(duì)8位微控制器的應(yīng)用,在沒(méi)有進(jìn)行pc機(jī)或者高檔單片機(jī)的情況下接入互聯(lián)網(wǎng),在不斷創(chuàng)新的嵌入式技術(shù)中,通過(guò)嵌入式Webserver技術(shù)的不斷創(chuàng)新,逐步取代PC位中心的應(yīng)用系統(tǒng),將成為全新的發(fā)展路徑,并運(yùn)用于智能家居系統(tǒng)、交通網(wǎng)路系統(tǒng)等各個(gè)領(lǐng)域,成為重要的技術(shù)模式。
一、嵌入式Webserver技術(shù)簡(jiǎn)介
(一)技術(shù)應(yīng)用
Webserver是近年發(fā)展起來(lái)的新一代Web技術(shù),它是由W3C設(shè)計(jì)和指定的,用來(lái)促進(jìn)跨平臺(tái)的程序間的通信。Webserver服務(wù)平臺(tái)是一套標(biāo)準(zhǔn)的類型系統(tǒng),基本的Webserver服務(wù)平臺(tái)就是XML+HTTP,目前這些標(biāo)準(zhǔn)協(xié)議包括XML、UDDI、WSDL、SOAP、HTTP等。這些標(biāo)準(zhǔn)協(xié)議都是基于XML的,跨平臺(tái)的、與編程語(yǔ)言無(wú)關(guān)的是XML的重要特質(zhì),建立在XML基礎(chǔ)上的Webserver能夠使運(yùn)行在異種系統(tǒng)平臺(tái)上的不同的應(yīng)用程序進(jìn)行信息交換和通信,提供了更大的空間交互。
對(duì)于外部使用者而言,Web服務(wù)是一種部署在Web上的對(duì)象/組件,使用者能發(fā)現(xiàn)并調(diào)用該對(duì)象/組件部署的服務(wù) [9]。對(duì)于設(shè)計(jì)者來(lái)說(shuō),為優(yōu)化設(shè)計(jì),對(duì)系統(tǒng)進(jìn)行模塊化和可復(fù)用性設(shè)計(jì),每一個(gè)業(yè)務(wù)邏輯都設(shè)計(jì)成一個(gè)獨(dú)立的Web服務(wù)。同時(shí),Web服務(wù)采取在HTTP標(biāo)準(zhǔn)協(xié)議基礎(chǔ)上傳輸基于XML的SOAP協(xié)議用來(lái)表示數(shù)據(jù)和調(diào)用請(qǐng)求的數(shù)據(jù),在絕大數(shù)情況下可輕松跨越企業(yè)防火墻。
Webserver體系結(jié)構(gòu)是一種面向服務(wù)體系結(jié)構(gòu),即SOA架構(gòu)(Service Oriented Architecture)。它通過(guò)WSDL(Web Service Description Language)來(lái)描述這個(gè)Webserver以及如何對(duì)它進(jìn)行訪問(wèn),使用SOAP(Simple Object Access Protocol)借由開(kāi)放協(xié)議來(lái)傳輸數(shù)據(jù),在商業(yè)注冊(cè)中心UDDI(Universal Description Discovery and Integration)注冊(cè)Webserver,從而使服務(wù)使用者可以在UDDI提供的目錄服務(wù)上搜索到特定Webserver服務(wù)。Webserver的服務(wù)體系架構(gòu)中有三個(gè)清晰的角色定義,角色之間的關(guān)系參見(jiàn)下圖。
(二)XML
XML(Extensible Markup Language)作為可擴(kuò)充的標(biāo)記語(yǔ)言標(biāo)準(zhǔn),被設(shè)計(jì)用來(lái)傳輸和存儲(chǔ)數(shù)據(jù),是基于文本的W3C規(guī)范的標(biāo)記語(yǔ)言。它嚴(yán)格地定義了可移植地結(jié)構(gòu)化數(shù)據(jù),提供了靈活性、可擴(kuò)展性和結(jié)構(gòu)化的消息格式。XML具有以下六個(gè)特性優(yōu)點(diǎn):XML文件是可讀的、可擴(kuò)展性的、自描述的、異構(gòu)系統(tǒng)間地信息互通的、保值的、更精確搜索的。
(三)WSDL描述語(yǔ)言
WSDL (Webserver Description Language)是一種基于IDL技術(shù)的服務(wù)描述語(yǔ)言。它用于描述Webserver以及如何訪問(wèn)它們。Webserver被WSDL語(yǔ)言描述定義為服務(wù)訪問(wèn)點(diǎn)或端口的集合。它本身是基于XML語(yǔ)法的,WSDL使用XML語(yǔ)言將Webserver描述為面向文檔或面向過(guò)程信息的一組端點(diǎn)操作消息。信息是抽象的描述數(shù)據(jù)交換和端口類型支持的操作的抽象集合。一個(gè)可重用的綁定是針對(duì)特定端口的,由具體的協(xié)議和數(shù)據(jù)格式來(lái)規(guī)范,然后操作和消息綁定到具體的網(wǎng)絡(luò)協(xié)議和消息格式。通過(guò)這種方式,WSDL描述了Web服務(wù)的公共接口,方便設(shè)計(jì)者描述和綁定服務(wù)。
二、嵌入式Webserver硬件平臺(tái)
(一)MCU直接實(shí)現(xiàn)形式的WebServer的硬件平臺(tái)
MCU以SX52BD100的運(yùn)算速度最快,在100 MHz晶振驅(qū)動(dòng)下指令執(zhí)行速度可達(dá)100MIPS;RABBIT2000次之,51系列最慢。但是硬件成本恰好反之,用戶可以根據(jù)不同的要求來(lái)配置MCU。以太網(wǎng)控制芯片可采用RealTek公司的RTL8019AS。該芯片是一款全雙工以太網(wǎng)控制器,可以工作在Ethernet II和IEEE802.3、 10Base5、10Base2、10BaseT下,并與NE2000兼容。E2PROM主要用來(lái)存WEB頁(yè)面、圖像文件、PDF文檔等內(nèi)容,因此沒(méi)有特殊要求,可由用戶自由選擇,一般32 KB左右即可。該方案中,MCU為核心芯片,通過(guò)它控制以太網(wǎng)控制芯片RTL8019AS,進(jìn)而完成接入網(wǎng)絡(luò)的工作。
(二)TCP/IP協(xié)議棧的實(shí)現(xiàn)
IP包含編址方案,并提供尋址功能;TCP則是在不同主機(jī)的對(duì)等進(jìn)程之間提供可靠的進(jìn)程間通信。與TCP兩端口所連接的 實(shí)體中,一端為應(yīng)用程序進(jìn)程或用戶,另一端則為底層協(xié)議,如IP協(xié)議。TCP在建立連接過(guò)程中采用三向握手機(jī)制,以保證數(shù)據(jù)的可靠性。以ZWORLD公司的Rabbit2000系列芯片為例,論述嵌入式WebServer的具體實(shí)現(xiàn)過(guò)程。Rabbit2000系列芯片是一種高性能8位器件。由于其C語(yǔ)言友好指令集和快速數(shù)字處理功能,因而受到矚目。Rabbit結(jié)構(gòu)以Zilog公司的原始Z80微處理器為基礎(chǔ),但作了幾項(xiàng)改進(jìn):不像Z80指令集那樣使用16位尋址覆蓋存儲(chǔ)空間,而用一個(gè)20位或1MB的實(shí)際存儲(chǔ)空間;采取直接與靜態(tài)存儲(chǔ)器件相連接的方式;有3條存儲(chǔ)芯片選擇線路和2組寫入/輸出啟動(dòng)線路;片上外設(shè)包括4個(gè)串行端口、1個(gè)子端口、40條I/O線、7個(gè)不同的定時(shí)器、精確脈沖發(fā)生硬件和電池支持的RTC。
(三)Websphere組件管理相關(guān)技術(shù)
一是組件池。WebSphere EJB組件池技術(shù)可以避免頻繁建立和關(guān)閉EJB實(shí)例的開(kāi)銷,提高系統(tǒng)性能。在WebSphere中部署一個(gè)EJB時(shí),EJB容器為這個(gè)Bean分配幾個(gè)實(shí)例到組件池,當(dāng)客戶請(qǐng)求一個(gè)Bean時(shí),WebSphere將一個(gè)預(yù)先實(shí)例化的Bean分配出去,在客戶的一次會(huì)話中,可以只引用一次Bean,就可以執(zhí)行這個(gè)Bean的多個(gè)方法。如果另一個(gè)客戶請(qǐng)求同一個(gè)Bean,容器檢查池中空閑的Bean,如果全部的實(shí)例都已用完,則會(huì)自動(dòng)生成一個(gè)新的實(shí)例放在池中,并分配給請(qǐng)求者。當(dāng)負(fù)載減少時(shí),池會(huì)自動(dòng)管理Bean實(shí)例的數(shù)量,將多余的實(shí)例從池中釋放。二是鈍化EJB實(shí)例。WebSphere也會(huì)靈活的調(diào)整EJB容器與當(dāng)前的組件,當(dāng) Bean 實(shí)例數(shù)大于容器配置中指定的緩存大小時(shí),Bean 被鈍化。當(dāng)有狀態(tài) Bean 被鈍化期間,容器將 Bean 實(shí)例序列化為鈍化目錄中的一個(gè)文件,并廢棄來(lái)自 Bean 高速緩存的實(shí)例。之后,如果有對(duì)已鈍化 Bean 實(shí)例的請(qǐng)求到達(dá),容器將從鈍化目錄中檢索出此實(shí)例,對(duì)它進(jìn)行解序列化,將其放回高速緩存中,并將請(qǐng)求指向它。
四、結(jié)語(yǔ)
在建立起相應(yīng)的硬件連接以后,就可以根據(jù)不同的硬件特點(diǎn),選用不同的開(kāi)發(fā)工具和開(kāi)發(fā)語(yǔ)言進(jìn)行WebServer的構(gòu)架工作。本文給出了目前構(gòu)架WebServer的主要原理和方法,并給出Rabbit 2000系列芯片實(shí)現(xiàn)的具體應(yīng)用,相信對(duì)讀者的實(shí)際工作會(huì)有些幫助。
參考文獻(xiàn):
[1]李巍,王慕坤;報(bào)稅嵌入系統(tǒng)接入互聯(lián)網(wǎng)方法的研究[J];哈爾濱理工大學(xué)學(xué)報(bào);2004年03期
[2]李鵬,潘玲娜,趙雪英;嵌入式WEB服務(wù)器在網(wǎng)絡(luò)攝像機(jī)中的應(yīng)用[J];遼寧大學(xué)學(xué)報(bào)(自然科學(xué)版);2004年02期
[3]張明,王禮平;便攜式醫(yī)療監(jiān)護(hù)儀器網(wǎng)絡(luò)化接口的設(shè)計(jì)[J];現(xiàn)代電子技術(shù);2005年03期