CN114840319A - 一种业务需求的处理方法和装置 - Google Patents

一种业务需求的处理方法和装置 Download PDF

Info

Publication number
CN114840319A
CN114840319A CN202210485198.1A CN202210485198A CN114840319A CN 114840319 A CN114840319 A CN 114840319A CN 202210485198 A CN202210485198 A CN 202210485198A CN 114840319 A CN114840319 A CN 114840319A
Authority
CN
China
Prior art keywords
service
business
requirement
determining
logic
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.)
Pending
Application number
CN202210485198.1A
Other languages
English (en)
Inventor
张兆军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN202210485198.1A priority Critical patent/CN114840319A/zh
Publication of CN114840319A publication Critical patent/CN114840319A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/482Application

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种业务需求的处理方法和装置,涉及互联网技术领域。该方法的具体实施方式包括:接收一个或多个业务需求;根据预置的业务数据库,确定与业务需求对应的多个目标业务组件;确定多个目标业务组件的执行顺序;根据目标业务组件的执行顺序,确定业务需求的需求逻辑,并利用需求逻辑响应业务需求。该实施方式对业务逻辑进行粒度化的业务组件的梳理,支持业务逻辑的即时热变更,可以对新的业务需求进行分析,确定业务需求实现需要的业务组件并对业务组件的执行顺序进行编排以满足业务需求,从而极大地降低了开发和维护成本,提高业务逻辑的复用率和执行效率。

Description

一种业务需求的处理方法和装置
技术领域
本发明涉及互联网技术领域,尤其涉及一种业务需求的处理方法和装置。
背景技术
随着互联网技术的发展,用户的新需求层出不穷,为了满足这些需求,在核心业务之上进行叠加,包括内部逻辑运算、缓存、持久化、外部资源调取、内部RPC调用等。
现有的业务需求处理过程中,在核心业务之上叠加其它需求逻辑,使得整个业务逻辑越来越复杂,维护成本极高;并且,由于各个模块之间耦合度极高,业务逻辑如果需要微小变动、或者业务逻辑顺序需要调整,就需要重写脚本、进行完整逻辑测试以及上线,使得开发成本极高、业务逻辑的复用率和执行效率低下。
发明内容
有鉴于此,本发明实施例提供一种业务需求的处理方法和装置,能够对业务逻辑进行粒度化的业务组件的梳理,支持业务逻辑的即时热变更,可以对新的业务需求进行分析,确定业务需求实现需要的业务组件并对业务组件的执行顺序进行编排以满足业务需求,从而极大地降低了开发和维护成本,提高业务逻辑的复用率和执行效率。
为实现上述目的,根据本发明实施例的一个方面,提供了一种业务需求的处理方法,包括:
接收一个或多个业务需求;
根据预置的业务数据库,确定与所述业务需求对应的多个目标业务组件;其中,所述目标业务组件指示了与所述业务需求的需求逻辑对应的最小实现单元;
确定多个所述目标业务组件的执行顺序;
根据所述目标业务组件的执行顺序,确定所述业务需求的需求逻辑,并利用所述需求逻辑响应所述业务需求。
可选地,所述根据预置的业务数据库,确定与所述业务需求对应的多个目标业务组件,包括:
对所述业务需求进行分析,确定与所述业务需求对应的多个需求功能;
根据与所述需求功能,查找所述业务数据库,确定与所述业务需求对应的所述目标业务组件。
可选地,所述业务需求指示了需求节点;所述确定多个所述目标业务组件的执行顺序,包括:
确定与所述业务需求对应的业务节点;其中,相邻两个所述业务节点之间包括一个或多个目标业务组件;
确定所述业务节点之间的多个目标业务组件的执行流程;其中,所述执行流程包括同步流程和/或异步流程;
根据所述业务节点、以及所述业务节点之间的同步流程和/或异步流程的目标业务组件,确定所述执行顺序。
可选地,所述业务需求还指示了需求参数;所述利用所述需求逻辑响应所述业务需求,包括:
将所述需求参数作为所述需求逻辑的输入,根据所述需求逻辑的输出响应所述业务需求。
可选地,在所述业务节点之间的多个目标业务组件的执行流程包括异步流程的情况下,还包括:
接收任意一个异步流程的故障提示信息;
暂停与所述故障提示信息对应的所述异步流程的执行;
继续执行除与所述故障提示信息对应的所述异步流程以外的其它异步流程。
可选地,所述确定多个所述目标业务组件的执行顺序是利用slot机制实现的。
可选地,还包括:
获取多个历史业务需求的多个历史需求逻辑;
确定多个所述历史需求逻辑对应的一个或多个业务组件;
根据所述业务组件,生成所述业务数据库。
根据本发明实施例的再一个方面,提供了一种业务需求的处理装置,包括:
接收模块,用于接收一个或多个业务需求;
组件确定模块,用于根据预置的业务数据库,确定与所述业务需求对应的多个目标业务组件;其中,所述目标业务组件指示了与所述业务需求的需求逻辑对应的最小实现单元;
顺序确定模块,用于确定多个所述目标业务组件的执行顺序;
响应模块,用于根据所述目标业务组件的执行顺序,确定所述业务需求的需求逻辑,并利用所述需求逻辑响应所述业务需求。
根据本发明实施例的另一个方面,提供了一种业务需求的处理的电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明提供的业务需求的处理方法。
根据本发明实施例的还一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明提供的业务需求的处理方法。
上述发明中的一个实施例具有如下优点或有益效果:因为采用对复杂业务需求进行分析,以将其对应的逻辑进行解耦,并利用最小粒度的多个目标业务组件,编排目标业务组件的执行顺序,并根据编排后的需求逻辑响应业务需求的技术手段,所以克服了现有的业务需求的业务逻辑越来越复杂,维护成本、开发成本极高、业务逻辑的复用率和执行效率低下的技术问题,进而达到能够对业务逻辑进行粒度化的业务组件的梳理,支持业务逻辑的即时热变更,可以对新的业务需求进行分析,确定业务需求实现需要的业务组件并对业务组件的执行顺序进行编排以满足业务需求,从而极大地降低了开发和维护成本,提高业务逻辑的复用率和执行效率的技术效果。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的业务需求的处理方法的主要流程的示意图;
图2是根据本发明实施例的业务数据库的生成方法的主要流程的示意图;
图3是根据本发明实施例的目标业务组件的确定方法的主要流程的示意图;
图4是根据本发明实施例的业务组件的执行顺序的确定方法的主要流程的示意图;
图5是根据本发明实施例的业务组件异常的处理方法的主要流程的示意图;
图6是根据本发明实施例的业务需求的处理装置的主要模块的示意图;
图7是根据本发明另一个实施例的业务需求的处理方法的示意图;
图8示出了适于应用于本发明实施例的业务需求的处理方法或业务需求的处理装置的示例性系统架构图;
图9是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的业务需求的处理方法的主要流程的示意图,如图1所示,本发明的业务需求的处理方法包括如下步骤:
现有的业务处理系统中,由于业务需求的不断新增,基于核心业务之上进行开发以实现业务需求的核心业务逻辑越来越复杂,包括内部逻辑运算、缓存操作、持久化操作(是指将数据由瞬时状态转化为持久状态;其中,瞬时状态的数据可以是内存数据等无法永久保存的数据,持久状态的数据可以是数据库中可以长期保存的数据)、外部资源调取,内部系统之间的RPC调用等。随着时间的不断推进,维护人员的不断变动,核心业务的业务逻辑冗长,使得系统的开发成本和维护成本越来越高。
核心业务的业务逻辑的复杂性还体现在硬代码判断增多、分支条件越来越多等,而且各个模块之间的耦合度很高,逻辑的微小变动就会对其它部分产生影响,需要对整个代码进行较大改动,再对整个业务逻辑重新进行完整的回归测试,方可保证业务系统的重新正常运行。以上种种都使得码的抽象变得困难,无法沉淀核心资产进行复用,更不用说业务逻辑的实时热变更(是指业务逻辑可以随时改写而无需重新发布)的实现。
面对业务逻辑冗长的情况,目前通常通过算法包装(即策略模式)或者异步监听的方式进行处理,算法包装通常把一系列的算法包装到对应的策略类,算法作为策略类的子对象,策略类下的算法可以互换,进而将算法的使用和算法进行切割,由不同的对象管理算法和算法的使用。异步监听也可以称为ListenableFuture,即可以监听的Future,是对java原生Future的扩展增强,Future表示一个计算任务,通过异步线程(比如,ListenableFuture Guava)对Future进行监测,在Future完成的情况下自动调用回调函数,可以提高并发程序的复杂度。
然而,算法包装虽然可以优化业务逻辑,但在面对新的业务需求时,仍然在核心业务逻辑之上叠加,对业务逻辑的执行效率并无裨益;异步监听可以提高业务逻辑的执行效率,但在面对新的业务需求时,仍需消耗极大的业务成本,无法沉淀核心资产以实现业务逻辑的复用。
此方式可以解决代码逻辑问题,但是没办法并行提高代码效率(因为策略模式属于设计模式,多线程场景无法进行代码逻辑编排)。
此方式可以解决代码并行执行效率问题,但是没办法实现业务编排能力。
综上如果有复杂业务逻辑的系统,这两种设计模式代码的执行效率和业务编排能力无法共存。
通过本发明的业务需求的处理方法,基于规则引擎设计模式,可以解耦复杂逻辑,并对最小实现逻辑单元的业务组件进行编排,实现多个业务组件按顺序执行以满足各种各样的业务需求,支持线程的变换和线程副本之间的共享,在提高业务逻辑的复用率的同时可以提高业务系统的执行效率。
步骤S101,接收一个或多个业务需求。
在本发明实施例中,比如,业务需求可以是页面构建。
步骤S102,根据预置的业务数据库,确定与所述业务需求对应的多个目标业务组件;其中,所述目标业务组件指示了与所述业务需求的需求逻辑对应的最小实现单元。
在本发明实施例中,预置的业务数据库是对历史业务需求进行分析以及梳理后得到的,业务数据库存储了多个业务组件。比如,页面构建对应的业务组件包括导航组件、时间组件、分页组件、选项卡组件、表格组件、图片组件、对话框组件、验证组件、上传组件等,可以根据目标页面的不同,选择其中的部分业务组件或者全部业务组件,填充对应的组件数据后生成目标页面。
进一步地,对于页面构建的业务需求来说,可以根据需要对目标页面对应的业务组件进行编排,实现动态、灵活地构建页面。
在本发明实施例中,如图2所示,本发明的业务数据库的生成方法包括如下步骤:
步骤S201,获取多个历史业务需求的多个历史需求逻辑。
步骤S202,确定多个所述历史需求逻辑对应的一个或多个业务组件。
在本发明实施例中,对多个历史业务需求对应的多个历史需求逻辑进行分析,确定多个所述历史需求逻辑对应的一个或多个业务组件;其中,多个历史需求逻辑中对应的业务组件中,可能包括相同的业务组件。
在本发明实施例中,业务组件指示了历史需求逻辑的最小实现单元,一个历史需求逻辑通常对应多个业务组件。
步骤S203,根据所述业务组件,生成所述业务数据库。
在本发明实施例中,可以构建与业务组件对应的组件标识,根据业务组件的组件标识,对业务组件进行对应存储,以生成业务数据库。
进一步地,在多个历史需求逻辑对应的业务组件的实现逻辑相同的情况下,仅保存其中一个业务组件即可。
在本发明实施例中,通过本发明的业务数据库的生成方法,能够对历史业务组件进行梳理并存储,从而在后续面对新的业务需求时,可以利用业务数据库中的业务组件进行编排,以满足业务需求的实现逻辑,极大地提高了业务逻辑的复用率。
在本发明实施例中,如图3所示,本发明的目标业务组件的确定方法包括如下步骤:
步骤S301,对所述业务需求进行分析,确定与所述业务需求对应的多个需求功能。
在本发明实施例中,比如,页面构建对应的目标页面为笔记本的详情页面,对页面构建进行分析,确定与笔记本的详情页面对应的需求功能包括时间功能、分页功能、选项卡功能、表格功能、图片功能。
步骤S302,根据与所述需求功能,查找所述业务数据库,确定与所述业务需求对应的所述目标业务组件。
在本发明实施例中,根据与业务需求对应的多个需求功能,查找业务数据库,确定与业务需求的多个需求功能对应的目标业务组件,比如,与笔记本的详情页面对应的目标业务组件包括时间组件、分页组件、选项卡组件、表格组件、图片组件,从而利用目标业务组件的业务逻辑实现业务需求。
在本发明实施例中,通过本发明的业务组件的确定方法,能够基于对业务需求的分析,确定业务需求需要的功能,从而查找业务数据库,得到与需求功能对应的目标业务组件,以利用目标业务组件的业务逻辑来实现业务需求。
步骤S103,确定多个所述目标业务组件的执行顺序。
在本发明实施例中,确定多个业务组件的执行顺序可以利用slot机制实现。slot机制利用slot指令实现,slot指令可以向指定位置传递内容,比如,在指定位置插入业务组件,从而实现业务组件的执行顺序的编排。
在本发明实施例中,如图4所示,本发明的业务组件的执行顺序的确定方法包括如下步骤:
步骤S401,确定与所述业务需求对应的业务节点;其中,相邻两个所述业务节点之间包括一个或多个目标业务组件。
在本发明实施例中,业务需求的业务节点包括一个或多个。
步骤S402,确定所述业务节点之间的多个目标业务组件的执行流程;其中,所述执行流程包括同步流程和/或异步流程。
在本发明实施例中,在相邻两个业务节点之间包括一个目标业务组件的情况下,将目标业务组件插入业务节点之间即可;在相邻两个业务节点之间包括多个目标业务组件的情况下,需要确定多个目标业务组件是同步执行、异步执行、或者兼而有之,相应地,多个目标业务组件的执行流程包括同步流程、异步流程、或者同步流程和异步流程兼而有之。
在本发明实施例中,多个目标业务组件的执行流程为同步流程,表示多个目标业务组件同步执行,对应的业务代码可以是:
<then value="a,b,c,d"/>
表示,a、b、c、d四个业务组件按序执行,也即,a组件执行完毕之后b组件执行,b组件执行完毕之后c组件执行,c组件执行完毕之后d组件执行;
或者,对应的业务代码还可以是:
<then value="a,b"/>;
<then value="c,d"/>
表示,a、b两个业务组件按序执行,b组件执行完毕后,c、d两个业务组件按序执行。
在本发明实施例中,多个目标业务组件的执行流程为异步流程,表示多个目标业务组件异步执行,对应的业务代码可以是:
<when value="a,b,c,d"/>
表示,a、b、c、d四个业务组件并行执行,也即,a组件、b组件、c组件、d组件同时执行;
或者,对应的业务代码还可以是:
<when value="a,b"/>;
<when value="c,d"/>
表示,a、b两个业务组件并行执行,c、d两个业务组件并行执行,并且,a、b两个业务组件和c、d两个业务组件同时执行。
在本发明实施例中,可以根据需要设置多个目标业务组件的异步线程的最大线程数,比如,异步线程池的最大线程数为4个,对应的业务代码可以是:
异步线程池最大线程数
when-max-workers=4。
在本发明实施例中,可以根据需要设置多个目标业务组件的异步线程的等待队列数,比如,异步线程池的等待队列数为100个,对应的业务代码可以是:
when-queue-limit=100。
在本发明实施例中,在多个目标业务组件的执行流程包括同步流程和异步流程的情况下,可以通过同步并行组实现,对应的业务代码可以是:
<when group="g1"value="a,b"/>
<when group="g2"value="c,d"/>
表示,a、b两个业务组件并行执行,并且,b组件执行完毕后,c、d两个业务组件再开始并行执行,也即,不同组之间的when按序执行,相同组的when并行执行。
在本发明实施例中,在未配置同步并行组或者配置并行组为默认组的情况下,等价于多个目标业务组件的执行流程为异步流程,表示多个目标业务组件异步执行,也即,无论是多个<when>、还是一个<when>包括多个业务组件,皆是并行执行;其中,默认组为default,即默认在同一组内的。相应地,在任意一个业务组件异常的情况下,其它业务组件仍然执行。
在本发明实施例中,在同步并行组的其中一个并行组异常的情况下,异常并行组报错,如果期望其它并行组不执行,引入参数errorResume,对应的业务代码可以是:
<when group="g1"errorResume="false"value="a,b"/>
<when group="g2"value="c,d"/>
表示,在并行组g1的两个业务组件a、b中任意一个报错的情况下,并行组g2不执行。
其中,在未配置参数errorResume的情况下,errorResume默认为true。
相应地,在未配置参数errorResume或者配置errorResume为true的情况下,在并行组g1的两个业务组件a、b中任意一个报错的情况下,并行组g2仍然执行。
更进一步地,在并行组g1报错后,可以根据需要设置并行组g2的执行时间,比如,在并行组g1报错后并行组g2立即执行;或者,在并行组g1报错后并行组g2等待并行组g1的重试结果,在并行组g1的重试次数超过预设次数阈值并且并行组g1的重试结果为重试失败的情况下,并行组g2开始执行;或者,在并行组g1报错后并行组g2经过预设等待时间后开始执行。
在本发明实施例中,如图5所示,本发明的业务组件异常的处理方法包括如下步骤:
步骤S501,确定业务节点之间的多个目标业务组件的执行流程是否包括异步流程,在执行流程包括异步流程的情况下,转至步骤S502;在执行流程不包括异步流程的情况下,转至步骤S505。
步骤S502,接收任意一个异步流程的故障提示信息。
在本发明实施例中,故障提示信息可以是报错信息,接收任意一个业务组件的报错信息。
步骤S503,暂停与故障提示信息对应的异步流程的执行。
在本发明实施例中,暂停与报错信息对应的业务组件的执行。
步骤S504,继续执行除与故障提示信息对应的异步流程以外的其它异步流程。
在本发明实施例中,继续执行除与报错信息对应的业务组件以外的其它业务组件。
步骤S505,与故障提示信息对应的异步流程之后的其它异步流程不执行。
在本发明实施例中,通过本发明的业务组件异常的处理方法,能够基于业务组件的执行流程的特性,对业务组件的执行异常进行处理,如果是同步流程,在任一业务组件报错的情况下,不执行异常组件之后的其它业务组件;如果是异步流程,在任一业务组件报错的情况下,其它业务组件仍然执行,从而后续可以利用执行流程的特性进行业务组件的执行顺序的编排。
步骤S403,根据所述业务节点、以及所述业务节点之间的同步流程和/或异步流程的目标业务组件,确定所述执行顺序。
在本发明实施例中,对业务节点、业务节点之间包括的同步流程的多个目标业务组件、业务节点之间包括的异步流程的多个目标业务组件、以及业务节点之间包括的同步流程和异步流程并存的多个目标业务组件进行编排,以确定执行顺序目标业务组件的执行顺序。
在本发明实施例中,比如,笔记本的详情页面,目标业务组件的执行顺序包括第一分页组件(用于展示多个笔记本图片)、第一表格组件(用于展示笔记本的价格、优惠等信息)、第一选项卡组件(用于进行配送地址的选择)、时间组件(用于展示预计配送时间)、第二选项卡组件(用于进行笔记本规格的选择)、第三选项卡组件(用于进行加购的选择)、第二表格组件(用于展示笔记本的规格参数)、图片组件(用于展示笔记本的各种介绍)等。
在本发明实施例中,通过本发明的业务组件的执行顺序的确定方法,能够基于对业务需求的分析,通过对目标业务组件的执行线程进行配置(包括执行线程的数量、执行线程的容量、执行线程的执行时间等),可以利用执行流程的特性进行业务组件的执行顺序的编排,通过业务组件的自由编排,可以满足各种各样的业务需求,从而提高业务系统的执行效率和业务逻辑的复用率。
步骤S104,根据所述目标业务组件的执行顺序,确定所述业务需求的需求逻辑,并利用所述需求逻辑响应所述业务需求。
在本发明实施例中,业务需求指示了需求参数,将需求参数作为需求逻辑的输入,根据需求逻辑的输出响应业务需求。
在本发明实施例中,需求参数可以是目标业务组件的组件数据,比如,需求参数可以是笔记本的详情页面的时间组件的预计配送时间,根据目标业务组件的执行顺序,确定页面构建的需求逻辑,将组件数据作为需求逻辑的输入,填充目标业务组件对应的组件数据,输出笔记本的详情页面。
在本发明实施例中,通过接收一个或多个业务需求;根据预置的业务数据库,确定与所述业务需求对应的多个目标业务组件;其中,所述目标业务组件指示了与所述业务需求的需求逻辑对应的最小实现单元;确定多个所述目标业务组件的执行顺序;根据所述目标业务组件的执行顺序,确定所述业务需求的需求逻辑,并利用所述需求逻辑响应所述业务需求等步骤,能够对业务逻辑进行粒度化的业务组件的梳理,支持业务逻辑的即时热变更,可以对新的业务需求进行分析,确定业务需求实现需要的业务组件并对业务组件的执行顺序进行编排以满足业务需求,从而极大地降低了开发和维护成本,提高业务逻辑的复用率和执行效率。
图6是根据本发明实施例的业务需求的处理装置的主要模块的示意图,如图6所示,本发明的业务需求的处理装置600包括:
接收模块601,用于接收一个或多个业务需求。
在本发明实施例中,所述接收模块601用于接收一个或多个业务需求,比如,业务需求可以是页面构建。
组件确定模块602,用于根据预置的业务数据库,确定与所述业务需求对应的多个业务组件;其中,所述业务组件指示了与所述业务需求的需求逻辑对应的最小实现单元。
在本发明实施例中,预置的业务数据库是对历史业务需求进行分析以及梳理后得到的,业务数据库存储了多个业务组件,所述组件确定模块602用于根据预置的业务数据库,确定与业务需求对应的多个业务组件。比如,页面构建对应的业务组件包括导航组件、时间组件、分页组件、选项卡组件、表格组件、图片组件、对话框组件、验证组件、上传组件等,可以根据目标页面的不同,选择其中的部分业务组件或者全部业务组件,填充对应的组件数据后生成目标页面。
顺序确定模块603,用于确定多个所述业务组件的执行顺序。
在本发明实施例中,所述顺序确定模块603可以利用slot机制实现多个业务组件的执行顺序的确定。slot机制利用slot指令实现,slot指令可以向指定位置传递内容,比如,在指定位置插入业务组件,从而实现业务组件的执行顺序的编排。
响应模块404,用于根据所述业务组件的执行顺序,确定所述业务需求的需求逻辑,并利用所述需求逻辑响应所述业务需求。
在本发明实施例中,业务需求指示了需求参数,所述响应模块404将需求参数作为需求逻辑的输入,根据需求逻辑的输出响应业务需求。
在本发明实施例中,需求参数可以是目标业务组件的组件数据,比如,需求参数可以是笔记本的详情页面的时间组件的预计配送时间,根据目标业务组件的执行顺序,确定页面构建的需求逻辑,将组件数据作为需求逻辑的输入,填充目标业务组件对应的组件数据,输出笔记本的详情页面。
在本发明实施例中,通过接收模块、组件确定模块、顺序确定模块和响应模块等模块,能够对业务逻辑进行粒度化的业务组件的梳理,支持业务逻辑的即时热变更,可以对新的业务需求进行分析,确定业务需求实现需要的业务组件并对业务组件的执行顺序进行编排以满足业务需求,从而极大地降低了开发和维护成本,提高业务逻辑的复用率和执行效率。
图7是根据本发明另一个实施例的业务需求的处理方法的示意图,如图7所示,本发明的业务需求的处理方法包括如下步骤:
flow.xml其中,flow.xml是隐式子流程模式的固定配置文件,可以写入代码的配置件,提供了业务组件的编排顺序;其中,xml配置文件可以替换为QLExpress、Groovy等工具,业务组件的编排顺序是利用slot指令确定的。
进一步地,配置文件还可以是无级嵌套的显式子流程模式,提供可视化配置代码编排逻辑。
Parser是用于解析flow.xml文件的解析器。
FlowBus中存储了业务需求的业务逻辑的流程和节点相关的元信息。
FlowExecutor是业务流程执行器,用于根据业务需求的业务逻辑对应的目标业务组件的执行顺序进行执行;其中,FlowExecutor可以替换为其它类似的线程执行器。
Parser解析flow.xml文件,并将解析结果放入FlowBus;
FlowBus得到业务需求的业务逻辑包括的业务节点、业务节点之间的目标业务组件、目标业务组件的执行顺序、以及需求参数(即组件数据)等元信息;
FlowExecutor从FlowBus获取业务需求的业务逻辑对应的元信息,调用slot管理器,slot管理器可以为每一个业务需求分配一个slot;
FlowExecutor根据slot确定的目标业务组件Component的执行顺序执行业务逻辑,以根据业务逻辑的输出响应业务需求。
在本发明实施例中,FlowExecutor可以利用不同的返回类型执行业务组件的执行流程,比如:
返回类型为FlowResponse类,对应的业务代码可以是:
public FlowResponse<DefaultSlot>execute2Resp(String chainId,Objectparam);
其中,第一个参数String chainId为流程ID,第二个参数Object param为流程入参,返回结果LiteflowResponse为泛型,返回结果的类型参数为Slot接口默认的实现类DefaultSlot。
在本发明实施例中,通过利用泛型的返回结果LiteflowResponse,可以满足任一业务需求的业务逻辑的解耦、以及与业务需求对应的多个目标业务组件的自由编排的实现,使得本发明的业务需求的处理方法可以适用于任意场景。
或者,
返回类型为Slot接口的子类,带异常抛出,对应的业务代码可以是;
public DefaultSlot execute(String chainId,Object param)throwsException;
其中,第一个参数String chainId为流程ID,第二个参数Object param为流程入参,返回结果为Slot接口的子类,并可以抛出异常;其中个,返回结果的Slot接口的子类为Slot接口默认的实现类DefaultSlot。
进一步地,由于DefaultSlot的数据存储类型为弱类型的Map,因此,在使用本发明的业务需求的处理方法时,还可以构建类继承AbsSlot类以替换默认的DefaultSlot,以实现强类型的数据,支持更多的使用场景,对开发者更加友好。比如,利用带自定义Slot的执行接口,对应的业务代码可以是:
public<T extends Slot>FlowResponse<T>execute2Resp(String chainId,Object param,Class<T>slotClazz);
public<T extends Slot>T execute(String chainId,Object param,Class<?extends Slot>slotClazz)throws Exception;
其中,T extends Slot为自定义slot类,T为自定义扩展类。
图8示出了适于应用于本发明实施例的业务需求的处理方法或业务需求的处理装置的示例性系统架构图,如图8所示,本发明实施例的业务需求的处理方法或业务需求的处理装置的示例性系统架构包括:
如图8所示,系统架构800可以包括终端设备801、802、803,网络804和服务器805。网络804用以在终端设备801、802、803和服务器105之间提供通信链路的介质。网络804可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备801、802、803通过网络804与服务器805交互,以接收或发送消息等。终端设备801、802、803上可以安装有各种通讯客户端应用,例如业务类应用、购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备801、802、803可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器805可以是提供各种服务的服务器,例如对用户利用终端设备801、802、803所浏览的业务类网站提供支持的后台管理服务器。后台管理服务器可以对接收到的业务需求等数据进行分析等处理,并将处理结果(例如需求逻辑输入需求参数后的输出)反馈给终端设备801、802、803。
需要说明的是,本发明实施例所提供的业务需求的处理方法一般由服务器805执行,相应地,业务需求的处理装置一般设置于服务器805中。
应该理解,图8中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图9是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图,如图9所示,本发明实施例的终端设备或服务器的计算机系统900包括:
中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。在RAM903中,还存储有系统900操作所需的各种程序和数据。CPU901、ROM902以及RAM903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被中央处理单元(CPU)901执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括接收模块、组件确定模块、顺序确定模块和响应模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,组件确定模块还可以被描述为“根据预置的业务数据库,确定与所述业务需求对应的多个业务组件的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:接收一个或多个业务需求;根据预置的业务数据库,确定与所述业务需求对应的多个目标业务组件;其中,所述目标业务组件指示了与所述业务需求的需求逻辑对应的最小实现单元;确定多个所述目标业务组件的执行顺序;根据所述目标业务组件的执行顺序,确定所述业务需求的需求逻辑,并利用所述需求逻辑响应所述业务需求。
根据本发明实施例的技术方案,利用规则引擎设计模式,可以解耦复杂逻辑、实现业务逻辑对应的业务组件的自由编排,便于解决多组件、多依赖的业务性网关的复杂逻辑,支持执行线程的变换和线程副本之间的共享,可以实现多个业务组件按顺序执行;其中,业务性网关作为应用与服务端之间的代理,主要对标准服务进行聚合、裁剪等处理,以方便客户端接入和访问。
根据本发明实施例的技术方案,对于复杂的业务逻辑,按照业务最小粒度实现一个个业务组件component,每个component承担单一职责,对component进行编排,作为复杂业务的解耦编排利器,可以实现复杂逻辑的最大化程度解耦,同时最大化程度地实现组件复用,基于圆桌设计理念,组件互相独立,并且为组件提供统一化的实现方式。
根据本发明实施例的技术方案,操作方便、简单易上手并且适用于各种逻辑场景,比如,串行、并行、条件选择、多层嵌套子流程等,支持多种语言类型和扩展,支持xml、json、yml写法;框架中提供本地文件配置源,比如,zk配置源,仅需一个接口,即可从任何地方加载配置源,支持SpringBoot的自动装配,也支持Spring的配置和非Spring的项目,支持脚本语言的实时热变更、热刷新等。
根据本发明实施例的技术方案,利用slot数据槽隔离机制传递信息,不同线程之间的数据槽安全隔离,多并发场景下可以稳定运行。
根据本发明实施例的技术方案,系统损耗小,保障大规模核心业务的业务系统运行的稳定性和安全性,还可以设置监控,以确定组件的运行耗时并优化;可以进行持久化存储里,适时加载即可;也可以自定义拦截器。
根据本发明实施例的技术方案,能够对业务逻辑进行粒度化的业务组件的梳理,支持业务逻辑的即时热变更,可以对新的业务需求进行分析,确定业务需求实现需要的业务组件并对业务组件的执行顺序进行编排以满足业务需求,从而极大地降低了开发和维护成本,提高业务逻辑的复用率和执行效率。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (10)

1.一种业务需求的处理方法,其特征在于,包括:
接收一个或多个业务需求;
根据预置的业务数据库,确定与所述业务需求对应的多个目标业务组件;其中,所述目标业务组件指示了与所述业务需求的需求逻辑对应的最小实现单元;
确定多个所述目标业务组件的执行顺序;
根据所述目标业务组件的执行顺序,确定所述业务需求的需求逻辑,并利用所述需求逻辑响应所述业务需求。
2.根据权利要求1所述的方法,其特征在于,所述根据预置的业务数据库,确定与所述业务需求对应的多个目标业务组件,包括:
对所述业务需求进行分析,确定与所述业务需求对应的多个需求功能;
根据与所述需求功能,查找所述业务数据库,确定与所述业务需求对应的所述目标业务组件。
3.根据权利要求2所述的方法,其特征在于,所述业务需求指示了需求节点;所述确定多个所述目标业务组件的执行顺序,包括:
确定与所述业务需求对应的业务节点;其中,相邻两个所述业务节点之间包括一个或多个目标业务组件;
确定所述业务节点之间的多个目标业务组件的执行流程;其中,所述执行流程包括同步流程和/或异步流程;
根据所述业务节点、以及所述业务节点之间的同步流程和/或异步流程的目标业务组件,确定所述执行顺序。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述业务需求还指示了需求参数;所述利用所述需求逻辑响应所述业务需求,包括:
将所述需求参数作为所述需求逻辑的输入,根据所述需求逻辑的输出响应所述业务需求。
5.根据权利要求3所述的方法,其特征在于,在所述业务节点之间的多个目标业务组件的执行流程包括异步流程的情况下,还包括:
接收任意一个异步流程的故障提示信息;
暂停与所述故障提示信息对应的所述异步流程的执行;
继续执行除与所述故障提示信息对应的所述异步流程以外的其它异步流程。
6.根据权利要求1所述的方法,其特征在于,所述确定多个所述目标业务组件的执行顺序是利用slot机制实现的。
7.根据权利要求1所述的方法,其特征在于,还包括:
获取多个历史业务需求的多个历史需求逻辑;
确定多个所述历史需求逻辑对应的一个或多个业务组件;
根据所述业务组件,生成所述业务数据库。
8.一种业务需求的处理装置,其特征在于,包括:
接收模块,用于接收一个或多个业务需求;
组件确定模块,用于根据预置的业务数据库,确定与所述业务需求对应的多个目标业务组件;其中,所述目标业务组件指示了与所述业务需求的需求逻辑对应的最小实现单元;
顺序确定模块,用于确定多个所述目标业务组件的执行顺序;
响应模块,用于根据所述目标业务组件的执行顺序,确定所述业务需求的需求逻辑,并利用所述需求逻辑响应所述业务需求。
9.一种业务需求的处理的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
CN202210485198.1A 2022-05-06 2022-05-06 一种业务需求的处理方法和装置 Pending CN114840319A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210485198.1A CN114840319A (zh) 2022-05-06 2022-05-06 一种业务需求的处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210485198.1A CN114840319A (zh) 2022-05-06 2022-05-06 一种业务需求的处理方法和装置

Publications (1)

Publication Number Publication Date
CN114840319A true CN114840319A (zh) 2022-08-02

Family

ID=82567851

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210485198.1A Pending CN114840319A (zh) 2022-05-06 2022-05-06 一种业务需求的处理方法和装置

Country Status (1)

Country Link
CN (1) CN114840319A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116204201A (zh) * 2023-04-26 2023-06-02 烽台科技(北京)有限公司 业务处理方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116204201A (zh) * 2023-04-26 2023-06-02 烽台科技(北京)有限公司 业务处理方法和装置

Similar Documents

Publication Publication Date Title
US11921672B2 (en) Query execution at a remote heterogeneous data store of a data fabric service
US11580107B2 (en) Bucket data distribution for exporting data to worker nodes
US11586627B2 (en) Partitioning and reducing records at ingest of a worker node
US11593377B2 (en) Assigning processing tasks in a data intake and query system
US11599541B2 (en) Determining records generated by a processing task of a query
US11615087B2 (en) Search time estimate in a data intake and query system
US20220156335A1 (en) Streaming data processing
US20220327125A1 (en) Query scheduling based on a query-resource allocation and resource availability
US20230049579A1 (en) Executing commands from a distributed execution model
US11163758B2 (en) External dataset capability compensation
US11281706B2 (en) Multi-layer partition allocation for query execution
US10726009B2 (en) Query processing using query-resource usage and node utilization data
US11461334B2 (en) Data conditioning for dataset destination
US11232100B2 (en) Resource allocation for multiple datasets
US11416528B2 (en) Query acceleration data store
US20200050607A1 (en) Reassigning processing tasks to an external storage system
US20210117425A1 (en) Management of distributed computing framework components in a data fabric service system
US10698897B2 (en) Executing a distributed execution model with untrusted commands
US9363195B2 (en) Configuring cloud resources
CN109783562B (zh) 一种业务处理方法和装置
CN109783151A (zh) 规则变更的方法和装置
CN109614227A (zh) 任务资源调配方法、装置、电子设备及计算机可读介质
CN113190625A (zh) 请求处理方法、装置、电子设备、介质和程序产品
CN110019044A (zh) 大数据集群准实时Yarn任务监控分析方法
CN115794262A (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