著录项信息
专利名称 | 一种Android平台下的模块化系统的监控系统及方法 |
申请号 | CN201410495693.6 | 申请日期 | 2014-09-24 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2015-01-07 | 公开/公告号 | CN104268057A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F11/30 | IPC分类号 | G;0;6;F;1;1;/;3;0查看分类表>
|
申请人 | 河海大学 | 申请人地址 | 江苏省南京市江宁区佛城西路8号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 河海大学 | 当前权利人 | 河海大学 |
发明人 | 张鹏程;余俊;冯钧;朱跃龙;万定生;刘宗磊;庄媛;周宇鹏;肖艳 |
代理机构 | 南京苏高专利商标事务所(普通合伙) | 代理人 | 李玉平 |
摘要
本发明公开一种Android平台下的模块化系统的监控系统及方法,根据系统行为计算出相应的监控系数,如果监控系数大于目标监控系数则通过远程云端对已知系统进行监控,反之,如果小于目标监控系数则在本地对系统进行监控,从而阻止系统失效,同时监控行为的分散为系统带来的性能负载也是极其有限的;Android平台本地监控实时性更强,能对系统进行有效监控但对系统造成一定资源的消耗;云端监控对目标系统不造成任何资源上的消耗,同时云端监控生成的日志可利用云平台处理大数据的能力进行监控日志分析;监控系数是根据模块化系统的系统行为是否为计算资源紧凑型、内存空间紧凑型以及时间紧凑型等因素计算得来,用以判断监控行为是放在本地或者云端。
1.一种Android平台下模块化系统的监控系统,其特征在于:包括Android平台监控、云端监控和监控系数;
a)Android平台监控:即本地监控,相对于云端监控,本地监控所有行为都发生在Android平台,通过对普通java文件加入AOP(Aspect Oriented Programming)代码,打包成普通jar包,再对jar包的重新编译使其能在Android平台下运行,从而达到对Android平台下模块化系统进行监控的目的;
b)云端监控:相对于本地监控,该监控行为发生在远程云端,本地Android模块化系统通过Http链接将需要进行云端监控的系统行为信息发送至云端,云端监控程序根据事先约定的规则判断系统行为是否符合预期并将监控结果返回本地,同时在云端产生监控日志,最终,利用云平台定期对监控日志进行备份以及分析;
c)监控系数:该系数根据被监控目标系统行为的线程数、操作类型特征计算得出,根据系统的行为判断其是否为计算资源消耗型、内存消耗型或者时间资源消耗型操作得到监控系数,再根据事先约定好的目标监控系数相比较,大于目标监控系数则监控行为发生在云端,否则监控行为发生在本地,这样,有效的将资源消耗型行为的监控转移到云端从而将监控行为对目标系统的性能负载降到理想状态;监控系数详细计算方法如下:根据系统当前系统行为分析得出该行为需要的线程数Nt,对内存中实例化的对象数量No以及I/O操作的数据量Nr,根据不同的系统对这三种资源的消耗情况不同,我们对这三个值分别委以不同的权重Qt、Qo和Qr,而监控系数M=∑(Ni×Qi),(i∈{t,o,r})。
2.一种Android平台下模块化系统的监控方法,其特征在于,包括如下步骤:
步骤1,根据被监控目标系统交互行为得到以下信息:操作是否涉及到远程服务器连接、操作需要的线程数Nt、操作设计到的类的数量、操作是否涉及I/O操作以及数据量Nr以及I/O操作的数据量的大小特征;
步骤2,根据步骤1中得到的信息,为需要监控的系统交互行为计算出监控系数并设定目标监控系数;监控系数M=∑(Ni×Qi),i∈{t,o,r};
Nt为行为需要的线程数,No为堆内存中实例化的对象数量,Nr为I/O操作的数据量,Nt、No和Nr对应的权重分别为Qt、Qo和Qr;
步骤3,将计算出的监控系数与设定的目标监控系数相比较,如果系统行为的监控系数大于目标监控系数则对该行为的监控行为在云端进行,否则在Android端进行;
步骤4,针对需要在Android本地进行监控的行为将监控代码与目标模块代码进行编译打包成jar包,再对jar包进行再次编译以便在Android端运行;
步骤5,针对需要在云端进行监控的行为将监控代码与云端监控程序进行编译打包运行;
步骤6,依次运行云端监控程序和加了监控器后的Android模块化系统,让系统在本地和云端的协同监控下运行;
步骤7,利用云平台数据处理优势定期对生成的监控日志进行分析。
3.如权利要求2所述的Android平台下模块化系统的监控方法,其特征在于:步骤2计算监控系数以及设定目标监控系数,目标监控系数为监控者根据系统条件和监控需求人为设定,可根据系统监控过程中本地和云端的负载情况进行调整,当Android平台负载较大则可相对减小目标监控系数,反之则可适当增大目标监控系数。
一种Android平台下的模块化系统的监控系统及方法\n技术领域\n[0001] 本发明涉及一种Android平台下模块化系统的监控系统及方法,涉及对开放环境下对系统进行运行时监控,属于信息技术领域。\n背景技术\n[0002] 近年来,由于SOA(Service-Oriented Architecture)这类新范式的出现,软件密集型系统的环境正在从静态、封闭、可控向动态、开放、不可控发展。这种开放环境下的软件系统行为很容易受到其内部框架以及来自外部环境输入的影响,从而导致软件失效,因此大型模块系统需要进行运行时监控,然而,监控器本身在一定程度上对系统性能造成一定负载。\n[0003] Aspect Oriented Programming(面向方面编程)可以通过预编译方式和运行期间动态代理实现在不修改源代码的情况下给程序动态的添加功能。AOP代码就是前文提到的“监控器”。\n[0004] Android是Google于2007年11月05日宣布的基于Linux平台的开源移动操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。它采用软件堆层(Software Stack,又名软件叠层)的架构,主要分为三部分。底层以Linux内核工作为基础,由C语言开发,只提供基本功能;中间层包括函数库Library和虚拟机Virtual Machine,由C++开发。最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以Java作为编写程序的一部分。Google通过与软、硬件开发商、设备制造商、电信运营商等其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。\n[0005] 云计算平台也称为云平台。云计算平台可以划分为3类:以数据存储为主的存储型云平台,以数据处理为主的计算型云平台以及计算和数据存储处理兼顾的综合云计算平台。\n发明内容\n[0006] 发明目的:针对现有技术中存在的问题,本发明提供一种Android平台下模块化系统的监控系统及方法,利用AOP技术可以在不对原有系统代码做任何修改的前提下对各个组件或服务添加监控器,该监控器可以捕捉到系统内部以及系统内部与外部环境之间的信息交互,判断系统的行为是否“合法”,从而达到对整个系统的运行时监控甚至对系统的失效行为做出预测、阻止和恢复,提高开放环境下运行时系统的可靠性和安全性的同时有效降低监控器对系统性能的影响。\n[0007] 技术方案:一种Android平台下模块化系统的监控系统,包括Android平台(本地)监控、云端监控和监控系数;\n[0008] a)Android平台监控:即本地监控,相对于云端监控,本地监控所有行为都放生在Android平台,通过对普通java文件加入AOP(Aspect Oriented Programming)代码,打包成普通jar包,再对jar包的重新编译使其能在Android平台下运行,从而达到对Android平台下模块化系统进行监控的目的;\n[0009] b)云端监控:相对于本地监控,该监控行为发生在远程云端,本地Android模块化系统通过Http链接将需要进行云端监控的系统行为信息发送至云端,云端监控程序根据事先约定的规则判断系统行为是否符合预期并将监控结果返回本地,同时在云端产生监控日志,最终,利用云平台定期对监控日志进行备份以及分析;\n[0010] c)监控系数:该系数根据被监控目标系统行为的线程数、操作类型等特征计算得出,根据系统的行为判断其是否为计算资源消耗型、内存消耗型或者时间资源消耗型操作等得到监控系数,再根据事先约定好的目标监控系数相比较,大于目标监控系数则监控行为发生在云端,否则监控行为发生在本地,这样,有效的将资源消耗型行为的监控转移到云端从而将监控行为对目标系统的性能负载降到理想状态。监控系数详细计算方法如下:根据系统当前系统行为分析得出该行为需要的线程数Nt,堆内存中实例化的对象数量No以及I/O操作的数据量(以Mb为单位)Nr,根据不同的系统对这三种资源的消耗情况不同,我们对这三个值分别委以不同的权重Qt、Qo和Qr,而监控系数M=Σ(Ni×Qi),(i∈{t,o,r})。\n[0011] 一种Android平台下模块化系统的监控方法,包括如下步骤:\n[0012] 步骤1,根据被监控目标系统交互行为得到以下信息:操作是否涉及到远程(服务器)连接、操作需要的线程数Nt、操作设计到的对象的数量No、操作是否涉及I/O(Input/Output)操作以及数据量Nr以及I/O操作的数据量(以Mb为单位)的大小等特征;\n[0013] 步骤2,根据步骤1中得到的信息,为需要监控的系统交互行为计算出监控系数并设定目标监控系数;监控系数M=Σ(Ni×Qi),(i∈{t,o,r});\n[0014] 步骤3,将计算出的监控系数与设定的目标监控系数相比较,如果系统行为的监控系数大于目标监控系数则对该行为的监控行为在云端进行,否则在Android端进行;\n[0015] 步骤4,针对需要在Android本地进行监控的行为将监控代码与目标模块代码进行编译打包成jar包,再对jar包进行再次编译以便在Android端运行;\n[0016] 步骤5,针对需要在云端进行监控的行为将监控代码与云端监控程序进行编译打包运行;\n[0017] 步骤6,依次运行云端监控程序和加了监控器后的Android模块化系统,让系统在本地和云端的协同监控下运行。\n[0018] 步骤7,利用云平台数据处理优势定期对生成的监控日志进行分析。\n[0019] 有益效果:与现有技术相比,本发明在保证有效监控效果的同时可以有效将部分监控行为转移至云端,从而有效降低了监控器对本地系统的性能负载,兼顾了监控效果和性能。\n附图说明\n[0020] 图1为本发明实施例的系统框架图;\n[0021] 图2为本发明Android平台本地监控的流程示意图;\n[0022] 图3为本发明计算监控系数的流程图;\n[0023] 图4为本发明云端监控的架构图;\n[0024] 图5为本发明Android平台下监控器监控目标模块化系统的运行结果输出截图。\n[0025] 如图6为本发明云平台下监控器监控目标模块化系统的运行结果输出截图。\n具体实施方式\n[0026] 下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。\n[0027] 如图1所示为本发明的系统框架图:\n[0028] a)Android平台监控:即本地监控,相对于云端监控,本地监控所有行为都放生在Android平台,通过对普通java文件加入AOP(Aspect Oriented Programming)代码,打包成普通jar包,再对jar包的重新编译使其能在Android平台下运行,从而达到对Android平台下模块化系统进行监控的目的;\n[0029] b)云端监控:相对于本地监控,该监控行为发生在远程云端,本地Android模块化系统通过Http链接将需要进行云端监控的系统行为信息发送至云端,云端监控程序根据事先约定的规则判断系统行为是否符合预期并将监控结果返回本地,同时在云端产生监控日志,最终,利用云平台定期对监控日志进行备份以及分析;\n[0030] c)监控系数:该系数根据被监控目标系统行为的线程数、操作类型等特征计算得出,根据系统的行为判断其是否为计算资源消耗型、内存消耗型或者时间资源消耗型操作等得到监控系数,再根据事先约定好的目标监控系数相比较,大于目标监控系数则监控行为发生在云端,否则监控行为发生在本地,这样,有效的将资源消耗型行为的监控转移到云端从而将监控行为对目标系统的性能负载降到理想状态。监控系数详细计算方法如下:根据系统当前系统行为分析得出该行为需要的线程数Nt,堆内存中实例化的对象数量No以及I/O操作的数据量(以Mb为单位)Nr,根据不同的系统对这三种资源的消耗情况不同,我们对这三个值分别委以不同的权重Qt,QO,和Qr,而监控系数\n[0031] M=Σ(Ni×Qi),(i∈{t,o,r})。\n[0032] 如图2为Android平台本地监控的流程示意图。包括如下步骤:\n[0033] 步骤101,根据用户需求以及目标系统内部以及系统内部与外部环境之间的交互,编写出监控器;\n[0034] 步骤102,将监控器(AOP代码)与目标模块的代码进行编译生成.class文件;\n[0035] 步骤103,将生成的.class文件打包生成普通jar包;\n[0036] 步骤104,利用ADT(Android Development Tool)自带的dex工具将jar包进行处理,生成class.dex文件;\n[0037] 步骤105,利用ADT(Android Development Tool)自带的appt工具将jar包和104中生成的class.dex文件进行打包,生成可以在Android平台下可以执行的jar包;\n[0038] 步骤106,运行最终打包成功的jar包,让目标模块在监控之下运行。\n[0039] 如图3为计算监控系数的流程图。描述了计算监控系数以及判断监控发生在本地或者云端的过程。\n[0040] 步骤201,根据目标模块化系统代码,分析目标系统的行为;\n[0041] 步骤202,判断模块化系统的交互行为是否涉及到网络连接到远程主机或者服务器的操作,如果涉及到则无需进行下一步直接跳到步骤207,否则进入步骤203;\n[0042] 步骤203,判断系统行为是否为时间紧凑型,如有I/O操作超过预设阀值(从硬盘读取大量数据或写入大量数据);\n[0043] 步骤204,判断系统行为是否为计算资源紧凑型,如有运算操作或者同一时间运行的线程数量超过预设阀值,则认为是计算资源紧凑型;\n[0044] 步骤205,判断系统行为是否为内存资源紧凑型,如有大量数据进行处理,或者操作需要堆内存中有大量实例化的对象;\n[0045] 步骤206,根据步骤203-步骤205得到数据,通过公式M=Σ(Ni×Qi),(i∈{t,o,r})计算出该系统行为的监控系数并与事先设定的目标监控系数相比较;\n[0046] 步骤207,监控系数小于目标监控系数的操作的监控行为在Andoird本地执行;\n[0047] 步骤208,监控系数大于或等于目标监控系数的操作的监控行为在远程云端执行。\n[0048] 如图4为云端监控的架构图,部分监控系数大于或等于目标监控系数的操作将系统执行状态通过http连接通知给运行着的云端监控程序,云端监控程序根据http连接得到的系统状态来判断系统的运行情况是否满足预期并打印出监控日志。每隔一段固定的时间,云端监控器运行日志分析程序,利用云平台处理大数据的优势对目标系统的行为进行分析。\n[0049] 如图5为Android平台下监控器监控目标模块化系统的运行结果输出截图。图中打印出了各个Bundle在查询流程中所经历的状态,以及Message传递等信息。\n[0050] 如图6为云平台下监控器监控目标模块化系统的运行结果输出图。图中打印出了各个Bundle在查询流程中所经历的状态,以及Message传递等信息。
法律信息
- 2017-09-26
- 2015-02-04
实质审查的生效
IPC(主分类): G06F 11/30
专利申请号: 201410495693.6
申请日: 2014.09.24
- 2015-01-07
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2013-04-03
|
2012-12-20
| | |
2
| |
2013-09-11
|
2013-06-26
| | |
3
| |
2013-11-20
|
2013-08-08
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |