The invention discloses a method and system for updating micro-services based on the difference analysis of key elements. Through the analysis of bytecode in micro-services, a set of key elements to be analyzed is screened out, and through the analysis of the similarity between the new and old versions of Android applications, it can be judged whether the Android application has destructive changes relative to micro-services in the process of version change. When destructive changes occur, by analyzing the similarity between the new and old versions of Android applications, we can judge whether the key elements have destructive changes, so as to locate the key elements that need to be modified in the micro-service, and give a modified recommendation list for each key element that needs to be modified, and then update the micro-service according to the modified recommendation list to avoid it. It avoids unnecessary modification of micro-services and modification of key elements in micro-services when non-destructive changes occur in Android application versions, reduces the waste of resources and improves the efficiency of micro-services upgrade.
【技术实现步骤摘要】
基于关键元素差异性分析的微服务更新方法及系统
本专利技术涉及计算机软件,尤其涉及一种基于关键元素差异性分析的微服务更新方法及系统。
技术介绍
在移动互联网时代,用户消费内容、获得线上服务的方式主要为移动应用。单个应用中积累了大量服务及用户的使用数据等内容。然而应用之间相互独立的现状,形成了移动应用生态的“信息孤岛”。APP间的“信息孤岛”成为场景割裂、应用智能化程度难以提升的重要原因。通过网构软件行为反射技术,能够在不需要第三方开发者支持的情况下,将安卓应用封装为微服务,为打破移动应用生态的“信息孤岛”现象提供了可能。在不需要第三方配合的情况下,利用网构软件行为反射技术能够将任意安卓应用的任意功能封装为微服务。网构软件行为反射技术,通过对安卓应用的执行进行完整监测,对运行时模型监测结果进行分析并生成应用微服务。应用行为运行时模型将在运行时环境中作用于内存空间的堆栈区和代码段,从而实现指令级别反射。由于对安卓应用的执行进行监测的结果取决于安卓应用字节码,因此此技术极大地依赖安卓应用字节码及应用微服务相匹配。如果移动应用的字节码发生了变化,那么其运行时环境也会发生变化 ...
【技术保护点】
1.一种基于关键元素差异性分析的微服务更新方法,其特征在于,包括:关键元素筛选流程:对与旧版本安卓应用相匹配的微服务中的字节码进行分析,并据此筛选出影响所述微服务与新版本安卓应用之间的匹配的所有关键元素的集合;关键元素相似度分析流程:分析所述集合中的各关键元素在所述新版本安卓应用与所述旧版本安卓应用之间的相似度;破坏性变化判断流程:判断所述安卓应用由旧版本变为新版本后,相对于所述微服务是否发生了破坏性变化;需修改的关键元素定位流程:当所述安卓应用由旧版本变为新版本后,相对于所述微服务发生了破坏性变化时,根据所述各关键元素在所述新版本安卓应用与所述旧版本安卓应用之间的相似度, ...
【技术特征摘要】
2018.06.22 CN 20181065140641.一种基于关键元素差异性分析的微服务更新方法,其特征在于,包括:关键元素筛选流程:对与旧版本安卓应用相匹配的微服务中的字节码进行分析,并据此筛选出影响所述微服务与新版本安卓应用之间的匹配的所有关键元素的集合;关键元素相似度分析流程:分析所述集合中的各关键元素在所述新版本安卓应用与所述旧版本安卓应用之间的相似度;破坏性变化判断流程:判断所述安卓应用由旧版本变为新版本后,相对于所述微服务是否发生了破坏性变化;需修改的关键元素定位流程:当所述安卓应用由旧版本变为新版本后,相对于所述微服务发生了破坏性变化时,根据所述各关键元素在所述新版本安卓应用与所述旧版本安卓应用之间的相似度,判断所述集合中的各关键元素在所述安卓应用由旧版本变为新版本后相对于所述微服务是否发生了破坏性变化,并将发生了破坏性变化的关键元素作为所述微服务中需要修改的关键元素;关键元素修改方案推荐流程:根据所述各关键元素在所述新版本安卓应用与所述旧版本安卓应用之间的相似度,对所述微服务中的每一个需要修改的关键元素,给出修改推荐列表,所述修改推荐列表中包含所述新版本安卓应用中的各关键元素中与所述微服务中的该需要修改的关键元素相似度最高的预设数量的关键元素;微服务更新流程:对所述微服务中的每一个需要修改的关键元素,根据对该需要修改的关键元素给出的修改推荐列表,将该需要修改的关键元素修改为该修改推荐列表中的一个关键元素,以完成对所述微服务的更新。2.如权利要求1所述的基于关键元素差异性分析的微服务更新方法,其特征在于,所述关键元素筛选流程包括:步骤S1:使用访问者模式对所述微服务的dex字节码进行解析,同时,构造所述微服务的dex字节码的抽象语法树;步骤S2:遍历所述微服务的dex字节码的抽象语法树,将所述微服务的dex字节码的抽象语法树中所有Dex类节点、Dex域节点、Dex方法节点及Dex代码节点中域访问语句和函数调用语句中的类名、方法名和变量名均作为影响所述微服务与所述新版本安卓应用之间的匹配的关键元素加入所述集合。3.如权利要求2所述的基于关键元素差异性分析的微服务更新方法,其特征在于,所述关键元素相似度分析流程包括:关键元素相似度静态分析流程:根据所述旧版本安卓应用的dex字节码和所述新版本安卓应用的dex字节码,分析所述集合中的每一关键元素在所述新版本安卓应用与所述旧版本安卓应用之间的相似度;关键元素相似度动态分析流程:利用网构软件行为反射框架分别对所述新版本安卓应用和所述旧版本安卓应用的运行时栈模型中的应用活动的情况进行监测,得到所述新版本安卓应用和所述旧版本安卓应用运行时栈模型监测结果;根据所述新版本安卓应用和所述旧版本安卓应用运行时栈模型监测结果,分析所述集合中的每一关键元素在所述新版本安卓应用与所述旧版本安卓应用之间的相似度。4.如权利要求3所述的基于关键元素差异性分析的微服务更新方法,其特征在于,所述关键元素相似度静态分析流程中,对于所述集合中的任一关键元素X,分析其在所述新版本安卓应用与所述旧版本安卓应用之间的相似度的步骤包括:步骤S1:计算关键元素X在所述新版本安卓应用与所述旧版本安卓应用之间的一度相似度,计算方法为:提取关键元素X在所述新版本安卓应用和所述旧版本安卓应用中的元素内特征,根据关键元素X在所述新版本安卓应用和所述旧版本安卓应用中的元素内特征计算关键元素X在所述新版本安卓应用与所述旧版本安卓应用之间的一度相似度;步骤S2:判断关键元素X是复杂元素还是简单元素,如果关键元素X是复杂元素,则将所述一度相似度作为关键元素X在所述新版本安卓应用与所述旧版本安卓应用之间的相似度,如果关键元素X是简单元素,则进入步骤S3:步骤S3:计算关键元素X在所述新版本安卓应用与所述旧版本安卓应用之间的二度相似度,并将所述二度相似度作为关键元素X在所述新版本安卓应用与所述旧版本安卓应用之间的相似度,计算关键元素X在所述新版本安卓应用与所述旧版本安卓应用之间的二度相似度的方法为:提取关键元素X在所述新版本安卓应用和所述旧版本安卓应用中的元素间特征,根据关键元素X在所述新版本安卓应用和所述旧版本安卓应用中的元素间特征,查找所述新版本安卓应用和所述旧版本安卓应用中与关键元素X相关联的元素,并计算与关键元素X在所述新版本安卓应用中相...
【专利技术属性】
技术研发人员:蔡华谦,黄罡,张舒汇,景翔,
申请(专利权)人:北京大学,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。