用于软件架构设计的系统和方法技术方案

技术编号:21398408 阅读:23 留言:0更新日期:2019-06-19 06:50
本发明专利技术提供了一种软件架构设计系统及方法,该系统包括:业务抽象引擎,其用于将业务形态抽象成至少一个工作流,该工作流定义了用于完成所述业务的一组功能;节点调度引擎,其用于根据所述工作流,编排用于实现所述一组功能的一个或多个节点及其执行顺序,并且控制所述一个或多个节点的执行,其中,所述一个或多个节点选自节点池,并且其中所述节点池中的每个节点由输入数据驱动以实现预定义的功能;以及结果合并器,其用于对所述一个或多个节点的执行结果进行合并。根据本发明专利技术,可以对多个业务形态同时进行支撑,促进功能节点的高度复用,避免同一个功能流程需要开发多次。

【技术实现步骤摘要】
用于软件架构设计的系统和方法
本专利技术涉及软件设计领域,特别地,本专利技术涉及基于流程编排的软件架构设计技术。
技术介绍
传统软件设计中,都是依赖业务形态抽象业务流程并设计出最终的软件流程,通常每个业务流程均有其自己的业务流程逻辑并设计专门的软件。因此按照传统设计思路,两个业务流程需要开发各自的业务流程逻辑,即使是这二个业务流程存在很大的相关性也是如此。虽然现有技术中模块化设计广泛地应用于软件设计过程中,但其中的模块设计在整个执行过程中仍采用模块之间的嵌套、递归等调用关系。因此针对软件的不同业务形态进行开发时,需要开发各自的业务形态逻辑,具体定义数据接口和模块调用关系。图1示出了按照现有技术的软件流程的示意图。如图所示,图1中示出了两个业务流程,即业务流程1和业务流程2。业务流程1和业务流程2是从不同但相关的业务形态抽象出来的。通过执行这些业务流程,能够实现其相应的业务目标。以业务流程1为例,其被设计为按照模块1、模块3、模块2、以及模块5的顺序按序调用并执行,并从模块5输出结果。与之相对应地,业务流程2设计成按照模块6、模块2、以及模块3的顺序按序调用并执行,并从模块3输出结果。在这二个流程中用到的模块2与模块3是相同的,这里“模块”是指可完成某一特定功能的功能流程。在这两个业务流程的执行过程中,可以看到根据业务流程的定义,分别按照顺序执行每个模块,虽然两个业务流程的执行过程中都涉及使用模块2以及模块3,但是由于在各自业务流程定义中前后连接到的模块不同,因此即使是相同的模块2、3,在不同的业务流程中也需要具体地配置数据接口。例如,在业务流程1中的模块3需要耦合在模块1与模块2之间,而业务流程2中的模块3则耦合在模块2之后并需要输出结果,用户因此需要针对这两者情况分别设计模块3的数据接口,以满足与其他模块耦合或者结果输出的需要。显然,在模块提供大量参数、结果的情况下,需要用户定制化地进行数据接口设计的工作量可能很大,并且由于设计的独特性,针对一个工作流的数据接口设计往往对于其他工作流没有复用的价值。
技术实现思路
本专利技术提供了一种软件架构设计系统,包括:业务抽象引擎,其用于将业务形态抽象成至少一个工作流,该工作流定义了用于完成所述业务的一组功能;节点调度引擎,其用于根据所述工作流,编排用于实现所述一组功能的一个或多个节点及其执行顺序,并且控制所述一个或多个节点的执行,其中,所述一个或多个节点选自节点池,并且其中所述节点池中的每个节点由输入数据驱动以实现预定义的功能;以及结果合并器,其用于对所述一个或多个节点的执行结果进行合并。本专利技术还提供了一种软件架构设计方法,包括:将业务形态抽象成至少一个工作流,该工作流定义了用于完成所述业务的一组功能;根据所述工作流,编排用于实现所述一组功能的一个或多个节点及其执行顺序,并且控制所述一个或多个节点的执行,其中,所述一个或多个节点选自节点池,并且其中所述节点池中的每个节点由输入数据驱动以实现预定义的功能;以及对所述一个或多个节点的执行结果进行合并。本专利技术还提供了一种具有指令的计算机可读介质,所述指令在被处理器执行时,使所述处理器执行本专利技术中所述的方法。本专利技术还提供了一种用于软件架构设计的设备,包括:存储指令的存储器;以及耦合到所述存储器的处理器,所述指令在被所述处理器执行时执行本专利技术中所述的方法。根据本专利技术,节点可以被设计为具备高内聚性和低耦合性,并且节点之间通过数据驱动,因此通过对流程进行集中编排,不需要开发人员针对每个业务的流程对所使用的节点进行节点间具体的数据接口定义和节点调用设计,从而简化了软件设计。而且,根据本专利技术,在对多个业务形态同时进行支撑时,能促进功能节点的高度复用,做到流程快速复用、快速支撑,避免同一个功能流程需要开发多次。附图说明图1示出了按照现有技术的软件流程的示意图;图2示出了根据一个实施例的基于流程编排的软件架构设计系统的方步骤图;图3示出了根据一个实施例的执行工作流的示意图;图4示出了根据一个实施例的风控产品的软件架构设计系统的方步骤图;图5示出了根据一个实施例的风控业务形态的软件架构设计方法的流程图;图6示出了根据一个实施例的节点执行的方法的流程图;图7示出了根据一个实施例的节点执行的方法的流程图。具体实施方式下面结合附图对本专利技术实施例提供的方法和系统进行详细说明。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。按照本专利技术,在软件设计阶段,依赖具体的业务形态确定工作流,其中该工作流定义了完成具体的业务目标或任务所必须的一组相应功能。同时为实现不同的业务,本专利技术预先定义了适用于不同业务的不同功能的多个功能节点,这些功能节点既可以采用现有技术中的功能模块实现,也可以根据不同的功能需求而自行创建或对现有技术中的功能模块修改来生成。为了保证软件易于开发和维护,各功能节点在预先设计时应当尽量保证高内聚性和低耦合性,其中高内聚性是指一个节点的内部元素之间连接紧密,共同完成单一的功能,而低耦合性是指节点之间关联程度低,节点之间的数据接口设计简单。以金融服务领域的风险咨询业务为例,其通常可以概括为要求入参检查、参数转换、流量统计等功能。因此按照本专利技术可设计相应的入参检查节点、参数转换节点、流量统计节点等,从而使这些节点之间的关联程度降至最低,并且每个节点完成相应的功能。图2示出了根据一个实施例的基于流程编排的软件架构设计系统200。该软件架构设计系统200包括业务抽象引擎210、节点调度引擎220、以及结果合并器230。业务抽象引擎210按照业务形态所需的逻辑、特征或任务要求,抽象出相应的工作流,该工作流定义了针对该业务形态所要实现的目标或要求而设定的各项功能。这里需要注意的是,业务抽象引擎210可以根据业务的情况抽象出一个或多个工作流。节点调度引擎220用于根据工作流中定义的各项功能,编排实现各项功能的功能节点。在一个示例中,节点调度引擎220可以从节点池240中选择对应每项功能的节点(例如,节点1、节点2等)以及确定这些节点的执行顺序。按照本专利技术,节点调度引擎220按照工作流调度所述一个或多个节点的执行。如图2所示,节点池240中包含预先生成的多个节点,每个节点设计为完成一项特定的功能。根据需求,节点池240中的节点可被节点调度引擎220调用以完成工作流中的一项功能,并且每个节点可以被一个工作流独享,也可以是多个工作流所共用的。图3示出了多个节点被不同的工作流调用的示意性说明。在这里仅仅以示例的方式示出了二个工作流中的多个节点以链式结构顺序地执行。本领域的技术人员应当理解系统中还可能包括更多的各种形式的业务流程,而每个业务流程可以包括任意数量的相同或者不同的节点。如图3所示,其示出了根据一个实施例的执行工作流的示意图,其中左侧示出了二个工作流:工作流1、工作流2,其分别从二个不同的业务形态抽象出来,在每个工作流中定义了需要使用哪些节点,以及这些节点的执行顺序。如图3中所示,工作流1被示出为需要完成四项功能,并通过依次执行节点1、节点4、节点5、以及节点3来实现。工作流2被示出为需要本文档来自技高网
...

【技术保护点】
1.一种软件架构设计系统,包括:业务抽象引擎,其用于将业务形态抽象成至少一个工作流,该工作流定义了用于完成所述业务的一组功能;节点调度引擎,其用于根据所述工作流,编排用于实现所述一组功能的一个或多个节点及其执行顺序,并且控制所述一个或多个节点的执行,其中,所述一个或多个节点选自节点池,并且其中所述节点池中的每个节点由输入数据驱动以实现预定义的功能;以及结果合并器,其用于对所述一个或多个节点的执行结果进行合并。

【技术特征摘要】
1.一种软件架构设计系统,包括:业务抽象引擎,其用于将业务形态抽象成至少一个工作流,该工作流定义了用于完成所述业务的一组功能;节点调度引擎,其用于根据所述工作流,编排用于实现所述一组功能的一个或多个节点及其执行顺序,并且控制所述一个或多个节点的执行,其中,所述一个或多个节点选自节点池,并且其中所述节点池中的每个节点由输入数据驱动以实现预定义的功能;以及结果合并器,其用于对所述一个或多个节点的执行结果进行合并。2.根据权利要求1所述的软件架构设计系统,还包括节点执行器,其中,所述节点执行器响应于所述流程引擎的控制来解释执行所述一个或多个节点。3.根据权利要求2所述的软件架构设计系统,还包括上下文存储库,其中,所述上下文存储库通信地耦合到所述节点调度引擎和所述节点执行器,并存储用于执行所述一个或多个节点的所述输入数据及所述一个或多个节点的输出结果,其中所述节点调度引擎利用所述输入数据驱动所述节点在所述节点执行器中的执行。4.根据权利要求1-3之一所述的软件架构设计系统,进一步包括:节点池,其中存放有可完成不同功能的多个节点;以及节点注册表,其中注册有所述节点池中的各节点的特征信息,以便被所述节点调度引擎用来确定可用于所述工作流的节点。5.根据权利要求1-4之一所述的软件架构设计系统,其中,所述节点调度引擎根据所述工作流,以链式结构、树形结构、或者图结构编排所述一个或多个节点。6.根据权利要求1-5之一所述的软件架构设计系统,其中,所述节点调度引擎可配置为并行执行两个或更多个工作流,所述节点池中的每个节点能够被其中一个工作流独占或被多个工作流共享。7.一种软件架构设计方法,包括:将业务...

【专利技术属性】
技术研发人员:王子然
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1