[發明專利]一種基于窗口平臺的應用程序監控方法無效
| 申請號: | 200810057072.4 | 申請日: | 2008-01-29 |
| 公開(公告)號: | CN101227630A | 公開(公告)日: | 2008-07-23 |
| 發明(設計)人: | 劉少情 | 申請(專利權)人: | 中興通訊股份有限公司 |
| 主分類號: | H04Q3/00 | 分類號: | H04Q3/00;H04L12/24;H04M3/22 |
| 代理公司: | 北京匯澤知識產權代理有限公司 | 代理人: | 張穎玲;王黎延 |
| 地址: | 518057廣東省深圳市南山*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 窗口 平臺 應用程序 監控 方法 | ||
技術領域
本發明涉及應用程序監控技術,具體涉及一種基于窗口平臺的應用程序監控方法。
背景技術
在電信網絡中,除了用于完成用戶接入和呼叫流程處理的嵌入式系統外,網管服務、計費服務、統計服務、智能呼叫等服務功能也是在后臺服務器上實現的,而由于窗口(Windows)平臺具有通用性、易操作性等特點,所以,現有電信網絡中很多后臺服務器都是基于Windows平臺的。
為了使一個后臺服務器可以提供多種服務功能,通常的做法是將每種服務功能做成一個獨立的應用程序,例如完成計費功能的計費服務器程序、完成統計功能的統計服務器程序等。多個獨立的程序在同一個后臺服務器上運行時,如果出現某個或某些程序異常或長時間不響應的情況,就需要及時重啟所述程序甚至重啟服務器,否則將會導致業務錯誤,甚至業務中斷。因此,必須采用有效的監控方法,實時監控這些運行在同一個后臺服務器上的多個應用程序的運行狀況,以便在應用程序異常或長時間不響應的情況下,及時重啟程序或服務器以保證業務正常。
Windows操作系統本身提供了一些針對Windows平臺上應用程序的監控方法,例如,將應用程序做成服務程序,在服務配置時,通過服務控制器設置在服務失敗時重啟服務程序或重啟服務器。但是,由于服務控制器無法對服務程序長時間不響應的情況及時作出判斷,不能很好地滿足在重啟一個程序的同時,重啟其他幾個相關程序的要求,所以,這種方法實時性差,且容易引起后臺服務器功能錯誤。
還有一種應用程序監控方法,通過編寫監控程序,由監控程序對相關應用程序的運行狀態進行監控。監控程序對應用程序的監控是通過定時與被監控程序握手實現的,如果監控程序檢測到某個被監控應用程序的握手信號在一段時間內丟失,則認為該應用程序長時間未響應或者出現異常,從而可以重啟應用程序或服務器以保證業務正常。握手的方法一般采用發送消息或寫共享內存的方式,但這兩種方式均需要在被監控應用程序中增加相應的代碼,以響應握手消息或寫共享內存。所以,這種方法占用系統資源,且可擴展性差。
發明內容
有鑒于此,本發明的主要目的在于提供一種基于窗口平臺的應用程序監控方法,能夠實現準確的實時監控、并且可擴張性好。
為達到上述目的,本發明的技術方案是這樣實現的:
一種基于窗口平臺的應用程序監控方法,該方法包括:
a、監控程序啟動后,根據配置文件中被監控應用程序的配置信息分別創建被監控應用程序進程;
b、所述被監控應用程序進程創建成功后,監控程序將注入動態鏈接庫DLL的代碼注入所述創建成功的進程;
c、注入DLL修改所述創建成功進程中的消息分發函數代碼;
d、監控程序定時向所有的被監控應用程序發送握手消息,被監控應用程序收到消息后,調用步驟c所述修改后的消息分發函數,所述修改后的消息分發函數確定收到消息為監控程序發送的握手消息時,向監控程序返回應答消息。
所述配置文件中的應用程序配置信息至少包括:應用程序的路徑、應用程序最大應答超時次數和發送握手消息頻率。
步驟b所述將注入DLL的代碼注入進程為:在進程中創建一個入口函數為DLL加載函數、參數為注入DLL名稱的線程并執行。
所述DLL修改系統消息分發函數代碼包括:
c1、設置與消息分發函數參數類型和返回類型相同的函數指針x,為所設置的指針申請內存;
c2、設置函數y,所設置函數的參數類型和返回類型與消息分發函數相同;
c3、將消息分發函數代碼的前五個字節拷貝到指針x所指向內存的前五個字節,并修改消息分發函數代碼的第一個字節為跳轉JMP指令,后四個字節為跳轉到函數y的字節數;
c4、將指針x所指向內存的第六個字節修改為JMP指令,其后四個字節為跳轉到消息分發函數第六個字節的字節數。
步驟c2所述函數y,用于判斷被監控應用程序進程收到的消息是否為監控程序發送的握手消息,如果是,則向監控程序返回應答信息后調用指針x;否則直接調用指針x。
設置應答時間閾值,如果監控程序發出握手消息后在應答時間閾值內未收到應答消息,則應答超時;當所述被監控應用程序應答超時次數大于應用程序最大應答超時次數時,監控程序重啟所述被監控應用程序進程及其相關應用程序進程。
所述重啟被監控應用程序之前,該方法進一步包括:監控程序結束所述被監控應用程序進程。
設置超時次數閾值,該方法進一步包括:所有被監控應用程序重啟次數超過設定的超時次數閾值時,重啟服務器。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中興通訊股份有限公司,未經中興通訊股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200810057072.4/2.html,轉載請聲明來源鉆瓜專利網。





