在應用系統中嵌入WWW服務功能的實現方法
(1)主頁模板的生成。根據客戶顯示的需求,采用HTML標準,創建在Web瀏覽器上可以瀏覽的主頁模板。對于主頁模板中需要實時更新的數據和根據客戶需求可能會改變的數據,采用相應的變量代替。
(2)公共數據主頁的生成。應用系統啟動后,將事先生成的主頁模板加載到內存中,根據系統的配置,對部分公共變量用實際的內容(如各路通信線路的名稱等)進行替換,生成公共數據主頁。
(3)更新數據的生成。系統通過各類數據采集板采集各路通信線路中實時變化的接收電壓、發送電壓和誤碼等數據,并將這些采集的數據實時送到數據處理器進行處理,生成客戶需要的收電平、發電平和誤碼率等實時更新數據。
(4)公共數據主頁的實時更新。數據處理器生成實時更新的數據后,將公共數據主頁中該數據的對應項進行更新替換,實現公共數據主頁的實時更新。
(5)客戶數據主頁的生成。當應用系統收到客戶請求的發送主頁消息后,根據客戶的權限和需求對公共數據主頁中需要保密、限制的內容以及客戶主頁的刷新頻率進行更新處理,為各級別的客戶生成各自的客戶數據主頁。這樣處理后對于不同客戶的同一請求,發送的客戶主頁信息就可能不同。
1.2.2 應答客戶請求過程
應答客戶請求的過程主要是應用系統在TCP端口(80)上偵聽客戶的連接。當連接建立后,為該客戶的請求建立一個線程,讀取并解析客戶從Web瀏覽器發送來的請求,并對請求進行安全和權限控制,應答客戶請求,最后關閉此客戶的連接并退出該線程。具體過程如下:
(1)偵聽客戶請求。應用系統啟動后首先初始化網絡設置,并在80端口打開一個被動的TCP連接,等待接受客戶的連接。
(2)創建客戶請求處理線程。在收到客戶連接后,應用系統為該客戶請求創建一個線程,用來解析、處理、應答客戶的請求。
(3)解析客戶請求。應用系統根據請求消息的格式解讀請求消息,如果客戶所請求的動作不能實施或者URI無效,返回一個錯誤狀態并關閉該連接,否則對客戶進行安全控制。
(4)安全控制。根據客戶的IP地址或者登錄信息,判別客戶的權限。如果客戶不具備所請求動作的權限則返回權限不足信息并關閉該連接,否則對客戶請求進行處理,同時記錄客戶請求內容、時間等信息。
(5)處理客戶請求。根據客戶的權限和請求,對構建于內存中的公共數據主頁信息進行進一步處理,生成客戶所需要的客戶數據主頁。
(6)應答客戶請求。對于客戶的請求為Get方式時,打開該URI所指定的被程序構建于內存之中客戶數據主頁,在發送以前,應用系統為客戶數據主頁建立一個適當的題頭區,其后放一個空白行,然后將該題頭區發送出去,最后發出客戶數據主頁。對于客戶的請求為Post方式時,根據解析后的信息對應用系統進行相應的設置和操作,實現客戶的遠程控制。
(7)關閉客戶連接,退出線程。
2 關鍵技術
2.1處理客戶請求
2.1.1 客戶請求
當客戶通過Web瀏覽器向應用系統發出請求時,需要指定一個全球資源定位器(URL)。URL是某個特定資源的Web名,用于定位Internet上面的資源,一個URL的基本格式為:
協議://主機名[:端口]/路徑
Web瀏覽器分析該URL,提取協議(這里是HTTP)、主機名以及全球資源路徑(URI),并使用提取的協議向具有該主機名的網絡主機發起連接。當連接建立后,Web瀏覽器發送請求消息,該消息包含一些可選配的題頭,用于標識該客戶和列出可接受的資源類型。應用系統發送響應消息,該消息有一個狀態行,后隨一個或多個題頭,然后是所請求的資源。
2.1.2 解析客戶請求
對客戶請求的解析主要是應用系統根據HTTP消息的格式,從客戶發送來的請求消息中提取客戶請求的內容,并向客戶發送響應消息。HTTP消息是客戶發給應用系統的請求或者由應用系統傳給客戶的應答,消息格式為:
Start-line(開始行)
Message-headers(消息題頭)
CR LF(換行回車符,即空一行)
Message-body(消息正文)
一個請求包括三部分:開始行、題頭以及正文。開始行是必須有的,題頭及正文則是可選的。在客戶傳給應用系統的請求中,開始行就是請求行;在應用系統的應答中,則是狀態行。









評論