一种业务流程执行方法及装置的制造方法

文档序号:10489533阅读:235来源:国知局
一种业务流程执行方法及装置的制造方法
【专利摘要】本发明公开了一种业务流程执行方法及装置,涉及计算机领域,解决了业务流程中业务的再执行能力低下的问题。本发明的方法包括:当业务创建时,在业务决策库中查找与所述业务的业务类别对应的业务规则条件,所述业务决策库由不同业务类别对应的业务规则条件构成;根据查找的所述业务规则条件对所述业务进行业务决策匹配;根据匹配结果,从业务组件库中调取并执行待执行业务组件,实现所述业务的业务流程,所述业务组件库由对不同业务类别的业务进行组件化处理得到的业务组件构成。本发明主要用于对业务流程进行执行。
【专利说明】
一种业务流程执行方法及装置
技术领域
[0001 ]本发明涉及计算机领域,特别是涉及一种业务流程执行方法及装置。
【背景技术】
[0002]业务流程从广义上讲是为达到特定的价值目标而由不同的人分别共同完成的一系列活动,活动之间不仅有严格的先后顺序限定,而且活动的内容、方式等也都必须有明确的安排和界定,以使不同活动在不同岗位角色之间进行转手交接成为可能。简而言之,某一组活动可以定义为一个业务流程,这组活动有一个或多个输入,输出一个或多个结果,业务流程是企业中一系列创造价值的活动的组合。
[0003]在现有的业务流程中,通常会基于设计模式中的模板方法模式或者基于有限状态机的流程调度方法进行实现。其中,模板方法模式用于执行简单、线性业务过程的流程,其定义一个操作中算法的框架,而将一些步骤延迟到子类中。而对基于有限状态机的流程调度方法而言,其在利用有限状态机所表示的有限个状态以及这些状态之间的转移和动作等行为的数学模型的基础上,主要关注具体的业务流程,并在流程引擎中通过有限状态机的方式对业务流程进行调度。
[0004]由于模板方法模式在父类中形式化的定义一个算法,而由它的子类来实现细节的处理,在子类实现详细的处理算法时并不会改变算法中步骤的执行次序;同时由于需要为每一个基本方法的不同实现提供一个子类,如果父类中可变的基本方法太多,将会导致类的个数增加,系统更加庞大,设计也更加抽象,因此模板方法模式无法支撑复杂多变的业务流程。而基于有限状态机的流程调度方法通过关注具体的业务流程,并在构建的流程引擎中通过有限状态机的方式对业务流程进行调度,因此能够比模板方法模式具有更多的灵活性,但是由于其只关注了具体的业务流程,而对于复杂业务能力的抽象和复用上关注不足,从而导致业务的再执行能力低下。

【发明内容】

