當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]在應(yīng)用系統(tǒng)中嵌入WWW服務(wù)功能的實(shí)現(xiàn)方法

目前客戶在訪問具有遠(yuǎn)程訪問和控制功能的應(yīng)用系統(tǒng)時(shí),大多都需要安裝專門的客戶端軟件,這給客戶的訪問帶來了很大的不便。隨著全球信息網(wǎng)(Wide World Web)的發(fā)展和Web瀏覽器的廣泛應(yīng)用,在應(yīng)用系統(tǒng)設(shè)計(jì)時(shí)使用HTTP協(xié)議和HTML標(biāo)準(zhǔn)嵌入WWW服務(wù)功能,使應(yīng)用系統(tǒng)與Web連接起來,這樣任何一個(gè)有標(biāo)準(zhǔn)Web瀏覽器的客戶都可以通過Web瀏覽器直接訪問該應(yīng)用系統(tǒng),而不需要安裝專門的客戶端軟件。

  這里設(shè)計(jì)的通信線路實(shí)時(shí)狀態(tài)信息監(jiān)視系統(tǒng)主要是對(duì)多路通信線路的收電平、發(fā)電平及誤碼率等指標(biāo)進(jìn)行實(shí)時(shí)測(cè)試,并通過網(wǎng)絡(luò)將實(shí)時(shí)測(cè)試結(jié)果送到相應(yīng)的各級(jí)客戶;各級(jí)客戶在遠(yuǎn)端通過Web瀏覽器而不用專門的客戶端程序就可以對(duì)自己所關(guān)心的數(shù)據(jù)進(jìn)行監(jiān)測(cè),通過Web瀏覽器客戶還可以在客戶端選擇所關(guān)心的線路及各類參數(shù),并依據(jù)權(quán)限對(duì)應(yīng)用系統(tǒng)進(jìn)行相應(yīng)的遠(yuǎn)程控制。

  在實(shí)時(shí)系統(tǒng)中嵌入WWW服務(wù)功能,主要解決了如下問題:

  (1)動(dòng)態(tài)實(shí)時(shí)地改變數(shù)據(jù)網(wǎng)頁,即將需要發(fā)送的數(shù)據(jù)網(wǎng)頁模板在系統(tǒng)啟動(dòng)時(shí)裝入內(nèi)存,根據(jù)實(shí)時(shí)采集的數(shù)據(jù),實(shí)時(shí)改變已裝入內(nèi)存的數(shù)據(jù)網(wǎng)頁。

  (2)對(duì)HTTP服務(wù)器端口(80)進(jìn)行監(jiān)聽,處理、響應(yīng)客戶端的各類請(qǐng)求。

  (3)實(shí)現(xiàn)安全控制,根據(jù)訪問客戶的IP地址和登錄信息,對(duì)客戶進(jìn)行過濾和權(quán)限設(shè)置,記錄客戶的操作。

  (4)根據(jù)各級(jí)客戶的權(quán)限不同,實(shí)現(xiàn)對(duì)不同客戶的同一請(qǐng)求發(fā)送不同的客戶數(shù)據(jù)網(wǎng)頁。

  (5)根據(jù)正在訪問客戶的數(shù)量和級(jí)別,動(dòng)態(tài)控制數(shù)據(jù)網(wǎng)頁的發(fā)送和刷新。

1 系統(tǒng)設(shè)計(jì)方法

1.1系統(tǒng)構(gòu)成

  通信線路實(shí)時(shí)狀態(tài)信息監(jiān)視系統(tǒng)主要由以下三部分構(gòu)成:數(shù)據(jù)采集子系統(tǒng)、數(shù)據(jù)處理子系統(tǒng)和信息表現(xiàn)子系統(tǒng)。其系統(tǒng)構(gòu)成如圖1所示。

數(shù)據(jù)采集子系統(tǒng)主要由收電平測(cè)量板、發(fā)電平測(cè)量板和誤碼測(cè)量板組成。這些測(cè)量板在信息處理器的控制下,對(duì)各路通信線路的接收電壓、發(fā)送電壓和誤碼等指標(biāo)進(jìn)行測(cè)量,并將測(cè)量數(shù)據(jù)送到信息處理器進(jìn)行處理。

  數(shù)據(jù)處理子系統(tǒng)主要由信息處理器、多串口卡和網(wǎng)絡(luò)卡等組成,它是信息處理的核心。一方面控制著數(shù)據(jù)采集子系統(tǒng)各采集板的數(shù)據(jù)采集,接收并處理這些采集板發(fā)送來的數(shù)據(jù),并根據(jù)處理后的數(shù)據(jù)和主頁模板生成公共數(shù)據(jù)主頁;另一方面響應(yīng)本地客戶和網(wǎng)絡(luò)客戶的請(qǐng)求,根據(jù)客戶的請(qǐng)求進(jìn)行相應(yīng)的處理、顯示和控制。

  信息表現(xiàn)子系統(tǒng)主要由本地監(jiān)視、控制平臺(tái)和內(nèi)、外部網(wǎng)絡(luò)構(gòu)成。本地客戶通過本地監(jiān)視、控制平臺(tái)監(jiān)視整個(gè)系統(tǒng)的通信線路實(shí)時(shí)狀態(tài)信息,控制系統(tǒng)的工作狀態(tài),設(shè)置網(wǎng)絡(luò)客戶的權(quán)限,根據(jù)需要對(duì)系統(tǒng)進(jìn)行配置和維護(hù);網(wǎng)絡(luò)客戶則根據(jù)自己所擁有的權(quán)限通過Web瀏覽器監(jiān)視應(yīng)用系統(tǒng)中通信線路的實(shí)時(shí)狀態(tài)信息,向系統(tǒng)發(fā)送遠(yuǎn)程控制命令。

1.2嵌入WWW服務(wù)功能的實(shí)現(xiàn)

  在應(yīng)用系統(tǒng)中嵌入WWW服務(wù)功能需要完成兩個(gè)方面的工作:一是動(dòng)態(tài)主頁的實(shí)時(shí)生成;二是偵聽?wèi)?yīng)答客戶請(qǐng)求,其具體實(shí)現(xiàn)流程圖如圖2所示。

1.2.1動(dòng)態(tài)主頁生成過程

  動(dòng)態(tài)主頁生成過程主要是應(yīng)用系統(tǒng)根據(jù)主頁模板和實(shí)時(shí)采集的數(shù)據(jù),實(shí)時(shí)更新生成通用的公共數(shù)據(jù)主頁;在客戶請(qǐng)求時(shí)依據(jù)客戶的權(quán)限和設(shè)置生成客戶數(shù)據(jù)主頁,發(fā)送給遠(yuǎn)程客戶。其具體過程如下: [!--empirenews.page--]

  (1)主頁模板的生成。根據(jù)客戶顯示的需求,采用HTML標(biāo)準(zhǔn),創(chuàng)建在Web瀏覽器上可以瀏覽的主頁模板。對(duì)于主頁模板中需要實(shí)時(shí)更新的數(shù)據(jù)和根據(jù)客戶需求可能會(huì)改變的數(shù)據(jù),采用相應(yīng)的變量代替。

  (2)公共數(shù)據(jù)主頁的生成。應(yīng)用系統(tǒng)啟動(dòng)后,將事先生成的主頁模板加載到內(nèi)存中,根據(jù)系統(tǒng)的配置,對(duì)部分公共變量用實(shí)際的內(nèi)容(如各路通信線路的名稱等)進(jìn)行替換,生成公共數(shù)據(jù)主頁。

  (3)更新數(shù)據(jù)的生成。系統(tǒng)通過各類數(shù)據(jù)采集板采集各路通信線路中實(shí)時(shí)變化的接收電壓、發(fā)送電壓和誤碼等數(shù)據(jù),并將這些采集的數(shù)據(jù)實(shí)時(shí)送到數(shù)據(jù)處理器進(jìn)行處理,生成客戶需要的收電平、發(fā)電平和誤碼率等實(shí)時(shí)更新數(shù)據(jù)。

  (4)公共數(shù)據(jù)主頁的實(shí)時(shí)更新。數(shù)據(jù)處理器生成實(shí)時(shí)更新的數(shù)據(jù)后,將公共數(shù)據(jù)主頁中該數(shù)據(jù)的對(duì)應(yīng)項(xiàng)進(jìn)行更新替換,實(shí)現(xiàn)公共數(shù)據(jù)主頁的實(shí)時(shí)更新。

  (5)客戶數(shù)據(jù)主頁的生成。當(dāng)應(yīng)用系統(tǒng)收到客戶請(qǐng)求的發(fā)送主頁消息后,根據(jù)客戶的權(quán)限和需求對(duì)公共數(shù)據(jù)主頁中需要保密、限制的內(nèi)容以及客戶主頁的刷新頻率進(jìn)行更新處理,為各級(jí)別的客戶生成各自的客戶數(shù)據(jù)主頁。這樣處理后對(duì)于不同客戶的同一請(qǐng)求,發(fā)送的客戶主頁信息就可能不同。

