国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于Ajax和Web服務(wù)技術(shù)的衛(wèi)星應(yīng)用系統(tǒng)運行監(jiān)控方法

      文檔序號:7721089閱讀:204來源:國知局
      專利名稱:一種基于Ajax和Web服務(wù)技術(shù)的衛(wèi)星應(yīng)用系統(tǒng)運行監(jiān)控方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種基于Ajax和Web服務(wù)技術(shù)的衛(wèi)星應(yīng)用系統(tǒng)運行監(jiān)控方法,適用于衛(wèi)星地面應(yīng)用系統(tǒng)任務(wù)執(zhí)行狀態(tài)監(jiān)視和系統(tǒng)運行狀態(tài)監(jiān)視。
      背景技術(shù)
      Web服務(wù)是一種平臺無關(guān)的、按標準語言描述并通過網(wǎng)絡(luò)發(fā)布、發(fā)現(xiàn)和調(diào)用的自包 含、自描述、松耦合的構(gòu)件集合,由S0AP、WSDL和UDDI三大標準組成,解決了 Internet環(huán)境 下松耦合分布式異構(gòu)等問題。Ajax是Asynchronous JavaScript And XML的縮寫,是指一種使用客戶端腳本與 Web服務(wù)器交換數(shù)據(jù)來創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。它本身并不是一門新的語言 或技術(shù),而是將Html、XML、XMLHttpRequest、DOM以及JavaScript等技術(shù)組合在一起,各自 發(fā)揮其作用。以往的衛(wèi)星地面應(yīng)用系統(tǒng)運行監(jiān)控多為單機版桌面程序,只有在固定的監(jiān)控臺位 才能查看任務(wù)執(zhí)行狀態(tài)和系統(tǒng)運行狀態(tài),系統(tǒng)靈活性非常低。隨著衛(wèi)星數(shù)據(jù)應(yīng)用業(yè)務(wù)的快 速發(fā)展,衛(wèi)星地面應(yīng)用系統(tǒng)規(guī)模日益擴大,設(shè)備種類繁多,系統(tǒng)平臺多樣,因此,大型衛(wèi)星地 面應(yīng)用系統(tǒng)運行監(jiān)控一般由多個軟件組成,為了提高運行監(jiān)控系統(tǒng)的可靠性和時效性,需 要降低系統(tǒng)運行監(jiān)控的復(fù)雜度和耦合度,并縮減它們之間的通信開銷。

      發(fā)明內(nèi)容
      本發(fā)明的技術(shù)解決問題是克服技術(shù)的不足,提供一種基于Ajax和Web服務(wù)技術(shù) 的衛(wèi)星應(yīng)用系統(tǒng)運行監(jiān)控方法,該方法在降低系統(tǒng)耦合度和網(wǎng)絡(luò)負載、提高系統(tǒng)靈活性的 基礎(chǔ)上,實現(xiàn)了狀態(tài)頁面無刷新實時顯示。本發(fā)明的技術(shù)解決方案是一種基于Ajax和Web服務(wù)技術(shù)的衛(wèi)星應(yīng)用系統(tǒng)運行監(jiān) 控方法,步驟如下(1)在Web服務(wù)器端定義狀態(tài)數(shù)據(jù)提交接口,并將該接口以Web服務(wù)的方式進行發(fā) 布,對外提供服務(wù)描述WSDL文件,用于生成Web服務(wù)客戶端;(2)任務(wù)運行監(jiān)控模塊負責任務(wù)的創(chuàng)建并維護任務(wù)執(zhí)行狀態(tài),任務(wù)執(zhí)行過程中當 任務(wù)執(zhí)行狀態(tài)發(fā)生變化時,任務(wù)運行監(jiān)控模塊將任務(wù)執(zhí)行狀態(tài)信息通過Web服務(wù)客戶端提 交到狀態(tài)數(shù)據(jù)提交模塊;系統(tǒng)狀態(tài)監(jiān)視模塊負責收集系統(tǒng)運行狀態(tài)信息并上報,當系統(tǒng)運 行狀態(tài)信息發(fā)生變化時,系統(tǒng)狀態(tài)監(jiān)視模塊將系統(tǒng)運行狀態(tài)信息通過Web服務(wù)客戶端提交 到狀態(tài)數(shù)據(jù)提交模塊;(3)狀態(tài)數(shù)據(jù)提交模塊接收任務(wù)執(zhí)行狀態(tài)信息和系統(tǒng)運行狀態(tài)信息,將上述狀態(tài) 信息存儲或更新至狀態(tài)數(shù)據(jù)本地庫中,并向狀態(tài)數(shù)據(jù)維護模塊發(fā)送狀態(tài)變更通知,通知的 內(nèi)容為更新的狀態(tài)信息類型,所述狀態(tài)信息類型包括任務(wù)執(zhí)行狀態(tài)信息和系統(tǒng)運行狀態(tài)信 息,任務(wù)執(zhí)行狀態(tài)信息包括常規(guī)任務(wù)信息、訂購未生產(chǎn)產(chǎn)品任務(wù)信息和訂購已生產(chǎn)產(chǎn)品任務(wù)信息,每種任務(wù)信息又包括一個或多個子任務(wù)信息;系統(tǒng)運行狀態(tài)信息包括設(shè)備狀態(tài)信 息和應(yīng)用軟件狀態(tài)信息,設(shè)備狀態(tài)信息包括系統(tǒng)中每種類型設(shè)備的狀態(tài)信息,應(yīng)用軟件狀 態(tài)信息包括系統(tǒng)中每個應(yīng)用軟件的狀態(tài)信息;(4)狀態(tài)數(shù)據(jù)維護模塊以樹形結(jié)構(gòu)標識狀態(tài)信息類型,根節(jié)點代表所有狀態(tài)信息 類型,子節(jié)點代表在該狀態(tài)信息類型之下的子狀態(tài)信息類型分支,每個節(jié)點的值代表該節(jié) 點當前的狀態(tài)點標識;狀態(tài)數(shù)據(jù)維護模塊負責更新狀態(tài)信息的狀態(tài)點標識以及響應(yīng)客戶端 頁面的狀態(tài)信息請求;狀態(tài)數(shù)據(jù)維護模塊接收狀態(tài)數(shù)據(jù)提交模塊發(fā)送的狀態(tài)變更通知,根 據(jù)通知中的狀態(tài)信息類型匹配樹中對應(yīng)的節(jié)點,并更新該節(jié)點的狀態(tài)點標識;狀態(tài)數(shù)據(jù)維 護模塊在接收到客戶端頁面的狀態(tài)信息請求之后,獲取請求中的狀態(tài)信息類型及其狀態(tài)點 標識,根據(jù)狀態(tài)信息類型匹配樹中對應(yīng)的節(jié)點,將請求中的狀態(tài)點標識與節(jié)點值進行比對, 若不一致,則調(diào)用狀態(tài)數(shù)據(jù)獲取模塊獲取狀態(tài)信息并返回,否則進行等待,直到節(jié)點值發(fā)生 變化或時間超時后再調(diào)用狀態(tài)數(shù)據(jù)獲取模塊獲取狀態(tài)信息并返回;(5)客戶端頁面負責實時獲取狀態(tài)信息并以圖表的形式向用戶展現(xiàn);客戶端頁面 定時發(fā)起狀態(tài)數(shù)據(jù)獲取請求,請求中包括狀態(tài)信息類型及當前的狀態(tài)點標識;狀態(tài)數(shù)據(jù)維 護模塊對請求進行響應(yīng),并將狀態(tài)信息通過SOAP協(xié)議打包并返回客戶端頁面,客戶端頁面 接收返回信息并進行解析,根據(jù)解析結(jié)果實時更新局部頁面的狀態(tài)信息及其狀態(tài)點標識。所述步驟(4)狀態(tài)數(shù)據(jù)維護模塊以樹形結(jié)構(gòu)標識狀態(tài)信息類型,負 責更新狀態(tài)信 息的狀態(tài)點標識具體過程如下(1)接收狀態(tài)變更通知,根據(jù)通知中的狀態(tài)信息類型匹配樹中對應(yīng)的節(jié)點ml ;(2)獲取根節(jié)點的狀態(tài)點標識,并執(zhí)行遞增操作,若狀態(tài)點標識沒有超過設(shè)定的最 大值,則更新ml的節(jié)點值;否則執(zhí)行步驟(4);(3)遍歷ml的所有父節(jié)點,并更新其節(jié)點值,直到更新根節(jié)點為止;(4)若狀態(tài)點標識超過設(shè)定的最大值,將樹中所有節(jié)點的值清零。所述步驟(4)狀態(tài)數(shù)據(jù)維護模塊響應(yīng)客戶端頁面的狀態(tài)信息請求的具體過程如 下(1)接收客戶端頁面的狀態(tài)數(shù)據(jù)獲取請求,根據(jù)請求中的狀態(tài)信息類型匹配樹中 對應(yīng)的節(jié)點nl ;(2)設(shè)置比對次數(shù)的初始值為0 ;(3)將請求中的狀態(tài)點標識與nl的節(jié)點值進行比對,若不一致,執(zhí)行步驟(6),否 則執(zhí)行步驟⑷;(4)比對次數(shù)加1 ;(5)休眠一段時間,若比對次數(shù)沒有超過設(shè)定的最大值,重復(fù)執(zhí)行步驟(3),否則 執(zhí)行步驟(6);(6)根據(jù)請求的狀態(tài)信息類型調(diào)用狀態(tài)數(shù)據(jù)獲取模塊獲取狀態(tài)信息并返回。所述步驟(3)中狀態(tài)信息存儲或更新基于Berkley DB內(nèi)存數(shù)據(jù)庫,其高速的讀寫 技術(shù)使得在其之上的操作與操作內(nèi)存相差無幾。所述步驟(5)客戶端頁面采用SOAP協(xié)議進行任務(wù)執(zhí)行狀態(tài)信息和系統(tǒng)運行狀態(tài) 信息的傳輸。本發(fā)明與現(xiàn)有技術(shù)相比具有如下優(yōu)點
      (1)本發(fā)明的狀態(tài)數(shù)據(jù)維護模塊維護狀態(tài)信息的狀態(tài)點標識,并在接收客戶端頁 面的狀態(tài)獲取請求時,對請求中的狀態(tài)點標識進行判斷,若狀態(tài)點標識和服務(wù)器端一致,說 明客戶端的狀態(tài)信息已經(jīng)是最新狀態(tài),此時,不直接將狀態(tài)信息返回而是等待,直到狀態(tài)發(fā) 生變化或超時后才將狀態(tài)信息返回,這樣避免了大量重復(fù)信息的發(fā)送,從而有效降低了網(wǎng) 絡(luò)通信負載。(2)傳統(tǒng)的JSP頁面必須手動刷新客戶端頁面向服務(wù)器發(fā)起請求,等待服務(wù)器的 結(jié)果后刷新整個頁面的值,若服務(wù)器端響應(yīng)慢,客戶端將會是空白頁面而無法操作,本發(fā)明 的客戶端頁面采用Ajax調(diào)用Web服務(wù)的方式主動發(fā)起異步請求,由于請求為異步方式,客 戶端頁面不必等待服務(wù)器端的響應(yīng),因此在請求的過程中頁面的顯示不會發(fā)生變化,用戶 仍然可以和客戶端進行交互,服務(wù)器端的狀態(tài)信息返回之后,客戶端頁面獲取狀態(tài)信息并 更新局部頁面的值,而不是重新加載整個頁面,實現(xiàn)了狀態(tài)頁面無刷新實時顯示。(3)本發(fā)明的狀態(tài)數(shù)據(jù)提交模塊采用Web服務(wù)技術(shù)對功能進行封裝,采用WSDL協(xié) 議進行服務(wù)描述,數(shù)據(jù)傳輸采用標準SOAP協(xié)議,由于Web服務(wù)的松耦合特性,它只需對外提 供一個接口,調(diào)用方無需關(guān)心具體實現(xiàn),極大地降低了系統(tǒng)的耦合度和復(fù)雜度;更為重要的 是它不依賴于具體的編程語言和系統(tǒng)平臺,其出色的跨平臺能力很好地解決了系統(tǒng)內(nèi)平臺 異構(gòu)的問題,極大地提高了系統(tǒng)靈活性;(4)本發(fā)明的狀態(tài)數(shù)據(jù)提交模塊采用Berkley DB內(nèi)存數(shù)據(jù)庫實現(xiàn)狀態(tài)信息的存 儲或更新,其高速的讀寫技術(shù)使得在其之上的操作與操作內(nèi)存相差無幾,有效降低了數(shù)據(jù) 的存儲開銷,使任務(wù)執(zhí)行狀態(tài)信息和系統(tǒng)運行狀態(tài)信息發(fā)生變化時能實時更新到狀態(tài)數(shù)據(jù) 本地庫中,保證監(jiān)控數(shù)據(jù)的實時性要求;(5)本發(fā)明已應(yīng)用于某遙感衛(wèi)星地面數(shù)據(jù)處理系統(tǒng),經(jīng)過該系統(tǒng)兩年的實際業(yè)務(wù) 運行證明了本發(fā)明的正確性和可用性。


      圖1為本發(fā)明的功能結(jié)構(gòu)圖;圖2為本發(fā)明的任務(wù)運行監(jiān)控模塊示意圖;圖3為本發(fā)明的系統(tǒng)狀態(tài)監(jiān)視模塊示意圖;圖4為本發(fā)明的樹形存儲結(jié)構(gòu)示意圖;圖5為本發(fā)明的狀態(tài)數(shù)據(jù)維護模塊示意圖;圖6為本發(fā)明的客戶端頁面示意圖。
      具體實施例方式下面結(jié)合附圖對本發(fā)明作進一步說明。如圖1所示,本發(fā)明基于Ajax和Web服務(wù)技術(shù)的衛(wèi)星應(yīng)用系統(tǒng),該系統(tǒng)主要包括 任務(wù)運行監(jiān)控模塊、系統(tǒng)狀態(tài)監(jiān)視模塊、狀態(tài)數(shù)據(jù)提交模塊、狀態(tài)數(shù)據(jù)維護模塊、狀態(tài)數(shù)據(jù) 獲取模塊和客戶端頁面。其中,涉及到的任務(wù)類型包括常規(guī)生產(chǎn)任務(wù)(簡稱常規(guī)任務(wù),指操 作員根據(jù)衛(wèi)星接收的原始數(shù)據(jù)制定的自動生產(chǎn)任務(wù))、訂購未生產(chǎn)產(chǎn)品任務(wù)(指用戶請求 的產(chǎn)品還未經(jīng)過生產(chǎn)環(huán)節(jié))和訂購已生產(chǎn)產(chǎn)品任務(wù)(指用戶請求的產(chǎn)品已經(jīng)生產(chǎn)完畢,待 上傳),每種任務(wù)又包括一個或多個子任務(wù),任務(wù)執(zhí)行過程中產(chǎn)生的狀態(tài)數(shù)據(jù)稱為任務(wù)信息和子任務(wù)信息;系統(tǒng)包括多種設(shè)備和應(yīng)用軟件,設(shè)備類型包括計算機、路由器、交換機、磁盤 陣列、磁帶庫和網(wǎng)閘等,設(shè)備的狀態(tài)值稱為設(shè)備狀態(tài)信息,應(yīng)用軟件包括OMS (運行管理分 系統(tǒng)軟件)、DIMS (數(shù)據(jù)存儲和管理分系統(tǒng)軟件)、USS (用戶服務(wù)分系統(tǒng)軟件)和DPS (數(shù)據(jù) 處理分系統(tǒng)軟件),應(yīng)用軟件的狀態(tài)值稱為應(yīng)用軟件狀態(tài)信息。上述設(shè)備和應(yīng)用軟件僅屬于 本發(fā)明監(jiān)視的對象,其具體功能與本發(fā)明無關(guān)。本發(fā)明的工作過程如下1、在Web服務(wù)器端定義狀態(tài)數(shù)據(jù)提交接口,包括輸入?yún)?shù)、操作名稱和返回值,其 中輸入?yún)?shù)是要提交的任務(wù)執(zhí)行狀態(tài)信息、設(shè)備狀態(tài)信息和應(yīng)用軟件狀態(tài)信息;操作名稱 用于區(qū)分提交操作針對的對象;返回值為布爾類型,用于標識提交操作是否成功。將該接口 發(fā)布成Web服務(wù),并生成服務(wù)的描述WSDL文件,用于生成Web服務(wù)的客戶端。2、任務(wù)運行監(jiān)控模塊負責任務(wù)的創(chuàng)建并維護任務(wù)執(zhí)行狀態(tài),任務(wù)執(zhí)行過程中當任 務(wù)執(zhí)行狀態(tài)發(fā)生變化時,任務(wù)運行監(jiān)控模塊將任務(wù)執(zhí)行狀態(tài)信息通過Web服務(wù)客戶端提交 到狀態(tài)數(shù)據(jù)提交模塊,如圖2所示,任務(wù)運行監(jiān)控模塊具體執(zhí)行過程如下(1)接收用戶提交的衛(wèi)星數(shù)據(jù)產(chǎn)品生產(chǎn)訂單,調(diào)用任務(wù)生成模塊自動創(chuàng)建一個新 任務(wù),任務(wù)類型包括常規(guī)任務(wù)、訂購未生產(chǎn)產(chǎn)品任務(wù)和訂購已生產(chǎn)產(chǎn)品任務(wù);(2)根據(jù)創(chuàng)建的任務(wù)類型啟動相應(yīng)的任務(wù)監(jiān)控線程,調(diào)度該任務(wù)執(zhí)行,任務(wù)執(zhí)行過 程中根據(jù)各子任務(wù)的執(zhí)行結(jié)果改變?nèi)蝿?wù)執(zhí)行狀態(tài)信息;(3)任務(wù)執(zhí)行狀態(tài)信息發(fā)生變化時,將任務(wù)執(zhí)行狀態(tài)信息通過Web服務(wù)客戶端提 交到狀態(tài)數(shù)據(jù)提交模塊;(4)對于失敗的任務(wù),用戶可在失敗列表中進行手動重試,重試操作重新激活任務(wù) 監(jiān)控線程,控制其在任務(wù)失敗點開始繼續(xù)執(zhí)行。3、系統(tǒng)狀態(tài)監(jiān)視模塊負責收集系統(tǒng)運行狀態(tài)信息并上報,當系統(tǒng)運行狀態(tài)信息發(fā) 生變化時,系統(tǒng)狀態(tài)監(jiān)視模塊將系統(tǒng)運行狀態(tài)信息通過Web服務(wù)客戶端提交到狀態(tài)數(shù)據(jù)提 交模塊,收集方式分為兩種設(shè)備方上報或主動查詢。在設(shè)備上報模式下,受監(jiān)控的設(shè)備或 應(yīng)用軟件周期上報其自身的狀態(tài)信息,在主動查詢模式下,系統(tǒng)狀態(tài)監(jiān)視模塊通過狀態(tài)獲 取模塊主動查詢的方式實時獲取設(shè)備和應(yīng)用軟件的狀態(tài)信息,兩種模式可以同時使用。如 圖3所示,系統(tǒng)狀態(tài)監(jiān)視收集到系統(tǒng)運行狀態(tài)信息后,處理過程如下(1)在系統(tǒng)運行狀態(tài)信息中獲取設(shè)備號idNew ;(2)獲取當前的系統(tǒng)運行狀態(tài)信息列表;(3)對系統(tǒng)運行狀態(tài)信息列表進行輪詢,獲取第一個系統(tǒng)運行狀態(tài)信息,獲取該系 統(tǒng)運行狀態(tài)信息中的設(shè)備號id ;(4) id與idNew進行對比,若一致,執(zhí)行步驟(5),否則執(zhí)行步驟(7);(5)將設(shè)備號為id的系統(tǒng)運行狀態(tài)信息與設(shè)備號為idNew的系統(tǒng)運行狀態(tài)信息進 行對比,若不同執(zhí)行步驟(6),否則退出。(6)將系統(tǒng)運行狀態(tài)信息通過Web服務(wù)客戶端提交到狀態(tài)數(shù)據(jù)提交模塊;(7)判斷是否有下一個系統(tǒng)運行狀態(tài)信息,若有,獲取下一個系統(tǒng)運行狀態(tài)信息, 獲取該系統(tǒng)運行狀態(tài)信息中的設(shè)備號id,執(zhí)行步驟(4),否則退出。4、狀態(tài)數(shù)據(jù)提交模塊接收任務(wù)執(zhí)行狀態(tài)信息和系統(tǒng)運行狀態(tài)信息,調(diào)用Berkley DB提供的持久化方法將上述狀態(tài)信息存儲或更新至狀態(tài)數(shù)據(jù)本地庫中,并向狀態(tài)數(shù)據(jù)維護模塊發(fā)送狀態(tài)變更通知,通知的內(nèi)容為更新的狀態(tài)信息類型;信息存儲或更新操作采用線 程同步,以保證數(shù)據(jù)安全性。5、狀態(tài)數(shù)據(jù)維護模塊以樹形結(jié)構(gòu)標識狀態(tài)信息類型,根節(jié)點代表所有狀態(tài)信息類 型,子節(jié)點代表在該狀態(tài)信息類型之下的子狀態(tài)信息類型分支,每個節(jié)點的值代表該節(jié)點 當前的狀態(tài)點標識。 如圖4所示,根結(jié)點下有兩個子節(jié)點代表任務(wù)執(zhí)行狀態(tài)信息和系統(tǒng)運行狀態(tài)信 息,任務(wù)執(zhí)行狀態(tài)信息下又有3個子節(jié)點代表常規(guī)任務(wù)信息、訂購未生產(chǎn)產(chǎn)品任務(wù)信息和 訂購已生產(chǎn)產(chǎn)品任務(wù)信息,每個任務(wù)信息節(jié)點下又有一個或多個子節(jié)點代表該任務(wù)的子任 務(wù)信息;系統(tǒng)運行狀態(tài)信息下又有兩個子節(jié)點代表設(shè)備狀態(tài)信息和應(yīng)用軟件狀態(tài)信息,設(shè) 備狀態(tài)信息節(jié)點下每個子節(jié)點代表一種類型設(shè)備的狀態(tài)信息,應(yīng)用軟件狀態(tài)信息節(jié)點下每 個子節(jié)點代表系統(tǒng)中一個應(yīng)用軟件的狀態(tài)信息;樹中每層節(jié)點均按照從左到右的順序進行 編號(從0開始),從根節(jié)點出發(fā)到目的節(jié)點經(jīng)過的分支編號即為該節(jié)點的編號。如圖5所示,狀態(tài)數(shù)據(jù)維護模塊負責更新狀態(tài)信息的狀態(tài)點標識以及響應(yīng)客戶端 的狀態(tài)信息請求;狀態(tài)數(shù)據(jù)維護模塊更新狀態(tài)信息的狀態(tài)點標識具體過程如下(1)接收狀態(tài)變更通知,根據(jù)通知中的狀態(tài)信息類型匹配樹中對應(yīng)的節(jié)點ml ;以 更新計算機設(shè)備狀態(tài)點標識為例,狀態(tài)信息類型填寫為“100”,從根節(jié)點找到1分支,即系 統(tǒng)運行狀態(tài)信息節(jié)點,再找到0分支,即設(shè)備狀態(tài)信息節(jié)點,再找到0分支即計算機設(shè)備信 息接點;(2)獲取根節(jié)點的狀態(tài)點標識,并執(zhí)行遞增操作,若遞增后狀態(tài)點標識沒有超過設(shè) 定的最大值,則更新ml的節(jié)點值;否則執(zhí)行步驟(4);(3)遍歷ml的所有父節(jié)點,并更新其節(jié)點值,直到更新根節(jié)點為止;(4)若狀態(tài)點標識超過設(shè)定的最大值,將樹中所有節(jié)點的值清零。狀態(tài)數(shù)據(jù)維護模塊響應(yīng)客戶端的狀態(tài)信息請求的具體過程如下(1)接收客戶端頁面的狀態(tài)數(shù)據(jù)獲取請求,根據(jù)請求中的狀態(tài)信息類型匹配樹中 對應(yīng)的節(jié)點nl ;(2)設(shè)置比對次數(shù)的初始值為0 ;(3)將請求中的狀態(tài)點標識與nl的節(jié)點值進行比對,若不一致,執(zhí)行步驟(6),否 則執(zhí)行步驟⑷;(4)比對次數(shù)加1 ;(5)休眠一段時間,若比對次數(shù)沒有超過設(shè)定的最大值,重復(fù)執(zhí)行步驟(3),否則 執(zhí)行步驟(6);(6)根據(jù)請求的狀態(tài)信息類型調(diào)用狀態(tài)數(shù)據(jù)獲取模塊獲取狀態(tài)信息并返回。6、客戶端頁面負責實時獲取狀態(tài)信息并以圖表的形式向用戶展現(xiàn)。如圖6所示,具體執(zhí)行過程如下(1)客戶端頁面通過Ajax客戶端主動發(fā)起狀態(tài)數(shù)據(jù)獲取請求,請求中包括狀態(tài)信 息類型及當前的狀態(tài)點標識(初始值為-ι);(2)異步接收狀態(tài)數(shù)據(jù)獲取請求的結(jié)果,結(jié)果中包含狀態(tài)信息和服務(wù)器端最新的 狀態(tài)點標識;(3)初始化Javascript數(shù)組,用于暫存請求結(jié)果中包含的狀態(tài)信息;
      (4)在請求結(jié)果中獲取SOAP體內(nèi)類型為MultiRef的所有節(jié)點;(5)對每個MultiRef節(jié)點進行遍歷,獲取該節(jié)點內(nèi)的狀態(tài)信息,將狀態(tài)信息打包 后加入狀態(tài)數(shù)組;(6)根據(jù)數(shù)組中的狀態(tài)信息更新局部頁面上的狀態(tài)值;(7)將狀態(tài)點標識存入客戶端的會話中;(8)休眠一段時間,重復(fù)執(zhí)行步驟(1)。實施例1 (以任務(wù)運行監(jiān)控為例)1、定義某遙感衛(wèi)星常規(guī)任務(wù)提交接口,該接口輸入?yún)?shù)為常規(guī)任務(wù)對象,其屬性 為任務(wù)的詳細參數(shù);操作名稱為submitRoutineMission,表示提交的是常規(guī)任務(wù);返回值 為布爾類型,代表提交的結(jié)果為成功或失??;將該接口發(fā)布成Web服務(wù),并運用該服務(wù)的描 述SubmitService. wsdl文件生成常規(guī)任務(wù)提交客戶端。2、假設(shè)操作員通過任務(wù)制定界面請求定制一個常規(guī)任務(wù),任務(wù)運行監(jiān)控模塊自動 生成一個新的常規(guī)任務(wù),同時啟動常規(guī)任務(wù)監(jiān)控線程,監(jiān)控線程調(diào)度該任務(wù)執(zhí)行,根據(jù)其子 任務(wù)執(zhí)行的結(jié)果改變?nèi)蝿?wù)執(zhí)行狀態(tài)信息,任務(wù)運行監(jiān)控模塊通過Web服務(wù)客戶端將任務(wù)執(zhí) 行狀態(tài)信息提交到狀態(tài)數(shù)據(jù)提交模塊;對于失敗的任務(wù),用戶可在失敗列表中選擇該任務(wù) 并重試,此時會重新激活常規(guī)任務(wù)監(jiān)控線程,從失敗點處調(diào)度任務(wù)繼續(xù)執(zhí)行。3、狀態(tài)數(shù)據(jù)提交模塊接收常規(guī)任務(wù)執(zhí)行狀態(tài)信息,若為首次提交,則調(diào)用Berkley DB的持久化方法將常規(guī)任務(wù)執(zhí)行狀態(tài)信息存儲到狀態(tài)數(shù)據(jù)本地庫,否則更新Berkley DB 中的任務(wù)執(zhí)行狀態(tài)值。同時,狀態(tài)數(shù)據(jù)提交模塊向狀態(tài)數(shù)據(jù)維護模塊發(fā)送狀態(tài)變更通知,其 中狀態(tài)信息類型為“000”。4、狀態(tài)數(shù)據(jù)維護模塊接收狀態(tài)變更通知并更新狀態(tài)點標識,具體執(zhí)行過程如下(1)系統(tǒng)啟動時對狀態(tài)樹進行初始化,設(shè)置各節(jié)點的值為0 ;(2)接收狀態(tài)變更通知,記錄根結(jié)點的狀態(tài)值;(3)獲取通知中的狀態(tài)信息類型為“000”,對狀態(tài)樹進行遍歷,匹配節(jié)點編號為 “000”的節(jié)點,此處為根結(jié)點- >任務(wù)執(zhí)行狀態(tài)信息- >常規(guī)任務(wù)信息- >子任務(wù)1信息;(4)將根節(jié)點的狀態(tài)值加1,若加1后沒有超過最大值,則更新編號為“000”節(jié)點 的狀態(tài)值為最新值,并依次更新其父節(jié)點的值(節(jié)點“00-常規(guī)任務(wù)信息” “0-任務(wù)執(zhí)行狀 態(tài)信息”),直到更新根節(jié)點,否則執(zhí)行步驟(5);(5)若加1后超過了最大值,則重新對狀態(tài)樹進行初始化,設(shè)置各節(jié)點的值為0。5、用戶打開客戶端任務(wù)監(jiān)控頁面,并選擇剛制定的常規(guī)任務(wù),該頁面通過Ajax客 戶端發(fā)起狀態(tài)數(shù)據(jù)獲取請求,請求中包括狀態(tài)信息類型“000”及其狀態(tài)點標識(初始值 為-1)。6、狀態(tài)數(shù)據(jù)維護模塊接收客戶端的請求,獲取請求中的狀態(tài)信息類型“000”及其 狀態(tài)點標識-1,按照4中第(3)步的方法匹配對應(yīng)的節(jié)點,將請求中的狀態(tài)點標識-1與節(jié) 點值進行比對,若不一致,則調(diào)用狀態(tài)數(shù)據(jù)獲取模塊獲取狀態(tài)信息并返回,否則進行等待, 直到節(jié)點值發(fā)生變化或時間超時后再調(diào)用狀態(tài)數(shù)據(jù)獲取模塊獲取狀態(tài)信息并返回;7、客戶端接收返回信息并進行解析,根據(jù)獲取的狀態(tài)信息更新局部頁面的狀態(tài) 值,將返回的狀態(tài)點標識寫入session ;8、客戶端重新發(fā)起狀態(tài)數(shù)據(jù)獲取請求,請求中包括狀態(tài)信息類型“000”及其狀態(tài)點標識(session中的狀態(tài)值),執(zhí)行步驟6。實施例2 (以路由器設(shè)備狀態(tài)監(jiān)視為例)
      1、定義路由器狀態(tài)提交接口,該接口輸入?yún)?shù)為路由器設(shè)備信息,其屬性為設(shè)備 編號,設(shè)備名稱,所屬分系統(tǒng)和該路由器的狀態(tài)值;操作名稱為submitRouterState,表示 提交的是路由器設(shè)備狀態(tài);返回值為布爾類型,代表提交的結(jié)果為成功或失??;將該接口 發(fā)布成Web服務(wù),并運用該服務(wù)的描述SubmitService. wsdl文件生成設(shè)備狀態(tài)提交客戶端。2、系統(tǒng)狀態(tài)監(jiān)視模塊通過SNMP協(xié)議實時獲取路由器設(shè)備的狀態(tài)及其各端口連接 狀態(tài),將路由器設(shè)備的狀態(tài)信息通過Web服務(wù)客戶端提交到狀態(tài)數(shù)據(jù)提交模塊。3、狀態(tài)數(shù)據(jù)提交模塊接收路由器的狀態(tài)信息,根據(jù)路由器的設(shè)備號判斷是否為首 次提交,若是則調(diào)用Berkley DB的持久化方法將路由器狀態(tài)信息存儲到狀態(tài)數(shù)據(jù)本地庫, 否則更新Berkley DB中的設(shè)備狀態(tài)值,同時,狀態(tài)數(shù)據(jù)提交模塊向狀態(tài)數(shù)據(jù)維護模塊發(fā)送 狀態(tài)變更通知,其中狀態(tài)信息類型為“109”(假設(shè)狀態(tài)樹中路由器的節(jié)點標識為9)。4、狀態(tài)數(shù)據(jù)維護模塊接收狀態(tài)變更通知并更新狀態(tài)點標識,具體執(zhí)行過程如下(1)系統(tǒng)啟動時對狀態(tài)樹進行初始化,設(shè)置各節(jié)點的值為0 ;(2)接收狀態(tài)變更通知,記錄根結(jié)點的狀態(tài)值;(3)獲取通知中的狀態(tài)信息類型為“ 109 ”,根據(jù)編號對狀態(tài)樹進行遍歷,匹配節(jié)點 編號為“109”的節(jié)點,此處為根結(jié)點_ >系統(tǒng)運行狀態(tài)信息_ >設(shè)備狀態(tài)信息_ >路由器 fn息;(4)將根節(jié)點的狀態(tài)值加1,若加1后沒有超過最大值,則更新編號為“109”節(jié)點 的狀態(tài)值為最新值,并依次更新其父節(jié)點的值(節(jié)點“10-設(shè)備狀態(tài)信息” “1-系統(tǒng)運行狀 態(tài)信息”),直到更新根節(jié)點,否則執(zhí)行步驟5 ;(5)若加1后超過了最大值,則重新對狀態(tài)樹進行初始化,設(shè)置各節(jié)點的值為0。5、用戶打開客戶端路由器設(shè)備監(jiān)視頁面,該頁面通過Ajax客戶端發(fā)起狀態(tài)數(shù)據(jù) 獲取請求,請求中包括狀態(tài)信息類型“109”及其狀態(tài)點標識(初始值為-1);6、狀態(tài)數(shù)據(jù)維護模塊接收客戶端的請求,獲取請求中的狀態(tài)信息類型“109”及其 狀態(tài)點標識-1,按照4中第(3)步的方法匹配樹中對應(yīng)的節(jié)點,將請求中的狀態(tài)點標識-1 與節(jié)點值進行比對,若不一致,則調(diào)用狀態(tài)數(shù)據(jù)獲取模塊獲取路由器的狀態(tài)信息并返回,否 則進行等待,直到節(jié)點值發(fā)生變化或時間超時后再調(diào)用狀態(tài)數(shù)據(jù)獲取模塊獲取狀態(tài)信息并 返回;7、客戶端接收返回信息并進行解析,將返回的狀態(tài)點標識寫入session,并根據(jù)獲 取的狀態(tài)信息調(diào)用畫圖模塊重繪路由器各端口的顏色(綠色表示正常,紅色表示故障);8、客戶端重新發(fā)起狀態(tài)數(shù)據(jù)獲取請求,請求中包括狀態(tài)信息類型“109”及其狀態(tài) 點標識(session中的狀態(tài)值),執(zhí)行步驟6。本發(fā)明說明書中未作詳細描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。
      權(quán)利要求
      一種基于Ajax和Web服務(wù)技術(shù)的衛(wèi)星應(yīng)用系統(tǒng)運行監(jiān)控方法,其特征在于步驟如下(1)在Web服務(wù)器端定義狀態(tài)數(shù)據(jù)提交接口,并將該接口以Web服務(wù)的方式進行發(fā)布,對外提供服務(wù)描述WSDL文件,用于生成Web服務(wù)客戶端;(2)任務(wù)運行監(jiān)控模塊負責任務(wù)的創(chuàng)建并維護任務(wù)執(zhí)行狀態(tài),任務(wù)執(zhí)行過程中當任務(wù)執(zhí)行狀態(tài)發(fā)生變化時,任務(wù)運行監(jiān)控模塊將任務(wù)執(zhí)行狀態(tài)信息通過Web服務(wù)客戶端提交到狀態(tài)數(shù)據(jù)提交模塊;系統(tǒng)狀態(tài)監(jiān)視模塊負責收集系統(tǒng)運行狀態(tài)信息并上報,當系統(tǒng)運行狀態(tài)信息發(fā)生變化時,系統(tǒng)狀態(tài)監(jiān)視模塊將系統(tǒng)運行狀態(tài)信息通過Web服務(wù)客戶端提交到狀態(tài)數(shù)據(jù)提交模塊;(3)狀態(tài)數(shù)據(jù)提交模塊接收任務(wù)執(zhí)行狀態(tài)信息和系統(tǒng)運行狀態(tài)信息,將上述狀態(tài)信息存儲或更新至狀態(tài)數(shù)據(jù)本地庫中,并向狀態(tài)數(shù)據(jù)維護模塊發(fā)送狀態(tài)變更通知,通知的內(nèi)容為更新的狀態(tài)信息類型,所述狀態(tài)信息類型包括任務(wù)執(zhí)行狀態(tài)信息和系統(tǒng)運行狀態(tài)信息,任務(wù)執(zhí)行狀態(tài)信息包括常規(guī)任務(wù)信息、訂購未生產(chǎn)產(chǎn)品任務(wù)信息和訂購已生產(chǎn)產(chǎn)品任務(wù)信息,每種任務(wù)信息又包括一個或多個子任務(wù)信息;系統(tǒng)運行狀態(tài)信息包括設(shè)備狀態(tài)信息和應(yīng)用軟件狀態(tài)信息,設(shè)備狀態(tài)信息包括系統(tǒng)中每種類型設(shè)備的狀態(tài)信息,應(yīng)用軟件狀態(tài)信息包括系統(tǒng)中每個應(yīng)用軟件的狀態(tài)信息;(4)狀態(tài)數(shù)據(jù)維護模塊以樹形結(jié)構(gòu)標識狀態(tài)信息類型,根節(jié)點代表所有狀態(tài)信息類型,子節(jié)點代表在該狀態(tài)信息類型之下的子狀態(tài)信息類型分支,每個節(jié)點的值代表該節(jié)點當前的狀態(tài)點標識;狀態(tài)數(shù)據(jù)維護模塊負責更新狀態(tài)信息的狀態(tài)點標識以及響應(yīng)客戶端頁面的狀態(tài)信息請求;狀態(tài)數(shù)據(jù)維護模塊接收狀態(tài)數(shù)據(jù)提交模塊發(fā)送的狀態(tài)變更通知,根據(jù)通知中的狀態(tài)信息類型匹配樹中對應(yīng)的節(jié)點,并更新該節(jié)點的狀態(tài)點標識;狀態(tài)數(shù)據(jù)維護模塊在接收到客戶端頁面的狀態(tài)信息請求之后,獲取請求中的狀態(tài)信息類型及其狀態(tài)點標識,根據(jù)狀態(tài)信息類型匹配樹中對應(yīng)的節(jié)點,將請求中的狀態(tài)點標識與節(jié)點值進行比對,若不一致,則調(diào)用狀態(tài)數(shù)據(jù)獲取模塊獲取狀態(tài)信息并返回,否則進行等待,直到節(jié)點值發(fā)生變化或時間超時后再調(diào)用狀態(tài)數(shù)據(jù)獲取模塊獲取狀態(tài)信息并返回;(5)客戶端頁面負責實時獲取狀態(tài)信息并以圖表的形式向用戶展現(xiàn);客戶端頁面定時發(fā)起狀態(tài)數(shù)據(jù)獲取請求,請求中包括狀態(tài)信息類型及當前的狀態(tài)點標識;狀態(tài)數(shù)據(jù)維護模塊對請求進行響應(yīng),并將狀態(tài)信息通過SOAP協(xié)議打包并返回客戶端頁面,客戶端頁面接收返回信息并進行解析,根據(jù)解析結(jié)果實時更新局部頁面的狀態(tài)信息及其狀態(tài)點標識。
      2.根據(jù)權(quán)利要求1所述的一種基于Ajax和Web服務(wù)技術(shù)的衛(wèi)星應(yīng)用系統(tǒng)運行監(jiān)控方 法,其特征在于所述狀態(tài)數(shù)據(jù)維護模塊以樹形結(jié)構(gòu)標識狀態(tài)信息類型,負責更新狀態(tài)信息 的狀態(tài)點標識具體過程如下(1)接收狀態(tài)變更通知,根據(jù)通知中的狀態(tài)信息類型匹配樹中對應(yīng)的節(jié)點ml;(2)獲取根節(jié)點的狀態(tài)點標識,并執(zhí)行遞增操作,若狀態(tài)點標識沒有超過設(shè)定的最大 值,則更新ml的節(jié)點值;否則執(zhí)行步驟⑷;(3)遍歷ml的所有父節(jié)點,并更新其節(jié)點值,直到更新根節(jié)點為止;(4)若狀態(tài)點標識超過設(shè)定的最大值,將樹中所有節(jié)點的值清零。
      3.根據(jù)權(quán)利要求1所述的一種基于Ajax和Web服務(wù)技術(shù)的衛(wèi)星應(yīng)用系統(tǒng)運行監(jiān)控 方法,其特征在于所述狀態(tài)數(shù)據(jù)維護模塊響應(yīng)客戶端頁面的狀態(tài)信息請求的具體過程如下(1)接收客戶端頁面的狀態(tài)數(shù)據(jù)獲取請求,根據(jù)請求中的狀態(tài)信息類型匹配樹中對應(yīng) 的節(jié)點nl ;(2)設(shè)置比對次數(shù)的初始值為O;(3)將請求中的狀態(tài)點標識與nl的節(jié)點值進行比對,若不一致,執(zhí)行步驟(6),否則執(zhí) 行步驟⑷;(4)比對次數(shù)加1;(5)休眠一段時間,若比對次數(shù)沒有超過設(shè)定的最大值,重復(fù)執(zhí)行步驟(3),否則執(zhí)行 步驟(6);(6)根據(jù)請求的狀態(tài)信息類型調(diào)用狀態(tài)數(shù)據(jù)獲取模塊獲取狀態(tài)信息并返回。
      4.根據(jù)權(quán)利要求1所述的一種基于Ajax和Web服務(wù)技術(shù)的衛(wèi)星應(yīng)用系統(tǒng)運行監(jiān)控方 法,其特征在于步驟(3)中狀態(tài)信息存儲或更新基于BerkleyDB內(nèi)存數(shù)據(jù)庫。
      5.根據(jù)權(quán)利要求1所述的一種基于Ajax和Web服務(wù)技術(shù)的衛(wèi)星應(yīng)用系統(tǒng)運行監(jiān)控方 法,其特征在于采用SOAP協(xié)議進行任務(wù)執(zhí)行狀態(tài)信息和系統(tǒng)運行狀態(tài)信息的傳輸。
      全文摘要
      一種基于Ajax和Web服務(wù)技術(shù)的衛(wèi)星應(yīng)用系統(tǒng)運行監(jiān)控方法,包括定義狀態(tài)數(shù)據(jù)提交接口,將該接口發(fā)布成Web服務(wù);任務(wù)運行監(jiān)控模塊和系統(tǒng)狀態(tài)監(jiān)視模塊通過Web服務(wù)客戶端將狀態(tài)信息提交到狀態(tài)數(shù)據(jù)提交模塊;狀態(tài)數(shù)據(jù)提交模塊將狀態(tài)信息更新到狀態(tài)數(shù)據(jù)本地庫,向狀態(tài)數(shù)據(jù)維護模塊發(fā)送狀態(tài)變更通知;狀態(tài)數(shù)據(jù)維護模塊更新狀態(tài)信息的狀態(tài)點標識,并響應(yīng)客戶端的狀態(tài)信息請求,有狀態(tài)信息提交或超時后將狀態(tài)信息推遲返回;客戶端頁面通過Ajax客戶端異步獲取狀態(tài)信息,更新局部頁面的狀態(tài)值和狀態(tài)點標識。本發(fā)明針對衛(wèi)星地面應(yīng)用系統(tǒng)的任務(wù)運行監(jiān)控和系統(tǒng)狀態(tài)監(jiān)視,解決了重復(fù)信息耗費網(wǎng)絡(luò)資源、頁面無法自動和服務(wù)器同步、系統(tǒng)高耦合、靈活性低等難點。
      文檔編號H04L12/26GK101815013SQ20091024309
      公開日2010年8月25日 申請日期2009年12月24日 優(yōu)先權(quán)日2009年12月24日
      發(fā)明者劉華, 孫曉良, 李穎, 梁潔雯, 石貞云 申請人:航天恒星科技有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1