一种Android平台下的模块化系统的监控系统及方法

文档序号:6628198阅读:216来源:国知局
一种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日
【发明者】张鹏程, 余俊, 冯钧, 朱跃龙, 万定生, 刘宗磊, 庄媛, 周宇鹏, 肖艳 申请人:河海大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1