[发明专利]基于重构技术实现开放终端应用数据与功能的方法有效
申请号: | 201610772875.2 | 申请日: | 2016-08-30 |
公开(公告)号: | CN107479866B | 公开(公告)日: | 2020-11-06 |
发明(设计)人: | 张颖;蔡华谦;黄罡;姚伟 | 申请(专利权)人: | 北京大学 |
主分类号: | G06F8/36 | 分类号: | G06F8/36;G06F8/74;G06F8/72;G06F8/30 |
代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 邱晓锋 |
地址: | 100871 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 技术 实现 开放 终端 应用 数据 功能 方法 | ||
1.一种基于重构技术实现开放终端应用数据与功能的方法,其特征在于,包括以下步骤:
1)由应用所有者指定终端应用中欲对外提供接口的数据与功能;
2)利用应用运行环境级别的控制流获取方法,获取在使用步骤1)中指定的功能、数据的运行时的一组控制流及其运行时上下文;
3)对步骤2)获取的控制流及运行时上下文进行程序化分析,生成控制流中每个函数的上下文依赖及这组控制流之间的唤醒关系;所述程序化分析包括:
a)以应用字节码或代码作为输入,利用静态分析方法分析每个函数的数据依赖,并结合运行时的上下文信息,将静态分析结果映射至控制流中的每个函数,生成控制流中每个函数调用与上下文的数据依赖关系;
b)以控制流中与控制流切换相关的函数作为输入,分析各个控制流之间的切换,生成控制流之间的唤醒关系,从而构造出跨多个线程的控制流;
4)通过步骤3)获取的分析结果,重构步骤2)中获取的应用的控制流,生成一组外部可调用的应用编程接口;
5)通过调用步骤4)中生成的应用编程接口使用应用的原有数据和功能,从而将应用的数据和功能对外开放。
2.如权利要求1所述的方法,其特征在于:步骤2)所述的应用运行环境级别的控制流为一组有序的函数调用。
3.如权利要求1所述的方法,其特征在于:步骤2)所述的运行时上下文包括控制流中每个函数调用的参数,和每个函数在内存所读取、写入的数据。
4.如权利要求1所述的方法,其特征在于:步骤2)所述应用运行环境级别的控制流获取方法包括:
a)修改应用运行环境的内存管理部分,使其支持运行时对内存中的数据进行序列化;
b)修改应用运行环境的实现函数调用相关模块,使其支持记录运行时函数调用次序;
c)在步骤a)、b)实现的应用运行环境中运行相应的应用,即可获取使用指定的功能、数据时的运行时控制流及其序列化后的上下文信息。
5.如权利要求4所述的方法,其特征在于:步骤2)通过修改应用运行环境的帧结构,使其支持记录运行时函数调用次序,即控制流;通过修改应用运行环境的栈、堆结构,使其支持在运行时对栈、堆结构中的数据即上下文进行序列化。
6.如权利要求1所述的方法,其特征在于,步骤4)中重构应用的控制流的方法是:
a)根据函数的对外产生的行为将控制流中的函数分为三类:用户界面相关;计算逻辑相关;其他输入输出相关;
b)通过程序分析,将每个控制流切分为用户界面相关、计算逻辑相关和其他输入输出相关三个部分的子控制流,同时给出每个子控制流起始的上下文示例,即子控制流函数调用时的函数的参数,及其所依赖的内存中的数据;
c)开发人员根据上述步骤b)给出的示例,选择合适的子控制流,将应用中的功能、数据实现为一组外部可调用的应用编程接口。
7.如权利要求6所述的方法,其特征在于,步骤4)中开发人员以应用编程接口生成效率为目标,对原始控制流进行重构;或者开发人员以应用编程接口执行效率为目标,对原始控制流进行重构。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610772875.2/1.html,转载请声明来源钻瓜专利网。