專利名稱:一種web網(wǎng)管系統(tǒng)中顯示實時數(shù)據(jù)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種在web網(wǎng)管系統(tǒng)中實時數(shù)據(jù)的顯示方法,尤其涉及的是,一種實現(xiàn)在web網(wǎng)頁上實時地顯示網(wǎng)元設(shè)備上報數(shù)據(jù)的方法。
背景技術(shù):
web技術(shù)應(yīng)用的基礎(chǔ)是HTTP(HyperText Transfer Portocol超文本傳輸協(xié)議),HTTP是一種無連接協(xié)議,這意味著web瀏覽器與web服務(wù)器之間不建立持久的連接,而只是來回發(fā)送獨立的消息。HTTP遵循請求/應(yīng)答模型,即web瀏覽器向web服務(wù)器發(fā)送請求,web服務(wù)器處理請求并送回適當?shù)膽?yīng)答數(shù)據(jù),所有HTTP連接都被構(gòu)造為一套請求和應(yīng)答。
在web網(wǎng)管系統(tǒng)中,往往需要在網(wǎng)頁實時地顯示網(wǎng)元上報的實時數(shù)據(jù),這就需要解決如何將網(wǎng)元上報的數(shù)據(jù)及時地顯示在頁面之上,使得頁面能夠動態(tài)刷新。通常,頁面動態(tài)刷新有客戶端拖曳(client pull)與服務(wù)器推送(server push)兩種方式。
客戶端拖曳方式是通過向web服務(wù)器定時發(fā)送請求,獲取數(shù)據(jù),來顯示實時信息,這種方式本質(zhì)上還是遵循請求/應(yīng)答模式的,它通過在HTTP響應(yīng)或文檔頭標記中插入指令,如讓瀏覽器“在n秒間隔內(nèi)重復裝入數(shù)據(jù)<METAHTTP-EQUIV=”Refresh”CONTENT=n>”或“n秒間隔內(nèi)重復前往某URL裝入數(shù)據(jù)<META HTTP-EQUIV=”Refresh”CONTENT=”12;URL=http//www.zte.com.cn”>”。當指定的時間達到時,客戶端就按照服務(wù)器的指示去做,或者刷新當前數(shù)據(jù),或者調(diào)入新的數(shù)據(jù),使頁面間隔性的刷新,從而達到實時的效果。然而,這種方式的實時性較差,由于每次請求/應(yīng)答過程需要耗費一定的資源,時間間隔不能設(shè)置的太小,否則會造成頁面無法正常顯示數(shù)據(jù),或不停閃爍,而間隔大了就不能保證數(shù)據(jù)的實時性。對于實時性要求很強的web網(wǎng)管系統(tǒng)來講這種方式顯然不合適。
服務(wù)器推送技術(shù)的基礎(chǔ)思想是將瀏覽器主動請求信息改為服務(wù)器主動發(fā)送信息。服務(wù)器發(fā)送一批數(shù)據(jù),然后瀏覽器顯示這些數(shù)據(jù),同時維持與服務(wù)器的連接,以后,瀏覽器不發(fā)送請求,服務(wù)器仍然可以發(fā)送數(shù)據(jù),瀏覽器繼續(xù)顯示數(shù)據(jù),依次類推。通常采用動態(tài)HTML與持久http連接的方式來實現(xiàn)服務(wù)器推送技術(shù),當客戶端發(fā)起一個http請求后,維持這個http連接,將需要推送到客戶端的信息,在服務(wù)器端構(gòu)造腳本程序(如javascript,vbscript等)代碼片斷,并通過這個http連接發(fā)送到瀏覽器執(zhí)行,直到推送完所有的數(shù)據(jù)。但這種方式的缺點是很難監(jiān)控http連接,一旦連接中斷就無法恢復,只能通過客戶端再次發(fā)送請求重新建立連接。
因此,現(xiàn)有技術(shù)都存有缺陷,而有待于改進和發(fā)展。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種web網(wǎng)管系統(tǒng)中顯示實時數(shù)據(jù)的方法,根據(jù)服務(wù)器推送原理,結(jié)合使用HTTP和socket(套接字)來實現(xiàn)web服務(wù)器主動推送數(shù)據(jù)到web瀏覽器,本發(fā)明方法采用在從web服務(wù)器下載一個客戶端代理,并隱式地內(nèi)嵌于web瀏覽器頁面中,通過客戶端代理與服務(wù)器端地web組件之間建立socket連接來實現(xiàn)瀏覽器與web服務(wù)器之間的持久連接,并通過客戶端代理與web頁面之間的信息交互,將服務(wù)器推送到客戶端代理的數(shù)據(jù)顯示到web頁面,從而實現(xiàn)web網(wǎng)管系統(tǒng)中的實時數(shù)據(jù)顯示。
本發(fā)明的技術(shù)方案如下一種web網(wǎng)管系統(tǒng)中顯示實時數(shù)據(jù)的方法,所述方法包括以下步驟a)、由web服務(wù)器組件從消息服務(wù)器訂閱實時數(shù)據(jù),并建立消息服務(wù)器到所述web服務(wù)器之間的連接,web瀏覽器利用從所述web服務(wù)器下載到web頁面的客戶端代理與web服務(wù)器組件之間的socket連接,建立web瀏覽器與web服務(wù)器之間的持久連接;b)、利用所述客戶端代理與web瀏覽器頁面之間的信息交互實現(xiàn)頁面本地更新,建立一條從消息服務(wù)器到web瀏覽器頁面之間的消息通路,將網(wǎng)元上報的實時數(shù)據(jù)通過此通路實時的顯示于web瀏覽器頁面之上。
所述的方法,其中,所述web服務(wù)器組件包括web服務(wù)器推送組件,消息監(jiān)聽器,在線客戶注冊中心組件;以及所述方法還包括以下步驟a1)、所述web瀏覽器訪問實時數(shù)據(jù)頁面時,從web服務(wù)器下載客戶端代理,并啟動客戶端代理,同時啟動所述web服務(wù)器端推送組件,建立客戶端代理與服務(wù)器推送組件之間的socket連接;a2)、所述web服務(wù)器推送組件將與之建立連接的客戶端代理注冊到在線客戶注冊中心;a3)、如果是第一個在線的客戶端,則所述web服務(wù)器推送組件向消息服務(wù)器訂閱消息,并設(shè)置所述消息監(jiān)聽器監(jiān)聽消息,之后的在線客戶端不用再訂閱;a4)、在web網(wǎng)管系統(tǒng)中,網(wǎng)元上報的實時數(shù)據(jù)由網(wǎng)元適配模塊發(fā)布到所述消息服務(wù)器上;有實時數(shù)據(jù)上報時,由所述消息監(jiān)聽器接收并解析上報數(shù)據(jù),并通過socket連接將解析后的數(shù)據(jù)向在線客戶注冊中心中的客戶端代理發(fā)送。
a5)、所述客戶端代理根據(jù)接收到的數(shù)據(jù),調(diào)用修改頁面狀態(tài)的腳本函數(shù)進行頁面的本地更新,在本地web瀏覽器上顯示新收到的上報數(shù)據(jù)。
所述的方法,其中,所述消息監(jiān)聽器可以是web服務(wù)器推送組件本身,也可以是單獨設(shè)置的消息監(jiān)聽器組件。
所述的方法,其中,所述步驟a2)還包括以下步驟a21)、所述web服務(wù)器推送組件將客戶端代理封裝成客戶端對象,生成客戶端對象的唯一標識,并向在線客戶端注冊中心注冊此客戶端對象;a22)、所述web服務(wù)器推送組件將客戶端對象的該唯一標識通過socket連接發(fā)送到客戶端代理,并將該唯一標識保存在客戶端。
所述的方法,其中,所述方法還設(shè)置有一告警過濾器,并包括以下步驟a23)、在所述消息監(jiān)聽器解析收到的告警消息后,從所述在線客戶注冊中心獲取所有在線客戶的客戶端對象;a24)、由所述告警過濾器過濾接收告警頁面的位置與發(fā)生告警信息的發(fā)生位置,返回滿足過濾條件的客戶端集合,將告警信息發(fā)送該客戶端集合所承載的客戶端代理。
所述的方法,其特征在于,所述消息服務(wù)器使用獨立的Java消息服務(wù)器。
本發(fā)明所提供的一種web網(wǎng)管系統(tǒng)中顯示實時數(shù)據(jù)的方法,相對于現(xiàn)有的方法,本發(fā)明的方案采用socket連接可以很好的維持瀏覽器與web服務(wù)器之間的持久連接,并可以對其進行監(jiān)控,提供斷鏈重建的功能,保證了告警消息的可靠性,由于通過腳本程序?qū)撁孢M行本地更新,收到消息后能夠?qū)崟r的更新頁面,不用加載整個網(wǎng)頁,實時數(shù)據(jù)的顯示效果更佳。
圖1是本發(fā)明方法中的實時數(shù)據(jù)顯示構(gòu)架示意圖;圖2是本發(fā)明方法的web網(wǎng)管系統(tǒng)中告警管理的實時告警構(gòu)架示意圖。
具體實施例方式
下面結(jié)合附圖對本發(fā)明方法作詳細的說明。
本發(fā)明的所述web網(wǎng)管系統(tǒng)中顯示實時數(shù)據(jù)的方法,其核心過程是,由web服務(wù)器組件從消息服務(wù)器訂閱實時數(shù)據(jù)建立消息服務(wù)器到web服務(wù)器之間的連接,利用從web服務(wù)器下載到web頁面的客戶端代理與web服務(wù)器組件之間的套接字socket連接建立瀏覽器與web服務(wù)器之間的持久連接,利用客戶端代理與web頁面之間的信息交互實現(xiàn)頁面本地更新,建立一條從消息服務(wù)器到瀏覽器頁面之間的消息通路,將網(wǎng)元上報的實時數(shù)據(jù)通過此通路實時的顯示于瀏覽器頁面之上。
如圖1所示,網(wǎng)元實時上報數(shù)據(jù)顯示的步驟如下1、Web瀏覽器訪問實時數(shù)據(jù)頁面時,從web服務(wù)器下載客戶端代理,如可以實現(xiàn)為java小應(yīng)用程序applet等,并啟動客戶端代理,同時啟動web服務(wù)器端推送組件,建立客戶端代理與服務(wù)器推送組件之間的socket連接。
2、web服務(wù)器推送組件將與之建立連接的客戶端代理注冊到在線客戶注冊中心。
3、如果是第一個在線的客戶端,則web服務(wù)器推送組件向消息服務(wù)器訂閱消息,并設(shè)置消息監(jiān)聽器監(jiān)聽消息,之后的在線客戶端不用再訂閱。消息監(jiān)聽器可以是web服務(wù)器推送組件本身,也可以是單獨的監(jiān)聽器組件。
4、在web網(wǎng)管系統(tǒng)中,網(wǎng)元上報的實時數(shù)據(jù)由網(wǎng)元適配模塊發(fā)布到所述消息服務(wù)器上。當有實時數(shù)據(jù)上報時,由消息監(jiān)聽器接收并解析上報數(shù)據(jù),并通過socket連接將解析后的數(shù)據(jù)向在線客戶注冊中心中的客戶端代理發(fā)送。
5、web瀏覽器的客戶端代理根據(jù)接收到的數(shù)據(jù),調(diào)用修改頁面狀態(tài)的腳本函數(shù)進行頁面的本地更新,顯示新收到的上報數(shù)據(jù)。
其中,圖1中所示的web服務(wù)器組件包括web服務(wù)器推送組件,消息監(jiān)聽器,在線客戶注冊中心。
下面結(jié)合附圖以web網(wǎng)管系統(tǒng)中告警管理的實時告警功能來對本發(fā)明方法作進一步詳細的說明。
如圖2所示,此實施例中,客戶端代理使用java小應(yīng)用程序applet,消息監(jiān)聽器作為獨立的組件,消息服務(wù)器使用Java消息服務(wù)器,為了減少網(wǎng)絡(luò)負擔,設(shè)計了消息過濾器組件用來過濾消息。
所述實時告警功能分為下面一些模塊
服務(wù)端推送模塊負責創(chuàng)建服務(wù)器端socket,并接受applet建鏈請求;向客戶端注冊中心注冊/注銷在線的客戶端信息;訂閱/取消訂閱告警消息;向applet發(fā)送實時告警消息。
客戶端接收模塊負責建立與web服務(wù)器的socket連接;接收實時告警消息并與負責顯示的頁面交互;實時顯示接收的告警信息。
在線客戶端注冊中心負責保存在線客戶端的信息,并提供注冊、注銷方法。
告警過濾器根據(jù)位置信息過濾告警消息。
下面具體說明網(wǎng)元上報的實時告警消息的接收流程。實時告警大致分為三個過程消息通路建立過程、消息接收過程及停止消息接收過程。
消息通路的建立過程如下1、啟動服務(wù)器推送組件,創(chuàng)建服務(wù)器端socket對象,并等待客戶端代理建鏈。
2、web瀏覽器頁面下載并啟動客戶端代理,在本實施例中的實現(xiàn)為java小應(yīng)用程序,命名為FmApplet,創(chuàng)建客戶端socket對象與服務(wù)器推送組件建立socket連接。
3、服務(wù)器推送組件將客戶端代理封裝成客戶端對象,生成客戶端對象的唯一標識,并向在線客戶端注冊中心注冊此客戶端對象。
4、服務(wù)器推送組件將客戶端對象的唯一標識通過socket連接發(fā)送到客戶端代理FmApplet,F(xiàn)mApplet將唯一標識保存在客戶端。
5、如果是第一個連接的客戶端,則服務(wù)器推送組件向JMS消息服務(wù)器訂閱告警消息,并創(chuàng)建消息監(jiān)聽器監(jiān)聽訂閱的告警消息。
告警消息接收過程如下1、網(wǎng)元產(chǎn)生告警,通過網(wǎng)元適配模塊向JMS消息服務(wù)器發(fā)布告警消息。
2、消息監(jiān)聽器解析收到的告警消息。
3、消息監(jiān)聽器從在線客戶注冊中心獲取所有在線客戶的客戶端對象。
4、由告警過濾器過濾接收告警頁面的位置與發(fā)生告警信息的發(fā)生位置,返回滿足過濾條件的客戶端集合。
5、將告警信息發(fā)送到第4步中的客戶端集合所承載的客戶端代理FmApplet。
6、客戶端代理FmApplet調(diào)用web瀏覽器頁面的腳本函數(shù),在本實施例中實現(xiàn)為javascript腳本函數(shù)addFmInfo(info),在頁面上添加一條告警信息。
停止接收告警消息過程1、 離開實時告警接收頁面或關(guān)閉瀏覽器即可觸發(fā)停止接收告警消息的請求,通過web瀏覽器頁面卸載事件發(fā)送停止請求至服務(wù)器推送組件,同時將保存在客戶端的唯一標識作為參數(shù)傳送過去。
2、服務(wù)器推送組件調(diào)用在線客戶端注冊中心的注銷方法,注銷客戶端對象。
3、如果在線客戶端注冊中心的在線客戶端個數(shù)為零,則取消訂閱JMS的告警消息。
綜上所述,本發(fā)明web網(wǎng)管系統(tǒng)中顯示實時數(shù)據(jù)的方法,利用客戶端代理與web服務(wù)器組件的socket通信機制和客戶端代理與web頁面的交互機制,實現(xiàn)了實時數(shù)據(jù)的顯示,并使得在web網(wǎng)管系統(tǒng)中網(wǎng)元上報的實時數(shù)據(jù)能夠可靠、實時的呈現(xiàn)于web頁面上。
應(yīng)當理解的是,本發(fā)明的上述針對具體實施例的描述較為具體,并不能因此而理解為對本發(fā)明的專利保護范圍的限制,本發(fā)明的專利保護范圍應(yīng)以所附權(quán)利要求為準。
權(quán)利要求
1.一種web網(wǎng)管系統(tǒng)中顯示實時數(shù)據(jù)的方法,所述方法包括以下步驟a)、由web服務(wù)器組件從消息服務(wù)器訂閱實時數(shù)據(jù),并建立消息服務(wù)器到所述web服務(wù)器之間的連接,web瀏覽器利用從所述web服務(wù)器下載到web頁面的客戶端代理與web服務(wù)器組件之間的socket連接,建立web瀏覽器與web服務(wù)器之間的持久連接;b)、利用所述客戶端代理與web瀏覽器頁面之間的信息交互實現(xiàn)頁面本地更新,建立一條從消息服務(wù)器到web瀏覽器頁面之間的消息通路,將網(wǎng)元上報的實時數(shù)據(jù)通過此通路實時的顯示于web瀏覽器頁面之上。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述web服務(wù)器組件包括web服務(wù)器推送組件,消息監(jiān)聽器,在線客戶注冊中心組件;以及所述方法還包括以下步驟a1)、所述web瀏覽器訪問實時數(shù)據(jù)頁面時,從web服務(wù)器下載客戶端代理,并啟動客戶端代理,同時啟動所述web服務(wù)器端推送組件,建立客戶端代理與服務(wù)器推送組件之間的socket連接;a2)、所述web服務(wù)器推送組件將與之建立連接的客戶端代理注冊到在線客戶注冊中心;a3)、如果是第一個接收某種實時數(shù)據(jù)在線的客戶端,則所述web服務(wù)器推送組件向消息服務(wù)器訂閱消息,并設(shè)置所述消息監(jiān)聽器監(jiān)聽消息,之后的接收相同種類實時數(shù)據(jù)的上線客戶端不用再訂閱;a4)、在web網(wǎng)管系統(tǒng)中,網(wǎng)元上報的實時數(shù)據(jù)由網(wǎng)元適配模塊發(fā)布到所述消息服務(wù)器上;有實時數(shù)據(jù)上報時,由所述消息監(jiān)聽器接收并解析上報數(shù)據(jù),并通過socket連接將解析后的數(shù)據(jù)向在線客戶注冊中心中的客戶端代理發(fā)送,a5)、所述客戶端代理根據(jù)接收到的數(shù)據(jù),調(diào)用修改頁面狀態(tài)的腳本函數(shù)進行頁面的本地更新,在本地web瀏覽器上顯示新收到的上報數(shù)據(jù)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述消息監(jiān)聽器可以是web服務(wù)器推送組件本身,也可以是單獨設(shè)置的消息監(jiān)聽器組件。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述步驟a2)還包括以下步驟a21)、所述web服務(wù)器推送組件將客戶端代理封裝成客戶端對象,生成客戶端對象的唯一標識,并向在線客戶端注冊中心注冊此客戶端對象;a22)、所述web服務(wù)器推送組件將客戶端對象的該唯一標識通過socket連接發(fā)送到客戶端代理,并將該唯一標識保存在客戶端。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述方法還設(shè)置有一告警過濾器,并包括以下步驟a23)、在所述消息監(jiān)聽器解析收到的告警消息后,從所述在線客戶注冊中心獲取所有在線客戶的客戶端對象;a24)、由所述告警過濾器過濾接收告警頁面的位置與發(fā)生告警信息的發(fā)生位置,返回滿足過濾條件的客戶端集合,將告警信息發(fā)送該客戶端集合所承載的客戶端代理。
6.根據(jù)權(quán)利要求4或5所述的方法,其特征在于,所述消息服務(wù)器使用獨立的Java消息服務(wù)器。
全文摘要
一種web網(wǎng)管系統(tǒng)中顯示實時數(shù)據(jù)的方法,包括以下步驟由web服務(wù)器組件從消息服務(wù)器訂閱實時數(shù)據(jù),并建立消息服務(wù)器到所述web服務(wù)器之間的連接,web瀏覽器利用從所述web服務(wù)器下載到web頁面的客戶端代理與web服務(wù)器組件之間的socket連接,建立web瀏覽器與web服務(wù)器之間的持久連接;利用所述客戶端代理與web瀏覽器頁面之間的信息交互實現(xiàn)頁面本地更新,建立一條從消息服務(wù)器到web瀏覽器頁面之間的消息通路,將網(wǎng)元上報的實時數(shù)據(jù)通過此通路實時的顯示于web瀏覽器頁面之上。本發(fā)明方法由于通過腳本程序?qū)撁孢M行本地更新,收到消息后能夠?qū)崟r的更新頁面,不用加載整個網(wǎng)頁,實時數(shù)據(jù)的顯示效果更佳。
文檔編號H04L12/24GK1870508SQ200510034700
公開日2006年11月29日 申請日期2005年5月25日 優(yōu)先權(quán)日2005年5月25日
發(fā)明者劉靜, 曾欽宏, 楊恒 申請人:中興通訊股份有限公司