[0005]有鉴于此,本发明提出了一种业务流程执行方法及装置,主要目的在于解决业务流程中业务的再执行能力低下的问题。
[0006]依据本发明的第一个方面,本发明提供一种业务流程执行方法,包括:
[0007]当业务创建时,在业务决策库中查找与所述业务的业务类别对应的业务规则条件,所述业务决策库由不同业务类别对应的业务规则条件构成;
[0008]根据查找的所述业务规则条件对所述业务进行业务决策匹配;
[0009]根据匹配结果,从业务组件库中调取并执行待执行业务组件,实现所述业务的业务流程,所述业务组件库由对不同业务类别的业务进行组件化处理得到的业务组件构成。
[0010]依据本发明的第二个方面,本发明提供一种业务流程执行装置,包括:
[0011]查找单元,用于当业务创建时,在业务决策库中查找与所述业务的业务类别对应的业务规则条件,所述业务决策库由不同业务类别对应的业务规则条件构成;
[0012]匹配单元,用于根据查找的所述业务规则条件对所述业务进行业务决策匹配;
[0013]执行单元,用于根据匹配结果,从业务组件库中调取并执行待执行业务组件,实现所述业务的业务流程,所述业务组件库由对不同业务类别的业务进行组件化处理得到的业务组件构成。
[0014]借由上述技术方案,本发明实施例提供的一种业务流程执行方法及装置,能够在业务创建时,通过业务决策库查找与所述业务的业务类别对应的业务规则条件,根据查找的业务规则条件对所述业务进行业务决策匹配,并根据匹配结果执行从业务组件库中调取的待执行业务组件。由于所述业务决策库是由不同业务类别对应的业务规则条件构成的,所述业务组件库是由对不同业务类别的业务进行组件化处理得到的业务组件构成的,并对业务组件化过程进行了合理的粒度控制,因此当业务到来时,会根据业务类别通过业务决策库获取可执行的业务组件生成业务过程,与现有技术中通过模板方法模式进行简单、线性的业务流程相比,本发明能够支持复杂的业务流程的执行。
[0015]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0016]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0017]图1示出了本发明实施例提供的一种业务流程执行方法的流程示意图;
[0018]图2示出了本发明实施例提供的一种流程引擎内部组件的组成框图;
[0019]图3示出了本发明实施例提供的一种流程引擎执行业务流程的流程示意图;
[0020]图4示出了本发明实施例提供的一种业务流程执行装置的组成框图;
[0021]图5示出了本发明实施例提供的另一种业务流程执行装置的组成框图;
[0022]图6示出了本发明实施例提供的另一种业务流程执行装置的组成框图。
【具体实施方式】
[0023]下面将参照附图更加详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0024]现有的业务流程执行通常有两种方法,一是基于设计模式中的模板方法模式,二是基于有限状态机的流程调度方法。其中,模板方法模式用于执行简单、线性的业务流程,无法支撑复杂多变的业务流程;而基于有限状态机的流程调度方法是在有限状态机所表示的有限个状态以及这些状态之间的转移和动作等行为的数学模型的基础上,主要关注具体的业务流程,对于复杂业务能力的抽象和复用上关注不足,从而导致业务的再执行能力低下。
[0025]为了解决上述问题,本发明实施例提供了一种业务流程执行方法,能够在业务流程中提高业务的再执行能力。如图1所示,该方法包括:
[0026]101、当业务创建时,在业务决策库中查找与所述业务的业务类别对应的业务规则条件。
[0027]本发明中的业务通常指的是各行业中需要处理的事务,涉及一个以上主体,通过信息交换实现的一系列过程,所述一系列过程可以称为业务流程。业务流程中的活动不仅具有先后顺序限定,而且涉及的内容、方式、责任等也都有明确的安排和界定,以使不同活动在不同主体之间进行交互成为可能。例如:网络平台上的众筹业务、公募业务或者私募业务都属于本发明中所指的业务。由于这些业务的业务流程复杂多变,而且业务流程中的各个活动所涉及的操作规范和具体数据的加工逻辑不同,也就是业务规则条件不同,因此在执行具体的业务流程时,需要根据具体业务对应的业务规则条件,才能正确完成业务流程的执行。基于上述原因,在业务流程执行过程中,需要执行步骤101当业务创建时,在业务决策库中查找与所述业务的业务类别对应的业务规则条件。其中,本发明实施例中的业务决策库由不同业务类别对应的业务规则条件构成。在所述业务决策库中,能够获取到不同的业务在执行过程中需要遵循的业务规则条件。
[0028]102、根据查找的所述业务规则条件对所述业务进行业务决策匹配。
[0029]当在步骤101中查找到创建的业务所对应的业务规则条件之后,就需要根据所述业务规则条件对所述业务进行业务决策匹配。若所述业务的当前状态与对应的业务规则条件相匹配时,根据匹配结果可以执行所述业务规则条件下的业务操作,形成业务的业务流程。
[0030]103、根据匹配结果,从业务组件库中调取并执行待执行业务组件,实现所述业务的业务流程。
[0031]由于一个业务流程中的不同活动对应不同的业务规则条件,而且针对一个活动而言,在与其业务规则条件进行匹配时,可能会存在一个以上的匹配结果,不同的匹配结果对应有不同的业务操作。例如,业务流程中的某个活动对应的业务规则条件为:若指标符合A,则执行C操作;若指标符合B,则执行D操作。因此,当通过步骤102根据查找的所述业务规则条件对所述业务进行业务决策匹配之后,需要执行步骤103根据匹配结果,从业务组件库中调取并执行待执行业务组件,所述待执行业务组件用于执行所述业务规则条件下的业务操作,从而实现所述业务的业务流程。其中,所述业务组件库由对不同业务类别的业务进行组件化处理得到的业务组件构成,在所述业务组件库中,能够获取到执行不同业务规则条件下的业务操作所需要的业务组件。
[0032]本发明实施例提供的一种业务流程执行方法,能够在业务创建时,通过业务决策库查找与所述业务的业务类别对应的业务规则条件,根据查找的业务规则条件对所述业务进行业务决策匹配,并根据匹配结果执行从业务组件库中调取的待执行业务组件。由于所述业务决策库是由不同业务类别对应的业务规则条件构成的,所述业务组件库是由对不同业务类别的业务进行组件化处理得到的业务组件构成的,并对业务组件化过程进行了合理的粒度控制,因此当业务到来时,会根据业务类别通过业务决策库获取可执行的业务组件生成业务过程,与现有技术中通过模板方法模式执行简单、线性的业务流程相比,本发明能够支持复杂的业务流程的执行。
[0033]为了更好的对上述图1所示的方法进行理解,作为对上述实施方式的细化和扩展,本发明实施例将针对图1中的步骤进行详细说明。
[0034]由于本发明实施例在执行业务流程的过程中需要利用业务规则条件对创建的业务进行业务决策匹配。因此,为了便于管理不同的业务规则条件,从而提高业务决策的便捷性,本发明实施例需要将不同的业务规则条件构造成业务决策库。具体的,可以将与不同类别业务相关的操作规范和/或数据项的加工逻辑构建业务规则,进而形成业务决策库。例如,针对某个业务规则条件而言,根据所述业务规则条件进行的业务决策可以是某个操作规范:项目发布需要审核人M和审核人N共同确定;也可以是某个数据项的加工逻辑:Z指标需要由对旨标+Y指标运算得到。这里需要说明的是,本发明实施例构建的业务决策库可以理解为一个规则集合,所述规则可以是一组准确凝练的语句,用于描述、约束及控制业务的运作,是业务流程中的一段业务逻辑,通常由企业管理人员、业务人员和程序开发人员共同制定和修改。当业务满足这个规则集合中的某个规则时,可以触发一个或多个动作,以规则形式进行业务决策能够提供极大的灵活性和准确性。
[0035]由于本发明实施例在利用业务规则条件对创建的业务进行业务决策匹配之后,需要根据匹配结果执行相应的业务操作。因此,为了提高业务能力的复用性,还需要利用业务组件完成相关的业务操作。在本发明实施例中,需要将不同业务类别的业务进行组件化处理,得到执行不同业务操作的业务组件。所述组件化处理是对业务进行分解和抽象,对业务过程细分定义为一个个可以提供独立功能的模块或系统,方便业务组件单独开发,测试及提供原子通用的业务能力。所述业务组件可以是一个独立运行的模块,以便业务组件独立升级和减少不必要的组件之间的交互,从而提高业务组件的复用性。在构建业务组件的过程中,需要考虑业务组件的粒度。如果业务组件的粒度过小,会使业务组件数量过多,业务组件之间交互过多,从而造成业务组件管理困难;如果业务组件的粒度过大,会使业务组件的功能复杂,同一业务组件的功能之间关系紧密,造成业务组件升级困难,很难实现业务组件的复用。
[0036]在本发明实施例中,为了合理控制业务组件的数量,对业务组件的粒度没有统一的标准,而是以业务执行过程中的业务实体状态为依据,对业务组件的粒度进行控制,将业务进行组件化处理。其中,业务实体是业务过程中业务领域的一种持久化抽象,是与业务相关的动态的概念性对象,会在业务过程中被创建、演化和存储,一般包含业务对象生命期内相关数据的信息模型及生命周期模型。业务实体数据可以作为业务过程的部分I/o参数传递,业务实体不启动任何类型的业务处理,业务处理由使用业务实体的应用程序或业务过程来启动。在进行业务组件化的过程中,本发明实施例可以结合纵横两个维度进行组件化处理:从纵向的维度讲,可以将业务过程抽象成对应的业务实体,从业务实体中抽象出业务状态;从横向的维度讲,可以将业务过程分解成不同的业务步骤。将纵向维度和横向维度的处理相结合,可以完成业务的组件化处理。具体的,为了合理控制业务组件的粒度,也就是控制业务组件的数量,本发明实施例以业务实体的实体状态为依据,对业务进行组件化处理,所述组件化处理可以通过下列步骤进行:
[0037](I)获取业务执行过程中涉及的业务步骤。
[0038]由于在整个业务的执行过程中,会涉及到复杂多变的操作,若将每个操作都进行组件化处理得到一个业务组件,将会使得业务组件的粒度过小,造成业务组件数量过多以及业务组件困难。因此,本发明实施例需要获取业务执行过程中涉及的业务步骤。例如,以网络平台上的某个业务为例,该业务的执行过程可以划分为下述业务步骤:融资人创建项目、融资人提交项目、发起人审核、官方审核项目、上报证监会、证监会审批、发起人缴款、设置产品销售属性、产品上架、募集、缴款、打款到募集户、机构验资、工商登记、设立公司。
[0039](2)检测所述业务步骤之间的关联程度,将具有关联程度的业务步骤构建为一个业务实体。
[0040]当获取到不同的业务步骤之后,需要检测业务步骤之间的关联程度,所述业务步骤之间的关联程度,是指在执行所述业务步骤时所处理或依赖的对象之间的关联程度。具体的,在检测所述业务步骤之间的关联程度时,可以先获取业务步骤在执行时处理或依赖的对象,然后将所述处理或依赖的对象相同的业务步骤确定为具有关联程度的业务步骤,最后将具有关联程度的业务步骤构建为一个业务实体。例如,在上述获取网络平台上业务的各个业务步骤中,根据步骤执行时所处理的对象可以得到,处理的对象是有关项目的业务步骤包括:融资人创建项目、融资人提交项目、官方审核项目;处理的对象是有关商品的业务步骤包括:设置产品销售属性、产品上架;处理的对象是有关交易的业务步骤包括:募集、缴款、打款到募集户;处理的对象是有关公司的业务步骤包括:机构验资、工商登记、设立公司。根据步骤执行时所依赖的对象可以得到,依赖的对象是有关发起人的业务步骤包括:发起人审核、发起人缴款;依赖的对象是有关证监会的业务步骤包括:上报证监会、证监会审批。
[0041]当获取到上述业务步骤在执行时所处理或依赖的对象之后,就可以将所处理或依赖的对象相同的业务步骤抽象为同一个业务实体。在上述例子中,可以将“融资人创建项目”、“融资人提交项目”、“官方审核项目”这3个业务步骤划分为“项目实体”;将“发起人审核”、“发起人缴款”这2个业务步骤划分为“发起人实体”;将“上报证监会”、“证监会审批”这2个业务步骤划分为“证监会实体”;将“设置产品销售属性”、“产品上架”这2个业务步骤划分为“商品实体”;将“募集”、“缴款”、“打款到募集户”这3个业务步骤划分为“交易实体”;将“机构验资”、“工商登记”、“设立公司”这3个业务步骤划分为“公司实体”。
[0042](3)在所述业务实体对应的业务步骤所存在的执行结果中,提取业务实体对应的业务实体状态。
[0043]当通过上述方式构建出不同的业务实体之后,就需要从所述业务实体中抽象出对应的业务实体状态。由于本发明实施例是以业务步骤之间的关联程度为依据,将具有关联程度的业务步骤构建为一个业务实体,并且所述业务实体对应至少一个业务步骤。因此,在从业务实体中提取业务实体状态时,可以以业务实体对应的业务步骤所存在的执行结果为依据,提取出业务实体对应的业务实体状态。例如,上述“项目实体”对应的“融资人创建项目”、“融资人提交项目”、“官方审核项目”这3个业务步骤所存在的执行结果包括:已创建、已提交、官方审核通过、官方审核拒绝、官方运行审核打回,这5个执行结果可以作为“项目实体”对应的“项目实体状态”;上述“发起人实体”对应的“发起人审核”、“发起人缴款”这2个业务步骤所存在的执行结果包括:发起人审核确认、发起人已缴款,这2个执行结果可以作为“发起人实体”对应的“发起人实体状态”;上述“证监会实体”对应的“上报证监会”、“证监会审批”这2个业务步骤所存在的执行结果包括:已上报、审批通过、审批拒绝,这3个执行结果可以作为“证监会实体”对应的“证监会实体状态”;上述“商品实体”对应的“设置产品销售属性”、“产品上架”这2个业务步骤所存在的执行结果包括:已设置销售属性、已上架,这2个执行结果可以作为“商品实体”对应的“商品实体状态”;上述“交易实体”对应的“募集”、“缴款”、“打款到募集户”这3个业务步骤所存在的执行结果包括:募集成功、募集失败、已缴款、已创建,这4个执行结果可以作为“交易实体”对应的“交易实体状态”;上述“公司实体”对应的“机构验资”、“工商登记”、“设立公司”这3个业务步骤所存在的执行结果包括:已验资、已报工商、已报中证登、公司已成立,这4个执行结果可以作为“公司实体”对应的“公司实体状态”。
[0044](4)在所述业务实体中,根据改变业务实体状态的业务步骤生成业务组件。
[0045]当通过上述方式提取出各个业务实体对应的业务实体状态之后,就可以在业务实体中根据改变业务实体状态的业务步骤生成业务组件。例如,对于“项目实体”而言,改变“项目实体状态”的步骤为“融资人创建项目”(将项目为空状态变为已创建状态)、“融资人提交项目”(将项目为已创建状态变为已提交状态)、“官方审核项目”(将项目为已提交状态变为审核通过状态/审核拒绝状态/审核打回状态),可以将这些改变“项目实体状态”的步骤进行组件化处理得到相应的业务组件,包括:项目创建组件、项目提交组件、官方审核组件。同理,对于“发起人实体”而言,可以将改变“发起人实体状态”的业务步骤进行组件化处理得到相应的业务组件,包括:发起人审核确认组件、发起人缴款组件;将改变“证监会实体状态”的业务步骤进行组件化处理得到相应的业务组件,包括:上报组件、证监会审批组件;将改变“商品实体状态”的业务步骤进行组件化处理得到相应的业务组件,包括:设置组件、上架组件;将改变“交易实体状态”的业务步骤进行组件化处理得到相应的业务组件,包括:交易募集组件、交易缴款组件、交易创建组件;将改变“公司实体状态”的业务步骤进行组件化处理得到相应的业务组件,包括:验资组件、工商登记组件、中登登记组件、设立公司组件。
[0046]当通过上述方式抽象出很多不同类别业务的业务能力,并借助于流程接口对其进行组件化实现得到很多业务组件之后,为了便于调用大量的业务组件,本发明实施例需要建立一个大的业务组件库,这样就可以借助流程弓I擎来执行业务流程。
[0047]在应用流程引擎执行业务流程的过程中,需要通过流程定义来描述流程的执行过程,它由若干活动组成。所述流程定义是基于流程元素和属性对流程进行描述的语言,用于准确的向技术人员或业务人员传达业务过程的执行方式,它包括了流程的基本信息、流程的开始和结束条件、组成的活动、活动间流转的规则、需要用户执行的工作任务(工作项)、可能调用的应用程序以及流程相关数据等信息,提交到流程定义库后会包含流程定义ID(流程定义的唯一标识)、流程定义名称、版本号、流程定义描述以及提交时间等描述。
[0048]在本发明实施例中,流程定义中的元素主要包括:
[0049](I)业务流程元素process,用来表示一个流程的定义开始,它包含name和state-querier-ref两个属性,其中name属性表示定义的该流程的名称;state-querier-ref属性引用的是一个状态查询器,也就是需要业务实现的状态查询接口实现类。在流程的执行过程中,流程弓I擎会对该接口进行回调,依赖该接口获取业务实体的状态值来推进流程。
[0050](2)状态元素state,用来描述流程中的业务实体的状态信息,它有一个name属性,其值是业务实体状态的名称。在一个流程中,会有多个状态,但所有状态都是业务实体状态中的一个子集,一个状态下可以配置多个动作元素。
[0051 ] (3)动作元素act 1n,它包含七个属性:name、type、condit1n_ref、condit1n_6叉卩1'、3(31:;[011_代;1^、(^(161'、3(31:;[011_(16 8(3。其中,name属性用来描述动作的名称;type属性用来定义动作的类别,具有syn和asyn两个值,分别表示同步动作和异步动作;condit1n_ref属性引用的是一个条件计算器,也就是需要业务实现的条件计算器接口实现类;act1n_ref属性引用的是动作执行器接口的实现类;order属性用来定义当前动作的执行方式,具有serial和parallel两个值,分别表示当前动作是串行执行还是并行执行。
[0052]当完成业务的流程定义后,还需要实现用于执行业务流程的流程引擎。所述流程引擎中的动作是业务能力和业务过程的抽象和体现,也是业务组件化的基础。为了将流程引擎嵌入到业务系统中,流程引擎需要对外暴露出供业务实现的接口,注入供业务自定义的流程定义文件以及业务自身的数据源。业务自定义的流程定义文件通过指定文件目录的方式注入到流程中,供流程引擎解析,执行使用。本发明实施例中的流程引擎具有两类组件接口,一类为同步动作组件接口,它只有一个execute ()方法,这种动作组件在流程执行过程中不会被中断,也不需要参与者介入,在多个状态之间也可以配置多个组件并可以定义这些组件的执行方式,在流程定义中属性type = “syn”表示为同步动作组件。另一类为异步动作组件接口,在流程执行过程中,异步动作组件执行完第一阶段prepare()方法后会主动挂起,等待流程中的其他参与者重新启动流程后才能执行execute ()方法,继续推动流程前进,该异步动作组件多应用于有人工介入的推进业务流程的场景,例如需人工审核的处理事项。在本发明实施例中,整个流程引擎的实现由图2中的各组件来支撑完成,其中流程引擎对外暴露的回调接口:如条件计算组件接口用来完成流程动作执行前的业务决策;动作执行组件接口用来实现业务能力的封装并让流程引擎回调使用。
[0053]当通过上述方式完成流程定义以及流程引擎的设计后,若创建业务使流程启动以后,流程引擎会基于业务流程定义中的元素及其属性(具体为流程的名称,process元素的name属性)获取对应的流程配置信息,然后在对应的流程配置信息中,根据业务ID获取对应的业务实体状态,由业务实体状态从流程配置信息中获取所述业务实体状态下待执行的动作信息(业务实体状态下配置的动作元素中的动作信息),然后通过流程引擎调用接口功能执行具体的动作信息。在执行具体的动作信息之前,需要进行业务决策(业务规则条件的匹配),只有满足业务决策后才能执行对应的业务动作。具体的,流程引擎会根据所创建的业务的业务类别,通过流程引擎中的条件计算组件从业务决策库中调取对应所述业务类别的业务规则条件,并根据调取的所述业务规则条件对所述业务进行业务决策匹配。当匹配结果为业务满足所述业务规则条件时,流程引擎通过动作执行组件,从业务组件库中调取所述业务规则条件对应的业务组件并执行获取的业务实体状态下的动作信息,实现所述业务的业务流程。在执行具体的动作信息时,若所述动作信息执行成功,并且业务实体状态改变时,流程引擎会继续通过获取业务实体状态、获取业务实体状态下的待执行动作信息、获取业务规则条件及业务决策的匹配等一系列操作来推进业务的业务流程;若所述动作信息执行不成功和/或业务实体状态未改变时,流程引擎停止推进业务的业务流程。为了清楚的对上述业务流程的执行过程进行说明,如图3示出了流程引擎执行业务流程的流程图。
[0054]本发明实施例在对业务进行组件化处理时,以从业务过程中构建的业务实体的业务实体状态为依据,对业务组件的粒度进行合理的控制,由于业务实体是业务过程中业务领域的一种持久化抽象,是与业务相关的动态的概念性对象,因此根据业务实体对业务组件的粒度进行控制,能够避免业务组件由于粒度过大而造成业务组件的功能复杂以及升级困难;进一步的,本发明实施例以改变业务实体状态的业务过程(对应不同的业务步骤)形成业务组件,避免了对每一个业务操作都进行组件化处理而造成业务组件数量过多及业务组件管理困难。此外,本发明实施例融合流程引擎的调度方法和合理的组件化思想,并同业务决策库和业务组件库相结合,实现一种基于业务实体状态和业务组件化的业务流程执行方法,该方法无需发布系统,即可完成业务流程的执行。
[0055]进一步的,作为对上述图1所示方法的实现,本发明实施例提供了一种业务流程执行装置,如图4所示,该装置包括:查找单元41、匹配单元42以及执行单元43,其中,
[0056]查找单元41,用于当业务创建时,在业务决策库中查找与所述业务的业务类别对应的业务规则条件,所述业务决策库由不同业务类别对应的业务规则条件构成;
[0057]匹配单元42,用于根据查找的所述业务规则条件对所述业务进行业务决策匹配;
[0058]执行单元43,用于根据匹配结果,从业务组件库中调取并执行待执行业务组件,实现所述业务的业务流程,所述业务组件库由对不同业务类别的业务进行组件化处理得到的业务组件构成。
[0059]进一步的,查找单元41查找的业务决策库由与不同业务类别的业务相关的操作规范和/或数据项的加工逻辑构成。
[0060]进一步的,如图5所示,所述装置还包括:
[0061]第一获取单元44,用于获取业务执行过程中涉及的业务步骤;
[0062]处理单元45,用于检测所述业务步骤之间的关联程度,将具有关联程度的业务步骤构建为一个业务实体,所述业务实体对应至少一个业务步骤;
[0063]提取单元46,用于在所述业务实体对应的业务步骤所存在的执行结果中,提取业务实体对应的业务实体状态;
[0064]生成单元47,用于在所述业务实体中,根据改变业务实体状态的业务步骤生成业务组件。
[0065]进一步的,处理单元45包括:
[0066]获取模块451,用于获取业务步骤在执行时处理或依赖的对象;
[0067]确定模块452,用于将所述处理或依赖的对象相同的业务步骤确定为具有关联程度的业务步骤。
[0068]进一步的,查找单元41用于根据所述业务的业务类别,通过流程引擎调取业务决策库中对应所述业务类别的业务规则条件。
[0069]进一步的,匹配单元42用于根据查找的所述业务规则条件,通过流程引擎中的条件计算组件对所述业务进行业务决策匹配。
[0070]进一步的,执行单元43用于当匹配结果为业务满足所述业务规则条件时,通过流程引擎中的动作执行组件,从业务组件库中调取并执行与所述业务规则条件对应的业务组件,实现所述业务的业务流程。
[0071]进一步的,如图6所示,所述装置还包括:
[0072]第二获取单元48,用于在执行单元43根据匹配结果,从业务组件库中调取并执行待执行业务组件之前,基于业务流程定义中的元素及其属性,获取流程配置信息;
[0073]第二获取单元48还用于在获取的所述流程配置信息中,根据业务ID获取对应的业务实体状态以及所述业务实体状态下的动作信息;
[0074]执行单元43用于调取业务组件库中与所述业务规则条件对应的业务组件,还用于通过调取的所述业务组件执行获取的所述动作信息。
[0075]进一步的,执行单元43用于当所述动作信息执行成功并且业务实体状态改变时,通过流程引擎继续执行所述业务的业务流程;还用于当所述动作信息执行不成功和/或业务实体状态未改变时,通过流程引擎停止执行所述业务的业务流程。
[0076]进一步的,第二获取单元48基于的业务流程定义中的元素包括:业务流程元素、业务实体状态元素、动作元素;所述业务流程元素下配置有所述业务实体状态元素,所述业务实体状态元素下配置有动作元素。
[0077]本发明实施例提供的一种业务流程执行装置,能够在业务创建时,通过业务决策库查找与所述业务的业务类别对应的业务规则条件,根据查找的业务规则条件对所述业务进行业务决策匹配,并根据匹配结果执行从业务组件库中调取的待执行业务组件。由于所述业务决策库是由不同业务类别对应的业务规则条件构成的,所述业务组件库是由对不同业务类别的业务进行组件化处理得到的业务组件构成的,并对业务组件化过程进行了合理的粒度控制,因此当业务到来时,会根据业务类别通过业务决策库获取可执行的业务组件生成业务过程,与现有技术中通过模板方法模式进行简单、线性的业务流程相比,本发明能够支持复杂的业务流程的执行。
[0078]此外,本发明实施例的业务流程执行装置在对业务进行组件化处理时,以从业务过程中构建的业务实体的业务实体状态为依据,对业务组件的粒度进行合理的控制,由于业务实体是业务过程中业务领域的一种持久化抽象,是与业务相关的动态的概念性对象,因此根据业务实体对业务组件的粒度进行控制,能够避免业务组件由于粒度过大而造成业务组件的功能复杂以及升级困难;进一步的,本发明实施例以改变业务实体状态的业务过程(对应不同的业务步骤)形成业务组件,避免了对每一个业务操作都进行组件化处理而造成业务组件数量过多及业务组件管理困难。同时,本发明实施例的装置融合流程引擎的调度方法和合理的组件化思想,并同业务决策库和业务组件库相结合,实现一种基于业务实体状态和业务组件化的业务流程执行方法,该方法无需发布系统,即可完成业务流程的执行。
[0079]在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0080]可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
[0081]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0082]在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0083]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0084]类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身都作为本发明的单独实施例。
[0085]本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0086]此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0087]本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的发明名称(如确定网站内链接等级的装置)中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0088]应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
【主权项】
1.一种业务流程执行方法,其特征在于,所述方法包括: 当业务创建时,在业务决策库中查找与所述业务的业务类别对应的业务规则条件,所述业务决策库由不同业务类别对应的业务规则条件构成; 根据查找的所述业务规则条件对所述业务进行业务决策匹配; 根据匹配结果,从业务组件库中调取并执行待执行业务组件,实现所述业务的业务流程,所述业务组件库由对不同业务类别的业务进行组件化处理得到的业务组件构成。2.根据权利要求1所述的方法,其特征在于,所述业务决策库由与不同业务类别的业务相关的操作规范和/或数据项的加工逻辑构成。3.根据权利要求1所述的方法,其特征在于,所述对不同业务类别的业务进行组件化处理包括: 获取业务执行过程中涉及的业务步骤; 检测所述业务步骤之间的关联程度,将具有关联程度的业务步骤构建为一个业务实体,所述业务实体对应至少一个业务步骤; 在所述业务实体对应的业务步骤所存在的执行结果中,提取业务实体对应的业务实体状态; 在所述业务实体中,根据改变业务实体状态的业务步骤生成业务组件。4.根据权利要求3所述的方法,其特征在于,所述检测所述业务步骤之间的关联程度包括: 获取业务步骤在执行时处理或依赖的对象; 将所述处理或依赖的对象相同的业务步骤确定为具有关联程度的业务步骤。5.根据权利要求1所述的方法,其特征在于,所述在业务决策库中查找与所述业务的业务类别对应的业务规则条件包括: 根据所述业务的业务类别,通过流程引擎调取业务决策库中对应所述业务类别的业务规则条件。6.根据权利要求1所述的方法,其特征在于,所述根据查找的所述业务规则条件对所述业务进行业务决策匹配包括: 根据查找的所述业务规则条件,通过流程引擎中的条件计算组件对所述业务进行业务决策匹配。7.根据权利要求3所述的方法,其特征在于,所述根据匹配结果,从业务组件库中调取并执行待执行业务组件,实现所述业务的业务流程包括: 当匹配结果为业务满足所述业务规则条件时,通过流程引擎中的动作执行组件,从业务组件库中调取并执行与所述业务规则条件对应的业务组件,实现所述业务的业务流程。8.根据权利要求7所述的方法,其特征在于,在所述根据匹配结果,从业务组件库中调取并执行待执行业务组件之前,所述方法还包括: 基于业务流程定义中的元素及其属性,获取流程配置信息; 在获取的所述流程配置信息中,根据业务ID获取对应的业务实体状态以及所述业务实体状态下的动作信息; 所述从业务组件库中调取并执行与所述业务规则条件对应的业务组件包括: 调取业务组件库中与所述业务规则条件对应的业务组件; 通过调取的所述业务组件执行获取的所述动作信息。9.根据权利要求8所述的方法,其特征在于,所述方法还包括: 当所述动作信息执行成功并且业务实体状态改变时,通过流程引擎继续执行所述业务的业务流程; 当所述动作信息执行不成功和/或业务实体状态未改变时,通过流程引擎停止执行所述业务的业务流程。10.根据权利要求8或9所述的方法,其特征在于,所述基于业务流程定义中的元素包括:业务流程元素、业务实体状态元素、动作元素;所述业务流程元素下配置有所述业务实体状态元素,所述业务实体状态元素下配置有动作元素。11.一种业务流程执行装置,其特征在于,所述装置包括: 查找单元,用于当业务创建时,在业务决策库中查找与所述业务的业务类别对应的业务规则条件,所述业务决策库由不同业务类别对应的业务规则条件构成; 匹配单元,用于根据查找的所述业务规则条件对所述业务进行业务决策匹配; 执行单元,用于根据匹配结果,从业务组件库中调取并执行待执行业务组件,实现所述业务的业务流程,所述业务组件库由对不同业务类别的业务进行组件化处理得到的业务组件构成。12.根据权利要求11所述的装置,其特征在于,所述查找单元查找的业务决策库由与不同业务类别的业务相关的操作规范和/或数据项的加工逻辑构成。13.根据权利要求11所述的装置,其特征在于,所述装置还包括: 第一获取单元,用于获取业务执行过程中涉及的业务步骤; 处理单元,用于检测所述业务步骤之间的关联程度,将具有关联程度的业务步骤构建为一个业务实体,所述业务实体对应至少一个业务步骤; 提取单元,用于在所述业务实体对应的业务步骤所存在的执行结果中,提取业务实体对应的业务实体状态; 生成单元,用于在所述业务实体中,根据改变业务实体状态的业务步骤生成业务组件。14.根据权利要求13所述的装置,其特征在于,所述处理单元包括: 获取模块,用于获取业务步骤在执行时处理或依赖的对象; 确定模块,用于将所述处理或依赖的对象相同的业务步骤确定为具有关联程度的业务步骤。15.根据权利要求11所述的装置,其特征在于,所述查找单元用于根据所述业务的业务类别,通过流程弓I擎调取业务决策库中对应所述业务类别的业务规则条件。16.根据权利要求11所述的装置,其特征在于,所述匹配单元用于根据查找的所述业务规则条件,通过流程引擎中的条件计算组件对所述业务进行业务决策匹配。17.根据权利要求13所述的装置,其特征在于,所述执行单元用于当匹配结果为业务满足所述业务规则条件时,通过流程引擎中的动作执行组件,从业务组件库中调取并执行与所述业务规则条件对应的业务组件,实现所述业务的业务流程。18.根据权利要求17所述的装置,其特征在于,所述装置还包括: 第二获取单元,用于在所述执行单元根据匹配结果,从业务组件库中调取并执行待执行业务组件之前,基于业务流程定义中的元素及其属性,获取流程配置信息; 所述第二获取单元还用于在获取的所述流程配置信息中,根据业务I D获取对应的业务实体状态以及所述业务实体状态下的动作信息; 所述执行单元用于调取业务组件库中与所述业务规则条件对应的业务组件,还用于通过调取的所述业务组件执行获取的所述动作信息。19.根据权利要求18所述的装置,其特征在于,所述执行单元用于当所述动作信息执行成功并且业务实体状态改变时,通过流程引擎继续执行所述业务的业务流程;还用于当所述动作信息执行不成功和/或业务实体状态未改变时,通过流程引擎停止执行所述业务的业务流程。20.根据权利要求18或19所述的装置,其特征在于,所述第二获取单元基于的业务流程定义中的元素包括:业务流程元素、业务实体状态元素、动作元素;所述业务流程元素下配置有所述业务实体状态元素,所述业务实体状态元素下配置有动作元素。
【文档编号】G06Q10/06GK105844422SQ201610202523
【公开日】2016年8月10日
【申请日】2016年4月1日
【发明人】苗孔仿, 谢黎文, 杨军, 刘义
【申请人】阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1