新四季網

一種基於動態代理實現的插件調度過程監控的方法

2023-06-24 00:20:16

一種基於動態代理實現的插件調度過程監控的方法
【專利摘要】本發明提供一種基於動態代理實現的插件調度過程監控的方法,該監控方法中所有被監控的系統都是基於插件式開發的。監控邏輯的實現包括接口插件模塊、創建實現對象模塊、策略模塊、監控邏輯模塊、數據存儲模塊和返回實現對象模塊。所述接口插件模塊根據接口類名進入所述創建實現對象模塊,實現對象使用所述策略模塊分析判斷是否進行監控策略,當應用系統設置為監控的時候植入所述監控邏輯模塊,對於所述監控邏輯模塊在運行過程中產生的數據通過所述數據存儲模塊進行非結構化的數據存儲,同時進入所述返回實現對象模塊;如果應用系統設置為不監控,則直接進入所述返回實現對象模塊。該方法使用動態代理方式實現了對系統運行邏輯的插件調用關係、錯誤信息的統一監控。
【專利說明】一種基於動態代理實現的插件調度過程監控的方法
【技術領域】
[0001]本發明涉及插件監控【技術領域】,尤其涉及一種基於動態代理實現的插件調度過程監控的方法。
【背景技術】
[0002]在目前的Java開發包中包含了對動態代理的支持,動態代理是在程序運行時,運用反射機制動態創建而成的,其配置文件靈活,但是其只支持對接口的實現。
[0003]普通的系統在編譯後就不允許進行更改或擴充,如果要進行更改或擴充,就必須要修改邏輯代碼後重新編譯發布,這樣不僅使用不便,還會浪費大量的人力、物力,合理使用插件就可以解決上述的問題。插件是根據系統預定的接口編寫的擴展功能模塊,基本目的是實現宿主與組件的隔離,核心是作為預定的接口,以便宿主使用及掛載插件。使用插件使系統的擴展性大大地加強了,在擴充系統時就不必重新編譯,只要增加或修改插件便可,消耗系統資源少,節約人力資源,重複利用率高。
[0004]插件的動態加載方法是指按照OSGi標準,通過JAVA虛擬機技術,實現插件的檢測及加載到JAVA虛擬機中,並暴露相應的接口或方法,使對應的主程序或者網頁能夠調用到控制項程序的接口或者方法。由於市場的需求,由動態代理實現的插件系統已經廣泛地應用於各個領域,如果沒有對插件進行監控,就不能很好地對系統的進行管理,因而為了更好地利用數據,很多情況都需要對實際的業務系統進行監控和管理,在保證數據安全的前提下,針對方法層面的調度監控,任何一個插件的方法執行過程都可以在不修改邏輯代碼的前提下,實現對實際業務系統運行邏輯的調用關係、錯誤信息進行統一監控,因而要有一套完備的監控方法進行統一監控,才能對性能分析做到真正意義上的有據可依。

【發明內容】

[0005]本發明要解決的技術問題,在於提供一種基於動態代理實現的插件調度過程監控的方法。
[0006]本發明是這樣實現的:一種基於動態代理實現的插件調度過程監控的方法,該監控方法中的所有被監控的系統都是基於插件式開發的,監控邏輯的實現包括接口插件模塊、創建實現對象模塊、策略模塊、監控邏輯模塊、數據存儲模塊和返回實現對象模塊;所述接口插件模塊根據接口類名稱進入所述創建實現對象模塊,實現對象使用所述策略模塊分析判斷是否進行監控策略,當應用系統設置為監控的時候植入所述監控邏輯模塊,對於所述監控邏輯模塊在運行過程中產生的數據通過所述數據存儲模塊進行非結構化的數據格式的存儲,同時進入所述返回實現對象模塊;如果應用系統設置為不監控,則直接進入所述返回實現對象模塊;其特徵在於:所述監控邏輯模塊,使用動態代理方式植入監控邏輯,實現對數據的監控。
[0007]進一步地,所述監控邏輯模塊實現了對數據的監控,在動態代理對象中,當方法開始執行時記錄開始時間,結束後記錄結束時間,從而得到耗時信息;在動態代理對象中捕獲出現的異常信息,從而記錄錯誤信息;在動態代理對象中監測具體實現方法的運行,從而實現監控插件、類、方法的調用關係。
[0008]進一步地,接口插件根據接口類名稱創建實現對象的實例時,為每個被代理對象分配一個獨立的動態代理對象的Handler,動態代理對象在監測到具體方法運行時,在方法開始執行時記錄開始時間,方法執行結束後記錄結束時間,從而得到耗時信息,並且在動態代理對象中捕獲出現的異常信息,從而記錄方法運行過程中的錯誤信息;方法被調用時,方法本身調用次數加I並記錄方法本身的耗時。插件監控數據實現的過程如下:方法調用後觸發所在的實現插件,實現插件的調用次數加I ;實現插件觸發後,對所在的實現類及對應的接口插件調用次數加I ;接口插件觸發後,對接口插件所在的接口類的調用次數加I ;接口類觸發後,對應的接口方法調用次數加I。通過動態代理實現插件運行過程的監控,可以在不修改業務邏輯代碼的前提下實現監控插件、類、方法的調用關係及各調用產生的耗時、錯誤信息,可以做到對不同層面、粒度的監控分析需求。
[0009]進一步地,基於插件開發方式的基礎上,使用策略模塊可選擇是否需要進行監控策略,用動態代理方式實現插件運行過程的監控。
[0010]本發明具有如下優點:
[0011]1、一種基於動態代理實現的插件調度過程監控的方法,該監控方法中的所有被監控的系統都是基於插件式開發的,在插件開發方式的基礎上,才能在每個插件創建實現對象的統一路口處進行統一的監控處理邏輯而不需要修改業務代碼,保證了系統監控與運行邏輯的低耦合性。
[0012]2、基於動態代理實現程序運行過程監控,通過面向切面的思想,使用動態代理方式實現插件調用次數、耗時、錯誤信息的監控。基於這種模式的實現,可以在不修改邏輯代碼的前提下,滿足對不同層面、粒度的監控分析需求,實現對系統運行邏輯的調用關係、錯誤信息進行統一監控處理。
[0013]3、對於程序運行過程中所有方法的調用記錄,所產生的龐大歷史數據,通過基於Hadoop大數據存儲方式,能夠支持每天PB級別的數據流量的處理能力,並提供了MapReduce高性能的數據分析,能在程序運行過程中形成軌跡地圖,方便維護階段的智能快速定位,提高了維護效率,降低了維護成本。
【專利附圖】