1.2.2 應(yīng)答客戶請(qǐng)求過程

  應(yīng)答客戶請(qǐng)求的過程主要是應(yīng)用系統(tǒng)在TCP端口(80)上偵聽客戶的連接。當(dāng)連接建立后,為該客戶的請(qǐng)求建立一個(gè)線程,讀取并解析客戶從Web瀏覽器發(fā)送來的請(qǐng)求,并對(duì)請(qǐng)求進(jìn)行安全和權(quán)限控制,應(yīng)答客戶請(qǐng)求,最后關(guān)閉此客戶的連接并退出該線程。具體過程如下:

  (1)偵聽客戶請(qǐng)求。應(yīng)用系統(tǒng)啟動(dòng)后首先初始化網(wǎng)絡(luò)設(shè)置,并在80端口打開一個(gè)被動(dòng)的TCP連接,等待接受客戶的連接。

  (2)創(chuàng)建客戶請(qǐng)求處理線程。在收到客戶連接后,應(yīng)用系統(tǒng)為該客戶請(qǐng)求創(chuàng)建一個(gè)線程,用來解析、處理、應(yīng)答客戶的請(qǐng)求。

  (3)解析客戶請(qǐng)求。應(yīng)用系統(tǒng)根據(jù)請(qǐng)求消息的格式解讀請(qǐng)求消息,如果客戶所請(qǐng)求的動(dòng)作不能實(shí)施或者URI無效,返回一個(gè)錯(cuò)誤狀態(tài)并關(guān)閉該連接,否則對(duì)客戶進(jìn)行安全控制。

  (4)安全控制。根據(jù)客戶的IP地址或者登錄信息,判別客戶的權(quán)限。如果客戶不具備所請(qǐng)求動(dòng)作的權(quán)限則返回權(quán)限不足信息并關(guān)閉該連接,否則對(duì)客戶請(qǐng)求進(jìn)行處理,同時(shí)記錄客戶請(qǐng)求內(nèi)容、時(shí)間等信息。

  (5)處理客戶請(qǐng)求。根據(jù)客戶的權(quán)限和請(qǐng)求,對(duì)構(gòu)建于內(nèi)存中的公共數(shù)據(jù)主頁信息進(jìn)行進(jìn)一步處理,生成客戶所需要的客戶數(shù)據(jù)主頁。

  (6)應(yīng)答客戶請(qǐng)求。對(duì)于客戶的請(qǐng)求為Get方式時(shí),打開該URI所指定的被程序構(gòu)建于內(nèi)存之中客戶數(shù)據(jù)主頁,在發(fā)送以前,應(yīng)用系統(tǒng)為客戶數(shù)據(jù)主頁建立一個(gè)適當(dāng)?shù)念}頭區(qū),其后放一個(gè)空白行,然后將該題頭區(qū)發(fā)送出去,最后發(fā)出客戶數(shù)據(jù)主頁。對(duì)于客戶的請(qǐng)求為Post方式時(shí),根據(jù)解析后的信息對(duì)應(yīng)用系統(tǒng)進(jìn)行相應(yīng)的設(shè)置和操作,實(shí)現(xiàn)客戶的遠(yuǎn)程控制。

  (7)關(guān)閉客戶連接,退出線程。

