CN109901818B - 用于软件架构设计的系统和方法 - Google Patents

用于软件架构设计的系统和方法 Download PDF

Info

Publication number
CN109901818B
CN109901818B CN201811360823.XA CN201811360823A CN109901818B CN 109901818 B CN109901818 B CN 109901818B CN 201811360823 A CN201811360823 A CN 201811360823A CN 109901818 B CN109901818 B CN 109901818B
Authority
CN
China
Prior art keywords
node
nodes
execution
workflow
business
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
Application number
CN201811360823.XA
Other languages
English (en)
Other versions
CN109901818A (zh
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.)
Advanced New Technologies Co Ltd
Original Assignee
Advanced New Technologies 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 Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Priority to CN201811360823.XA priority Critical patent/CN109901818B/zh
Publication of CN109901818A publication Critical patent/CN109901818A/zh
Application granted granted Critical
Publication of CN109901818B publication Critical patent/CN109901818B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

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

Description

用于软件架构设计的系统和方法
技术领域
本发明涉及软件设计领域,特别地,本发明涉及基于流程编排的软件架构设计技术。
背景技术
传统软件设计中,都是依赖业务形态抽象业务流程并设计出最终的软件流程,通常每个业务流程均有其自己的业务流程逻辑并设计专门的软件。因此按照传统设计思路,两个业务流程需要开发各自的业务流程逻辑,即使是这二个业务流程存在很大的相关性也是如此。
虽然现有技术中模块化设计广泛地应用于软件设计过程中,但其中的模块设计在整个执行过程中仍采用模块之间的嵌套、递归等调用关系。因此针对软件的不同业务形态进行开发时,需要开发各自的业务形态逻辑,具体定义数据接口和模块调用关系。图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被示出为需要完成三项功能,并通过依次执行节点4、节点3、以及节点5实现。如图所示,上述节点1、节点3、节点4、节点5分别来自节点池240,且可以分别被不同的工作流1、2在实现不同的业务时共同调用。为实现各自的业务需求,节点调度引擎220可以方便地从节点池240中调用这些节点并编排其执行顺序,从而简化了软件设计。
如图所示,节点池240进一步划分成两个池——同步节点池2401以及异步节点子池2402,用于分别放置同步节点和异步节点。其中,同步节点指的是在执行流程中必须等待结果数据的节点,后置节点会用到这些节点的数据结果,如数据分析节点,其后面的流程或节点需要其数据分析结果来进行后面的操作。而异步节点属于非阻塞节点,只负责完成任务,不需要等待结果数据,例如执行监控任务的监控节点。上面讨论的节点1、节点 5、以及节点3来自同步节点池2401,表示其为同步节点,而节点4来自异步节点池2402,表示其属于异步节点。划分不同节点池是为了根据节点的属性来进一步优化节点的调用过程,从而使流程设计更加简单清晰。应当理解,可以按照任何合适的节点属性来划分节点子池或调整节点。
返回到图2,在一个优选实施列中,软件架构设计系统200还包括节点执行器250与上下文存储库260。节点调度引擎220在执行过程中,会根据工作流定义的各项功能有针对性地编排相应的功能节点,并以确定好的顺序调度各功能节点在节点执行器250中的执行。根据本发明,节点池260 中的节点为了能够尽量多的在多个工作流中复用,被设计为提供多样的参数和结果等数据,在节点的执行中,前一个节点执行所得到的输出参数或者结果可能是后续的某个节点的输入参数。这些有关节点执行的数据在本文中被称为上下文数据,作为一个示例,这些上下文数据可以存放于上下文存储库260中。然而并不是上一节点的所有上下文数据对于其他节点的执行或者结果合并都是有用的。节点调度引擎220能够根据工作流的定义,确定节点的执行顺序,并选择性地在节点之间传递所需要的上下文信息,使得各个节点能够按照预期正确地被执行。由此,每个节点仅由节点调度引擎220传递的输入参数或数据驱动,而不会被其它节点调用。
仍以图3为例,按照工作流1的要求,在节点执行器250中首先执行节点1,然后在某个时间执行节点4。节点1例如可以提供4个结果数据,而节点4在执行时可能会用到上述4个结果数据中的3个。节点调度引擎220 会基于这些特点,在驱动节点1执行后,并将节点1的执行结果存储在特定的存储区域,例如在一个示例中可以存储在上下文存储库260中。当按照工作流1节点调度引擎220需要调度节点4进一步执行时,节点调度引擎 220可以从上下文存储库260中取出节点1的执行结果中用于执行节点4所必须的3个结果数据,并以此驱动节点4在节点执行器250中执行。可选地,在另一个可选示例中,由于根据工作流1,节点调度引擎220‘知道’在节点1之后将会执行节点4,因此节点调度引擎220也可以将节点1执行结果中的、节点4所需的3个结果数据存储在上下文存储库260中,以在调度节点4执行时使用。因此,通过采用节点调度引擎220对节点的执行进行编排和控制,能够使得用户节省大量的在节点间的数据接口设计工作,而这些工作往往是难以复用的。另一方面,通过存储上下文数据并选择性地使用该上下文数据来驱动节点的执行,能够有助于节点之间的结构解耦,避免如嵌套、递归等复杂和难以维护的设计。同时,针对各功能节点本身的设计,能够促进进一步做到功能内聚,使节点尽量多的支持多样的上下文数据,有助于节点的复用。
在一些实施例中,节点池240中的各功能节点可注册到节点注册表(图中未示出)。在所述节点注册表中维护各个节点的特征信息,所述特征信息包括有关节点所使用的上下文数据和节点完成的特定功能的信息。基于节点注册表中的各节点的特征信息,节点调度引擎220可以从节点注册表中查找出对应于业务抽象引擎210提供的工作流中所划分的各项功能的节点,并对这些节点进行编排和调度控制。如前所述,完成各种功能的不同功能节点被预先设计好并存储于节点池240中。在一些实施例中,当节点池240中没有对应功能的节点时,可以使用任何现有和开发中的编程工具按照预定的功能进行创建或编辑,并对节点注册表进行更新以反映节点的变化。
在将所有节点调度执行完成之后,节点调度引擎220将一个或多个节点的执行结果发送至结果合并器230,以根据业务需求对各节点的输出结果进一步处理,例如对其中异步节点的选择性处理以及整个工作流最终结果的合并等。
接下来结合风控领域的示例来进一步描述基于流程编排的软件架构设计。风控领域通常包括风险咨询业务和主动风险识别推送业务在内至少二个业务形态。按照本发明,这二个业务形态被整合在一个系统中。图4示出了根据一个实施例的风控产品的软件架构设计系统400,如图所示,其包括业务抽象引擎401、风险咨询节点调度引擎421、风险识别节点调度引擎 422、风险咨询合并器461、风险识别合并器463、上下文存储库431以及节点执行器441。
根据该实施例,用户在接收到风控业务请求时,业务抽象引擎401对该业务请求进行分析,并抽象出具体的工作流,例如风险咨询业务工作流 411或风险识别业务工作流413。其中对于风险咨询业务工作流411,其划分的各功能流程可表示为:入参检查→参数转换→流量统计→监控统计→引擎分析→数据落库;而对于风险识别业务工作流,其划分的各功能流程可表示为:参数转换→流量统计→监控统计→数据落库→数据推送。这里需要指示出的是,上述工作流中各功能流程是示意性的,而不是限制性的。
以下先讨论有关风险识别业务工作流413的执行过程。风险识别节点调度引擎422根据风险识别业务工作流413中定义的各项功能流程,通过节点注册表中注册的节点池451中的各节点的特征信息,确定需要依次使用的节点为参数转换节点453、流量统计节点454、监控统计节点455、数据落库节点457、以及数据推送节点458,并且确定上述节点以链式结构按照工作流413中各功能顺序执行。应当理解,本发明的构思也可以应用于如包含树形结构和图结构等的各种节点关系。
接下来,风险识别节点调度引擎422从节点池451中取出参数转换节点 453,并将其注入节点执行器441中进行执行,其中,风险识别节点调度引擎422会将参数转换节点453执行所需的输入参数数据提供给节点执行器 441来执行参数转换节点453。在这里,节点执行器441用于执行每个节点。虽然在附图4中示出为一个节点执行器,应当理解,可以有多个节点执行器串行或者并行工作,其中节点执行器441可以是现有技术中任何可用于执行节点的装置,例如程序编译器或其它可解释节点具体执行的程序解释装置等。
在节点执行器441执行参数转换节点453时,风险识别节点调度引擎 422记录执行过程中新产生的上下文数据并将这些上下文数据存储在上下文存储库431中。如之前提到的,上下文存储库431用于存储各节点的输入参数、输出结果等数据。应当理解,上下文存储库431可以将上下文数据以任何适当的数据格式存储在任何类型的存储设备上。在图4中上下文存储库431被示出为独立于其他模块,然而应当理解,一个或多个上下文存储库431可以被集成在各个节点调度引擎421,422中,或者在系统的其他装置中而与节点调度引擎421,422通信地耦合。在另一些示例中,这些上下文数据也可以临时地存储在例如节点调度引擎中。在一些实施例中,节点调度引擎421,422还可以对存储到和读取自上下文存储库431的数据进行进一步的操作,例如在节点执行过程中或者节点执行完成时,节点调度引擎421,422可以改变节点执行产生的上下文数据的格式,并将修改后的上下文数据存储在上下文存储库431中,用于后续节点的使用;同样,例如为了满足某个后续节点输入参数的需要,在读取上下文数据后,节点调度引擎 421,422可以改变其数据格式并发送至节点执行器441作为该后续节点执行的输入参数。
在节点执行器441完成对参数转换节点453的执行并且风险识别节点调度引擎422在存储了执行参数转换节点453产生的上下文数据之后,风险识别节点调度引擎422继续注入下一个节点即流量统计节点454至节点执行器 441中,并从上下文储存库431中根据流量统计节点454执行的需要,读取产生于参数转换节点453的相关的上下文数据,并将其发送至节点执行器 441以开始执行新节点。如前所述,必要时,节点调度引擎422可以在发送之前对参数转换节点453产生的上下文数据进行修改以适配流量统计节点 454。按照上述过程,风险识别节点调度引擎422控制工作流413中的监控统计、数据落库节点在节点执行器441中的执行,直到执行完成最后一个节点——数据推送节点458。
当所有节点执行完毕时,风险识别合并器463汇总上下文存储库431 中各节点的结果数据,来对风险识别业务工作流413的结果进行合并,从而针对风控中关于主动风险识别推送的请求提供响应。
而针对风险咨询业务工作流411的执行过程与以上讨论的针对风险识别业务工作流413的执行过程类似。风险咨询节点调度引擎421首先根据风险咨询业务工作流411中定义的各项功能,通过节点注册表中的节点特征信息,确定需要依次使用的节点为入参检查节点452、参数转换节点453、流量统计节点454、监控统计节点455、引擎分析节点456、以及数据落库节点457,并且同样确定上述节点以链式结构顺序执行。
接下来,风险咨询节点调度引擎421依次从节点池451中取出上述节点并依据工作流中定义的各项功能的顺序,将上述节点分别注入至节点执行器441中来执行,并用上下文存储库431来存储上下文数据。值得注意的是,风险咨询业务工作流411中定义的需要使用的参数转换节点453、流量统计节点454、监控统计节点455、数据落库节点457等节点同样被在风险识别业务工作流413中使用,但是如上面讨论的,这些节点在不同的工作流中所涉及的上下文数据可能不同。为了实现风险咨询业务形态,用户不需要再次开发这些节点,而是只需要借助风险咨询节点调度引擎421,使用上下文存储库431来传递适配各节点所需要的上下文数据(包括为适配不同的节点,风险咨询节点调度引擎421在传递之前修改上下文数据),从而实现了节点在两个工作流之间的复用,而不需要针对每个工作流特别设计节点间的数据接口。可以看到,根据本发明,已经设计好并存储于节点池中的各功能节点不需要在输入端或输出端为适配其它节点而调整,只是接受节点调度引擎的输入数据驱动。这样的设计也提供了开发过程中对节点热插拔的能力,用户可以例如根据风险咨询业务场景的需要,临时增加一些防控节点来降低对用户的打扰率。
当风险咨询业务工作流411定义的所有节点执行完毕时,风险咨询节点调度引擎421将上下文存储库431中的结果数据发送至风险咨询合并器 461,来合并上述节点执行的结果。从而可实现对来自用户的风险咨询请求做出响应。
应当注意的是,在另一个实施例中,当风控业务请求同时包含了风险咨询与风险识别推送要求时,业务抽象引擎401可以抽象出风险咨询业务工作流与风险识别业务工作流,并且可以串行或者并行地执行这二个流,并且通过图4中所示的风控业务形态结果合并器471将各自的执行的结果进行合并。
与以上针对风控软件开发过程中的两个场景进行的讨论类似,在一些软件开发场景下,往往需要将多个业务形态合并至一个系统以同时支撑多个业务形态。通过对共用的节点进行统一开发,能够进一步使节点被设计为内部功能内聚、而节点之间相互解耦,更大程度上地实现节点的复用;而通过对特定的业务具体抽象其工作流,会使得业务形态清晰,有助于对业务的升级和维护;采用工作流来编排节点、控制节点的执行并且使用上下文数据传递节点执行所需的数据,能够实现数据驱动业务流转,而各个节点可插拔,业务功能可伸缩扩展,业务功能与业务功能之间通过数据贯穿,实现流程功能的复用。虽然上面实施例中是以风控领域的软件设计作为示例,应当理解,本发明所介绍的系统和方法可以应用于任何软件的设计中。
图5示出了根据一个实施例的风控业务的软件架构设计方法500的流程图。在图5中,方法500开始于步骤501,其中将风控业务形态抽象成风险咨询业务工作流或风险识别业务工作流。其中风险咨询业务工作流定义了实现风险咨询目的的各功能及其执行顺序。类似地,风险识别业务工作流定义了实现主动风险识别推送目的的各项功能及其执行顺序。
接下来,方法500前进到步骤503,针对风险咨询业务工作流和风险识别业务工作流,分别编排适应于每个工作流的节点并控制所述节点的执行,其中编排每个工作流的节点包括从节点池中选择可完成工作流所定义的各项功能的节点并确定所选择节点的执行顺序。下面结合图6、图7分别说明针对风险识别业务工作流和风险咨询业务工作流的执行方法。
图6示出了执行风险识别业务工作流的方法600的流程图。方法600 从步骤601开始,接收抽象出的风险识别业务工作流。然后方法600前进到步骤603,其中根据风险识别业务工作流,对节点池中的需要使用的节点进行编排,包括确定使用的节点为参数转换节点、流量统计节点、监控统计节点、数据落库节点、以及数据推送节点,以及确定上述节点的连接顺序为链式结构。然后方法600前进到步骤605,将上述节点依次注入节点执行器并提供所需的上下文数据。然后方法600前进到步骤607,其中判断节点执行是否成功,如果不成功,则方法600结束,在一些情况下,当节点执行不成功时,可以直接退出工作流的执行。反之,如果节点执行成功,则方法600前进到步骤609,其中将节点执行中产生的上下文数据存储在上下文存储库中。然后方法600进入到步骤611,其中判断是否还有额外的节点需要执行。如果存在额外的节点需要执行,则方法600回到步骤605继续由节点调度引擎调度下一个节点的执行。反之,如果没有额外的节点需要执行,则方法600进入步骤613,输出各节点在执行器中的执行结果。然后方法600结束并且返回图5进入步骤505。
在步骤505,对风险识别业务工作流的各节点执行的结果进行合并,然后方法500结束。
图7示出了根据执行风险咨询业务工作流的方法700的流程图。方法 700从步骤701开始,其中接收抽象出的风险咨询业务工作流。然后方法700 前进到步骤703,其中根据风险咨询业务工作流对节点池中的需要使用的节点进行编排,包括确定使用的节点为入参检查节点、参数转换节点、流量统计节点、监控统计节点、引擎分析节点、以及数据落库节点,以及确定上述节点的连接顺序为链式结构。然后方法700前进到步骤705,其中执行各个节点,包括将上述节点依次注入节点执行器并提供所需的上下文数据。然后方法700前进到步骤707,其中判断节点执行是否成功,如果不成功,则方法700结束,在一些情况下,当节点执行不成功时,可以直接退出工作流的执行。反之,如果节点执行成功完成,则方法700前进到步骤709,其中将执行中产生的上下文数据存储在上下文存储库中。然后方法700进入到步骤711,其中判断是否还有额外的节点需要执行。如果存在额外的节点需要执行,则方法700回到步骤705继续由节点调度引擎调度下一个节点的执行。反之,如果没有额外的节点需要执行,则方法700进入步骤713,输出各节点在执行器中的执行结果。然后方法700结束并返回图5进入步骤 505。
在步骤505,对风险咨询业务工作流的节点执行的结果进行合并,然后方法500结束。
如上面提到的,如果在风控业务请求中同时包含了主动风险识别推送请求与风险咨询请求,则在步骤503中可以串行或者并行地执行风险识别业务工作流和风险咨询业务工作流,在步骤505中完成对每个工作流的结果合并之后,方法500进一步包括步骤507,对风险咨询业务工作流的执行结果和风险识别业务工作流的执行结果进行合并。
按照本发明的软件架构设计,借助于节点调度引擎利用数据驱动各节点的执行以及利用合并器来合并各节点的执行结果,设计人员可以自由地根据功能或任务需要添加相应的节点,而不必对原设计架构进行调整,该架构特点对于像风控业务这样的一些特定业务特别有利。例如,目前风控领域的一些防控体系是一种分步的防控,假定第一节点执行的策略是黑白名单,针对这种黑或白的用户第一个节点就可以抓获,然后漏斗式的往下走,后边的节点可以基于用户行为习惯做一次二次防控,防控的用户已经是第一个节点放过来的用户。当业务需要的时候可以新增一些防控节点,例如当打扰率过高的时候,运营商可以添加一些最终兜底的防控策略作为最后一个节点使用,将一些用户从有风险需要校验的状态调整为放过的情况。因此根据本发明的设计方案可以满足这种灵活的需要。
需要说明的是,上述各流程和架构中不是所有的步骤或模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序也不是固定的,可以根据需要进行调整。
本发明另一实施例提供的机器可读介质上存储有机器可读指令,该机器可读指令在被计算机执行时,使计算机执行本文公开的前述的任一种方法。具体地,可以提供配有机器可读介质的系统或者装置,在该机器可读介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统的计算机读出并执行存储在该机器可读介质中的机器可读指令。在这种情况下,从机器可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的机器可读介质构成了本发明的一部分。
上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。