【附圖說明】
[0014]下面參照附圖結合實施例對本發明作進一步的說明。
[0015]圖1是插件調度過程監控邏輯結構示意圖。
[0016]圖2是插件監控數據實現結構示意圖。
【具體實施方式】
[0017]本發明的基於動態代理實現的插件調度過程監控的方法,其所有被監控的系統包括多個插件,每個插件中含有接口插件模塊、創建實現對象模塊、策略模塊、監控邏輯模塊、數據存儲模塊和返回實現對象模塊。該方法中所有被監控的系統都是基於插件式開發的,監控邏輯的實現包括接口插件模塊、創建實現對象模塊、策略模塊、監控邏輯模塊、數據存儲模塊和返回實現對象模塊。所述接口插件模塊根據接口查找對應的實現插件;所述創建實現對象模塊與所述接口插件模塊相連接,用於創建接口對應的實現對象;所述策略模塊,分析判斷創建的實現插件對象是否進行監控策略;所述數據存儲模塊,對進行監控後輸出的數據進行分析處理,並以Hadoop方式進行存儲;所述返回實現對象模塊,接收進行監控後輸出的植入監控邏輯的實現對象或者在確定不實施監控策略時直接返回對應的實現對象。
[0018]如圖1所示,基於插件開發方式的基礎上,接口插件模塊根據接口類名稱進入創建實現對象模塊,實現對象使用策略模塊分析判斷是否進行監控策略,當應用系統設置為監控的時候就通過策略模式、使用動態代理的方式植入監控邏輯模塊,對於程序運行過程中產生的龐大監控數據通過數據存儲模塊進行非結構化的數據格式的存儲,以達到高效的數據分析處理能力,同時進入返回實現對象模塊;如果應用系統設置為不監控,則直接返回實現對象模塊,就不產生監控邏輯。所述監控邏輯模塊,使用動態代理方式植入監控邏輯,實現對數據的監控。
[0019]所述監控邏輯模塊實現了對數據的監控,在動態代理對象中,當方法開始執行時記錄開始時間,結束後記錄結束時間,從而得到耗時信息;在動態代理對象中捕獲出現的異常信息,從而記錄錯誤信息;在動態代理對象中監測具體實現方法的運行,從而實現監控插件、類、方法的調用關係。
[0020]圖2是插件監控數據實現的過程,通過動態代理的方式實現對方法的實時監控,以達到記錄從方法到類,從類到插件的實時監控過程,結構示意圖說明如下:方法被調用時,方法本身調用次數加I並記錄方法本身的耗時;方法調用後觸發所在的實現插件,實現插件的調用次數加I ;實現插件觸發後,對所在的實現類及對應的接口插件調用次數加I;接口插件觸發後,對接口插件所在的接口類的調用次數加I;接口類觸發後,對應的接口方法調用次數加I。這樣就可以做到對不同層面、粒度的監控分析需求。
[0021]進一步地,基於插件開發方式的基礎上,使用策略模塊可選擇是否需要進行監控策略,用動態代理方式實現插件運行過程的監控。
[0022]本發明的重點在於:根據接口類創建實現對象的實例時,為每個被代理對象分配一個獨立的動態代理對象的Handler,在動態代理對象中,當方法開始執行時記錄開始時間,方法執行結束後記錄結束時間,從而得到耗時信息,並且在動態代理對象中捕獲出現的異常信息,從而記錄方法運行過程中的錯誤信息;通過動態代理實現插件運行過程的監控,可以在不修改業務邏輯代碼的前提下實現監控插件、類、方法的調用關係及各調用產生的耗時、錯誤信息。
[0023]雖然以上描述了本發明的【具體實施方式】,但是熟悉本【技術領域】的技術人員應當理解,我們所描述的具體的實施例只是說明性的,而不是用於對本發明的範圍的限定,熟悉本領域的技術人員在依照本發明的精神所作的等效的修飾以及變化,都應當涵蓋在本發明的權利要求所保護的範圍內。
【權利要求】
1.一種基於動態代理實現的插件調度過程監控的方法,該監控方法中所有被監控的系統都是基於插件式開發的,監控邏輯的實現包括接口插件模塊、創建實現對象模塊、策略模塊、監控邏輯模塊、數據存儲模塊和返回實現對象模塊;所述接口插件模塊根據接口類名稱進入所述創建實現對象模塊,實現對象使用所述策略模塊分析判斷是否進行監控策略,當應用系統設置為監控的時候植入所述監控邏輯模塊,對於所述監控邏輯模塊在運行過程中產生的數據通過所述數據存儲模塊進行非結構化的數據格式的存儲,同時進入所述返回實現對象模塊;如果應用系統設置為不監控,則直接進入所述返回實現對象模塊;其特徵在於:所述監控邏輯模塊使用動態代理方式植入監控邏輯,實現對數據的監控。
2.根據權利要求1所述的一種基於動態代理實現的插件調度過程監控的方法,其特徵在於:所述監控邏輯模塊實現了對數據的監控,在動態代理對象中,當方法開始執行時記錄開始時間,結束後記錄結束時間,從而得到耗時信息;在動態代理對象中捕獲出現的異常信息,從而記錄錯誤信息;在動態代理對象中監測具體實現方法的運行,從而實現監控插件、類、方法的調用關係。
3.根據權利要求2所述的一種基於動態代理實現的插件調度過程監控的方法,其特徵在於:所述監控邏輯模塊的監控數據實現的具體過程如下: 步驟30、動態代理對象的Handler監測到具體方法的運行; 步驟31、方法被調用時,方法本身調用次數加I並記錄方法本身的耗時; 步驟32、方法調用後觸發所在的實現插件,實現插件的調用次數加I ; 步驟33、實現插件觸發後,對所在的實現類及對應的接口插件調用次數加I ; 步驟34、接口插件觸發後,對接口插件所在的接口類的調用次數加I ; 步驟35、接口類觸發後,對應的接口方法調用次數加I ; 步驟36、在動態代理對象中捕獲出現的異常信息,從而記錄方法運行過程中的錯誤信肩、O
4.根據權利要求1所述的一種基於動態代理實現的插件調度過程監控的方法,其特徵在於:該方法採用策略模塊,所述策略模塊選擇是否需要進行監控策略。
【文檔編號】G06F9/445GK103927244SQ201410150255
【公開日】2014年7月16日 申請日期:2014年4月15日 優先權日:2014年4月15日
【發明者】遊建友, 賴禮袍, 周華 申請人:南威軟體股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