CN115794927B - 业务功能扩展方法和系统 - Google Patents
业务功能扩展方法和系统 Download PDFInfo
- Publication number
- CN115794927B CN115794927B CN202310043461.6A CN202310043461A CN115794927B CN 115794927 B CN115794927 B CN 115794927B CN 202310043461 A CN202310043461 A CN 202310043461A CN 115794927 B CN115794927 B CN 115794927B
- Authority
- CN
- China
- Prior art keywords
- target
- code
- service
- execution
- extension
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供一种业务功能扩展方法和系统,属于软件服务技术领域。该方法包括:接收用户终端发出的目标业务操作请求;调用功能扩展接口,在扩展数据库中查询到与所述目标业务操作请求所关联的一个或者多个目标扩展代码;调用所述目标扩展代码对所述目标业务操作请求进行响应,向所述用户终端反馈目标业务执行结果。本发明提供的业务功能扩展方法和系统,实现使用户侧以开发者的角色身份,在自定义扩展代码中显式指定其执行时机、执行顺序和执行方式,以将对任意业务操作所扩展的业务功能无缝嵌入到业务系统中,大幅度提升功能扩展效率的同时,还打破业务扩展功能存在的局限性。
Description
技术领域
本发明涉及软件服务技术领域,尤其涉及一种业务功能扩展方法和系统。
背景技术
随着业务的发展,采用传统本地部署软件的企业往往跟不上企业的发展速度和战略变化。本地部署存在运维成本高,升级困难,个性化需求难以及时满足等问题。于是,软件即服务(Software-as-a-Service,SaaS)应运而生。SaaS服务通常基于一套标准软件系统为成百上千的不同客户(又称为租户)提供服务。但由于租户之间因业务侧重点、运营规则等的差别,这要求SaaS服务能够支持不同租户之间数据和配置的隔离,从而保证每个租户数据的安全与隐私,以及用户对诸如界面、业务逻辑、数据结构等的个性化需求。
在系统业务扩展方面,如果客户想要实现非通用业务功能的自定义扩展,那么系统服务供应商就需要进行硬编码开放或者租户定制化开发,这种方式耗时耗力,无法快速交付,其功能扩展效率较低。并且,针对系统业务操作的扩展功能有一定的局限性,无法做到所有操作皆可自定义扩展。
发明内容
本发明提供一种业务功能扩展方法和系统,用以解决现有技术中功能扩展效率较低的缺陷。
本发明提供一种业务功能扩展方法,包括:
接收用户终端发出的目标业务操作请求;
调用功能扩展接口,在扩展数据库中查询到与所述目标业务操作请求所关联的一个或者多个目标扩展代码;
调用所述目标扩展代码对所述目标业务操作请求进行响应,向所述用户终端反馈目标业务执行结果;
其中,所述目标扩展代码是用户终端通过调用所述功能扩展接口对目标业务的业务功能进行配置得到的;所述目标业务与所述目标业务操作请求对应;所述业务功能包括业务操作、执行时机、执行顺序和执行方式。
根据本发明提供的一种业务功能扩展方法,所述调用所述目标扩展代码对所述目标业务操作请求进行响应,向所述用户终端反馈目标业务执行结果,包括:
在确定所述目标扩展代码的数量为1的情况下,基于所述目标扩展代码,确定第一配置内容和第二配置内容;
若所述第一配置内容为前置操作,则按照所述第二配置内容执行目标业务对应的业务操作,生成所述目标业务执行结果;
若所述第一配置内容为后置操作,则在执行目标业务对应的业务操作后,按照所述第二配置内容进行后置操作,生成所述目标业务执行结果;
其中,第一配置内容为所述目标扩展代码中为所述执行时机设置的配置内容;第二配置内容为所述目标扩展代码中为所述执行方式设置的配置内容。
根据本发明提供的一种业务功能扩展方法,所述调用所述目标扩展代码对所述目标业务操作请求进行响应,向所述用户终端反馈目标业务执行结果,包括:
在确定所述目标扩展代码的数量大于1的情况下,基于所述目标扩展代码,确定第三配置内容、第四配置内容和第五配置内容;
若所述第三配置内容为前置操作,则按照所述第四配置内容和所述第五配置内容依次执行目标业务对应的多个业务操作,生成所述目标业务执行结果;
若所述第三配置内容为后置操作,则在根据所述第四配置内容依次执行目标业务对应的多个业务操作后,按照所述第五配置内容进行后置操作,生成所述目标业务执行结果;
其中,第三配置内容为所述目标扩展代码中为所述执行时机设置的配置内容;第四配置内容为所述目标扩展代码中为所述执行顺序设置的配置内容;第五配置内容为所述目标扩展代码中为所述执行方式设置的配置内容。
根据本发明提供的一种业务功能扩展方法,在所述生成所述目标业务执行结果之前,还包括:
将所述目标扩展代码的执行过程记录至执行日志中;
其中,所述执行日志的记录内容至少包括执行时间、执行方式、执行入参和执行结果。
根据本发明提供的一种业务功能扩展方法,所述在扩展数据库中查询到与所述目标业务操作请求所关联的一个或者多个目标扩展代码,包括:
基于所述目标业务操作请求,确定索引条件;
在所述扩展数据库中查询到与所述索引条件匹配的一个或者多个所述目标扩展代码;
其中,所述索引条件至少包括与所述目标业务操作请求对应的业务操作和执行时机。
根据本发明提供的一种业务功能扩展方法,在所述接收用户终端发出的目标业务操作请求之前,还包括:
接收用户终端上传的扩展代码;
若确定所述扩展代码通过校验,则将所述扩展代码存储至所述扩展数据库中;
若确定所述扩展代码未通过校验,则向用户终端反馈代码校验结果,以供所述用户终端根据所述代码校验结果对所述扩展代码进行修正。
根据本发明提供的一种业务功能扩展方法,所述功能扩展接口封装在jar包中。
本发明还提供一种业务功能扩展系统,包括:
请求接收模块,用于接收用户终端发出的目标业务操作请求;
代码加载模块,用于调用功能扩展接口,在扩展数据库中查询到与所述目标业务操作请求所关联的一个或者多个目标扩展代码;
代码执行模块,用于调用所述目标扩展代码对所述目标业务操作请求进行响应,向所述用户终端反馈目标业务执行结果;
其中,所述目标扩展代码是用户终端通过调用所述功能扩展接口对目标业务的业务功能进行配置得到的;所述目标业务与所述目标业务操作请求对应;所述业务功能包括业务操作、执行时机、执行顺序和执行方式。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述业务功能扩展方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述业务功能扩展方法。
本发明提供的业务功能扩展方法和系统,基于目标业务操作请求,调用功能扩展接口,通过扩展数据库查询对应的目标扩展代码,通过实例化目标扩展代码以扩展后业务逻辑执行相关业务,并反馈相应的目标业务执行结果。实现使用户侧以开发者的角色身份,在自定义扩展代码中显式指定其执行时机、执行顺序和执行方式,以将对任意业务操作所扩展的业务功能无缝嵌入到业务系统中,大幅度提升功能扩展效率的同时,还打破业务扩展功能存在的局限性。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的业务功能扩展方法的流程示意图之一;
图2是本发明提供的业务功能扩展方法的流程示意图之二;
图3是本发明提供的业务功能扩展方法的总流程示意图;
图4是本发明提供的业务功能扩展系统的结构示意图;
图5是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。
应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
图1是本发明提供的业务功能扩展方法的流程示意图之一。如图1所示,本发明实施例提供的业务功能扩展方法,包括:步骤101、接收用户终端发出的目标业务操作请求。
需要说明的是,本发明实施例提供的业务功能扩展方法的执行主体是业务功能扩展系统所依托运行的电子设备。
本发明实施例提供的业务功能扩展方法的应用场景为,当某一用户通过其所使用的用户终端在SaaS模式下进行租户级别业务操作时,由对应的业务系统受理该业务操作,在业务系统依托运行的电子设备的控制器中调用预先设置好的调用功能扩展接口进行功能扩展,以满足用户对业务操作的个性化需求。
本申请实施例提供的业务功能扩展方法适用于通过业务系统所依托运行的电子设备对任一用户提出的业务请求实现功能扩展,并以扩展后业务逻辑执行相关业务操作。
上述电子设备可以以各种形式来实施。例如,本申请实施例中描述的电子设备可以包括诸如移动电话、智能电话、笔记本电脑、数字广播接收器、PDA(个人数字助理))、PAD(平板电脑)、PMP(便携式多媒体播放器)、导航装置、智能手环、智能手表、数码相机等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。下面,假设电子设备是移动终端。然而,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本申请实施例的构造也能够应用于固定类型的终端。
需要说明的是,目标业务操作请求,用于在业务系统中初始化目标业务。
其中,目标业务是业务系统所能提供的一种或者多种业务功能。
故在步骤101之前,用户需要输入信息,选择界面的若干个控件,以在业务系统中形成目标业务操作请求,完成目标业务的建立。
具体地,在步骤101中,业务功能扩展装置可以基于用户终端建立目标业务的流程,获取用户终端所发出的目标业务操作请求。
步骤102、调用功能扩展接口,在扩展数据库中查询到与所述目标业务操作请求所关联的一个或者多个目标扩展代码。
其中,所述目标扩展代码是用户终端通过调用所述功能扩展接口对目标业务的业务功能进行配置得到的。所述目标业务与所述目标业务操作请求对应。所述业务功能包括业务操作、执行时机、执行顺序和执行方式。
需要说明的是,功能扩展接口,是指预先根据业务功能扩展方法的业务逻辑,编译出对应的方法函数。功能扩展接口用于提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
故在步骤102之前,用户需要根据实际业务扩展需求,在用户终端中调用功能扩展接口,在业务功能扩展方法的业务逻辑中设置执行参数,以对相应扩展的业务功能进行配置。
其中,业务功能包括但不限于业务操作、执行时机、执行顺序和执行方式等,本发明实施例对此不作具体限定。
示例性地,业务功能及其配置内容如下表所示:
表1 业务功能配置示意表
具体地,在步骤102中,业务功能扩展系统在接收到步骤101中的目标业务操作请求之后,执行对应的操作,利用执行引擎在功能扩展接口中提供的目标扩展数据库自动查找是否有对应目标业务对应的目标扩展代码。
若查询成功,即说明扩展数据库存在用于对目标业务进行扩展的扩展代码,业务系统已装载目标业务的扩展功能,则将匹配到的一个或者多个扩展代码作为与目标业务操作请求对应的目标扩展代码输出,以执行扩展后的业务操作。
若查询失败,即说明扩展数据库存在用于对目标业务进行扩展的扩展代码,业务系统还未装载有目标业务的扩展功能。则执行原始的目标业务操作,抑或是,提示给用户终端编译目标业务对应的扩展代码,以使得业务系统装载对应业务的扩展功能后执行相应操作。
其中,扩展数据库是预先存在于功能扩展接口对应的方法类中,并集成用户为业务扩展对应业务功能时所编译的扩展代码的数据库。扩展数据库用于在业务功能扩展方法的处理流程中,提供对应业务的新扩展的相关功能。
步骤103、调用所述目标扩展代码对所述目标业务操作请求进行响应,向所述用户终端反馈目标业务执行结果。
具体地,在步骤103中,业务功能扩展系统调用目标扩展代码中的excuteConfig方法来获取目标扩展代码中配置的业务功能,响应于目标业务操作请求的需求执行excute方法并向用户终端反馈执行excute方法得到的目标业务执行结果。
现有技术中,当用户需要为其所购买的业务服务进行功能扩展时,需要向服务供应商提出要求,并由服务供应商对业务系统新增功能进行开发。
本发明实施例中,无需再由服务供应商全权开展业务功能的扩展工作,服务供应商只需对外开放功能扩展接口,以使得用户面对任意业务扩展需求,均能在自身所使用的用户终端中将调用功能扩展接口进行扩展配置的过程进行简单的代码编译,并由服务供应商按照扩展后业务逻辑执行业务,最后将其对应的执行结果反馈至用户。
本发明实施例基于目标业务操作请求,调用功能扩展接口,通过扩展数据库查询对应的目标扩展代码,通过实例化目标扩展代码以扩展后业务逻辑执行相关业务,并反馈相应的目标业务执行结果。实现使用户侧以开发者的角色身份,在自定义扩展代码中显式指定其执行时机、执行顺序和执行方式,以将对任意业务操作所扩展的业务功能无缝嵌入到业务系统中,大幅度提升功能扩展效率的同时,还打破业务扩展功能存在的局限性。
在上述任一实施例的基础上,调用所述目标扩展代码对所述目标业务操作请求进行响应,向所述用户终端反馈目标业务执行结果,包括:在确定所述目标扩展代码的数量为1的情况下,基于所述目标扩展代码,确定第一配置内容和第二配置内容。
其中,第一配置内容为所述目标扩展代码中为所述执行时机设置的配置内容。第二配置内容为所述目标扩展代码中为所述执行方式设置的配置内容。
具体地,在步骤103中,业务功能扩展系统根据步骤102所查询到的目标扩展代码的数量进行判断,若目标扩展代码的数量为1时,即说明业务系统对目标业务已装载了一种可执行的扩展功能,则从匹配到的单个目标扩展代码中分别对执行时机和执行方式所对应的配置内容进行提取,得到第一配置内容和第二配置内容。
其中,第一配置内容,是指目标扩展代码中关于业务功能为执行时机的配置内容。第一配置内容可以设置为前置执行或者后置执行。第一配置内容用于指示执行目标扩展代码的时间节点。
第二配置内容,是指目标扩展代码中关于业务功能为执行方式的配置内容。第二配置内容可以设置为同步执行、异步执行或者延迟执行。第二配置内容用于指示目标扩展代码的执行方式。
若所述第一配置内容为前置操作,则按照所述第二配置内容执行目标业务对应的业务操作,生成所述目标业务执行结果。
若所述第一配置内容为后置操作,则在执行目标业务对应的业务操作后,按照所述第二配置内容进行后置操作,生成所述目标业务执行结果。
具体地,业务功能扩展系统在匹配到目标扩展代码后,对其记载的第一配置内容进行判断:
若第一配置内容设置为前置操作,则在执行业务操作之前运行目标扩展代码,并按照第二配置内容所指示的执行方式,同步或者异步执行目标业务对应的业务操作。
其中,当第二配置内容设置为延迟执行,则根据目标扩展代码获取延迟时间,将其放入延迟队列,由延迟执行器按照指定的延迟时间执行目标扩展代码中excute方法。
若第一配置内容设置为后置操作,则在执行业务操作之后运行目标扩展代码,并按照第二配置内容所指示的执行方式执行目标业务对应的业务操作。
本发明实施例在查询单个目标扩展代码的情况下,决策通过目标扩展代码提取第一配置内容和第二配置内容,以对应的执行时机和执行方式所对应扩展的业务逻辑执行相关业务,并反馈相应的目标业务执行结果。能够在进行业务操作时,根据自定义扩展代码中指示的执行时机和执行方式实现目标业务的个性化功能,优化功能扩展效率。
在上述任一实施例的基础上,调用所述目标扩展代码对所述目标业务操作请求进行响应,向所述用户终端反馈目标业务执行结果,包括:在确定所述目标扩展代码的数量大于1的情况下,基于所述目标扩展代码,确定第三配置内容、第四配置内容和第五配置内容。
其中,第三配置内容为所述目标扩展代码中为所述执行时机设置的配置内容。第四配置内容为所述目标扩展代码中为所述执行顺序设置的配置内容。第五配置内容为所述目标扩展代码中为所述执行方式设置的配置内容。
具体地,在步骤103中,业务功能扩展系统根据步骤102所查询到的目标扩展代码的数量进行判断,若目标扩展代码的数量大于1时,即说明业务系统对目标业务已装载了至少两种可执行的扩展功能,则从匹配到的每一个目标扩展代码中分别对执行时机和执行方式所对应的配置内容进行提取,得到多组第三配置内容、第四配置内容和第五配置内容。
其中,第三配置内容,是指目标扩展代码中关于业务功能为执行时机的配置内容。第三配置内容可以设置为前置执行或者后置执行。第三配置内容用于指示执行目标扩展代码的时间节点。
第四配置内容,是指目标扩展代码中关于业务功能为执行顺序的配置内容。第四配置内容用于指示多个目标扩展代码先后执行对应的执行顺序。
第五配置内容,是指目标扩展代码中关于业务功能为执行方式的配置内容。第五配置内容可以设置为同步执行、异步执行或者延迟执行。第五配置内容用于指示目标扩展代码的执行方式。
若所述第三配置内容为前置操作,则按照所述第四配置内容和所述第五配置内容依次执行目标业务对应的多个业务操作,生成所述目标业务执行结果。
若所述第三配置内容为后置操作,则在根据所述第四配置内容依次执行目标业务对应的多个业务操作后,按照所述第五配置内容进行后置操作,生成所述目标业务执行结果。
具体地,业务功能扩展系统在匹配到多个目标扩展代码后,对其记载的第三配置内容进行判断:
若第三配置内容设置为前置操作,则在执行业务操作之前运行目标扩展代码,并分别按照第四配置内容所指示的执行顺序,以其对应的第五配置内容所指示的执行方式依次执行所对应的业务操作。
若第三配置内容设置为后置操作,则在执行业务操作之后运行目标扩展代码,并分别按照第四配置内容所指示的执行顺序,以其对应的第五配置内容所指示的执行方式依次执行所对应的业务操作。
本发明实施例在查询多个目标扩展代码的情况下,决策通过目标扩展代码提取第三配置内容、第四配置内容和第五配置内容,以对应的执行时机、执行顺序和执行方式,分别以所对应扩展的业务逻辑顺次执行相关业务,并反馈相应的目标业务执行结果。能够在进行业务操作时,根据自定义扩展代码中指示的执行时机、执行顺序和执行方式实现目标业务的个性化功能,优化功能扩展效率。
在上述任一实施例的基础上,在所述生成所述目标业务执行结果之前,还包括:将所述目标扩展代码的执行过程记录至执行日志中。
其中,所述执行日志的记录内容至少包括执行时间、执行方式、执行入参和执行结果。
具体地,业务功能扩展系统在调用一个或者多个目标扩展代码对目标业务操作请求进行响应时,将所有目标扩展代码的执行过程都保存至执行日志。
其中,执行日志记载了业务功能扩展系统在执行业务操作过程中,在对应的执行时机、执行顺序和执行方式实例化目标扩展代码的过程,本发明实施例对执行日志的记录内容不作具体限定。
可选地,执行日志可以记录目标扩展代码的执行时间,以引导用户通过执行日志所记载的执行时间,结合在目标扩展代码中设置的执行时机进行比较,对执行时间有误的目标扩展代码进行修正。
可选地,执行日志可以记录目标扩展代码的执行方式,以引导用户通过执行日志所记载的执行方式,结合在目标扩展代码中设置的执行方式进行比较,对执行方式有误的目标扩展代码进行修正。
可选地,执行日志可以记录目标扩展代码的执行入参,以引导用户通过执行日志所记载的执行入参,结合在目标扩展代码中设置的业务操作进行比较,对业务操作有误的目标扩展代码进行修正。
可选地,执行日志可以记录目标扩展代码的执行结果,以引导用户通过执行日志所记载的执行结果,结合在目标扩展代码中设置的执行顺序或者业务操作进行比较,对执行顺序和/或业务操作有误的目标扩展代码进行修正。
示例性地,图2是本发明提供的业务功能扩展方法的流程示意图之二。如图2所示,本发明实施例以匹配到一个目标扩展代码的情况作为示例,给出一个调用目标扩展代码对目标业务操作请求进行响应的具体实施过程:
(1)执行引擎会利用目标业务操作请求自动查找是否有对应业务操作的目标扩展代码。如果存在则执行步骤(2),反之则执行步骤(4)。
(2)若存在目标扩展代码,则根据代码中设置的执行时机进行判断,若其设置为前置执行,则先以对应设置的执行方式执行目标扩展代码:
若执行方式为同步执行,则在执行目标扩展代码的同时,执行其对应的业务操作,并目标扩展代码的执行过程记录在执行日志后返回结果。
若执行方式为异步执行,则在相对独立的执行目标扩展代码时,直接将目标扩展代码的执行过程记录在执行日志的同时,还离即返回结果。
若执行方式为延迟执行,则根据目标扩展代码获取延迟时间,放入延迟队列,由延迟执行器按照指定的延迟时间执行目标扩展代码中excute方法,并将其执行过程记录在执行日志后,返回结果。
(3)若存在目标扩展代码,但代码中设置的执行时机为后置执行,则先执行对应的业务操作,再以对应设置的执行方式执行目标扩展代码,其执行方式与步骤(2)描述过程同理,在此不予赘述。
(4)若不存在目标扩展代码,则先执行对应的业务操作,再根据代码中设置的执行时机进行判断,若其设置为后置执行,则以对应设置的执行方式执行目标扩展代码。而若其设置不为后置执行,则直接返回结果。
本发明实施例在通过实例化目标扩展代码以扩展后业务逻辑执行相关业务的过程中,对目标扩展代码的执行过程进行记录,以便于后续的异常溯源。
在上述任一实施例的基础上,在扩展数据库中查询到与所述目标业务操作请求所关联的一个或者多个目标扩展代码,包括:基于所述目标业务操作请求,确定索引条件。
其中,所述索引条件至少包括与所述目标业务操作请求对应的业务操作和执行时机。
具体地,在步骤102中,业务功能扩展系统利用目标业务操作请求所携带的业务操作信息,确定索引条件。
其中,目标业务操作请求所携带的业务操作信息至少包括对应扩展功能中的业务操作和执行时机,以利用对应的业务操作和执行时机构成与目标业务操作请求对应的索引条件。
在所述扩展数据库中查询到与所述索引条件匹配的一个或者多个所述目标扩展代码。
需要说明的是,扩展数据库在存储扩展代码时,可以将对应扩展代码中对业务功能配置的内容进行提取,以摘要的形式存储在扩展数据库中索引字段。
具体地,业务功能扩展系统利用索引条件与扩展数据库中的索引字段进行匹配,在匹配成功的情况下,将对应索引字段下存储的扩展代码作为目标扩展代码输出。
其中,业务操作请求所携带的业务操作信息包含越多的扩展功能,则索引条件越具体,与其匹配的扩展代码数量越少。
本发明实施例基于目标业务操作请求携带的信息,确定索引条件,并在扩展数据库中查询出与索引条件相匹配的目标扩展代码。进而通过实例化目标扩展代码以扩展后业务逻辑执行相关业务,并反馈相应的目标业务执行结果。能够在对目标业务操作请求进行响应时,至少通过业务操作和执行时机映射出在业务系统中完成功能状态的扩展代码,实现批量执行业务操作扩展功能,提升功能扩展效率。
在上述任一实施例的基础上,在所述接收用户终端发出的目标业务操作请求之前,还包括:接收用户终端上传的扩展代码。
具体地,在步骤101之前,业务功能扩展系统接收用户终端根据自身定制需求所编译并上传的扩展代码。
若确定所述扩展代码通过校验,则将所述扩展代码存储至所述扩展数据库中。
若确定所述扩展代码未通过校验,则向用户终端反馈代码校验结果,以供所述用户终端根据所述代码校验结果对所述扩展代码进行修正。
具体地,业务功能扩展系统会经过编译程序,对代码格式和命名的合法性进行校验:
若扩展代码通过校验,会通过类加载器将扩展代码中的jar包和执行类动态装载到业务系统,并存储在功能扩展接口中内置的扩展数据库。
若扩展代码未通过校验,则直接向用户终端反馈代码校验结果,以通知用户扩展代码校验失败,并引导用户对扩展代码进行修正,直至修正后的扩展代码通过验证后,才将其装载至业务系统中。
示例性地,图3是本发明提供的业务功能扩展方法的总流程示意图。如图3所示,本发明实施例给出一个业务功能扩展方法的完整实施过程:
(1)扩展代码上传:业务功能扩展系统在业务系统的基础上提供一个可以上传自定义业务扩展代码的能力,并由用户终端将调用系统对应开辟的功能扩展接口进行配置的过程以扩展代码的形式设置,并将扩展代码上传至业务功能扩展系统。
(2)扩展代码动态加载:在业务功能扩展系统中的代码管理进程会经过编译程序对上传的扩展代码进行校验,利用类加载器将通过校验的扩展代码动态装载到业务系统中。
(3)扩展代码执行:当根据业务操作请求进行业务操作时,执行引擎会自动查找是否有对应业务操作的扩展代码,如果存在,则调用扩展代码中的excuteConfig方法来获取扩展代码的执行配置,按需执行excute方法并返回结果。
(4)代码执行日志:对于所有的扩展代码执行都将执行记录保存下来,其中包含执行时间、执行方式、执行入参和执行结果等信息。
本发明实施例对用户终端上传的扩展代码进行校验管理,在通过校验的情况下决策将扩展代码存储至扩展数据库完成动态装载,而在未通过校验的情况下决策向用户终端反馈代码校验结果,以引导用户上传正确的自定义代码。实现由业务系统验证自定义代码合法性后,才对对应业务操作所扩展的业务功能装载至业务系统,提升功能扩展效率。
在上述任一实施例的基础上,所述功能扩展接口封装在jar包中。
具体地,业务功能扩展系统提供一个可以上传扩展代码的能力,并以jar包的方式提供系统的开放能力。
用户可以通过用户终端采用java语言进行自定义代码,以实例化jar包中关于功能扩展接口的excute方法。关于待扩展的业务功能的配置,可以在jar包中的excuteConfig方法,为各业务功能对应的执行参数进行设置。
另外,还可以调用jar包中封装好的API进行个性化业务逻辑处理。
本发明实施例将功能扩展接口相关的配置方法和调用方法,分别以不同的API接口的形式封装在jar包,以提供系统标准能力,供客户自定义开发使用。实现以jar包方式提供系统API能力,以使得用户侧作为开发者能够在扩展代码中调用jar包中的API实现与业务系统内部功能打通。
图4是本发明提供的业务功能扩展系统的结构示意图。在上述任一实施例的基础上,如图4所示,该系统包括请求接收模块410、代码加载模块420和代码执行模块430,其中:
请求接收模块410,用于接收用户终端发出的目标业务操作请求。
代码加载模块420,用于调用功能扩展接口,在扩展数据库中查询到与所述目标业务操作请求所关联的一个或者多个目标扩展代码。
代码执行模块430,用于调用所述目标扩展代码对所述目标业务操作请求进行响应,向所述用户终端反馈目标业务执行结果。
其中,所述目标扩展代码是用户终端通过调用所述功能扩展接口对目标业务的业务功能进行配置得到的。所述目标业务与所述目标业务操作请求对应。所述业务功能包括业务操作、执行时机、执行顺序和执行方式。
具体地,请求接收模块410、代码加载模块420和代码执行模块430顺次电连接。
请求接收模块410可以基于用户终端建立目标业务的流程,获取用户终端所发出的目标业务操作请求。
代码加载模块420在接收到请求接收模块410中的目标业务操作请求之后,执行对应的操作,利用执行引擎在功能扩展接口中提供的目标扩展数据库自动查找是否有对应目标业务对应的目标扩展代码。
代码执行模块430调用目标扩展代码中的excuteConfig方法来获取目标扩展代码中配置的业务功能,响应于目标业务操作请求的需求执行excute方法并向用户终端反馈执行excute方法得到的目标业务执行结果。
可选地,代码执行模块430包括第一配置提取单元和第一代码执行单元,其中:
第一配置提取单元,用于在确定所述目标扩展代码的数量为1的情况下,基于所述目标扩展代码,确定第一配置内容和第二配置内容。
第一代码执行单元,用于若所述第一配置内容为前置操作,则按照所述第二配置内容执行目标业务对应的业务操作,生成所述目标业务执行结果。
第一代码执行单元,还用于若所述第一配置内容为后置操作,则在执行目标业务对应的业务操作后,按照所述第二配置内容进行后置操作,生成所述目标业务执行结果。
其中,第一配置内容为所述目标扩展代码中为所述执行时机设置的配置内容。第二配置内容为所述目标扩展代码中为所述执行方式设置的配置内容。
可选地,代码执行模块430包括第二配置提取单元和第二代码执行单元,其中:
第二配置提取单元,用于在确定所述目标扩展代码的数量大于1的情况下,基于所述目标扩展代码,确定第三配置内容、第四配置内容和第五配置内容。
第二代码执行单元,用于若所述第三配置内容为前置操作,则按照所述第四配置内容和所述第五配置内容依次执行目标业务对应的多个业务操作,生成所述目标业务执行结果。
第二代码执行单元,还用于若所述第三配置内容为后置操作,则在根据所述第四配置内容依次执行目标业务对应的多个业务操作后,按照所述第五配置内容进行后置操作,生成所述目标业务执行结果。
其中,第三配置内容为所述目标扩展代码中为所述执行时机设置的配置内容。第四配置内容为所述目标扩展代码中为所述执行顺序设置的配置内容。第五配置内容为所述目标扩展代码中为所述执行方式设置的配置内容。
可选地,该系统还包括日志记录模块,其中:
日志记录模块,用于将所述目标扩展代码的执行过程记录至执行日志中。
其中,所述执行日志的记录内容至少包括执行时间、执行方式、执行入参和执行结果。
可选地,代码加载模块420包括索引条件确定单元和查询单元,其中:
索引条件确定单元,用于基于所述目标业务操作请求,确定索引条件。
查询单元,用于在所述扩展数据库中查询到与所述索引条件匹配的一个或者多个所述目标扩展代码。
其中,所述索引条件至少包括与所述目标业务操作请求对应的业务操作和执行时机。
可选地,该系统还包括代码接收模块和代码管理模块,其中:
代码接收模块,用于接收用户终端上传的扩展代码。
代码管理模块,用于若确定所述扩展代码通过校验,则将所述扩展代码存储至所述扩展数据库中。
代码管理模块,用于若确定所述扩展代码未通过校验,则向用户终端反馈代码校验结果,以供所述用户终端根据所述代码校验结果对所述扩展代码进行修正。
可选地,所述功能扩展接口封装在jar包中。
本发明实施例提供的业务功能扩展系统,用于执行本发明上述业务功能扩展方法,其实施方式与本发明提供的业务功能扩展方法的实施方式一致,且可以达到相同的有益效果,此处不再赘述。
本发明实施例基于目标业务操作请求,调用功能扩展接口,通过扩展数据库查询对应的目标扩展代码,通过实例化目标扩展代码以扩展后业务逻辑执行相关业务,并反馈相应的目标业务执行结果。实现使用户侧以开发者的角色身份,在自定义扩展代码中显式指定其执行时机、执行顺序和执行方式,以将对任意业务操作所扩展的业务功能无缝嵌入到业务系统中,大幅度提升功能扩展效率的同时,还打破业务扩展功能存在的局限性。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行业务功能扩展方法,该方法包括:接收用户终端发出的目标业务操作请求;调用功能扩展接口,在扩展数据库中查询到与所述目标业务操作请求所关联的一个或者多个目标扩展代码;调用所述目标扩展代码对所述目标业务操作请求进行响应,向所述用户终端反馈目标业务执行结果;其中,所述目标扩展代码是用户终端通过调用所述功能扩展接口对目标业务的业务功能进行配置得到的;所述目标业务与所述目标业务操作请求对应;所述业务功能包括业务操作、执行时机、执行顺序和执行方式。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的业务功能扩展方法,该方法包括:接收用户终端发出的目标业务操作请求;调用功能扩展接口,在扩展数据库中查询到与所述目标业务操作请求所关联的一个或者多个目标扩展代码;调用所述目标扩展代码对所述目标业务操作请求进行响应,向所述用户终端反馈目标业务执行结果;其中,所述目标扩展代码是用户终端通过调用所述功能扩展接口对目标业务的业务功能进行配置得到的;所述目标业务与所述目标业务操作请求对应;所述业务功能包括业务操作、执行时机、执行顺序和执行方式。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的业务功能扩展方法,该方法包括:接收用户终端发出的目标业务操作请求;调用功能扩展接口,在扩展数据库中查询到与所述目标业务操作请求所关联的一个或者多个目标扩展代码;调用所述目标扩展代码对所述目标业务操作请求进行响应,向所述用户终端反馈目标业务执行结果;其中,所述目标扩展代码是用户终端通过调用所述功能扩展接口对目标业务的业务功能进行配置得到的;所述目标业务与所述目标业务操作请求对应;所述业务功能包括业务操作、执行时机、执行顺序和执行方式。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种业务功能扩展方法,其特征在于,包括:
接收用户终端发出的目标业务操作请求;
调用功能扩展接口,在扩展数据库中查询到与所述目标业务操作请求所关联的一个或者多个目标扩展代码;
调用所述目标扩展代码对所述目标业务操作请求进行响应,向所述用户终端反馈目标业务执行结果;
其中,所述目标扩展代码是用户终端通过调用所述功能扩展接口对目标业务的业务功能进行配置得到的;所述目标业务与所述目标业务操作请求对应;所述业务功能包括业务操作、执行时机、执行顺序和执行方式;
所述在扩展数据库中查询到与所述目标业务操作请求所关联的一个或者多个目标扩展代码,包括:
基于所述目标业务操作请求,确定索引条件;
在所述扩展数据库中查询到与所述索引条件匹配的一个或者多个所述目标扩展代码;
其中,所述索引条件至少包括与所述目标业务操作请求对应的业务操作和执行时机;
在所述接收用户终端发出的目标业务操作请求之前,还包括:
接收用户终端上传的扩展代码;
若确定所述扩展代码通过校验,则将所述扩展代码存储至所述扩展数据库中;
若确定所述扩展代码未通过校验,则向用户终端反馈代码校验结果,以供所述用户终端根据所述代码校验结果对所述扩展代码进行修正。
2.根据权利要求1所述的业务功能扩展方法,其特征在于,所述调用所述目标扩展代码对所述目标业务操作请求进行响应,向所述用户终端反馈目标业务执行结果,包括:
在确定所述目标扩展代码的数量为1的情况下,基于所述目标扩展代码,确定第一配置内容和第二配置内容;
若所述第一配置内容为前置操作,则按照所述第二配置内容执行目标业务对应的业务操作,生成所述目标业务执行结果;
若所述第一配置内容为后置操作,则在执行目标业务对应的业务操作后,按照所述第二配置内容进行后置操作,生成所述目标业务执行结果;
其中,第一配置内容为所述目标扩展代码中为所述执行时机设置的配置内容;第二配置内容为所述目标扩展代码中为所述执行方式设置的配置内容。
3.根据权利要求1所述的业务功能扩展方法,其特征在于,所述调用所述目标扩展代码对所述目标业务操作请求进行响应,向所述用户终端反馈目标业务执行结果,包括:
在确定所述目标扩展代码的数量大于1的情况下,基于所述目标扩展代码,确定第三配置内容、第四配置内容和第五配置内容;
若所述第三配置内容为前置操作,则按照所述第四配置内容和所述第五配置内容依次执行目标业务对应的多个业务操作,生成所述目标业务执行结果;
若所述第三配置内容为后置操作,则在根据所述第四配置内容依次执行目标业务对应的多个业务操作后,按照所述第五配置内容进行后置操作,生成所述目标业务执行结果;
其中,第三配置内容为所述目标扩展代码中为所述执行时机设置的配置内容;第四配置内容为所述目标扩展代码中为所述执行顺序设置的配置内容;第五配置内容为所述目标扩展代码中为所述执行方式设置的配置内容。
4.根据权利要求2或3所述的业务功能扩展方法,其特征在于,在所述生成所述目标业务执行结果之前,还包括:
将所述目标扩展代码的执行过程记录至执行日志中;
其中,所述执行日志的记录内容至少包括执行时间、执行方式、执行入参和执行结果。
5.根据权利要求1所述的业务功能扩展方法,其特征在于,所述功能扩展接口封装在jar包中。
6.一种业务功能扩展系统,其特征在于,包括:
请求接收模块,用于接收用户终端发出的目标业务操作请求;
代码加载模块,用于调用功能扩展接口,在扩展数据库中查询到与所述目标业务操作请求所关联的一个或者多个目标扩展代码;
代码执行模块,用于调用所述目标扩展代码对所述目标业务操作请求进行响应,向所述用户终端反馈目标业务执行结果;
其中,所述目标扩展代码是用户终端通过调用所述功能扩展接口对目标业务的业务功能进行配置得到的;所述目标业务与所述目标业务操作请求对应;所述业务功能包括业务操作、执行时机、执行顺序和执行方式;
所述代码加载模块包括索引条件确定单元和查询单元,其中:
所述索引条件确定单元,用于基于所述目标业务操作请求,确定索引条件;
所述查询单元,用于在所述扩展数据库中查询到与所述索引条件匹配的一个或者多个所述目标扩展代码;
其中,所述索引条件至少包括与所述目标业务操作请求对应的业务操作和执行时机;
所述系统还包括代码接收模块和代码管理模块,其中:
所述代码接收模块,用于接收用户终端上传的扩展代码;
所述代码管理模块,用于若确定所述扩展代码通过校验,则将所述扩展代码存储至所述扩展数据库中;
所述代码管理模块,用于若确定所述扩展代码未通过校验,则向用户终端反馈代码校验结果,以供所述用户终端根据所述代码校验结果对所述扩展代码进行修正。
7.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5任一项所述业务功能扩展方法。
8.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述业务功能扩展方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310043461.6A CN115794927B (zh) | 2023-01-29 | 2023-01-29 | 业务功能扩展方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310043461.6A CN115794927B (zh) | 2023-01-29 | 2023-01-29 | 业务功能扩展方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115794927A CN115794927A (zh) | 2023-03-14 |
CN115794927B true CN115794927B (zh) | 2023-05-09 |
Family
ID=85429077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310043461.6A Active CN115794927B (zh) | 2023-01-29 | 2023-01-29 | 业务功能扩展方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115794927B (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10824648B2 (en) * | 2018-04-18 | 2020-11-03 | Sap Se | Classification and distribution of extension objects in multitenant environments |
CN112417020B (zh) * | 2020-11-25 | 2023-08-18 | 武汉联影医疗科技有限公司 | 业务扩展的实现方法、装置、计算机设备和存储介质 |
CN112540923B (zh) * | 2020-12-15 | 2022-03-25 | 平安科技(深圳)有限公司 | 接口参数校验与转换方法、装置、设备及存储介质 |
CN113220290A (zh) * | 2021-04-23 | 2021-08-06 | 杭州数跑科技有限公司 | 应用的业务功能实现方法、装置、设备及存储介质 |
CN115268854A (zh) * | 2022-09-28 | 2022-11-01 | 深圳市明源云科技有限公司 | 业务扩展实现方法、系统、电子设备及可读存储介质 |
-
2023
- 2023-01-29 CN CN202310043461.6A patent/CN115794927B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115794927A (zh) | 2023-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109683988B (zh) | 微服务启动方法、装置、计算机设备和存储介质 | |
CN111163129B (zh) | 一种基于跨链网络的资源处理方法及装置 | |
WO2018219178A1 (zh) | 数据同步方法、装置、服务器及存储介质 | |
CN108279892B (zh) | 一种拆分大型应用服务为微服务的方法、装置及设备 | |
EP3961381B1 (en) | Method and apparatus for node selection | |
CN109726134B (zh) | 接口测试方法和系统 | |
CN109361628B (zh) | 报文组装方法、装置、计算机设备和存储介质 | |
CN107770269A (zh) | 一种服务响应方法及其终端 | |
CN109039751A (zh) | 配置路由的方法、装置、计算机设备和存储介质 | |
CN112364049B (zh) | 数据同步脚本生成方法、系统、终端及存储介质 | |
CN106681718A (zh) | 一种基于工具集的桌面端插件框架及实现方法 | |
CN110968331A (zh) | 应用程序运行的方法和装置 | |
CN111294377B (zh) | 一种依赖关系的网络请求发送方法、终端装置及存储介质 | |
CN111538659A (zh) | 业务场景的接口测试方法、系统、电子设备和存储介质 | |
CN111209061A (zh) | 用户信息的填写方法、装置、计算机设备和存储介质 | |
CN108958785A (zh) | 一种应用程序升级方法及装置 | |
CN111698281B (zh) | 一种资源下载方法、装置、电子设备及存储介质 | |
CN115794927B (zh) | 业务功能扩展方法和系统 | |
CN116483477A (zh) | 一种api调用方法及装置 | |
CN113220453B (zh) | 区块链系统中发起交易的方法及装置 | |
CN112134922B (zh) | 一种基于微服务的服务调用方法、装置及存储介质 | |
CN113691618A (zh) | 消息通知方法、装置、消息中心及存储介质 | |
CN114489698A (zh) | 应用程序安装方法和装置 | |
CN110489140B (zh) | 软件升级方法、装置、计算机设备及计算机存储介质 | |
CN112615745B (zh) | 一种通过参数配置为物联网卡平台接入上游的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |