久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 消費電子 > 設計應用 > ActiveX技術在B/S模式監控系統中的應用

ActiveX技術在B/S模式監控系統中的應用

——
作者: 時間:2007-09-24 來源:電子技術 收藏
隨著Internet技術的飛速發展,利用Web服務器的信息服務能力和數據庫的數據處理能力來構造大規模的系統已成為當前人們關注的熱點。與此同時,軟件的開發環境和開發技術也在不斷的變化,B/S(Browser/server)模式管理信息系統與傳統的C/S(client/server)模式管理信息系統相比,具有使用簡單、維護方便、具有廣泛通用性和跨平臺性、安全性好等優點,因而日益受到廣大用戶的青睞。 

但是由于各個系統具體需要的不同,要建立符合工程實際情況,滿足用戶要求的系統,這就需要根據工程的具體情況,采用具體的技術手段來組建具有自己特色的系統。本文以基于B/S模式的監控管理系統為例,對術進行了詳細研究。采用術和B/S模式結合的方式,實現了某大型工程高效實時的監控需求。

1 分析

1.1 B/S模式監控系統的系統架構與功能

在B/S體系結構中,用戶通過瀏覽器向分布在網絡上的Web服務器發出請求,Web服務器接受客戶請求,首先需執行相應的擴展應用程序執行對應的操作,然后將相應的信息返回給瀏覽器。

基于B/S模式的管理信息系統從結構上主要分為三個層次,如圖1所示:圖1B/S(Browser/Server)模式系統架構圖分別為Internet瀏覽器、Web服務器和數據庫服務器。用戶通過客戶端的Internet瀏覽器以表單或者其他形式向Web服務器發送HTTP請求,Web服務器請求數據庫服務器,并將獲得的結果以HTML頁面的形式返回給客戶端的Internet瀏覽器,供用戶查看。如圖1所示。

 

具有很多優勢:平臺無關性;使用簡單,易于擴展;減少數據庫并發用戶;代碼可重用性好,易于維護。因此B/S模式逐漸成為一種流行的應用系統開發平臺。然而B/S也并非完美,隨著應用的逐步普及,B/S模式逐漸暴露了它的缺陷,如執行效率低,Web服務器負擔過重、安全性有待加強等。特別對于一些實時性要求比較高、數據量比較大的應用系統,比如實時監控遠程控制等,B/S模式無法滿足系統的需求。

1.2 ActiveX組件技術

ActiveX是Microsoft提出的采用COM(ComponentObject Model)和DCOM(Distributed Component ObjectModel)使軟件組件在網絡環境中進行交互的一組技術集,它是在COM之上建立的一種理論和概念,與具體的編程語言無關,包括ActiveX Dll組件和ActiveX控件。

ActiveX控件同其他的ActiveX組件相比具有以下特點:能通過設置屬性控制其行為,從而實現用戶接口;在客戶端的瀏覽器執行,能夠緩解服務器的負荷;在有需要時,還可以由應用程序調用ActiveX摔件,擴展應用程序的功能。作為針對Web應用開發的技術,ActiveX控件被廣泛應用于Web服務器以及客戶端應用的各個方面。

ActiveX控件常用的形式是.exe、.dll或.ocx的形式。通常以動態鏈接庫形式存在,因此必須在容器中運行。ActiveX控件能夠直接嵌入到瀏覽器和其他應用程序中,并具有和應用程序一樣強大的數據處理,磁盤操作等能力。

ActiveX控件在以瀏覽器為主的結構中的作用如圖2所示。

 

ActiveX控件由三大要素組成:屬性、方法和事件。屬性是控件的基本特性,是控制的一部分,在控制裝入時或控制正在進行時可以改變;方法是控件提供給外界的一個接口,類似與一個函數調用接口,用戶可通過方法來設置控件的某些性質、執行某項動作或者進行某些運算以實現一定的功能;事件是控件對外部操作或控件內部處于某種狀態時所發出的通知,它由控件本身所觸發,并與容器進行通信。從外界看,ActiveX控件就像一個黑盒,用戶只能看到它的三大要素,如圖3所示。 



 

要使用ActiveX控件,首先要創建控件實例對象,對控件進行實例化后,對控件屬性的設置和操作就可以通過實例對象的屬性和方法來實現。ActiveX控件能在ASP.NET頁面中通過<object>標簽創建,<object>標簽包含類id(clsid),用于識別需要實例化的ActiveX控件。如下面的代碼所示:

 

<object>元素的屬性有id,classid,codebase,height,width等。

其中id的屬性值objectJK是用于唯一表示AetiveX控件的名稱,classid屬性值“clsid:49F8CFDF-6B01-4115-BAF4-D579DB51931B”是AetiveX控件在系統中唯一標識號,codebase屬性值“../ikocx.cab”是AetiveX控件的安裝文件所在的目錄,此處指位于服務器根目錄下。

控件技術的具體實現如下:當瀏覽器發出請求時,Web服務器向用戶瀏覽器回傳內嵌ActiveX控件的頁面,由瀏覽器負責解釋。在解釋過程中首先用該控件的在頁面中注明的id值先在本地的注冊表內進行查詢,若已經存在,則說明該控件已經在本地安裝,然后通過灃冊表中的相關信息直接使用該控件;否則就要根據頁面中所提示的該控件所在的服務器上的路徑到服務器上去下載并且自動完成在本地的安裝注冊,使該控件成為本地資源,供以后使用。當Web服務器提供更高版本的ActiveX控件時,瀏覽器會自動下載新的摔件,并自動安裝,覆蓋原來的控件。

2 應用實例

2.1 系統結構設計

作者參加了某大型系統工程的監控分系統的研究與開發,在系統結構的設計中,需要充分考慮系統特點、用戶需求和人機交互。諸如系統要完成對高速硬件設備的數據進行采集分析,將數據處理匯報給用戶;要實現在線監控,預警,數據庫查詢分析等功能,對上作服務器或臺式機要能遠程抓屏;住系統出現問題之后能夠智能設置高速硬件設備和后端處理設備的各種工作參數,糾正一般性錯誤。而對于系統管理人員米講,希望能夠隨時在任何一臺終端上及時準確的了解現場的全部狀況。如果系統出現問題,要迅速知曉問題出現的環節和解決措施。基于以上兩方面的考慮,我們采取了ActiveX組件和B/S模式結合的系統。如圖4是設計監控系統的結構框圖。

 

設計時,對于事務性強,交互少,數據傳輸,數據處理量小的功能采用B/S模式,它主要是數據發布,數據庫查詢和操作。對于實時性高、刷新率快、數據處理量大的狀態顯示功能則采用了ActiveX組件嵌入瀏覽器的技術,ActiveX組件直接與被監控的設備進行通信,對數據記錄并進行處理。對于交互性強、安全性要求高的配置部分則采用應用程序和ActiveX組件通信的方式,ActiveX組件從應用程序得到數據庫中的配置參數并進行數據處理,配置被監控硬件設備。在被監控設備的服務端支持下,ActiveX組件還具有遠程抓屏的功能。

系統所有的工作參數都保存在數據庫服務器中,Web服務器程序和應用程序常駐內存,ActiveX組件既可以由網頁嵌入調用,也可以由應用程序直接調用。ActiveX組件由網頁嵌入調用時,用戶可在任何一臺終端上實現所有的監控,由應用程序直接調用時,擴展了應用程序的功能。

2.2 ActiveX組件的開發

本文主要設計并實現了如下幾個ActiveX功能組件。

2.2.1 設備工作狀態顯示

開發ActiveX控件時存程序中保留相應的數據接口,以便傳送控制量和接收實時數據。在本工程中,為了提高被監控設備的工作效率,被監控設備對監控查詢只需要返回原始的工作狀態信息,不需要做任何處理,對數據的處理由ActiveX控件在終端上完成。再將用戶需要的結果數據在網頁上通過一定形式顯示出來,如數字顯示、圖形顯示、曲線顯示、表格顯示等。數字顯示最簡單,直接把讀到的數據顯示出來就行了。圖形顯示則需用ActiveX控件將數據模擬為現實中的儀表信號燈等設備顯示出來。曲線顯示需用ActiveX控件將數據按一定的比例在橫坐標,縱坐標上繪制成曲線。表格顯示用于數據比較多時,數據先在ActiveX控件上進行處理,然后再通過ActiveX控件的表格顯示出來。

ActiveX組件相應的監控方法能根據系統中結點的變化調整顯示界面,根據系統數據流的流向分布進行分析,設計了常見故障的檢測程序,在系統結點出現故障時,能夠分析出相應的故障結點及原因,并發出報警信號(聲音及閃爍),并向常駐內存的服務器應用程序發出消息。

2.2.2 配置設備工作參數

