摘要:現在,隨著計算機運算速度越來越快,java指令集的優化,這些發展使得java在實時監控的應用成為可能。Servelet是Sun公司在Web平臺的開發產品,它采用的是B/S結構。Web的訪問非常方便,如果把監控系統建在Web平臺上,將有助于監控的范圍擴大,同時增強監控系統的實時性。
關鍵詞:Servelet;B/S;Web;監控系統
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2008)12-20ppp-0c
Based on the Monitoring System Servelet
(Shanghai Maritime University, Shanghai 200135, China)
Abstract:Nowadays, as current computers processing much faster, and java's instructors optimizing, all of these improvements has make java applied to the real investigation which become possible. Servelet is a kind of Sun developing tools on web, using the B/S structure. Since the access to web is very easy, the building of the real investigation system on web, helps enlarge the investigation’ scope and enhance the real-time of the system..
Key words: Servelet;B/s structure;Web;the investigation system
1 引言
現在,計算機的運算速度越來越快,以及網絡帶寬迅速增長,使得運用web監控成為可能。Sun公司的java語言在網絡開發中使用的比較多,它開發出來的web產品有jsp,javabean,JDBC,applet以及servelet。其中,servelet是從jsp分離出來的,主要考慮的是編寫jsp過程中,把服務功能從交錯的功能編寫和界面設計獨立出來。
傳統的監控系統,主要采用的是C/S結構,特點就是監控對象固定,監控距離較小。當然,這里面蘊涵了方便管理、集中監控、實時性較強等等優點?,F在,網絡的快速發展,網絡接口的普及,人們要求監控也能夠越來越方便和及時。
通過網絡的快速擴張和網絡技術的發展,目前的網絡技術能夠實現保證網絡監控,同時滿足監控的技術要求。
2 Servlet技術
1.1 Servlet簡介
Servlet是對支持Java的服務器的一般擴充。它最常見的用途是擴展Web服務器,提供非常安全的、可移植的。它是一種動態加載的模塊,為來自Web服務器的請求提供服務。它完全運行在Java虛擬機上。由于它在服務器端運行,因此它不依賴于瀏覽器的兼容性。Servlet用在監控系統當中,主要是看重了Servlet的可移植和接口常見。根據目前的監控需求,人們希望能夠使用各種終端,在Internet的網絡接口處,可以方便地監控對象。
1.2 Servlet與監控系統
Servlet是用Java編寫的服務器端程序, 由服務器端調用和執行的任何Java類。Servlet是使用Java Servlet應用程序設計接口(API)及相關類和方法的Java程序。瀏覽器端也就是客戶端運行的Java程序叫做App let,而服務器端運行的Java程序叫做Servlet。Servlet提供了Java應用程序的所有優勢: ——可移植、穩健、易開發。使用Servlet作為監控架構,開發人員需要對Servlet進行編寫,其中Servlet提供各種不同的接口,如:Servlet初始化時的init()方法、響應請求的service()方法、銷毀時所要用到的destroy()方法。在消息通信方面,Servlet封裝了兩個類,一個是用于請求類HttpServletRequest;另外一個是響應HttpServletResponse。
我們知道,在監控系統中,消息傳遞對于監控很重要,而Servlet提供給開發人員這兩個消息類,這樣就能縮短開發周期。Servlet是能夠通過Web訪問的,同時用Java語言開發的。這樣就使得Servlet的監控系統也能夠增加可移植性和監控的移動性,從而提高了監控效率。
作為監控系統,除了消息以外,如何在Servlet的框架下,組織監控對象成了一個重要的問題。同時,在監控的時候,如何用Servlet把實時數據與數據庫的聯系也是一個問題。下面,通過第二部分闡述這兩個問題。
3 系統實現
整個系統是由數據采集系統、程序運行服務器、數據庫服務器和客戶端軟件構成, 采用流行的B/S結構, 利用在網絡方面功能強大的Java語言為編程語言, 實現基于網絡的遠程在線實時監測系統。Servlet是用來響應監控人員的監控請求。Servlet主要放在傳感器上或者在公共控制服務器上。這樣的話,監控人員就可以用Web方式控制。
2.1 系統結構圖
采用Servlet的監控系統結構圖:

