一种动态创建可附加和可拆除二进制文件的系统和方法技术方案

技术编号:11070773 阅读:97 留言:0更新日期:2015-02-25 10:29
公开的是一种动态创建可附加和可拆除二进制文件的技术。本发明专利技术提供了一种管理关于附加代码的现有代码基库有效机制,该附加代码为用作单一代码基库的特定特征所需。同时也为设计者提供了一种机制,甚至可在代码概念化之前规划此类特征。系统解析具有DFM标签的代码,以生成基础代码,其中,所述DFM标签隔离特征。基于DFM标签创建多个代码集合。生成特征变化表,并将其存入该系统中,所述特征变化表存储相对于所述代码集合中的特征发生变化的特征的信息。接着编译代码集合以生成二进制文件。通过特征变化表,确定并存储每个所述二进制文件之间的差异,以用来创建一个或多个微分二进制文件。

【技术实现步骤摘要】
【国外来华专利技术】
本申请总体涉及一种创建二进制文件的系统和方法,尤其涉及。
技术介绍
传统上,软件开发的过程具有非常严谨的生命周期。该过程的步骤,即固定顺序为编写代码、编译、调试并解决问题以及发布和部署。软件二进制或二进制文件一经使用,如不重新启动,则向运行中的二进制文件添加或从其中移除特征变得极其困难。即使重新启动,如果软件状态不得不恢复至初始状态,那么开销将非常庞大。 已经有一些方案可解决这一局限,但是每个方案均有各自的缺陷。例如,开发的软件可能具有模块,这些模块存储了日志级别信息、调试信息等,旨在基于如何编译或配置提供不同的功能。通过一些标志或配置值,可以在运行时间控制这些模块/文件的运行状态,但是必须使用整个二进制文件来创建软件代码。共享库或动态加载库也可用于管理此类特征,但是与库连接并管理库的代码应在最初编写的代码中。 现有技术提供了各种方案,可以在编写期间使用预处理宏配置调试和日志级别管理;或者在运行时间配置调试和日志级别管理只要预处理宏属于初始设计和代码的一部分。所述模块也可当做可动态加载的库,但是同样地,设计和编码这些模块必须在一开始完成,同时加载以及与正确库连接的附加代码必须在初始二进制文件中。另外,传统意义上这些应用设计具有各种日志级别、踪迹打印以及维护日志选项。上述选项应属于应用代码的一部分,因此编译的目标代码应属于二进制文件或库的一部分。可以使用实时补丁应用添加附加代码,但是这些补丁需分别管理初始代码和新增代码,在理想情况下作为补丁或不同文件。进一步地,该补丁技术仅对缺陷修正或小升级适用。 管理这些模块或特征的另一方案具有稍微不同的功能,即在编译期间使用预处理宏。使用预处理宏将会清除由此产生的二进制文件中的备选流代码,随后将无法恢复,除非再次编译二进制文件。同样,通过在运行时间使用一些配置值,可以使能或去使能特征逻辑,但是只有通过选择备用码流或路径才实现,并且只有特征逻辑是初始设计、代码、以及随后的编译的目标代码的一部分,才可完成。 同样地,在一个方案中,这些模块也可当做可动态加载的库,关于库的软件设计同样应该在一开始完成,且与库连接的配套代码必须在软件中。 除上述提及的局限,现有技术的方案还具有各种其他制约因素。下面列举了其中一些因素: 1.使用附加特征或者使用发布的二进制文件每次部署时可能不使用的特征不支持单流开发。 2.如果单流代码开发可以使用实时补丁,需要分别维护和跟踪补丁或不同的文件。单个源码库在这类情况中不能被很好地支持。 3.因为上述局限和约束因素,降低了开发质量和效率。 4.此外,若有更大的应用规模,则维护需求非常高,且应用的规模使得对二进制文件作出较大变化变得困难。 尽管避免上述提及的局限和约束因素的技术日益发展,仍需要提供有效的技术方案,以克服上述的局限和约束因素。因此,亟需但仍未提供的一种技术是动态创建可附加和可拆除微分二进制文件。通过减少现有二进制文件中任何特征的升级时间和成本,该技术提供了一种有效的解决方案。
技术实现思路

技术实现思路
介绍的概念涉及一种创建可执行二进制文件的系统和方法,为现有的二进制文件减少了开销,缩短升级时间,下面进一步具体描述所述概念。本
技术实现思路
不旨在确定所要求保护的本申请的必要特征,也不旨在确定或限定所要求保护的本申请的范围。 通过提供一种动态创建可附加和可拆除微分二进制文件的优化方法和系统,上述问题得以解决,并实现了一种技术方案。本专利技术通过提供一种有效的解决方案,减少了现有以及当前执行的二进制文件中现有或者需要新添加的任意特征的升级时间和成本。 因此,本专利技术的一个主要目的是提供一种动态创建可附加和可拆除微分二进制文件的系统和方法,为现有以及当前执行的二进制文件中的任意特征,或现有以及当前执行的二进制文件中添加的新特征,减少了开销,并缩短了升级时间,降低了成本。 本专利技术的另一目的是支持单流开发、基础特征以及附加特征,可在同一代码基库中进行隔离。 本专利技术的另一目的是无需维护补丁或微分代码文件等更新信息,同时实现在同一代码基库上的连续开发。 本专利技术的再一目的在于,通过本专利技术提出的减少现有以及当前执行的二进制文件中现有或者新添加的任意特征的升级时间和成本,从而提高软件开发的质量和效率。 本专利技术的又一目的在于,只有必要和要求的二进制代码段即优化占用空间,可以在目标运行时间环境中使用。只有当需要用做微分二进制文件时,附加特征才可被引进。 因此,在本专利技术的一个实施例中,公开了一种计算机系统,具有非临时性计算机可读介质,该计算机可读介质上包括已编码的计算机程序逻辑,当在所述系统上执行时提供一种创建并管理至少一个可执行微分二进制文件220的机制。所述系统进行解析至少一个具有至少一个动态特征管理器(DFM)标签的计算机程序源代码的操作。所述系统进行基于DFM标签创建多个代码集合的操作。所述代码集合包括:具有基础代码的第一代码集合,所述基础代码为无任何DFM标签的至少一个计算机程序源代码,以及具有所述基础代码和特征的至少一个第二代码集合,所述特征为码集。所述系统接着进行生成多个特征变化表216的操作,所述特征变化表216存储相对于所述代码集合中的特征发生变化的特征的信息。所述系统还进行清除所述计算机程序源代码中的所述DFM标签的操作,以生成所述基础代码,所述DFM标签用于表示所述特征与所述至少一个计算机程序源代码隔离。所述系统接着进行编译所述代码集合的操作,以生成多个二进制文件。通过所述特征变化表216,所述系统接着进行确定所述多个二进制文件中任意两个二进制文件之间的差异的操作,从而存储所述确定的差异。基于所述存储的差异,所述系统最后进行创建一个或多个微分二进制文件220的操作。在一种实现中,可以基于源代码中创建的多个特征变化表,确定所述多个二进制文件中任意两个二进制文件之间的差异,同时,可以只为在差异表中具有条目的部分确定该差异,所述差异表由DFM在解析代码时创建,从而优化并且避免了完全的二进制文件差异。 在本专利技术的另一实施例中,公开了一种创建并管理至少一个可执行的微分二进制文件220的过程。所述过程包括下列步骤:自动解析至少一个具有至少一个动态特征管理器(DFM)标签的计算机程序源代码;基于DFM标签,创建多个代码集合,其中,所述代码集合包括:具有基础代码的第一代码集合,所述基础代码为无任何DFM标签的所述至少一个计算机程序源代码,以及具有所述基础代码和特征的至少一个第二代码集合,所述特征为码集;生成多个特征变化表216,所述特征变化表216存储相对于所述代码集合中的特征发生变化的特征的信息;清除所述计算机程序源代码中的所述DFM标签,以生成所述基础代码,所述DFM标签用于表示所述特征与所述至少一个计算机程序源代码隔离;编译所述代码集合,以生成多个二进制文件;通过所述特征变化表216,确定所述多个二进制文件中任意两个二进制文件之间的差异,从而存储所述确定的差异;基于所述存储的差异,创建一个或多个微分二进制文件220。在一种实现中,可以基于源代码中创建的多个特征变化表,确定所述多个二进制文件中任意两个二进制文件之间的差异,同时,可以只为在差异表中具有条目的部分确定该差异,所述本文档来自技高网
...
一种<a href="http://www.xjishu.com/zhuanli/55/201480001541.html" title="一种动态创建可附加和可拆除二进制文件的系统和方法原文来自X技术">动态创建可附加和可拆除二进制文件的系统和方法</a>

【技术保护点】
一种计算机系统202,其特征在于,具有非临时性计算机可读介质,该计算机可读介质上包括已编码的计算机程序逻辑,当在所述系统202上执行时提供一种创建并管理一个或多个可执行微分二进制文件220的机制,使所述系统202执行以下操作:解析至少一个计算机程序源代码,其中所述计算机程序源代码具有至少一个动态特征管理器DFM标签;基于所述DFM标签创建多个代码集合,其中,所述代码集合包括:具有基础代码的第一代码集合,所述基础代码为无任何DFM标签的所述至少一个计算机程序源代码,以及具有所述基础代码和特征的至少一个第二代码集合,所述特征为码集;生成一个或多个特征变化表216,所述特征变化表216存储相对于所述代码集合中的特征发生变化的特征的信息;清除计算机程序源代码中的所述DFM标签,以生成所述基础代码,所述DFM标签用于表示所述特征与所述至少一个计算机程序源代码隔离;编译所述代码集合,以生成多个二进制文件;通过所述特征变化表216,确定所述多个二进制文件中任意两个二进制文件之间的差异;基于所述确定的差异,创建一个或多个微分二进制文件220,所述一个或多个可执行微分二进制文件220包括所述创建的一个或多个微分二进制文件220。...

【技术特征摘要】
【国外来华专利技术】2014.05.21 IN 2531/CHE/20141.一种计算机系统202,其特征在于,具有非临时性计算机可读介质,该计算机可读介质上包括已编码的计算机程序逻辑,当在所述系统202上执行时提供一种创建并管理一个或多个可执行微分二进制文件220的机制,使所述系统202执行以下操作: 解析至少一个计算机程序源代码,其中所述计算机程序源代码具有至少一个动态特征管理器DFM标签; 基于所述DFM标签创建多个代码集合,其中,所述代码集合包括:具有基础代码的第一代码集合,所述基础代码为无任何DFM标签的所述至少一个计算机程序源代码,以及具有所述基础代码和特征的至少一个第二代码集合,所述特征为码集; 生成一个或多个特征变化表216,所述特征变化表216存储相对于所述代码集合中的特征发生变化的特征的信息; 清除计算机程序源代码中的所述DFM标签,以生成所述基础代码,所述DFM标签用于表示所述特征与所述至少一个计算机程序源代码隔离; 编译所述代码集合,以生成多个二进制文件; 通过所述特征变化表216,确定所述多个二进制文件中任意两个二进制文件之间的差巳升; 基于所述确定的差异,创建一个或多个微分二进制文件220,所述一个或多个可执行微分二进制文件220包括所述创建的一个或多个微分二进制文件220。2.根据权利要求1所述的计算机系统202,其特征在于,所述DFM标签遵循DFM_〈thefeature name>_start 和 DFM_〈the feature name>_end 语法来隔离所述特征。3.根据权利要求1或2所述的计算机系统202,其特征在于,在编写所述计算机程序源代码时添加所述DFM标签。4.根据权利要求1至3任一项所述的计算机系统202,其特征在于,在向所述计算机程序源代码添加新代码或更新代码时增加所述DFM标签。5.根据权利要求1或2所述的计算机系统202,其特征在于,所述特征是从一个包括函数、全局变量和结构、常见宏、内嵌函数、静态变量、以及上述的组合的群组中选出。6.根据权利要求1至4任一项所述的计算机系统202,其特征在于,在所述解析至少一个具有至少一个动态特征管理器(DFM)标签的计算机程序源代码时,所述计算机系统202还用于执行以下操作: 解析至少一个具有至少一个动态特征管理器(DFM)标签的计算机程序源代码,以检查所述DFM标签的嵌套,并创建所述计算机程序源代码的层级树,其中,所述层级树包括设置在最高层级的DFM无关标签,以及作为所述层级树中的下层节点的子标签和/或兄弟标签。7.根据权利要求1所述的计算机系统202,其特征在于,所述变化的特征是从一个包括函数、全局变量和结构、常见宏、内嵌函数、静态变量、和/或上述的组合的群组中选出,所述变化的特征是相对于所述代码集合中的特征发生变化或新引入或更新的特征。8.根据权利要求1至4任一项所述的计算机系统202,其特征在于,所述DFM标签遵循规则,其中每个特征相应的‘end’ DFM标签与‘start’ DFM标签相匹配。9.根据权利要求1所述的计算机系统202,其特征在于,所述系统202还用于执行以下操作:将所述一个或多个微分二进制文件220加载到存储器中,并将所述一个或多个微分二进制文件220映射到执行中的二进制文件。10.一种创建并管理至少一个可执行微分二进制文件220的方法,其特征在于,所述方法包括: 解析至少一个具有至少一个动态特征管理器(DFM)标签的计算机程序源代码; 基于所述DFM标签创建多个代码集合,其中,所述代码集合包括:具有基础代码的第一代码集合,所述基础代码为无任何DFM标签的所述至少一个计算机程序源代码,以及具有所述基础代码和特征的至少一个第二代码集合,所述特征为码集; 生成一个或多个特征变化表216,所述特征变化表216存储相对于所述代码集合中的特征发生变化的特征的信息; 清除所述计算机程序源代码中的所述DFM标签,以生成基础代码,其中所述DFM标签用于表示所述特征与所述至少一个计算机程序源代码隔离; 编译所述代码集合,以生成多个二进制文件; 通过所述特征变化表216,确定所述多个二进制文件中任意两个二进制文件之间的差巳升; 基于所述确定的差异,创建一个或多个微分二进制文件220,所述一个或多个可执行微分二进制文件220包括所述创建的一个或多个微分二进制文件220。11.根据权利要求10所述的方法,其特征在于,所述DFM标签采遵循DFM_〈thefeaturename>_start 和 DFM_〈the feature name>_end 语法来隔离所述特征。12.根据权利要求10和11所述的方法,其特征在于,在编写所述计算机程序源代码时添加所述DFM标签。13.根据权利要求10至12任一项所述的方法,其特征在于,在向所述计算机程序源代码添加新代码或更新代码时增加所述DFM标签。14.根据权利要求10或11所述的方法,其特征在于,所述特征是...

【专利技术属性】
技术研发人员:伊凡·阿尔·瑞赫曼奈尔·撒尼尔·库马尔·迪瓦卡然
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1