當終端上的監控ActiveX控件率先檢測到系統中的問題需要重新配置時,會向服務器應用程序請求數據庫操作,如果數據庫中正在配置標志為1,則不進行任何操作,如果標志為0,則將標志置1,然后進行參數配置,配置完畢,狀態恢復正常后將標志恢復為0。如果用戶沒有在任何終端上監控系統的工作狀態,常駐服務器內存的應用程序會調用ActiveX控件的監控方法,一直監控所有被監控設備,當系統中的工作結點發生變化,或檢測到硬件狀態異常時,需要調用ActiveX控件對相應硬件設備進行重新配置。

2.2.3 遠程控制功能

為了能做到在任何一臺終端上對工作服務器和臺式機的更有效的臨控,ActiveX組件實現了遠程控制這一功能。如圖5所示。

 

用戶在任何一臺終端上,可以對服務器或者臺式機進行遠程控制,由于遠程抓屏實時性高,為了減少被監控設備的負荷,我們設計了同一臺硬件設備最多向一個終端提交遠程控制的限制,從而避免多個用戶同時操作一臺機器出現沖突和競爭。

2.3 ActiveX組件的安全性

因為ActiveX組件具有和應用程序一樣強大的功能,在Internet上,當用戶瀏覽到帶ActiveX組件的網頁時,IE瀏覽器在自動下載和提示用戶安裝之前,必須經過用戶的同意及確認才可。

我們設計的ActiveX控件或插什是白行開發的,其狀態通常是未標記為安全或足未經簽名驗證的。由于IE瀏覽器的默認安全設置是禁止下載、運行未簽名的ActiveX控件和插件,因此客戶機必須在IE瀏覽器的安傘設置頁面中將“ActiveX控件和插件”下的相關選項設置由“禁用”改為“啟用”后,才能正常地進行應用。

啟用下載、運行未經簽名驗證的ActiveX控件和插件后,一些未經簽名驗證的插件會趁虛而入,它們會在用戶瀏覽網頁的時候,在用戶毫不知曉的情況下自動下載到本地計算機并加載到IE瀏覽器中。由于這些ActiveX摔件和插什未經簽名驗證,不儀會影響系統的安全性,同時企業內部用戶在使用IE瀏覽器進行S應用時,應用調用的ActiveX控件和這些已經自動加載到IE瀏覽器中未經簽名驗證的控件或插件可能發生訪問沖突,造成應用異常中止。

當然,在工程內部可信賴的網絡環境中,這種情況發生的可能性很小,但是在系統內部感染病毒的情況下也有可能發生。如何有效地管理這些已經加載到IE瀏覽器的未簽名ActiveX控件,同時防止系統繼續自動下載、加載未經簽名驗證的ActiveX摔件呢?我們可以采取以下三種方法:

禁用/刪除IE瀏覽器的加載項;分區域設置IE的安全選項,只加載來自服務器站點的ActiveX控件;對Windows Server 2003,我們可以使用管理域中的ActiveX控件的組策略工具。

采用上面這三種方法的任何一種之后,我們可以放心的使用我們自己設計的ActiveX控件了。但對于最新版本的Windows用戶,在訪問到帶ActiveX組件的頁面時,IE會彈出一個提示:“單擊以激活并使用此控件”。這是因為Microsoft在2006年2月28日發布了安全通報MS06-013,討論IE的非安全更新912945。應用此更新之后,只有當用戶手動激活其用戶界面時,才能與網頁中加載的Microsoft ActiveX進行交互。如果用戶不點擊激活,ActiveX組件就無法發揮作用。

在實際的軟件設計中,為了方便用戶使用瀏覽器來進行監控而不需要額外的點擊,我們修改了使用ActiveX組件的方式。在網頁中使用ActiveX組件的傳統方式是:<object classid=”clsid:ActiveX組件ID號”:></object>

因為一個頁面的所有</object>的活動內容都不會被自動激活。我們采用外部調用JavaScript代碼的document.write方法,把JavaScript代碼和調用ActiveX控件的頁面寫在不同的文件中。這樣雖然麻煩一些,但是不強制用戶通過點擊來激活控件,方便了用戶使用。

木文中將術應用于B/S監控軟件中,不僅增強了B/S監控軟件的功能,加快了軟件的開發速度,而且適應了當前軟件開發向模塊化、開放化發展的趨勢,提高了系統的實時性、可靠性和可擴展性。

ActiveX技術應用于B/S模式彌補了單B/S模式的不足,比B/S和C/S結合的方式簡單實用(不需要安裝C/S客戶端),可以用在商業化的在線殺毒,在線點播,在線考試等諸多領域,具有非常光明的應用前景。


評論


相關推薦

技術專區

關閉