在圖1中,每個節點都可以通過Web被外部客戶端訪問。監控人員可以在任意層次對整個系統進行監測。Servlet在系統里面所扮演的角色就是服務員,把客戶端發送的請求給予響應,這個請求在java是用一個HttpServletRequest類對請求信息進行封裝。每個節點的都有一個HttpServlet類,負責對HttpServletRequest請求進行處理,然后把客戶端需要的信息以HttpServletResponse返回給客戶端。在返回的信息當中,嵌在節點的Servlet可以以客戶端需要的樣式進行打印,然后把打印的內容和樣式拼成一個I/O流。當然,Java語言中的流的種類有很多種,如字節流、文件流,還有一些類似流的PrintWriter類等等。客戶端只要對Java已經封裝好的流進行讀寫,那么客戶端就能夠通過Web網絡,把客戶端發送的字節流顯示在客戶端的Web瀏覽器上。
這個系統的服務器的概念不明確,主要是因為服務器太多,沒有哪個服務器能夠把客戶需求統一起來。然而,這種系統的建立使得監控系統模塊更突出,耦合度變小,監控風險降低,可以通過Web接口對監控對象進行監控。但是,權限管理有簡單的用戶管理,變成更加復雜的多用戶多權限的用戶管理,主要是因為系統任一模塊都能夠被訪問,所以訪問管理需要統籌好、規劃好,不然系統會出現管理混亂的情況,這樣就對系統穩定和實用性造成破壞。在系統實現的時候,系統設計人員應盡量避免監控系統模塊的Servlet被一般權限的客戶端訪問。
在監控系統當中,Servlet所啟的作用就是在各種不同的小型機和客戶端架起一座橋梁??蛻舳艘L問某個Servlet,可以通過xml文件,把這個Servlet映射到在節點上運行的客戶端,在權限允許的情況下,客戶端就能通過Servlet遠程訪問節點,同時根據實際需要,對需要的節點進行控制。遠端的Servlet通過doGet(HttpServletRequest,HttpServletResponse)來對客戶端的請求進行響應,同時也通過該方法對本地進行操作。面對不同頁面設計語言,如Html和Jsp,Servlet響應的方法是不一樣的。上面介紹的doGet主要是對Html的請求進行響應,而面對Jsp的請求,則是通過doPost完成。
2.2 實時數據傳輸
數據傳輸牽扯到系統的實效性和穩定性。作為實時監控系統,實現數據傳輸是最基本的目標,但是應用Servlet進行傳輸的數據包括傳輸到遠端和本地兩個數據。作為一個系統,系統時間肯定是要統一,因此每個節點它本身的實時數據時間和把自己的傳輸到遠端監控計算機的時間要統一,避免一個數據在系統中出現有多個時間不同而數據相同的紀錄。在涉及節點傳輸路徑時,我們應該避免把底層的節點傳輸到監控計算機,因為過多的數據傳輸增加了監控計算機的響應時間。在這點上,我們可以充分利用Java語言和Servlet的長處,盡量讓監控人員直接通過網絡訪問底層節點。
2.3 實時數據記錄和查詢
眾所周知,實時數據一般都是存儲在遠端的服務器的數據庫中,采用servlet技術以后,每個節點不但需要實時地傳輸給遠端的服務器,而且要滿足隨機地用戶查詢。這樣一來,用戶查詢的實時性更強,同時數據庫只啟記錄歷史數據的用途,而不涉及實時地查詢。因為,我們知道如果將數據記錄到數據庫中,而我們從數據庫中讀出數據,這樣做的結果會實時查詢的結果更差一些。


從上面兩幅圖,我們發現圖3多了一條從傳感器到控制中心的數據流向,這也是Servlet所帶來的不同。對比這兩幅圖,我們發現這條路徑比傳統的監控系統少了一個環節,這樣做的優點就是節約時間。同時為了要滿足把實時數據記錄到數據庫中,我們可以在傳感器上程序中實現多線程的訪問。
3 結束語
以上論述了建立基于Servlet的監控系統,同時闡述了這樣系統與傳統的監控系統的不同及相比之下的優點。目前,監控系統的構造越來越像Java語言過渡,其中有一個原因就是Java語言的可移植性,這也是采用VC語言的監控系統的缺點之一。通過本文簡單的論述,我們可以清晰地體會到采用Servlet的監控系統的未來。
參考文獻:
[1] 楊經緯,顏文俊.用Tomcat + Servlet構建遠程柔性控制服務器[J].機電工程,2004,21(3):27-30.
[2] 李安強.JSP/ Servlet 技術在管理信息系統中的應用[J]. 青海大學學報,2004,22(4):67-68.
[3] 何成萬,余秋惠.一個用于開發Servlet 的框架的研究[J]. 計算機應用研究,2002(1):46-47.
[4] 白玉,馬孝江. 基于Java 的B_S 結構遠程在線監測系統[J]. 電腦開發與應用,2007,21(2):31-33.
[5] 李飛,黃東軍.基于Structs的民航地面運行監控系統的開發[J].計算機系統應用,2007(1):77-80.
[6] 池亞平,方勇.Servlet技術與應用方案[J].北京郵電大學學報.2003,26:138-139.
[7] 劉廣利,任乃飛,陳磊.基于SOM神經網絡與Java技術的遠程監控系統[J].機床與液壓:2007,35(4):27-32.
[8] 曾國斌,曾國昌.基于IP技術的智能監控系統構架的一種實現方法[J].計算機與現代化:2007,2:70-72.
收稿日期:2008-03-12