一种基于命令字框架的软件系统的扩展方法和系统技术方案

技术编号:38591338 阅读:9 留言:0更新日期:2023-08-26 23:30
本发明专利技术公开了一种基于命令字框架的软件系统的扩展方法和系统,其中方法包括接收命令字,其中,命令字用于在软件系统中调用指定扩展功能模块;根据命令字,确定指定扩展功能模块对应的库文件是否满足调用条件;在库文件满足调用条件的情况下,锁定库文件中存储的目标功能函数;软件系统的内核通过调用目标功能函数以运行指定扩展功能模块。通过上述步骤,将用于使用软件系统的扩展功能的库文件与软件系统的内核分离开来,使得开发人员不需要对软件系统的内核进行开发就使用功能扩展的目的,使用了减轻开发人员为软件系统开发扩展功能的工作压力、提高了扩展功能开发效率的技术效果,进而解决了软件系统难以便捷地进行功能扩展的技术问题。展的技术问题。展的技术问题。

【技术实现步骤摘要】
一种基于命令字框架的软件系统的扩展方法和系统


[0001]本专利技术涉及软件工程
,尤其涉及一种基于命令字框架的软件系统的扩展方法和系统。

技术介绍

[0002]软件在使用过程中,经常需要依赖外部的扩展功能模块以实现一些功能,扩展该软件功能的方式主要依靠官方提供的工具箱。在此基础上,开发者只能打包一些脚本文件,这种新功能的开发模式不够灵活,也无法实现用户的许多其他类型的需求。而且,现有的插件机制方案通常依赖数据库作为插件之间的通讯和协调方式,这限制了插件之间的直接通讯和分布式调用,也导致当数据结构发生变化时,所有插件都需要联动修改。

技术实现思路

