一种基于动态链接库调度多业务的方法及系统的制作方法
【专利摘要】本发明涉及一种基于动态链接库调度多业务的方法及系统,其方法包括以下步骤,S1,统一业务订单的入参参数;S2,在统一的入参参数下,配置数据库表中的业务订单类型对应的服务名称和操作名称;S3,根据服务名称和操作名称编写业务订单处理逻辑的动态函数;S4,根据业务订单处理逻辑的动态函数编译生成动态链接库;S5,通过显示加载动态链接库和调用动态函数完成订单提交调度多业务。本发明一种基于动态链接库调度多业务的方法及系统统一了订单业务提交入参,数据库配置业务类型对应的动态链接库名称和动态函数名称;通过主程序显式加载动态链接库,调用相对应的动态函数实现业务逻辑,提交订单,调度多业务。
【专利说明】
一种基于动态链接库调度多业务的方法及系统
技术领域
[0001]本发明涉及一种订单提交方法及系统,具体的涉及一种基于动态链接库调度多业务的系统。
【背景技术】
[0002]在现有技术中,实现订单提交通常采用的是静态库,静态库(Archivelibrary)在创建可执行程序的过程中,静态库同时被链接到程序代码中,被主程序调用的函数目标文件连同主程序组合成单一的可执行程序;由于静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库,因此静态库占有的体积较大;同时,静态库中程序有更新时,所有依赖此静态库的程序需要重新编译升级,其配置复杂、可维护性差。
【发明内容】
[0003]本发明所要解决的技术问题是提供一种节省内存、减少bin文件体积的、配置和可维护性好的使用动态链接库调度多业务的方法及系统。
[0004]本发明解决上述技术问题的技术方案如下:一种基于动态链接库调度多业务的方法,包括以下步骤,
[0005]SI,统一业务订单的入参参数;
[0006]S2,在统一的入参参数下,配置数据库表中的业务订单类型对应的服务名称和操作名称;
[0007]S3,根据服务名称和操作名称编写业务订单处理逻辑的动态函数;
[0008]S4,根据业务订单处理逻辑的动态函数编译生成动态链接库;
[0009]S5,通过显示加载动态链接库和调用动态函数完成订单提交调度多业务。
[0010]本发明的有益效果是:由于动态链接库在编译的时候并没有被编译进目标代码中,只是把函数的句柄编译进可执行文件中,可执行程序执行到相关函数时才调用该函数库里的相应函数,所以在本发明一种基于动态链接库调度多业务的方法中,动态链接库在操作系统中只加载一次,有助于节省内存,减少可执行bin文件的体积;同时动态链接库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,而且统一了订单提交的入参参数,采用显示加载动态链接库和动态函数实现了业务逻辑调用函数配置化,减少同步程序的风险,避免了静态库对程序的更新、部署和发布页会带来麻烦。
[0011]在上述技术方案的基础上,本发明还可以做如下改进。
[0012]进一步,步骤S5的具体实现方法为,
[0013]S51,获取业务订单的入参参数中的服务名称和操作名称;
[0014]S52,根据服务名称和操作名称查询对应的动态链接库和动态函数;
[0015]S53,采用显示加载动态链接库的方式,调用动态链接库中对应的动态函数;
[0016]S54,动态函数返回成功,完成订单提交调度多业务。
[0017]采用上述进一步方案的有益效果是:根据服务名称和操作名称查询出对应动态链接库和动态函数,新增业务或旧业务升级时,各动态链接库互不影响,只需配置动态链接库和动态函数名称,上传新增动态函数库,不必重启服务,升级比较方便,大大简化程序开发人员的开发时间。
[0018]进一步,所述动态函数的入参参数与所述业务订单的入参参数相同。
[0019]进一步,调用动态函数的方法为,首先获取动态函数的入参参数,然后执行动态函数中的业务订单处理逻辑,最后返回动态函数处理结果。
[0020]进一步,在步骤S4中使用链接器中的共享编译生成动态链接库。
[0021 ]基于上述一种基于动态链接库调度多业务的方法,本发明还提供一种基于动态链接库调度多业务的系统。
[0022]为实现上述发明目的,本发明还提供了一种基于动态链接库调度多业务的系统,包括入参参数统一模块、数据库表配置模块、动态函数编写模块、动态链接库生成模块和订单提交模块,
[0023]所述入参参数统一模块,其用于统一业务订单的入参参数;
[0024]所述数据库表配置模块,其用于在统一的入参参数下,配置数据库表中的业务订单类型对应的服务名称和操作名称;
[0025]所述动态函数编写模块,其用于根据服务名称和操作名称编写业务订单处理逻辑的动态函数;
[0026]所述动态链接库生成模块,其用于根据业务订单处理逻的动态函数辑编译生成动态链接库;
[0027]所述订单提交模块,其用于通过显示加载动态链接库和调用动态函数完成订单提交调度多业务。
[0028]本发明的有益效果是:在本发明一种基于动态链接库调度多业务的系统中,动态链接库在操作系统中只加载一次,有助于节省内存,减少可执行bin文件的体积;同时动态链接库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,而且采用显示加载,可由程序代码中控制、载入动态链接库,减少同步程序的风险,其配置简单灵活,可维护性好;而且可以实现区分业务加载不同动态链接库,各动态链接库互不影响,升级方便。
[0029]在上述技术方案的基础上,本发明还可以做如下改进。
[0030]进一步,所述订单提交模块的具体处理过程为,
[0031]获取业务订单的入参参数中的服务名称和操作名称;
[0032]根据服务名称和操作名称查询对应的动态链接库和动态函数;
[0033 ]采用显示加载动态链接库的方式,调用动态链接库中对应的动态函数;
[0034]动态函数返回成功,完成订单提交调度多业务。
[0035]进一步,所述动态函数的入参参数与所述业务订单的入参参数相同。
[0036]进一步,调用动态函数具体为,首先获取动态函数的入参参数,然后执行动态函数中的业务订单处理逻辑,最后返回动态函数处理结果
[0037]进一步,在动态链接库生成模块中使用链接器中的共享编译生成动态链接库。
【附图说明】
[0038]图1为本发明一种基于动态链接库实现订单提交的方法的流程图;
[0039]图2为本发明一种基于动态链接库实现订单提交的方法中订单提交的方法流程图;
[0040]图3为本发明一种基于动态链接库调度多业务的系统的结构框图。
【具体实施方式】
[0041]以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
[0042]如图1所示,一种基于动态链接库调度多业务的方法,包括以下步骤,
[0043]SI,统一业务订单的入参参数;
[0044]S2,在统一的入参参数下,配置数据库表中的业务订单类型对应的服务名称和操作名称;
[0045]S3,根据服务名称和操作名称编写业务订单处理逻辑的动态函数;
[0046]S4,根据业务订单处理逻辑的动态函数编译生成动态链接库;
[0047]S5,通过显示加载动态链接库和调用动态函数完成订单提交调度多业务。
[0048]步骤S5的具体实现方法如图2所示:
[0049]S51,获取业务订单的入参参数中的服务名称和操作名称;
[0050]S52,根据服务名称和操作名称查询对应的动态链接库和动态函数;
[0051 ] S53,采用显示加载动态链接库的方式,调用动态链接库中对应的动态函数;
[0052]S54,动态函数返回成功,完成订单提交调度多业务。
[0053]根据服务名称和操作名称查询出对应动态链接库和动态函数,新增业务或旧业务升级时,各动态链接库互不影响,只需配置动态链接库和动态函数名称,上传新增动态函数库,不必重启服务,升级比较方便,大大简化程序开发人员的开发时间。
[0054]所述动态函数的入参参数与所述业务订单的入参参数相同。调用动态函数的方法为,首先获取动态函数的入参参数,然后执行动态函数中的业务订单处理逻辑,最后返回动态函数处理结果。在步骤S4中使用链接器中的共享编译生成动态链接库。
[0055]由于动态链接库在编译的时候并没有被编译进目标代码中,只是把函数的句柄编译进可执行文件中,可执行程序执行到相关函数时才调用该函数库里的相应函数,所以在本发明一种基于动态链接库调度多业务的方法中,动态链接库在操作系统中只加载一次,有助于节省内存,减少可执行bin文件的体积;同时动态链接库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,而且统一了订单提交的入参参数,采用显示加载动态链接库和动态函数实现了业务逻辑调用函数配置化,减少同步程序的风险,避免了静态库对程序的更新、部署和发布页会带来麻烦。
[0056]基于上述一种基于动态链接库调度多业务的方法,本发明还提供一种基于动态链接库调度多业务的系统。
[0057]如图3所示,一种基于动态链接库调度多业务的系统,包括入参参数统一模块、数据库表配置模块、动态函数编写模块、动态链接库生成模块和订单提交模块,
[0058]所述入参参数统一模块,其用于统一业务订单的入参参数;
[0059]所述数据库表配置模块,其用于在统一的入参参数下,配置数据库表中的业务订单类型对应的服务名称和操作名称;
[0060]所述动态函数编写模块,其用于根据服务名称和操作名称编写业务订单处理逻辑的动态函数;
[0061]所述动态链接库生成模块,其用于根据业务订单处理逻的动态函数辑编译生成动态链接库;
[0062]所述订单提交模块,其用于通过显示加载动态链接库和调用动态函数完成订单提交调度多业务。
[0063]所述订单提交模块的具体处理过程为:获取业务订单的入参参数中的服务名称和操作名称;根据服务名称和操作名称查询对应的动态链接库和动态函数;采用显示加载动态链接库的方式,调用动态链接库中对应的动态函数;动态函数返回成功,完成订单提交调度多业务。
[0064]所述动态函数的入参参数与所述业务订单的入参参数相同。调用动态函数具体为,首先获取动态函数的入参参数,然后执行动态函数中的业务订单处理逻辑,最后返回动态函数处理结果在动态链接库生成模块中使用链接器中的共享编译生成动态链接库。
[0065]在本发明一种基于动态链接库调度多业务的系统中,动态链接库在操作系统中只加载一次,有助于节省内存,减少可执行bin文件的体积;同时动态链接库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,而且采用显示加载,可由程序代码中控制、载入动态链接库,减少同步程序的风险,其配置简单灵活,可维护性好;而且可以实现区分业务加载不同动态链接库,各动态链接库互不影响,升级方便。
[0066]本发明一种基于动态链接库调度多业务的方法及系统统一了订单业务提交入参,数据库配置业务类型对应的动态链接库名称和动态函数名称;通过主程序显式加载动态链接库,调用相对应的动态函数实现业务逻辑,提交订单,调度多业务。
[0067]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种基于动态链接库调度多业务的方法,其特征在于:包括以下步骤: SI,统一业务订单的入参参数; S2,在统一的入参参数下,配置数据库表中的业务订单类型对应的服务名称和操作名称; S3,根据服务名称和操作名称编写业务订单处理逻辑的动态函数; S4,根据业务订单处理逻辑的动态函数编译生成动态链接库; S5,通过显示加载动态链接库和调用动态函数完成订单提交,调度多业务。2.根据权利要求1所述的一种基于动态链接库调度多业务的方法,其特征在于:步骤S5的具体实现方法为: S51,获取业务订单的入参参数中的服务名称和操作名称; S52,根据服务名称和操作名称查询对应的动态链接库和动态函数; S53,采用显示加载动态链接库的方式,调用动态链接库中对应的动态函数; S54,动态函数返回成功,完成订单提交,调度多业务。3.根据权利要求1或2所述的一种基于动态链接库调度多业务的方法,其特征在于:所述动态函数的入参参数与所述业务订单的入参参数相同。4.根据权利要求3所述的一种基于动态链接库调度多业务的方法,其特征在于:调用动态函数的方法为,首先获取动态函数的入参参数,然后执行动态函数中的业务订单处理逻辑,最后返回动态函数处理结果。5.根据权利要求1或2所述的一种基于动态链接库调度多业务的方法,其特征在于:在步骤S4中使用链接器中的共享编译生成动态链接库。6.—种基于动态链接库调度多业务的系统,其特征在于:包括入参参数统一模块、数据库表配置模块、动态函数编写模块、动态链接库生成模块和订单提交模块, 所述入参参数统一模块,其用于统一业务订单的入参参数; 所述数据库表配置模块,其用于在统一的入参参数下,配置数据库表中的业务订单类型对应的服务名称和操作名称; 所述动态函数编写模块,其用于根据服务名称和操作名称编写业务订单处理逻辑的动态函数; 所述动态链接库生成模块,其用于根据业务订单处理逻的动态函数辑编译生成动态链接库; 所述订单提交模块,其用于通过显示加载动态链接库和调用动态函数完成订单提交调度多业务。7.根据权利要求6所述的一种基于动态链接库调度多业务的系统,其特征在于:所述订单提交模块的具体处理过程为, 获取业务订单的入参参数中的服务名称和操作名称; 根据服务名称和操作名称查询对应的动态链接库和动态函数; 采用显示加载动态链接库的方式,调用动态链接库中对应的动态函数; 动态函数返回成功,完成订单提交调度多业务。8.根据权利要求6或7所述的一种基于动态链接库调度多业务的系统,其特征在于:所述动态函数的入参参数与所述业务订单的入参参数相同。9.根据权利要求8所述的一种基于动态链接库调度多业务的系统,其特征在于:调用动态函数具体为,首先获取动态函数的入参参数,然后执行动态函数中的业务订单处理逻辑,最后返回动态函数处理结果。10.根据权利要求6或7所述的一种基于动态链接库调度多业务的系统,其特征在于:在动态链接库生成模块中使用链接器中的共享编译生成动态链接库。
【文档编号】G06F9/48GK105938439SQ201610228513
【公开日】2016年9月14日
【申请日】2016年4月13日
【发明人】袁吉宁
【申请人】北京思特奇信息技术股份有限公司