[发明专利]基于重构技术实现开放终端应用数据与功能的方法有效

专利信息
申请号: 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)中开发人员以应用编程接口生成效率为目标,对原始控制流进行重构;或者开发人员以应用编程接口执行效率为目标,对原始控制流进行重构。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201610772875.2/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top