一种应用系统内嵌脚本的方法和装置制造方法及图纸

技术编号:11153209 阅读:71 留言:0更新日期:2015-03-18 09:42
本发明专利技术公开一种内嵌脚本的方法,在所述应用系统中配置预先设定的脚本配置文件,以及为每种脚本语言类型配置相应的转换模型;根据脚本配置文件中的配置信息,获取各脚本语言程序包的存放路径,并在所述应用系统内部获取与所述各脚本语言类型相应的动态链接库;根据所述各转换模型,对各动态链接库完成初始化后,各动态链接库按照各脚本语言程序包的存放路径找到与其对应的脚本语言程序包,并对所述脚本语言程序包进行解析;根据所述各转换模型和所述脚本配置文件中的配置信息,在所述各动态链接库中植入与其相应的方法名和参数;所述应用系统调用所述动态链接库,执行所述动态链接库中植入的方法名和参数,返回执行结果。

【技术实现步骤摘要】
一种应用系统内嵌脚本的方法和装置
本专利技术涉及一种内嵌脚本的方法和装置,具体地涉及一种应用系统内嵌外部脚本 的方法和装置。
技术介绍
近年IT业迅猛发展,多种大型综合软件在各行业中涌现,大型综合软件会承载多 种业务,为了方便用户根据自身业务特点撰写不同的业务逻辑,提高系统灵活性,很多大型 综合软件提供了对外的API接口,专供用户调用,可执行用户自己编写不同业务逻辑的外 部脚本。所谓外部脚本,就是在系统既定的业务范围外,用户还需要其他辅助业务需要处 理,或者针对系统处理的内部数据,还需要精细加工或者特殊处理,而自行编写的程序化脚 本。该脚本能够独立依赖自身的脚本语言执行。当系统调用这些外部脚本后,根据脚本植 入系统配置的位置而依次调用。这样结合系统的业务功能和逻辑,就可以实现这种灵活的 功能或者业务扩展。内嵌方式不仅仅可以实现用户的自增逻辑扩展,同时也实现系统对外 部脚本的可控化,同时从性能角度出发,提升的效率也非常可观。 这种给用户提供调用自编脚本接口的方式,极大提高了系统的灵活性,但同时也 带来了一系列问题。其一由于用户编程语言习惯的不同可能会采用不同的语言撰写脚本, 当用户调用API接口试图运行这些脚本语言时,会调用系统资源执行其脚本,直接导致系 统处理效率降低,影响系统性能。其二,现有系统运行这些用户自编外部脚本的方式为通过 系统C程序调用SHELL脚本语言,SHELL语言再指向用户自编脚本程序包,这样几层调用关 系,会导致系统多语言混乱调用,降低系统处理能力,且调用语言脚本运行不可控,也无法 跟踪脚本程序包的运行情况。
技术实现思路
本专利技术提供了一种将用户根据业务需求自撰的脚本语言程序包内嵌入应用系统 执行的方法,提高了应用系统执行外部程序包的效率和可控性,同时避免了多重语言调用 出现的复杂易出错的弊端。 -种应用系统内嵌脚本的方法,其特征在于,所述方法包括: 根据已编写好的外部各脚本语言程序包在所述应用系统中配置预先设定的脚本 配置文件,以及为每种脚本语言类型配置相应的转换模型; 所述应用系统加载所述脚本配置文件,根据所述脚本配置文件中的配置信息,获 取各脚本语言程序包的存放路径,并在所述应用系统内部获取与所述各脚本语言类型相应 的动态链接库; 根据所述各转换模型,对与转换模型相同脚本语言类型的动态链接库完成初始化 后,所述各动态链接库按照所述各脚本语言程序包的存放路径找到与其对应的脚本语言程 序包,并对所述脚本语言程序包进行解析; 根据所述各转换模型和所述脚本配置文件中的配置信息,在所述各动态链接库中 植入与其相应的方法名和参数; 所述应用系统调用所述动态链接库,执行所述动态链接库中植入的方法名和参 数,返回执行结果。 优选的,在所述通用语言动态链接库执行所述解析后的与其对应的脚本语言程序 包后,所述方法还包括: 清除所述动态链接库本次解析的内容,释放其所占系统资源。 具体的,所述配置预先设定的脚本配置文件的方法具体为: 在所述脚本配置文件中配置各脚本语言程序包的编写语言类型、存放路径、方法 名和执行该方法所需的参数,将每个脚本语言程序包的信息配置为一条记录。 具体的:在每个所述转换模型中配置一种脚本语言类型的转换规则,所述转换规 则包括与该脚本语言类型相应的动态链接库初始化方法、生成解析器方法、外部传递参数 方法、返回值方法。 优选的,在所述动态链接库初始化之前,所述方法还包括: 根据所述脚本配置文件中配置各脚本语言程序包的方法名,与所述脚本程序包中 的所有方法名进行比对校验,如有方法名错误或未找到则提示错误报告并退出步骤。 具体的,根据所述转换规则中记载的动态链接库初始化方法对与该转换规则脚本 语言类型相应的动态链接库进行初始化; 读取所述脚本配置文件中记载的所述该脚本语言类型方法名和执行该方法所需 的参数,通过所述转换规则中的外部传递参数方法,将所述方法名和执行该方法所需的参 数植入相应的动态链接库。 具体的,所述脚本语言类型包括PERL语言、SHELL语言、PYTHON语言、LUA语言; [0021 ] 在所述应用系统内部获取与所述各脚本语言类型相应的动态链接库。 优选的,当出现新的脚本语言程序包时,可在脚本配置文件中增加新的记录,所述 应用系统周期性读取所述脚本配置文件中的信息,可根据实际操作需求设定应用系统的读 取周期。 本专利技术还公开一种应用系统内嵌脚本的装置,其特征在于,所述装置包括: 配置模块,用于根据已编写好的外部各脚本语言程序包在应用系统中预置脚本配 置文件,以及为每种脚本语言类型配置相应的转换模型; 获取模块,用于加载所述配置模块预置的脚本配置文件,根据所述脚本配置文件 中的配置信息,获取各脚本语言程序包的存放路径,并在所述应用系统内部获取与所述各 脚本语言类型相应的动态链接库; 解析模块,用于根据所述配置模块配置的转换模型,对所述获取模块获取的与转 换模型相同脚本语言类型的动态链接库完成初始化后,所述各动态链接库按照所述各脚本 语言程序包的存放路径找到与其对应的脚本语言程序包,并对所述脚本语言程序包进行解 析; 植入模块,用于根据所述配置模块配置的转换模型和所述脚本配置文件中的配置 信息,在所述解析模块中对脚本语言程序包进行解析后的动态链接库中植入与其相应的方 法名和参数; 执行模块,用于调用所述解析模块中的动态链接库,执行植入模块在所述动态链 接库中植入的方法名和参数。 优选的,所述装置还包括: 资源释放模块,用于在执行模块执行完成后,清除所述解析模块中本次解析的内 容。 具体的,所述配置模块在所述脚本配置文件中配置各脚本语言程序包的编写语言 类型、存放路径、方法名和执行该方法所需的参数,将每个脚本语言程序包的信息配置为一 条记录。 具体的,所述配置模块在每个所述转换模型中配置一种脚本语言类型的转换规 贝1J,所述转换规则包括与该脚本语言类型相应的动态链接库初始化方法、生成解析器方法、 外部传递参数方法、返回值方法。 优选的,所述装置还包括: 校验模块,用于在解析模块对动态链接库进行初始化之前,根据所述脚本配置文 件中配置各脚本语言程序包的方法名,与所述脚本程序包中的所有方法名进行比对校验, 如有方法名错误或未找到则提示错误报告并退出步骤。 具体的,所述解析模块根据所述转换规则中记载的动态链接库初始化方法对与该 转换规则脚本语言类型相应的动态链接库进行初始化; 所述植入模块读取所述脚本配置文件中记载的所述该脚本语言类型方法名和执 行该方法所需的参数,通过所述转换规则中的外部传递参数方法,将所述方法名和执行该 方法所需的参数植入相应的动态链接库。 具体的,当出现新的脚本语言程序包时,所述配置模块可在脚本配置文件中增加 新的记录; 所述获取模块周期性读取所述脚本配置文件中的信息,可根据实际操作需求设定 应用系统的读取周期。 本专利技术通过脚本配置文件,将用户自撰不同脚本语言类型的脚本语言程序在应用 系统中记载,通过预先设定的转换模型调用应用系统中与各脚本语言类型的动态链接库, 通过动本文档来自技高网
...

【技术保护点】
一种应用系统内嵌脚本的方法,其特征在于,所述方法包括:根据已编写好的外部各脚本语言程序包在所述应用系统中配置预先设定的脚本配置文件,以及为每种脚本语言类型配置相应的转换模型;所述应用系统加载所述脚本配置文件,根据所述脚本配置文件中的配置信息,获取各脚本语言程序包的存放路径,并在所述应用系统内部获取与所述各脚本语言类型相应的动态链接库;根据所述各转换模型,对与转换模型相同脚本语言类型的动态链接库完成初始化后,所述各动态链接库按照所述各脚本语言程序包的存放路径找到与其对应的脚本语言程序包,并对所述脚本语言程序包进行解析;根据所述各转换模型和所述脚本配置文件中的配置信息,在所述各动态链接库中植入与其相应的方法名和参数;所述应用系统调用所述动态链接库,执行所述动态链接库中植入的方法名和参数,返回执行结果。

【技术特征摘要】
1. 一种应用系统内嵌脚本的方法,其特征在于,所述方法包括: 根据已编写好的外部各脚本语言程序包在所述应用系统中配置预先设定的脚本配置 文件,以及为每种脚本语言类型配置相应的转换模型; 所述应用系统加载所述脚本配置文件,根据所述脚本配置文件中的配置信息,获取各 脚本语言程序包的存放路径,并在所述应用系统内部获取与所述各脚本语言类型相应的动 态链接库; 根据所述各转换模型,对与转换模型相同脚本语言类型的动态链接库完成初始化后, 所述各动态链接库按照所述各脚本语言程序包的存放路径找到与其对应的脚本语言程序 包,并对所述脚本语言程序包进行解析; 根据所述各转换模型和所述脚本配置文件中的配置信息,在所述各动态链接库中植入 与其相应的方法名和参数; 所述应用系统调用所述动态链接库,执行所述动态链接库中植入的方法名和参数,返 回执行结果。2. 根据权利要求1所述的方法,其特征在于,在所述通用语言动态链接库执行所述解 析后的与其对应的脚本语言程序包后,所述方法还包括: 清除所述动态链接库本次解析的内容,释放其所占系统资源。3. 根据权利要求1所述的方法,其特征在于,所述配置预先设定的脚本配置文件的方 法具体为: 在所述脚本配置文件中配置各脚本语言程序包的编写语言类型、存放路径、方法名和 执行该方法所需的参数,将每个脚本语言程序包的信息配置为一条记录。4. 根据权利要求1-3中任一所述的方法,其特征在于: 在每个所述转换模型中配置一种脚本语言类型的转换规则,所述转换规则包括与该脚 本语言类型相应的动态链接库初始化方法、生成解析器方法、外部传递参数方法、返回值方 法。5. 根据权利要求4之一所述的方法,其特征在于,在所述动态链接库初始化之前,所述 方法还包括: 根据所述脚本配置文件中配置各脚本语言程序包的方法名,与所述脚本程序包中的所 有方法名进行比对校验,如有方法名错误或未找到则提示错误报告并退出步骤。6. 根据权利要求5所述的方法,其特征在于: 根据所述转换规则中记载的动态链接库初始化方法对与该转换规则脚本语言类型相 应的动态链接库进行初始化; 读取所述脚本配置文件中记载的所述该脚本语言类型方法名和执行该方法所需的参 数,通过所述转换规则中的外部传递参数方法,将所述方法名和执行该方法所需的参数植 入相应的动态链接库。7. 根据权利要求5所述的方法,其特征在于: 所述脚本语言类型包括PERL语言、SHELL语言、PYTHON语言、LUA语言; 在所述应用系统内部获取与所述各脚本语言类型相应的动态链接库。8. 根据权利要求6所述的方法,其特征在于: 当出现新的脚本语言程序包时,可在脚本配置文件中增加新的记录,所述应用系统周 期性读取所述脚本配置文件中的信息,可根据实际操作需...

【专利技术属性】
技术研发人员:陈丹张涛张彦文
申请(专利权)人:北京亿阳信通科技有限公司亿阳信通股份有限公司
类型:发明
国别省市:北京;11

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

1