[0003]本专利技术实施例提供了一种基于命令字框架的软件系统的扩展方法和系统,具有减轻开发人员为软件系统开发扩展功能的工作压力、提高了扩展功能开发效率的技术效果,进而解决了软件系统难以便捷地进行功能扩展的技术问题。
[0004]本专利技术提供一种基于命令字框架的软件系统扩展方法,所述方法包括:
[0005]接收命令字,其中,所述命令字用于在软件系统中调用指定扩展功能模块;
[0006]根据所述命令字,确定所述指定扩展功能模块对应的库文件是否满足调用条件;
[0007]在所述库文件满足调用条件的情况下,锁定所述库文件中存储的目标功能函数;
[0008]所述软件系统的内核通过调用所述目标功能函数以运行所述指定扩展功能模块。
[0009]在一可实施方式中,所述目标功能函数包括:
[0010]目标代码,所述目标代码为已经编译好的二进制代码;
[0011]符号表,用于记录函数和变量的名称及其在目标代码中的地址信息;
[0012]头文件,包含函数和变量的声明,以便在程序中正确使用库文件中的内容。
[0013]在一可实施方式中,在所述软件系统的内核通过调用所述目标功能函数以运行所述指定扩展功能模块之前,所述方法还包括:
[0014]读取所述目标功能函数并将所述目标功能函数存储在所述软件系统的内核中;
[0015]所述软件系统的内核调用存储的所述目标功能函数以运行所述指定扩展功能模块。
[0016]在一可实施方式中,所述至少一个目标功能函数的参数格式包括函数名称、函数运行时输出参数的个数、包含内核对象的数组、用于表示运行时各个输出参数的内存地址、函数运行时输入参数的个数、用于表示运行时各个输入参数的内存地址;
[0017]当所述软件系统的内核调用所述目标功能函数时,将所述目标代码编译为虚拟机可识别的字节码;
[0018]根据所述字节码,运行所述指定扩展功能模块。
[0019]在一可实施方式中,所述根据所述命令字,确定所述指定扩展功能模块对应的库
文件是否满足调用条件,包括:
[0020]根据所述库文件的签名确定所述库文件是否已授权;
[0021]或,读取所述库文件的所述目标功能函数,并根据所述目标功能函数的描述信息判断所述库文件中存储的所述目标功能函数是否与所述软件系统中已注册的其他功能函数存在冲突。
[0022]在一可实施方式中,所述命令字通过以下方式开发获得:
[0023]向命令字管理器注册自己的命令字服务提供者,声明自己的名字;
[0024]在命令字服务提供者的文件中配置命令字业务功能的函数映射;
[0025]在映射函数中实现具体的业务功能代码。
[0026]在一可实施方式中,所述命令字发起请求包括:
[0027]命令字管理器接受请求,并优先在内部检测命令字服务提供者是否存在,如果不存在,则向中央管理器转发请求,由中央管理器在远程全域检测命令字服务提供者是否存在,中央管理器会先验证请求者build信息是否正确,内部命令字调用无需build验证,远程调用则需要验证请求的合法性;如果内部和远程全域均不存在,则返回服务拒绝的提示;
[0028]检测命令字服务提供者是否存在该命令字功能,如果存在,则根据命令字的参数声明检测参数格式是否符合要求和符合安全标准;命令字不存在或参数不符合要求,则返回对应的服务拒绝提示。
[0029]在一可实施方式中,在所述库文件不满足调用条件的情况下,软件系统反馈表征无法扩展的提示信息。
[0030]在一可实施方式中,所述库文件基于所述软件系统的内核的头文件和所述软件系统的扩展功能开发标准开发得到。
[0031]本专利技术另一方面提供一种基于命令字框架的软件系统扩展系统,所述系统包括:
[0032]接收模块,用于接收命令字,其中,所述命令字用于在软件系统中调用指定扩展功能模块;
[0033]检查模块,用于根据所述命令字,确定所述指定扩展功能模块对应的库文件是否满足调用条件;
[0034]识别模块,用于在所述库文件满足调用条件的情况下,锁定所述库文件中存储的目标功能函数;
[0035]调用模块,用于所述软件系统的内核通过调用所述目标功能函数以运行所述指定扩展功能模块。
[0036]在本专利技术实施例中,采用将软件系统的内核与实现扩展功能的扩展模块分离开来的框架,在接收用于在软件系统中添加指定扩展功能模块的命令字之后,通过根据所述命令字,确定所述指定扩展功能模块对应的库文件是否满足调用条件;在所述库文件满足调用条件的情况下,锁定所述库文件中存储的目标功能函数;所述软件系统的内核通过调用所述目标功能函数以运行所述指定扩展功能模块,由此,本方案达到了将用于实现软件系统的扩展功能的库文件与软件系统的内核分离开来,使得开发人员不需要对软件系统的内核进行开发就可以为软件系统进行功能扩展的目的,从而实现了减轻开发人员为软件系统开发扩展功能的工作压力、提高了扩展功能开发效率的技术效果,进而解决了软件系统难以便捷地进行功能扩展的技术问题。
[0037]在本专利技术实施例中,提供了一种名为“命令字”的设计模式。该设计模式通过声明多个功能模块,将功能的调用方式称之为“命令字”,并通过内部或远程方式使用命令字来调用插件功能。这种设计模式简化了开发流程,增强了插件之间的通讯模式,实现了插件与系统、插件与插件之间的直接通讯和分布式通讯和调用。同时,该设计模式还能支撑多插件和多系统多插件模式,以及以微服务的模式实现系统之间的分布式调用。通过采用本专利技术提供的“命令字”设计模式,Web软件产品可以更好地支持扩展服务的需求,实现更灵活、高效的插件机制。
附图说明
[0038]通过参考附图阅读下文的详细描述,本专利技术示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本专利技术的若干实施方式,其中:
[0039]在附图中,相同或对应的标号表示相同或对应的部分。
[0040]图1为本专利技术实施例一种基于命令字框架的软件系统扩展方法的实现流程示意图;
[0041]图2为本专利技术实施例一种基于命令字框架的软件系统扩展系统的结构组成图。
具体实施方式
[0042]为使本专利技术的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于命令字框架的软件系统扩展方法,其特征在于,所述方法包括:接收命令字,其中,所述命令字用于在软件系统中调用指定扩展功能模块;根据所述命令字,确定所述指定扩展功能模块对应的库文件是否满足调用条件;在所述库文件满足调用条件的情况下,锁定所述库文件中存储的目标功能函数;所述软件系统的内核通过调用所述目标功能函数以运行所述指定扩展功能模块。2.根据权利要求1所述的方法,其特征在于,所述目标功能函数包括:目标代码,所述目标代码为已经编译好的二进制代码;符号表,用于记录函数和变量的名称及其在目标代码中的地址信息;头文件,包含函数和变量的声明,以便在程序中正确使用库文件中的内容。3.根据权利要求2所述的方法,其特征在于,在所述软件系统的内核通过调用所述目标功能函数以运行所述指定扩展功能模块之前,所述方法还包括:读取所述目标功能函数并将所述目标功能函数在所述软件系统的内核中;所述软件系统的内核调用存储的所述目标功能函数以运行所述指定扩展功能模块。4.根据权利要求3所述的方法,其特征在于,所述至少一个目标功能函数的参数格式包括函数名称、函数运行时输出参数的个数、包含内核对象的数组、用于表示运行时各个输出参数的内存地址、函数运行时输入参数的个数、用于表示运行时各个输入参数的内存地址;当所述软件系统的内核调用所述目标功能函数时,将所述目标代码编译为虚拟机可识别的字节码;根据所述字节码,运行所述指定扩展功能模块。5.根据权利要求1所述的方法,其特征在于,所述根据所述命令字,确定所述指定扩展功能模块对应的库文件是否满足调用条件,包括:根据所述库文件的签名确定所述库文件是否已授权;或,读取所述库文件的所述目标功能函数,并根据所述目标功能函数的描述信息判断所述库文件中存储的所述目标功能函数是...

【专利技术属性】
技术研发人员:唐杰
申请(专利权)人:弗雷森斯苏州科技有限公司
类型:发明
国别省市:

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

1