一種Android平臺下的模塊化系統的監控系統及方法
2023-04-30 16:27:11 3
一種Android平臺下的模塊化系統的監控系統及方法
【專利摘要】本發明公開一種Android平臺下的模塊化系統的監控系統及方法,根據系統行為計算出相應的監控係數,如果監控係數大於目標監控係數則通過遠程雲端對已知系統進行監控,反之,如果小於目標監控係數則在本地對系統進行監控,從而阻止系統失效,同時監控行為的分散為系統帶來的性能負載也是極其有限的;Android平臺本地監控實時性更強,能對系統進行有效監控但對系統造成一定資源的消耗;雲端監控對目標系統不造成任何資源上的消耗,同時雲端監控生成的日誌可利用雲平臺處理大數據的能力進行監控日誌分析;監控係數是根據模塊化系統的系統行為是否為計算資源緊湊型、內存空間緊湊型以及時間緊湊型等因素計算得來,用以判斷監控行為是放在本地或者雲端。
【專利說明】一種Android平臺下的模塊化系統的監控系統及方法
【技術領域】
[0001]本發明涉及一種Android平臺下模塊化系統的監控系統及方法,涉及對開放環境下對系統進行運行時監控,屬於信息【技術領域】。
【背景技術】
[0002]近年來,由於SOA (Service-Oriented Architecture)這類新範式的出現,軟體密集型系統的環境正在從靜態、封閉、可控向動態、開放、不可控發展。這種開放環境下的軟體系統行為很容易受到其內部框架以及來自外部環境輸入的影響,從而導致軟體失效,因此大型模塊系統需要進行運行時監控,然而,監控器本身在一定程度上對系統性能造成一定負載。
[0003]Aspect Oriented Programming(面向方面編程)可以通過預編譯方式和運行期間動態代理實現在不修改原始碼的情況下給程序動態的添加功能。AOP代碼就是前文提到的「監控器」。
[0004]Android是Google於2007年11月05日宣布的基於Linux平臺的開源行動作業系統的名稱,該平臺由作業系統、中間件、用戶界面和應用軟體組成。它採用軟體堆層(Software Stack,又名軟體疊層)的架構,主要分為三部分。底層以Linux內核工作為基礎,由C語言開發,只提供基本功能;中間層包括函數庫Library和虛擬機VirtualMachine,由C++開發。最上層是各種應用軟體,包括通話程序,簡訊程序等,應用軟體則由各公司自行開發,以Java作為編寫程序的一部分。Google通過與軟、硬體開發商、設備製造商、電信運營商等其他有關各方結成深層次的合作夥伴關係,希望藉助建立標準化、開放式的行動電話軟體平臺,在移動產業內形成一個開放式的生態系統。
[0005]雲計算平臺也稱為雲平臺。雲計算平臺可以劃分為3類:以數據存儲為主的存儲型雲平臺,以數據處理為主的計算型雲平臺以及計算和數據存儲處理兼顧的綜合雲計算平臺。
【發明內容】
[0006]發明目的:針對現有技術中存在的問題,本發明提供一種Android平臺下模塊化系統的監控系統及方法,利用AOP技術可以在不對原有系統代碼做任何修改的前提下對各個組件或服務添加監控器,該監控器可以捕捉到系統內部以及系統內部與外部環境之間的信息交互,判斷系統的行為是否「合法」,從而達到對整個系統的運行時監控甚至對系統的失效行為做出預測、阻止和恢復,提高開放環境下運行時系統的可靠性和安全性的同時有效降低監控器對系統性能的影響。
[0007]技術方案:一種Android平臺下模塊化系統的監控系統,包括Android平臺(本地)監控、雲端監控和監控係數;
[0008]a)Android平臺監控:即本地監控,相對於雲端監控,本地監控所有行為都放生在Android平臺,通過對普通java文件加入AOP (Aspect Oriented Programming)代碼,打包成普通jar包,再對jar包的重新編譯使其能在Android平臺下運行,從而達到對Android平臺下模塊化系統進行監控的目的;
[0009]b)雲端監控:相對於本地監控,該監控行為發生在遠程雲端,本地Android模塊化系統通過Http連結將需要進行雲端監控的系統行為信息發送至雲端,雲端監控程序根據事先約定的規則判斷系統行為是否符合預期並將監控結果返回本地,同時在雲端產生監控日誌,最終,利用雲平臺定期對監控日誌進行備份以及分析;
[0010]c)監控係數:該係數根據被監控目標系統行為的線程數、操作類型等特徵計算得出,根據系統的行為判斷其是否為計算資源消耗型、內存消耗型或者時間資源消耗型操作等得到監控係數,再根據事先約定好的目標監控係數相比較,大於目標監控係數則監控行為發生在雲端,否則監控行為發生在本地,這樣,有效的將資源消耗型行為的監控轉移到雲端從而將監控行為對目標系統的性能負載降到理想狀態。監控係數詳細計算方法如下:根據系統當前系統行為分析得出該行為需要的線程數Nt,堆內存中實例化的對象數量N。以及I/O操作的數據量(以Mb為單位)隊,根據不同的系統對這三種資源的消耗情況不同,我們對這三個值分別委以不同的權重Qt、Q。和Qr,而監控係數M= Σ (NiXQi), (i e {t,o,r})。
[0011]一種Android平臺下模塊化系統的監控方法,包括如下步驟:
[0012]步驟1,根據被監控目標系統交互行為得到以下信息:操作是否涉及到遠程(伺服器)連接、操作需要的線程數Nt、操作設計到的對象的數量N。、操作是否涉及IAKInput/Output)操作以及數據量隊以及1/0操作的數據量(以Mb為單位)的大小等特徵;
[0013]步驟2,根據步驟I中得到的信息,為需要監控的系統交互行為計算出監控係數並設定目標監控係數;監控係數M= X(NiXQi), (i e {t,o,r});
[0014]步驟3,將計算出的監控係數與設定的目標監控係數相比較,如果系統行為的監控係數大於目標監控係數則對該行為的監控行為在雲端進行,否則在Android端進行;
[0015]步驟4,針對需要在Android本地進行監控的行為將監控代碼與目標模塊代碼進行編譯打包成jar包,再對jar包進行再次編譯以便在Android端運行;
[0016]步驟5,針對需要在雲端進行監控的行為將監控代碼與雲端監控程序進行編譯打包運行;
[0017]步驟6,依次運行雲端監控程序和加了監控器後的Android模塊化系統,讓系統在本地和雲端的協同監控下運行。
[0018]步驟7,利用雲平臺數據處理優勢定期對生成的監控日誌進行分析。
[0019]有益效果:與現有技術相比,本發明在保證有效監控效果的同時可以有效將部分監控行為轉移至雲端,從而有效降低了監控器對本地系統的性能負載,兼顧了監控效果和性能。
【專利附圖】
【附圖說明】
[0020]圖1為本發明實施例的系統框架圖;
[0021]圖2為本發明Android平臺本地監控的流程示意圖;
[0022]圖3為本發明計算監控係數的流程圖;
[0023]圖4為本發明雲端監控的架構圖;
[0024]圖5為本發明Android平臺下監控器監控目標模塊化系統的運行結果輸出截圖。
[0025]如圖6為本發明雲平臺下監控器監控目標模塊化系統的運行結果輸出截圖。
【具體實施方式】
[0026]下面結合具體實施例,進一步闡明本發明,應理解這些實施例僅用於說明本發明而不用於限制本發明的範圍,在閱讀了本發明之後,本領域技術人員對本發明的各種等價形式的修改均落於本申請所附權利要求所限定的範圍。
[0027]如圖1所示為本發明的系統框架圖:
[0028]a)Android平臺監控:即本地監控,相對於雲端監控,本地監控所有行為都放生在Android平臺,通過對普通java文件加入AOP (Aspect Oriented Programming)代碼,打包成普通jar包,再對jar包的重新編譯使其能在Android平臺下運行,從而達到對Android平臺下模塊化系統進行監控的目的;
[0029]b)雲端監控:相對於本地監控,該監控行為發生在遠程雲端,本地Android模塊化系統通過Http連結將需要進行雲端監控的系統行為信息發送至雲端,雲端監控程序根據事先約定的規則判斷系統行為是否符合預期並將監控結果返回本地,同時在雲端產生監控日誌,最終,利用雲平臺定期對監控日誌進行備份以及分析;
[0030]c)監控係數:該係數根據被監控目標系統行為的線程數、操作類型等特徵計算得出,根據系統的行為判斷其是否為計算資源消耗型、內存消耗型或者時間資源消耗型操作等得到監控係數,再根據事先約定好的目標監控係數相比較,大於目標監控係數則監控行為發生在雲端,否則監控行為發生在本地,這樣,有效的將資源消耗型行為的監控轉移到雲端從而將監控行為對目標系統的性能負載降到理想狀態。監控係數詳細計算方法如下:根據系統當前系統行為分析得出該行為需要的線程數Nt,堆內存中實例化的對象數量N。以及1/0操作的數據量(以Mb為單位)隊,根據不同的系統對這三種資源的消耗情況不同,我們對這三個值分別委以不同的權重Qt,Qtj,和Qy而監控係數
[0031]M= Σ (NiXQi), (i e {t, o, r})。
[0032]如圖2為Android平臺本地監控的流程示意圖。包括如下步驟:
[0033]步驟101,根據用戶需求以及目標系統內部以及系統內部與外部環境之間的交互,編寫出監控器;
[0034]步驟102,將監控器(Α0Ρ代碼)與目標模塊的代碼進行編譯生成.class文件;
[0035]步驟103,將生成的.class文件打包生成普通jar包;
[0036]步驟104,利用 ADT (Android Development Tool)自帶的 dex 工具將 jar 包進行處理,生成class, dex文件;
[0037]步驟105,利用 ADT (Android Development Tool)自帶的 appt 工具將 jar 包和 104中生成的class, dex文件進行打包,生成可以在Android平臺下可以執行的jar包;
[0038]步驟106,運行最終打包成功的jar包,讓目標模塊在監控之下運行。
[0039]如圖3為計算監控係數的流程圖。描述了計算監控係數以及判斷監控發生在本地或者雲端的過程。
[0040]步驟201,根據目標模塊化系統代碼,分析目標系統的行為;
[0041]步驟202,判斷模塊化系統的交互行為是否涉及到網絡連接到遠程主機或者伺服器的操作,如果涉及到則無需進行下一步直接跳到步驟207,否則進入步驟203 ;
[0042]步驟203,判斷系統行為是否為時間緊湊型,如有I/O操作超過預設閥值(從硬碟讀取大量數據或寫入大量數據);
[0043]步驟204,判斷系統行為是否為計算資源緊湊型,如有運算操作或者同一時間運行的線程數量超過預設閥值,則認為是計算資源緊湊型;
[0044]步驟205,判斷系統行為是否為內存資源緊湊型,如有大量數據進行處理,或者操作需要堆內存中有大量實例化的對象;
[0045]步驟206,根據步驟203-步驟205得到數據,通過公式M =Σ (NiXQi), (i e {t,o,r})計算出該系統行為的監控係數並與事先設定的目標監控係數相比較;
[0046]步驟207,監控係數小於目標監控係數的操作的監控行為在Andoird本地執行;
[0047]步驟208,監控係數大於或等於目標監控係數的操作的監控行為在遠程雲端執行。
[0048]如圖4為雲端監控的架構圖,部分監控係數大於或等於目標監控係數的操作將系統執行狀態通過http連接通知給運行著的雲端監控程序,雲端監控程序根據http連接得到的系統狀態來判斷系統的運行情況是否滿足預期並列印出監控日誌。每隔一段固定的時間,雲端監控器運行日誌分析程序,利用雲平臺處理大數據的優勢對目標系統的行為進行分析。
[0049]如圖5為Android平臺下監控器監控目標模塊化系統的運行結果輸出截圖。圖中列印出了各個Bundle在查詢流程中所經歷的狀態,以及Message傳遞等信息。
[0050]如圖6為雲平臺下監控器監控目標模塊化系統的運行結果輸出圖。圖中列印出了各個Bundle在查詢流程中所經歷的狀態,以及Message傳遞等信息。
【權利要求】
1.一種Android平臺下模塊化系統的監控系統,其特徵在於:包括Android平臺(本地)監控、雲端監控和監控係數; a)Android平臺監控:即本地監控,相對於雲端監控,本地監控所有行為都放生在Android平臺,通過對普通java文件加入AOP (Aspect Oriented Programming)代碼,打包成普通jar包,再對jar包的重新編譯使其能在Android平臺下運行,從而達到對Android平臺下模塊化系統進行監控的目的; b)雲端監控:相對於本地監控,該監控行為發生在遠程雲端,本地Android模塊化系統通過Http連結將需要進行雲端監控的系統行為信息發送至雲端,雲端監控程序根據事先約定的規則判斷系統行為是否符合預期並將監控結果返回本地,同時在雲端產生監控日誌,最終,利用雲平臺定期對監控日誌進行備份以及分析; c)監控係數:該係數根據被監控目標系統行為的線程數、操作類型等特徵計算得出,根據系統的行為判斷其是否為計算資源消耗型、內存消耗型或者時間資源消耗型操作等得到監控係數,再根據事先約定好的目標監控係數相比較,大於目標監控係數則監控行為發生在雲端,否則監控行為發生在本地,這樣,有效的將資源消耗型行為的監控轉移到雲端從而將監控行為對目標系統的性能負載降到理想狀態;監控係數詳細計算方法如下:根據系統當前系統行為分析得出該行為需要的線程數Nt,堆內存中實例化的對象數量N。以及I/O操作的數據量(以Mb為單位)隊,根據不同的系統對這三種資源的消耗情況不同,我們對這三個值分別委以不同的權重Qt、Q。和Qr,而監控係數M= Σ (NiXQi), (i e {t,o,r})。
2.—種Android平臺下模塊化系統的監控方法,其特徵在於,包括如下步驟: 步驟1,根據被監控目標系統交互行為得到以下信息:操作是否涉及到遠程伺服器連接、操作需要的線程數Nt、操作設計到的類的數量、操作是否涉及I/O操作以及數據量隊以及I/O操作的數據量的大小等特徵; 步驟2,根據步驟I中得到的信息,為需要監控的系統交互行為計算出監控係數並設定目標監控係數;監控係數M= Σ (NiX Qi),(i e {t, o, r}); 步驟3,將計算出的監控係數與設定的目標監控係數相比較,如果系統行為的監控係數大於目標監控係數則對該行為的監控行為在雲端進行,否則在Android端進行; 步驟4,針對需要在Android本地進行監控的行為將監控代碼與目標模塊代碼進行編譯打包成jar包,再對jar包進行再次編譯以便在Android端運行; 步驟5,針對需要在雲端進行監控的行為將監控代碼與雲端監控程序進行編譯打包運行; 步驟6,依次運行雲端監控程序和加了監控器後的Android模塊化系統,讓系統在本地和雲端的協同監控下運行; 步驟7,利用雲平臺數據處理優勢定期對生成的監控日誌進行分析。
3.如權利要求2所述的Android平臺下模塊化系統的監控方法,其特徵在於:步驟2計算監控係數以及設定目標監控係數,目標監控係數為監控者根據系統條件和監控需求人為設定,可根據系統監控過程中本地和雲端的負載情況進行調整,當Android平臺負載較大則可相對減小目標監控係數,反之則可適當增大目標監控係數。
【文檔編號】G06F11/30GK104268057SQ201410495693
【公開日】2015年1月7日 申請日期:2014年9月24日 優先權日:2014年9月24日
【發明者】張鵬程, 餘俊, 馮鈞, 朱躍龍, 萬定生, 劉宗磊, 莊媛, 周宇鵬, 肖豔 申請人:河海大學