2 關(guān)鍵技術(shù)

2.1處理客戶請(qǐng)求

2.1.1 客戶請(qǐng)求

  當(dāng)客戶通過Web瀏覽器向應(yīng)用系統(tǒng)發(fā)出請(qǐng)求時(shí),需要指定一個(gè)全球資源定位器(URL)。URL是某個(gè)特定資源的Web名,用于定位Internet上面的資源,一個(gè)URL的基本格式為:

  協(xié)議://主機(jī)名[:端口]/路徑

  Web瀏覽器分析該URL,提取協(xié)議(這里是HTTP)、主機(jī)名以及全球資源路徑(URI),并使用提取的協(xié)議向具有該主機(jī)名的網(wǎng)絡(luò)主機(jī)發(fā)起連接。當(dāng)連接建立后,Web瀏覽器發(fā)送請(qǐng)求消息,該消息包含一些可選配的題頭,用于標(biāo)識(shí)該客戶和列出可接受的資源類型。應(yīng)用系統(tǒng)發(fā)送響應(yīng)消息,該消息有一個(gè)狀態(tài)行,后隨一個(gè)或多個(gè)題頭,然后是所請(qǐng)求的資源。

2.1.2 解析客戶請(qǐng)求

  對(duì)客戶請(qǐng)求的解析主要是應(yīng)用系統(tǒng)根據(jù)HTTP消息的格式,從客戶發(fā)送來的請(qǐng)求消息中提取客戶請(qǐng)求的內(nèi)容,并向客戶發(fā)送響應(yīng)消息。HTTP消息是客戶發(fā)給應(yīng)用系統(tǒng)的請(qǐng)求或者由應(yīng)用系統(tǒng)傳給客戶的應(yīng)答,消息格式為:

  Start-line(開始行)

  Message-headers(消息題頭)

  CR LF(換行回車符,即空一行)

  Message-body(消息正文)

  一個(gè)請(qǐng)求包括三部分:開始行、題頭以及正文。開始行是必須有的,題頭及正文則是可選的。在客戶傳給應(yīng)用系統(tǒng)的請(qǐng)求中,開始行就是請(qǐng)求行;在應(yīng)用系統(tǒng)的應(yīng)答中,則是狀態(tài)行。 [!--empirenews.page--]

  請(qǐng)求行僅有一行文本,包括三個(gè)區(qū),以CR LF結(jié)束,格式如下:

  Method  請(qǐng)求的URI  HTTP版本

  請(qǐng)求行也僅有一行文本,包括三個(gè)區(qū),以CR LF結(jié)束,格式如下:

  HTTP版本  狀態(tài)碼  原因說明文字

2.2 安全控制

  在該應(yīng)用系統(tǒng)中主要采用身份限制、密碼保護(hù)、數(shù)據(jù)加密等方法來增強(qiáng)客戶訪問的安全性。

2.2.1 身份限制

  當(dāng)應(yīng)用系統(tǒng)接收到客戶發(fā)送來的請(qǐng)求后,提取客戶的IP地址,過濾掉非法IP地址的客戶請(qǐng)求,并判斷合法IP地址的客戶權(quán)限;根據(jù)系統(tǒng)的設(shè)置,為每個(gè)客戶生成并發(fā)送相應(yīng)權(quán)限的客戶數(shù)據(jù)主頁,同時(shí)根據(jù)客戶的遠(yuǎn)程控制權(quán)限響應(yīng)客戶對(duì)應(yīng)用系統(tǒng)的控制,向客戶發(fā)送控制后的結(jié)果信息。

