当前位置: 首页 > 专利查询>北京大学专利>正文

一种终端应用行为反射的处理方法技术

技术编号:22363712 阅读:18 留言:0更新日期:2019-10-23 04:34
本发明专利技术公开了一种终端应用行为反射的处理方法,通过行为解释器,生成一个完整、准确、详实的应用行为自述,即终端应用应用行为的运行时模型,克服了现有技术在动态、多变、难控的应用运行时的不足,实现了对终端应用应用行为的灵活、完整的监测,然后基于生成的运行时模型,定义运行时模型上的操作以及模型片段在堆、栈区域影响的等价性,实现了复杂的应用行为模型的分解,可操作的模型片段,并基于分解的模型片段,建立行为模型与应用状态和应用代码的因果关联,实现了在终端应用运行时对其应用行为的指令级别的控制。

A processing method of terminal application behavior reflection

【技术实现步骤摘要】
一种终端应用行为反射的处理方法
本专利技术涉及计算机技术,尤其涉一种终端应用行为反射的处理方法。
技术介绍
网构软件(也称终端应用)是在互联网开放、动态和多变环境下软件系统基本形态的一种抽象,它既是传统软件结构的自然延伸,又具有区别于集中封装环境下发展起来的传统软件形态的独有基本特征:1)自主性,指网构软件系统中的软件实体具有相对独立性、主动性和自适应性。自主性使其区别于传统软件系统中软件实体的依赖性和被动性;2)协同性,指网构软件系统中软件实体与软件实体之间可按多种静态连接和动态合作方式在开放的网络环境下加以互连、互通、协作和联盟。协同性使其区别于传统软件系统在封闭集中环境下单一静态的连接模式;3)反应性,指网构软件具有感知外部运行和使用环境并对系统演化提供有用信息的能力。反应性使网构软件系统具备了适应开放、动态和多变环境的感知能力;4)演化性,指网构软件结构可根据应用需求和网络环境变化而发生动态演化,主要表现在其实体元素数目的可变性,结构关系的可调节性和结构形态的动态可配置性。演化性使网构软件系统具备了适应比开放、动态和多变环境的应变能力;5)多态性,指网构软件系统的效果体现出相容的多目标性。它可根据某些基本协同原则,在动态变化的网络环境下,满足多种相容的目标形态。多态性使网构软件系统在网络环境下具备了一定的柔性和满足个性化需求的能力。上述网构软件特征的实现,往往需要在运行态修改软件以保障或改善质量、优化或新增功能。经典软件工程方法与技术强调在开发态修改软件,不支持运行态直接修改软件。与之对应,编程语言、操作系统、中间件等系统软件,提供了一种常见的运行态监测与控制应用的主要机制——计算反射(computationalreflection,简称反射)。基于计算反射可以实现各种开发框架、测试框架,以提高开发人员在代码开发、测试甚至运行部署中的效率。在计算机领域,B.Smith给出了通用的反射性的定义:反射性是实体具有按照描述、操作和处理实体所面临的主要问题域的相同方式来描述、操作和处理实体自身的一种能力。该定义后续被解释为:反射性是程序具有在运行时刻操纵一组数据的能力,这组数据描述了该程序的运行状态,操纵有两方面含意:1)监测(Introspection),程序可以观测并推理自身的状态;2)控制(Intercession),程序可以改变自身的运行或语义。而这两方面都需要能将程序执行的状态编码为数据,而提供这种编码便称为反射也就是说,反射其实是将程序的运行状态映射为一组可操作的数据。前一部分组成基层实体,后一部分组成元层实体,而基层实体与元层实体之间保持了因果关联。根据基层实体的不同,计算反射主要分为结构反射和行为反射。结构反射的基层实体为当前程序及其抽象数据类型(可视为应用的状态),而行为反射的基层实体则是当前程序的执行行为及其执行所需的数据(可视为应用的行为)。结构反射是指编程语言提供对当前程序及其抽象数据类型反射的能力,由于与编程语言框架(runtime或framework)的能力类似而自然存在,是大多数编程语言框架固有的能力。行为反射是指编程语言提供对自身的执行语义及其执行所需的数据反射的能力,也就是编程语言框架自身需要被反射,行为反射在监测和控制上面临两个挑战:其一,需要完整描述既有的应用行为,也就是对应用的执行进行监测。应用的执行可视为一组运行时活动的集合,活动的粒度越细,监测的信息也越丰富,监测功能占用的资源就越大,其与业务逻辑之间的资源竞争也就越严重。此时,应用行为监测的复杂性和规模性就成为终端应用行为反射的首要挑战。其二,现有编程语言以及操作系统和中间件等系统软件的行为反射,均不支持指令级的行为控制,根本原因在于指令序列蕴含的复杂的数据和控制依赖,因此,应用行为的指令级控制就成为终端应用行为反射的主要难点。
技术实现思路
本专利技术主要目的在于,提供一种终端应用行为反射的处理方法,以克服上述两个挑战,实现对终端应用行为的完整监测和指令级控制。本专利技术是通过如下技术方案实现的:为解决本专利技术的技术问题,本专利技术提出了一种终端应用行为反射的处理方法,所述方法包括:构造所述终端应用的运行时模型,所述运行时模型包括运行时栈模型和运行时堆模型;基于所述运行时模型,对所述终端应用的应用行为进行控制;其中:构造所述终端应用行为的运行时栈模型的子步骤包括:在所述终端应用运行时,获取所述终端应用的内存中真正执行的代码,并对所述真正执行的代码进行抽象,生成控制流图;针对所述控制流图,将需要监测的控制流图输入至预设的行为解释器;利用所述行为解释器对所述需要监测的控制流图进行解释执行,生成所述终端应用运行时的栈活动;在所述终端应用运行时,生成所述栈活动的控制流间的依赖关系,得到所述终端应用行为的运行时栈模型;构造所述终端应用行为的运行时堆模型的子步骤包括:在所述终端应用运行时,生成堆区的初始状态;生成堆操作活动,得到所述终端应用行为的运行时堆模型;基于所述运行时模型,对所述终端应用的应用行为进行控制的子步骤包括:预定义对所述运行时模型的操作以及模型片段在堆、栈区域影响的等价性;对所述运行时模型保持所述等价性进行转换,对所述运行时模型进行分解,得到一组可操作的模型片段;根据分解后的模型片段,建立所述运行时模型与应用状态和应用代码的因果关联,以对所述终端应用行为进行控制。进一步的,构造所述终端应用的运行时模型前,所述方法包括:确定类筛选器和活动类型筛选器;其中,所述类筛选器基于包和类名正则匹配的粗粒度筛选,用于去除开发人员不关心的程序活动;所述活动类型筛选器基于活动类型的细粒度筛选,用于去除与开发者不关心的活动类型。进一步的,所述栈活动的活动类型包括方法开始与方法结束,字段读,数组读和同步指令;利用所述行为解释器对所述需要监测的控制流图进行解释执行,生成所述终端应用运行时的栈活动的子步骤进一步包括:利用对所述终端应用的应用行为具有监测功能的行为解释器对所述需要监测的控制流图进行解释执行,获得所述终端应用运行时的活动;根据所关注的类,利用所述类筛选器对所述终端应用运行时的活动进行粗粒度筛选,生成由所述类引起的栈活动;针对所述栈活动的活动类型,利用所述活动类型筛选器对所述栈活动进行细粒度筛选。进一步的,所述堆操作活动的活动类型包括对象实例化,数组实例化,对象字段写,数组元素写,清除活动和压缩活动;所述生成堆操作活动的子步骤进一步包括:根据所关注的类,利用所述类筛选器对所述终端应用运行时的活动进行粗粒度筛选,生成由所述类引起的堆操作活动;针对所述堆操作活动的活动类型,利用所述活动类型筛选器对所述堆操作活动进行细粒度筛选。进一步的,所述依赖关系包括同步依赖和通信依赖。进一步的,对所述终端应用行为进行控制包括对所述终端应用行为进行行为式控制和/或结构式控制。进一步的,对所述终端应用行为进行行为式控制的步骤包括:设终端应用的内存初始状态S,活动序列A;经过一段时间的执行,获取所述运行后的内存状态为S·A=S',对所述运行时模型保持所述等价性进行转换后的活动序列为A',得到目标状态为S.A'=S”;利用S.A'=(S.A).A”=S'.A”求解增量活动序列A”,使得A+A”=A',完成对所述终端应用行为进行行为式控制的过程。进一步本文档来自技高网
...

【技术保护点】
1.一种终端应用行为反射的处理方法,其特征在于,所述方法包括:构造所述终端应用的运行时模型,所述运行时模型包括运行时栈模型和运行时堆模型;基于所述运行时模型,对所述终端应用的应用行为进行控制;其中:构造所述终端应用行为的运行时栈模型的子步骤包括:在所述终端应用运行时,获取所述终端应用的内存中真正执行的代码,并对所述真正执行的代码进行抽象,生成控制流图;针对所述控制流图,将需要监测的控制流图输入至预设的行为解释器;利用所述行为解释器对所述需要监测的控制流图进行解释执行,生成所述终端应用运行时的栈活动;在所述终端应用运行时,生成所述栈活动的控制流间的依赖关系,得到所述终端应用行为的运行时栈模型;构造所述终端应用行为的运行时堆模型的子步骤包括:在所述终端应用运行时,生成堆区的初始状态;生成堆操作活动,得到所述终端应用行为的运行时堆模型;基于所述运行时模型,对所述终端应用的应用行为进行控制的子步骤包括:预定义对所述运行时模型的操作以及模型片段在堆、栈区域影响的等价性;对所述运行时模型保持所述等价性进行转换,对所述运行时模型进行分解,得到一组可操作的模型片段;根据分解后的模型片段,建立所述运行时模型与应用状态和应用代码的因果关联,以对所述终端应用行为进行控制。...

