【技术实现步骤摘要】
一种软件组件、软件组件运行时自检视方法、装置及系统
[0001]本专利技术属于软件诊断测试领域,更具体地,涉及一种软件组件、软件组件运行时自检视方法、装置及系统。
技术介绍
[0002]软件制品在运行时需满足一定的约束条件,包括环境变量、配置文件、依赖动态库、软件版本等。
[0003]对于一个大型的分布式系统,包含成百上千个软件组件,每一个软件组件都有自己独立的运行时约束条件,这些条件只有得到正确、完整的满足才能确保软件运行状态的正确。
[0004]逐一手工检查每个软件组件的约束条件是不现实的,工作量大且容易疏漏。如果只针对关键、重要的组件进行抽检,当次要组件配置不正确时会由于组件之间的耦合性和传递性而引发蝴蝶效应。
[0005]即使通过技术手段保证了全系统部署初期各组件的约束得到了满足,但随着系统的持续维护和升级,各组件的约束条件必然会发生变动,如果不能及时揭示该变化就会在系统中埋下隐患,引发各类运行时问题。
技术实现思路
[0006]针对现有技术的缺陷,本专利技术的目的在于提供一种软件组件、软件组件运行时自检视方法、装置及系统,旨在解决现有软件组件运行环境约束检查方法依赖人工方式无法进行快速、全面、准确检查的问题,提前消除运行环境不适配而埋下的隐患。
[0007]为实现上述目的,第一方面,本专利技术提供了一种软件组件运行时自检视方法,包括如下步骤:
[0008]在软件组件的可执行文件中插入检视代码;所述检视代码包括:检视代码节和检视数据节;所述检视数据节包括 ...
【技术保护点】
【技术特征摘要】
1.一种软件组件运行时自检视方法,其特征在于,包括如下步骤:在软件组件的可执行文件中插入检视代码;所述检视代码包括:检视代码节和检视数据节;所述检视数据节包括所述软件组件期望满足的运行环境约束条件信息;所述检视代码节包含诊断代码,用于收集所述软件组件的实际运行环境参数信息,并将所述实际运行环境参数信息和所述运行环境约束条件信息进行对比;将所述软件组件的入口点地址修改为所述检视代码节的首地址;运行所述软件组件,首先执行所述检视代码节中的诊断代码,对软件组件的实际运行环境进行检视,判断实际运行环境是否满足期望的运行环境约束条件;若所述实际运行环境参数信息和所述运行环境约束条件信息一致,则跳转至所述软件组件的原入口点地址,正常执行所述软件组件;若所述实际运行环境参数信息和所述运行环境约束条件信息不一致,则退出运行所述软件组件,并输出诊断结果,指示哪些信息不一致。2.根据权利要求1所述的方法,其特征在于,所述可执行文件为ELF格式文件。3.根据权利要求1所述的方法,其特征在于,所述运行环境约束条件信息包括但不限于:运行环境变量、配置文件、依赖动态库以及软件版本。4.根据权利要求1至3任一项所述的方法,其特征在于,在软件组件的可执行文件中插入检视代码,具体为:对运行环境约束条件信息的数据结构进行声明,该数据结构由多个数据项组成,数据项为固定长度的字符串,指代某一维度的运行环境约束条件信息;数据项之间按照线性关系顺序存储;在检视代码的源文件中以全局变量的方式定义运行环境约束条件信息的数据结构,数据项中的字符串值均为空,对该文件进行编译,生成命名为check_env.o的可重定位目标文件,其中.text节为检视代码,.data节为全局变量,即值全为空的检视数据;针对链接器ld使用的内部链接脚本进行自定义,新增两条节转换规则,将check_env.o中的.text节合并入链接生成的可执行文件并重命名为check_code检视代码节,将check_env.o中的.data节合并入链接生成的可执行文件并重命名为check_data检视数据节;按照正常的步骤对软件组件的源代码进行编译链接,生成自检视功能未被激活的可执行文件;针对每一个软件组件收集其运行环境约束条件信息,按照运行环境约束条件信息的数据结构进行组织,将该信息覆写至可执行文件中的检视数据节,并将可执行文件的入口点地址修改为检视代码节的首地址,生成自检视功能被激活的最终可执行文件。5.一种软件组件,其特征在于,包括:功能代码、检视代码以及检视数据;所述功能代码包括:第一数据节和第一代码节;所述第一数据节包含软件组件既有的业务数据;所述第一代码节包含软件组件既有的业务代码;所述检视代码包括:第二数据节和第二代码节;所述第二数据节包含运行环境约束条件信息的数据结构,数据项值均为空,用于在可执行文件中进行占位;所述第二代码节包含诊断代码,用于收集所述软件组件的实际运行环境参数信息,并将所述实际运行环境参数信息和预设的运行环境约束条件信息进行对比;所述第二数据节与第一数据节合并入所述软件组件的可执行文件,映射为具备可读写
权限的加载段;所述第二代码节与第一代码...
【专利技术属性】
技术研发人员:秦亮,万静强,张文昌,
申请(专利权)人:中国船舶集团有限公司第七〇九研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。