2.2.2 密碼保護(hù)

  當(dāng)客戶訪問應(yīng)用系統(tǒng)中需要安全保護(hù)的數(shù)據(jù)主頁,或者遠(yuǎn)程進(jìn)行可能對(duì)應(yīng)用系統(tǒng)造成危害的控制操作時(shí),應(yīng)用系統(tǒng)首先要求客戶進(jìn)行登錄帳號(hào)和密碼。只有經(jīng)過應(yīng)用系統(tǒng)確認(rèn)后,應(yīng)用系統(tǒng)才會(huì)應(yīng)答客戶的這些請(qǐng)求。

2.3 動(dòng)態(tài)控制數(shù)據(jù)發(fā)送

  應(yīng)用系統(tǒng)所處理的數(shù)據(jù)是實(shí)時(shí)采集的、不斷變化的,如果客戶要實(shí)時(shí)檢測(cè)到這些采集的數(shù)據(jù),就要按照一定時(shí)間間隔不斷地向應(yīng)用系統(tǒng)發(fā)送頁面刷新請(qǐng)求,應(yīng)用系統(tǒng)根據(jù)客戶請(qǐng)求也不斷地向每一個(gè)客戶實(shí)時(shí)發(fā)送最新的客戶數(shù)據(jù)網(wǎng)頁。當(dāng)大量客戶同時(shí)對(duì)應(yīng)用系統(tǒng)進(jìn)行請(qǐng)求時(shí),就可能導(dǎo)致客戶數(shù)據(jù)網(wǎng)頁發(fā)送時(shí)間減慢,甚至引起系統(tǒng)崩潰。為解決這種情況,這里提出一種動(dòng)態(tài)控制客戶數(shù)據(jù)主頁的發(fā)送方法。

  動(dòng)態(tài)控制客戶數(shù)據(jù)主頁的發(fā)送主要是根據(jù)單位時(shí)間內(nèi)客戶請(qǐng)求的數(shù)量,動(dòng)態(tài)改變客戶數(shù)據(jù)主頁的刷新頻率。當(dāng)單位時(shí)間內(nèi)客戶請(qǐng)求的數(shù)量大于某一門限值時(shí),就降低客戶數(shù)據(jù)主頁刷新頻率;反之,就增加客戶數(shù)據(jù)主頁刷新頻率;這樣保證單位時(shí)間內(nèi)客戶請(qǐng)求數(shù)量在一定可允許的范圍內(nèi)。對(duì)于實(shí)時(shí)性要求較高的客戶,不降低刷新頻率。

  假定單位時(shí)間內(nèi)允許客戶請(qǐng)求為N,實(shí)時(shí)性要求較高的客戶數(shù)量為n1,刷新頻率為f1, 其它客戶數(shù)量為n2,刷新頻率為f2,則:

 隨著Internet的不斷發(fā)展,在應(yīng)用系統(tǒng)中嵌入WWW服務(wù)功能具有廣闊的應(yīng)用前景。一方面增強(qiáng)了應(yīng)用系統(tǒng)的網(wǎng)絡(luò)功能,在客戶不用下載專門的客戶端應(yīng)用程序情況下,就可以通過Web瀏覽器直接對(duì)應(yīng)用系統(tǒng)中的實(shí)時(shí)數(shù)據(jù)信息進(jìn)行訪問,實(shí)現(xiàn)對(duì)應(yīng)用系統(tǒng)的遠(yuǎn)程控制;另一方面可以廣泛應(yīng)用于具有微處理器和存儲(chǔ)器的家用電器、設(shè)備儀器之中,在它們的處理系統(tǒng)中嵌入WWW服務(wù)功能,通過有線、無線等數(shù)據(jù)傳輸技術(shù),利用Web瀏覽器遠(yuǎn)程監(jiān)視、控制這些家用電器和儀器設(shè)備的狀態(tài)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