【技术特征摘要】
1.一种终端应用行为反射的处理方法,其特征在于,所述方法包括:构造所述终端应用的运行时模型,所述运行时模型包括运行时栈模型和运行时堆模型;基于所述运行时模型,对所述终端应用的应用行为进行控制;其中:构造所述终端应用行为的运行时栈模型的子步骤包括:在所述终端应用运行时,获取所述终端应用的内存中真正执行的代码,并对所述真正执行的代码进行抽象,生成控制流图;针对所述控制流图,将需要监测的控制流图输入至预设的行为解释器;利用所述行为解释器对所述需要监测的控制流图进行解释执行,生成所述终端应用运行时的栈活动;在所述终端应用运行时,生成所述栈活动的控制流间的依赖关系,得到所述终端应用行为的运行时栈模型;构造所述终端应用行为的运行时堆模型的子步骤包括:在所述终端应用运行时,生成堆区的初始状态;生成堆操作活动,得到所述终端应用行为的运行时堆模型;基于所述运行时模型,对所述终端应用的应用行为进行控制的子步骤包括:预定义对所述运行时模型的操作以及模型片段在堆、栈区域影响的等价性;对所述运行时模型保持所述等价性进行转换,对所述运行时模型进行分解,得到一组可操作的模型片段;根据分解后的模型片段,建立所述运行时模型与应用状态和应用代码的因果关联,以对所述终端应用行为进行控制。2.如权利要求1所述的方法,其特征在于,构造所述终端应用的运行时模型前,所述方法包括:确定类筛选器和活动类型筛选器;其中,所述类筛选器基于包和类名正则匹配的粗粒度筛选,用于去除开发人员不关心的程序活动;所述活动类型筛选器基于活动类型的细粒度筛选,用于去除与开发者不关心的活动类型。3.如权利要求2所述的方法,其特征在于,所述栈活动的活动类型包括方法开始与方法结束,字段读,数组读和同步指令;利用所述行为解释器对所述需要监测的控制流图进行解释执行,生成所述终端应用运行时的栈活动的子步骤进一步包括:利用对所述终端应用的应用行为具有监测功能的行为解释器对所述需要监测的控制流图进行解释执行,获得所述终端应用运行时的活动;根据所关注的类,利用所述类筛选器对所述...

【专利技术属性】
技术研发人员:黄罡张颖蔡华谦刘譞哲
申请(专利权)人:北京大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1