Claims (14)

1.一种软件架构设计系统,包括:
业务抽象引擎,其用于将业务形态抽象成至少一个工作流,该工作流定义了用于完成所述业务的一组功能;
节点调度引擎,其用于根据所述工作流,编排用于实现所述一组功能的一个或多个节点及其执行顺序,并且控制所述一个或多个节点的执行,其中,所述一个或多个节点选自节点池,并且其中所述节点池中的每个节点由所述节点调度引擎传递的输入参数或输入数据驱动以实现预定义的功能,而不会被其它节点调用;以及
结果合并器,其用于对所述一个或多个节点的执行结果进行合并。
2.根据权利要求1所述的软件架构设计系统,还包括节点执行器,其中,所述节点执行器响应于所述节点调度 引擎的控制来解释执行所述一个或多个节点。
3.根据权利要求2所述的软件架构设计系统,还包括上下文存储库,其中,所述上下文存储库通信地耦合到所述节点调度引擎和所述节点执行器,并存储用于执行所述一个或多个节点的所述输入参数或输入数据及所述一个或多个节点的输出结果,
其中所述节点调度引擎利用所述输入参数或输入数据驱动所述节点在所述节点执行器中的执行。
4.根据权利要求1-3之一所述的软件架构设计系统,进一步包括:
节点池,其中存放有可完成不同功能的多个节点;以及
节点注册表,其中注册有所述节点池中的各节点的特征信息,以便被所述节点调度引擎用来确定可用于所述工作流的节点。
5.根据权利要求1-3之一所述的软件架构设计系统,其中,所述节点调度引擎根据所述工作流,以链式结构、树形结构、或者图结构编排所述一个或多个节点。
6.根据权利要求1-3之一所述的软件架构设计系统,其中,所述节点调度引擎可配置为并行执行两个或更多个工作流,所述节点池中的每个节点能够被其中一个工作流独占或被多个工作流共享。
7.一种软件架构设计方法,包括:
将业务形态抽象成至少一个工作流,该工作流定义了用于完成所述业务的一组功能;
根据所述工作流,由节点调度引擎编排用于实现所述一组功能的一个或多个节点及其执行顺序,并且控制所述一个或多个节点的执行,其中,所述一个或多个节点选自节点池,并且其中所述节点池中的每个节点由所述节点调度引擎传递的输入参数或输入数据驱动以实现预定义的功能,而不会被其它节点调用;以及
对所述一个或多个节点的执行结果进行合并。
8.根据权利要求7所述的方法,其中控制所述一个或多个节点的执行包括控制节点执行器来调度执行所述一个或多个节点。
9.根据权利要求8所述的方法,其中控制所述一个或多个节点的执行包括:
使用上下文存储库存储用于执行所述一个或多个节点的所述输入参数或输入数据及所述一个或多个节点的输出结果,
利用所述输入参数或输入数据驱动所述节点在所述节点执行器中的执行。
10.根据权利要求7-9之一所述 的方法,进一步包括:
提供节点池以存放有可完成不同功能的多个节点;以及
提供节点注册表,其中注册有所述节点池中的各节点的特征信息,以便被所述节点调度引擎用来确定可用于所述工作流的节点。
11.根据权利要求7-9之一所述的方法,其中,编排所述一个或多个节点包括以链式结构、树形结构、或者图结构编排所述一个或多个节点。
12.根据权利要求7-9之一所述的方法,还包括并行执行两个或更多个工作流,所述节点池中的每个节点能够被其中一个工作流独占或被多个工作流共享。
13.一种具有指令的计算机可读介质,所述指令在被处理器执行时,使所述处理器执行根据权利要求7-12中的任一项所述的方法。
14.一种用于软件架构设计的设备,包括:
存储指令的存储器;以及
耦合到所述存储器的处理器,所述指令在被所述处理器执行时执行根据权利要求7-12中的任一项所述的方法。
CN201811360823.XA 2018-11-15 2018-11-15 用于软件架构设计的系统和方法 Active CN109901818B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811360823.XA CN109901818B (zh) 2018-11-15 2018-11-15 用于软件架构设计的系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811360823.XA CN109901818B (zh) 2018-11-15 2018-11-15 用于软件架构设计的系统和方法

Publications (2)

Publication Number Publication Date
CN109901818A CN109901818A (zh) 2019-06-18
CN109901818B true CN109901818B (zh) 2022-07-19

Family

ID=66943294

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811360823.XA Active CN109901818B (zh) 2018-11-15 2018-11-15 用于软件架构设计的系统和方法

Country Status (1)

Country Link
CN (1) CN109901818B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111144837A (zh) * 2019-12-13 2020-05-12 东软集团股份有限公司 流程编排的方法、装置、存储介质及电子设备
CN111208991B (zh) * 2020-01-03 2023-10-31 北京龙归科技有限公司 基于工作流的程序开发方法、电子设备及存储介质
CN113709229A (zh) * 2021-08-24 2021-11-26 德清阿尔法创新研究院 一种数据驱动的智能物联网平台工作流实现系统及方法
CN116258362B (zh) * 2023-05-08 2023-07-28 四川数产范式科技有限公司 工作流的生成方法、系统、设备及介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102968303A (zh) * 2012-11-21 2013-03-13 用友软件股份有限公司 程序设计系统和程序设计方法
US20170124464A1 (en) * 2015-10-28 2017-05-04 Fractal Industries, Inc. Rapid predictive analysis of very large data sets using the distributed computational graph
EP3384380B1 (en) * 2015-11-30 2022-04-20 Telefonaktiebolaget LM Ericsson (publ) Method and apparatus for declarative action orchestration
CN107943457B (zh) * 2017-11-17 2021-01-15 中山大学 一种面向业务对象的工作流建模方法及系统
CN108228252B (zh) * 2017-12-26 2021-04-30 创新先进技术有限公司 业务处理和业务流程配置方法、装置及设备

Also Published As

Publication number Publication date
CN109901818A (zh) 2019-06-18

Similar Documents

Publication Publication Date Title
CN109901818B (zh) 用于软件架构设计的系统和方法
CA2558242C (en) Controlling task execution using a graphical representation of task dependency
CN103069385B (zh) 用于动态加载基于图的计算的系统和方法
US7386577B2 (en) Dynamic determination of transaction boundaries in workflow systems
US20130139164A1 (en) Business Process Optimization
US20130138473A1 (en) Business Process Optimization
US20090019427A1 (en) Method and Apparatus for Providing Requirement Driven Static Analysis of Test Coverage for Web-Based, Distributed Processes
US20080010535A1 (en) Automated and configurable system for tests to be picked up and executed
Yang et al. Mapping uml activity diagrams to analyzable petri net models
US8091064B2 (en) Supporting system, design supporting method, and computer-readable recording medium recorded with design supporting program
CN106529304B (zh) 一种安卓应用并发漏洞检测系统
EP1548581A2 (en) Methods, apparatus and programs for system development
CN116643854A (zh) 一种服务编排方法、装置、流程控制器及任务处理器
CN116841564B (zh) 一种数据处理方法、装置、设备以及计算机可读存储介质
CN111208991B (zh) 基于工作流的程序开发方法、电子设备及存储介质
CN114564412B (zh) 区块链的确定性交易并发调度方法及系统
WO2008041442A1 (fr) Procédé de création de programme par parallélisation, dispositif de création de programme par parallélisation, et programme de création de programme par parallélisation
CN104572087A (zh) 一种业务逻辑实现的适配模式方法及系统
KR102046622B1 (ko) 워크플로우 기반 소프트웨어 서비스 시스템 및 이 시스템의 각 기능을 실행시키기 위해 매체에 저장된 컴퓨터 프로그램
CN113220436A (zh) 一种分布式环境下的通用批量作业执行方法及装置
Dávid A multi-paradigm modeling foundation for collaborative multi-view model/system development
CN116911393B (zh) 一种量子芯片设计系统、方法、电子设备和存储介质
Di Alesio et al. Using UML/MARTE to support performance tuning and stress testing in real-time systems
US11645125B2 (en) Method and apparatus for executing workflow including functions written in heterogeneous programing language
CN117788120A (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
TA01 Transfer of patent application right

Effective date of registration: 20201012

Address after: English genus

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: English genus

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20201012

Address after: English genus

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant