业务流程执行方法、业务流程引擎及其部署方法

文档序号:6574783阅读:258来源:国知局
专利名称:业务流程执行方法、业务流程引擎及其部署方法
技术领域
本发明涉及数据处理技术,特别涉及解决业务流程之间的兼容性问题 的技术。
背景技术
在当前的服务环境中,通过业务流程执行语言(Business Process Execution Language, BPEL )引擎,可以获得许多服务。目前,BPEL引 擎的产品有很多,例如包括IBM (国际商业机器)公司的WebSphereTM 业务流程服务器、Active Endpoints公司的ActiveBPEL 引擎、IBM公 司的BPWS4J产品、Oracle公司的BPEL流程管理器、Bexee、 Cape Clear 公司的OrchestratorTM、以及Parasoft公司的BPEL Maestro 等等。通 过这些BPEL引擎,可以获得各种各样服务。
但是,在实际的应用环境中,通常无法找到完全匹配的服务。通常的 情况是用户可以找到一些所需的服务,但是这些服务包括一些不兼容的功 能。
不管是在月良务组合创建阶段(service composition build-time)还是在 服务组合运行阶段(service composition run画time),服务不兼容都是一个 极具挑战的问题。下面给出两个服务不兼容的例子。
(1) 在服务组合创建阶段,由于存在不兼容的功能, 一些服务不能直 接与其它服务组合。然而,修2tl艮务的成本又很高。
(2) 在动态服务环境中,各个服务供应商通常会修改或升级他们的服 务,从而会影响服务的用户。此外,在服务运行阶段,服务可能出现一些 错误或异常问题,因此如何避免服务用户的损失就成为一个亟待解决的问题。然而,由于修改、升级或异常而停止服务对于服务用户的损失巨大。
目前,除了由软件开发人员对应用程序进行修改以外,还没有在服务 组合创建阶段不对服务进行修改而解决服务不兼容问题的方法。在服务组 合运行阶段,大多数解决服务《务改、升级或异常的方法是停止沖突服务。 然而,修^J艮务或停止服务成本太高并影响太多服务用户。

发明内容
为了解决上述现有技术中存在的问题,本发明提供了业务流程的执行 方法,业务流程引擎,部署业务流程引擎的方法,以及计算机程序产品。
根据本发明的一个方面,提供了一种业务流程的执行方法,其中,该
业务流程利用业务流程描述语言预先定义,所迷方法包括执行上述业务 流程并监视在上述业务流程的执行过程中(during the execution of the service workflow )产生的事件;以及根据预先设置的跳转规则,从上述业 务流程的一个步^i^转到另一个步骤,从而改变上述业务流程的预先定义 的处理过程(process)。
根据本发明的另一个方面,提供了一种业务流程引擎,用于执行利用 业务流程描迷语言预先定义的业务流程,包括事件监视单元,用于监视 在上述业务流程的执行过程中产生的事件;以&兆转单元,用于根据预先 设置的跳转规则,将上述业务流程从上述业务流程的一个步骤跳转到另一 个步骤,从而改变上述业务流程的预先定义的处理过程。
根据本发明的另一个方面,提供了一种部署业务流程引擎的方法,该 业务流程引擎用于执行利用业务流程描述语言预先定义的业务流程,并包 括事件监视单元,用于监视在上述业务流程的执行过程中产生的事件; 以及跳转单元,用于根据预先设置的跳转规则,将上述业务流程从上述业 务流程的一个步骤跳转到另一个步骤,从而改变上述业务流程的预先定义 的处理过程。
根据本发明的另一个方面,提供了一种计算机程序产品,存储在计算 机可用介质上,包括计算机可读程序代码,用于4吏计算装置执行上述业务流程的执行方法,其中,该业务流程是利用业务流程描述语言预先定义
的,所述方法包括执行上述业务流程并监视在上述业务流程的执行过程 中产生的事件;以及根据预先设置的跳转规则,从上述业务流程的一个步 骤跳转到另一个步骤,从而改变上述业务流程的预先定义的处理过程。


相信通过以下结合附图对本发明具体实施方式
的说明,能够使人们更 好地了解本发明上述的特点、优点和目的。
图1A是根据本发明的一个实施例的业务流程的执行方法的流程图1B是根据本发明的实施例的业务流程的执行方法的详细流程图2是根据本发明的实施例的跳转过程的一个实例;
图3是根据本发明的实施例的跳转过程的另一个实例;
图4是根据本发明的实施例的跳转过程的另一个实例;
图5是根据本发明的另一个实施例的业务流程引擎的方框图。
具体实施例方式
下面就结合附图对本发明的各个优选实施例进行详细的说明。 业务流程的执行方法
图1A是根据本发明的一个实施例的业务流程的执行方法的流程图。 如图1A所示,首先,在步骤101,执行业务流程并监视在业务流程的执行 过程中产生的事件。其中,在该步骤执行的业务流程是利用例如业务流程 描述语言(Business Process Specification Language, BPSL),又或称为 业务流程建才莫i吾言(Business Process Modeling Language, BPML )预先 定义的,然而,本实施例的业务流程也可以利用本领域的技术人员公知的 其它语言或未来开发的语言定义,本发明对此没有任何限制。
在本实施例中,在业务流程的执行过程中产生的事件是指该业务的执 行过程中发生的可以由业务流程引擎监视到的各种事件,例如订票服务发 送中"接收用户信息"的事件,下面将对其进行详细描述。例如,在采用IBM公司的WebSphere 业务流程服务器的情况下, 可以利用通用事件基础构架(Common Event Infrastructure, CEI)来监 视在业务流程的执行过程中产生的事件。当然,本发明并不限于此,例如 可以采用Active Endpoints公司的ActiveBPELTM引擎、IBM公司的 BPWS4J产品、Oracle公司的BPEL流程管理器、Bexee、 Cape Clear公 司的OrchestratorTM、以及Parasoft公司的BPEL Maestro 等等,已经 它们相应的监视工具,只要是可以执行业务流程并监视在业务流程的执行 过程中产生的事件即可。
最后,在步骤105,根据预先设置的跳转规则,从上述业务流程的一 个步骤跳转到另一个步骤。其中,预先设置的跳转规则利用上述业务流程 描述语言根据事件-^Hf-动作(Event-Condition-Action, ECA)规则设置, 然而,应该理解,可以利用本领域的技术人员公知的任何语言和规则设置 跳转规则,只要能够清楚地描述跳转条件和跳转目的即可,本发明对此没 有任何限制。
通常,业务流程服务器或引擎都具有服务调用功能,例如,在采用IBM 公司的WebSphereTM业务流程服务器的情况下,可以利用适配动作管理器 (Adaptive Action Manager)来实现上述跳转。本发明并不限于此,例如 可以采用Active Endpoints公司的ActiveBPELTM引擎、IBM公司的 BPWS4J产品、Oracle公司的BPEL流程管理器、Bexee、 Cape Clear公 司的OrchestratorTM、以及Parasoft公司的BPEL Maestro 等等各自已 有的服务调用功能;当然,也可以采用另外的程序来实现,总之,只要在 需要的时候能够实现上iii兆转功能即可,本发明对此没有任何限制。 本实施例的跳转规则主要包括以下三个方面
事件(Event)用于定义该跳转规则的触发事件,也就是说,如果在上 述步骤101中监视到在业务流程的执行过程中产生的事件与该触发事件一 致时,则进一步判断是否满足该跳转规则的跳转条件;
条件(Condition)用于定义该跳转规则的跳转条件,如果满足该M, 则执行该跳转规则的动作,如果不满足条件,则执行该业务流程的当前步廒.
动作(Action)用于定义该跳转规则的跳转目的,即应该跳转到的流 程中的活动,也就是说,如果满足该跳转规则的跳转条件,则将上述业务 流程从当前执行的步骤跳转到该跳转规则的跳转目的的步骤。
并表示为如下形式
On—EVENT EventID IF ConditionExp DO ActionExp
其中EventID表示触发事件,ConditionExp表示跳转条件,ActionExp 表示跳转目的。应该理解,这里给出跳转规则的只是一种示例性表示形式, 可以利用本领域的技术人员公知的任何方式表示跳转规则,只要能够利用 其实现跳转功能即可。
具体地,图IB示出了根据上述实施例的一个优选方式执行业务流程 方法的详细流程图。在步骤101通过业务流程引擎(例如IBM公司的 Websphere Process Server)执行业务流程并通过事件监视器(例如IBM 公司的Wehsphere Business Monitor)监视在业务流程的执行过程中产生 的事件之后,在步骤1051,判断监视到的事件是否是上述跳转规则中定义 的触发事件。如果在步骤1051监视到上述跳转规则中定义的触发事件,则 进行到步骤1052。否则,返回到步骤101。
接着,在步骤1052,判断是否满足该跳转规则中定义的跳转条件。如 果在步骤1052判断满足该跳转规则的跳转条件,则进行到步骤1053。否 则,返回到步骤101。
接着,在步骤1053,确定上述业务流程的当前执行的步骤。
接着,在步骤1054,根据上述业务流程的当前执行的步骤和该跳转规 则的偏移量,计算跳转目的,其中设置偏移量的具体细节将在下面参考实 例2和3进行详细描述。此外,应该理解,设置偏移量只是确定跳转目的 的一种可选方式,本发明也可以不通过偏移量,而直接将跳转目的i殳置为 上述业务流程的某个步骤,具体细节将在下面参考实例l-3进行描述。
最后,在步骤1055,从上述业务流程的当前执行的步骤跳转到该跳转 规则的跳转目的,从而实现本实施例的跳转功能。下面通过实例1-3详细描述在步骤105中进行的跳转过程。 实例l
图2是根据本发明的实施例的业务i;j^呈的执行方法中跳转过程的一个
实例。在图2中,标号201表示旅行社的订票业务流程,标号205表示航 空公司的业务流程。在航空公司的业务流程205中,为了给VIP用户和非 VIP用户提供不同的服务,在步骤2051 (接收用户信息)和步骤2053 (接 M行路线)之间引入一个判断步骤2052,即在步骤2052中判断用户是 否为VIP用户,如果不是,则执行步骤2053,如果是VIP用户,则在另 一分支为VIP用户提供一站式服务。顺便提及,在引入该判断步骤之后, 在订票业务流程201和航空公司的业务流程205之间出现了不兼容。 为了解决二者之间的不兼容,在实例1中设置了如下跳转规则 On一EVENT Accept_customer information IF MsgFrom (Booking service) DO Jump (Accept一customerinformation, Accept itinerary) 其中
触发事件(EventID) = Accq)t_customer_information (接收用户信息) 跳转条件(ConditionExp) = MsgFrom (Booking service)(消息是否 来自于订票服务)
沒匕转目的(ActionExp ) = Jump (Accept—customer information, Accept」tinerary)(从接收用户信息跳转到接^行路线)
也就是说,本实施例的业务流程的执行方法在执行业务流程的过程中 监视在业务流程的执行过程中产生的事件,如果监视到上述触发事件,即 在业务流程205执行到步骤2051时,监视到"接收用户信息"事件的发 生,则判断跳转条件"消息是否来自于订票服务"。如果消息不是来自于 订票业务流程201,则业务流程205进行到步骤2052。如果消息来自于订 票业务流程201,则执行该跳转规则的跳转步骤,即从业务流程加5的当 前步骤2052跳转到步骤2053 (接^行路线)。从而,通过本实施例的 业务流程的执行方法避免了订票业务流程201和航空公司的业务流程205 之间的不兼容。实例2
图3是根据本发明的实施例的业务流程的执行方法中跳转过程的另一 个实例。在图3中,标号301表示没有设置跳转规则之前的订票业务流程, 标号305表示设置跳转规则之后的订票业务流程。在订票业务流程301中, 只有携带信用卡的用户可以使用该业务流程,为了让没有携带信用卡的用 户使用订票业务流程301,在实例2中设置了如下跳转规则
On EVENT Accept_customer_information DO Jump (Acceptcustomer information, Ticket—service)
其中
触发事件(EventID) = Accept_customer_information (接收用户信息) 跳转条件(ConditionExp )=缺省(即只要监视到触发事件即执行跳 转步骤)
浪^转目的 (ActionExp ) = Jump (Acceptcustomer—information, Ticket_service)(从接收用户信息跳转到机票服务)
也就是说,本实施例的业务流程的执行方法在执行业务流程301的过 程中监视在业务流程的执行过程中产生的事件,如果监视到上述触发事件, 即在业务流程301执行到步骤3011时,监视到"接收用户信息"事件的 发生,则执行该跳转规则的跳转步骤,即从业务流程301的当前步骤3011 跳转到步骤3013 (机票服务)。从而,通过本实施例的业务流程的执行方 法可以在没有携带信用卡时通过用户输入来使用业务流程301 。
实例3
图4是根据本发明的实施例的业务流程的执行方法中跳转过程的另一 个实例。在图4中,标号401表示没有设置跳转规则之前的订票业务流程, 标号405表示设置跳转规则之后的订票业务流程。在订票业务流程401中, 在机票服务之后检查付款情况,为了在机票服务之前检查付款,在实例3 中设置了如下两个跳转规则:
跳转规则1
On EVENTAccept一customerinformation DO Jump(Accept_customer_information, Check_payment) 其中
触发事件(EventID) = Accept—customer—information (接收用户信息) 跳转条件(ConditionExp)=缺省(即只要监视到触发事件即执行跳 转步骤)
跳转目的 (ActionExp ) = Jump (Accept customer information, Check_payment)(从接收用户信息跳转到检查付款) 跳转规则2
On EVENTCheck_paymentDOJump (Check_payment, Ticket service) 其中
触发事件(EventID) = Check_payment (检查付款) 跳转条件(ConditionExp)=缺省(即只要监视到触发事件即执行跳 转步骤)
浪匕转目的(ActionExp) = Jump (Check_payment, Ticket service)(从 检查付款跳转到机票服务)
也就是说,本实施例的业务流程的执行方法在执行业务流程401的过 程中监视在业务流程的执行过程中产生的事件,如果监视到上述跳转规则 1的触发事件,即在业务流程401执行到步骤4011时,监视到"接收用 户信息"事件的发生,则执行该跳转规则的跳转步骤,即从业务流程401 的当前步骤4011跳转到步骤4013 (检查付款)。此外,如果监视到上述 跳转规则2的触发事件,即在业务流程401执行到步骤4013时,监视到"检 查付款"事件的发生,则执行该跳转规则的跳转步骤,即从业务流程401 的当前步骤4013跳转到步骤4012 (机票服务)。从而,通过本实施例的 业务流程的执行方法可以改变业务流程401中步骤4012和步骤4013的顺 序。
在本实施例中,在从上述业务流程的当前执行的步骤跳转到该跳转规 则的跳转目的的步骤之前,M上述业务流程的当前的执行环境,例如在上述实例1中,在从步骤2051跳转到步骤2053之前,保存包括在步骤2051 处接收到的用户信息在内的与服务执行有关的全部环境变量,以在后续步 骤中使用。
此外,在本实施例中,可以在服务组合创建阶段设置一个或多个上迷 跳转规则以避免两个或两个以上的服务之间的不兼容问题,也可以在服务 运行阶段设置一个或多个上述跳转规则以解决服务可能出现的错误或异常 问题。此外,可以针对一个服务或一个服务组合设置一个或一组跳转规则。 然而,应该理解,只要需要,可以为任何服务、在服务的任何阶段设置任 何跳转规则,可以在不修改可执行的服务本身的情况下,解决服务不兼容 和沖突而不修改或停止服务,本发明对此没有任何限制。
可选地,在本实施例中,上^J^转规则的跳转目的可以利用偏移量设 置,也就是说,根据上述业务流程的当前执行的步骤和所述跳转规则的跳 转目的的偏移量,计算跳转目的的步骤。例如,在上述实例2中,将跳转 规则的偏移量设置为向下2个步骤,在执行跳转步骤时,从业务流程301 的当前步骤3011向下跳转2个步骤,即跳转到步骤3013。又例如,在上 述实例3中,将跳转规则2的偏移量可以设置为向上1个步骤,在执行跳 转规则2的跳转步骤时,从业务流程401的当前步骤幼13向上跳转1个步 骤,即跳转到步骤4011。
通过使用本实施例的业务流程的执行方法,在部分不兼容的服务进行 组合时通过设置跳转规则,不需要对可执行的服务本身进行修改,从而极 大地降低了服务开发和再利用的成本。
此外,通过使用本实施例的业务流程的执行方法,服务供应商可以在 相对稳定的服务中设置跳转规则,从而不需要对可执行的服务本身进行修 改即可为不同的用户提供不同的服务。
此外,通过使用本实施例的业务流程的执行方法,可以通过修改跳转 规则方便地对服务进行升级和修改,而不需要升级和修改服务本身。
此外,通过使用本实施例的业务流程的执行方法,可以通过设置跳转 规则解决服M误和异常情况,从而极大地降低了停止服务带来的损失。业务流程引擎
在同一发明构思下,图5是根据本发明的另一个实施例的业务流程引 擎的方框图。下面就结合该图,对本实施例进行描述。对于那些与前面实 施例相同的部分,适当省略其说明。
如图5所示,本实施例的业务流程引擎500用于执行利用业务流程描 述语言预先定义的业务流程,包括事件监视单元501,用于监视在上述 业务流程的执行过程中产生的事件;条件判断单元505,当上述事件监视 单元501监视到跳转规则的触发事件发生时,判断是否满足该跳转规则的 跳转条件;以;SJ^转单元510,用于根据预先设置的跳转规则,将上述业 务流程从上述业务流程的一个步骤跳转到另 一个步骤,从而改变上述业务 流程的处理过程。
可选地,本实施例的业务流程引擎500还可以包括现有的业务流程引 擎,例如BPEL引擎525。也就是说,本实施例的业务流程引擎500可以 基于BPEL引擎525进行扩展或改进而获得。BPEL引擎525,例如,包 括IBM公司的WebSphere 业务流程服务器、Active Endpoints公司的 ActiveBPELTM引擎、IBM公司的BPWS4J产品、Oracle公司的BPEL流 程管理器、Bexee、 Cape Clear 乂>司的OrchestratorTM、以及Parasoft公 司的BPEL Maestro 等等。除了 BPEL引擎525,也可以基于本领域的 技术人员//^的其它业务流程引擎进行扩展或改进,本发明对此没有任何 限制。
可选地,本实施例的业务流程引擎500还可以包括现有的其它7>知部 件,例如通用事件基础构架(Common Event Infrastructure, CEI)515, 它用于捕获在BPEL引擎525执行业务流程的过程中产生的事件。除了 CEI 515,也可以使用本领域的技术人员>5^的其它产品实现此功能,例如BEA Weblogic公司的Tuxedo 事件代理/监视器(Broker/Monitor),以及 Oracle公司的业务活动监视器等等,本发明对此没有任何限制。
可选地,本实施例的业务流程引擎500还可以包括现有的其它^〉知部 件,例如通用执行逻辑控制业务单元520,它用于在跳转单元510和BPEL引擎525之间进行交互,从而实现跳转功能。
业务流程引擎500的其它公知部件的具体细节参见Dongsoo Han和 Jaeyong Shim的文献"A Framework Supporting Dynamic Workflow Interoperation and Enterprise Application Integration" , Proceedings of the 35th Hawaii International Conference on System Sciences, 2002,在此通过 参考引入其整个内容(下文中称为文献l)。
在本实施例中,业务流程引擎500执行的业务流程是利用例如业务流 程描述语言(Business Process Specification Language, BPSL), 又或称 为业务流程建模语言(Business Process Modeling Language, BPML)预 先定义的,然而,本实施例的业务流程也可以利用本领域的技术人员公知 的其它语言或未来开发的语言定义,本发明对此没有任何限制。
在本实施例中,事件监视单元501监视的在业务流程的执行过程中产 生的事件是指该业务的执行过程中发生的可以由业务流程引擎监视到的各 种事件,例如订票服务发送中"接收用户信息"的事件,下面将对其进行 详细描述。
在本实施例中,预先设置的跳转规则利用上述业务流程描述语言根据 事件-^H中-动作(Event-Condition-Action, ECA)规则设置,然而,应该 理解,可以利用本领域的技术人员公知的任何语言和规则设置跳转规则, 只要在需要的时候能够实现跳转功能即可,本发明对此没有任何限制。
本实施例的跳转规则主要包括以下三个方面
事件(Event)用于定义该跳转规则的触发事件,也就是说,如果在上 述步骤101中监视到在业务流程的执行过程中产生的事件与该触发事件一 致时,并进一步判断是否满足该跳转规则的跳转条件;
条件(Condition)用于定义该跳转规则的跳转条件,如果满足该M, 则执行该跳转规则的动作,如果不满足条件,则执行该业务流程的当前步
动作(Action)用于定义该跳转规则的跳转目的,即应该跳转到的流 程中的活动,也就是说,如果满足该跳转规则的跳转条件,则将上述业务流程从当前执行的步则〖转到该跳转规则的跳转目的的步骤。
并表示为如下形式
On—EVENT EventID IF ConditionExp DO ActionExp
其中EventID表示触发事件,ConditionExp表示跳转*, ActionExp 表示跳转目的。应该理解,这里给出跳转规则的只是一种示例性表示形式, 可以利用本领域的技术人员公知的任何方式表示跳转规则,只要能够利用 其实现跳转功能即可。
下面通过实例1-3详细描^J^转单元510进行的跳转过程。
实例1
图2是根据本发明的实施例的业务流程引擎500的跳转过程的一个实 例。在图2中,标号201表示旅行社的订票业务流程,标号205表示航空 公司的业务流程。在航空公司的业务流程205中,为了给VIP用户和非 VIP用户提供不同的服务,在步骤2051 (接收用户信息)和步骤2053 (接 ^行路线)之间引入一个判断步骤2052,即在步骤2052中判断用户是 否为VIP用户,如果不是,则执行步骤2053,如果是VIP用户,则在另 一分支为VIP用户提供一站式服务。顺便提及,在引入该判断步骤之后, 在订票业务流程201和航空公司的业务流程205之间出现了不兼容。
为了解决二者之间的不兼容,在实例1中设置了如下跳转规则
OnEVENT Accept—customer information IF MsgFrom (Booking service) DO Jump (Accept—customer—information, Accept—itinerary) 其中
触发事件(EventID) = Acc^pt_customer_information (接收用户信息) 逸b转条件(ConditionExp ) = MsgFrom (Booking service)(消息是否 来自于订票服务)
浪L转目的 (ActionExp ) = Jump (Accept—customer information, Accept—itinerary)(从接收用户信息跳转到接M行路线)
也就是说,本实施例的业务流程引擎500在执行业务流程的过程中利 用事件监视单元501监视在业务流程的执行过程中产生的事件,并利用条件判断单元505判断当上述事件监视单元501监视到上述触发事件,即在 业务流程205执行到步骤2051时,监视到"接收用户信息"事件的发生 时,是否满足跳转条件"消息是否来自于订票服务"。如果消息不是来自 于订票业务流程201 ,则业务流程205进行到步骤2052。如果消息来自于 订票业务流程201,则利用跳转单元510执行该跳转规则的跳转步骤,即 从业务流程205的当前步骤2052跳转到步骤2053 (接B行路线)。从 而,通过本实施例的业务流程引擎500避免了订票业务流程201和航空公 司的业务流程205之间的不兼容。 实例2
图3是根据本发明的实施例的业务流程引擎500的跳转过程的另一个 实例。在图3中,标号301表示没有设置跳转规则之前的订票业务流程, 标号305表示设置跳转规则之后的订票业务流程。在订票业务流程301中, 只有携带信用卡的用户可以使用该业务流程,为了让没有携带信用卡的用 户使用订票业务流程301,在实例2中设置了如下跳转规则
On EVENT Acceptcustomerinformation DO Jump (Accept—customerinformation, Ticket—service)
其中
触发事件(EventID) = Accq)t_customer_information (接收用户信息) 跳转条件(ConditionExp)=缺省(即只要监视到触发事件即执行跳 转步骤)
为匕转目的 (ActionExp ) = Jump (Accept_customer_information, Ticket_service)(从接收用户信息跳转到机票服务)
也就是说,本实施例的业务流程引擎500在执行业务流程301的过程 中利用事件监视单元501监视在业务流程的执行过程中产生的事件,并利 用条件判断单元505判断当上述事件监视单元501监视到上述触发事件, 即在业务流程301执行到步骤3011时,监视到"接收用户信息"事件的 发生时,利用跳转单元510执行该跳转规则的跳转步骤,即从业务流程301 的当前步骤3011跳转到步骤3013 (机票服务)。从而,通过本实施例的业务流程引擎500可以在没有携带信用卡时通过用户输入来使用业务流程 301。
实例3
图4是根据本发明的实施例的业务流程引擎500的跳转过程的另一个 实例。在图4中,标号401表示没有设置跳转规则之前的订票业务流程, 标号405表示设置跳转规则之后的订票业务流程。在订票业务流程401中, 在机票服务之后检查付款情况,为了在机票服务之前检查付款,在实例3 中设置了如下两个跳转规则
跳转规则1
On EVENT Acceptcustomerinformation DO Jump (Accept customer information, Check_payment) 其中
触发事件(EventID) = Accept_customer_information (接收用户信息) 跳转条件(ConditionExp)=缺省(即只要监视到触发事件即执行跳 转步骤)
劲匕转目的 (ActionExp ) = Jump (Accept customer information, Check_payment)(从接收用户信息跳转到检查付款) 跳转规则2
On_EVENTCheck_paymentDOJump (Check_payment, Ticket service) 其中
触发事件(EventID) = Check_payment (检查付款) 跳转条件(ConditionExp )=缺省(即只要监视到触发事件即执行跳 转步骤)
跳转目的(ActionExp) = Jump (Check_payment, Ticketservice)(从 检查付款跳转到机票服务)
也就是说,本实施例的业务流程引擎500在执行业务流程401的过程 中利用事件监视单元501监视在业务流程的执行过程中产生的事件,并利用条件判断单元505判断当上述事件监视单元501监视到上iii^转规则1 的触发事件,即在业务流程401执行到步骤4011时,监视到"接收用户 信息"事件的发生时,利用跳转单元510执行该跳转规则的跳转步骤,即 从业务流程401的当前步骤4011跳转到步骤4013 (检查付款)。此外, 利用条件判断单元505判断当上述事件监视单元501监视到上i^i^转规则 2的触发事件,即在业务流程401执行到步骤4013时,监视到"检查付 款"事件的发生时,利用跳转单元510执行该跳转规则的跳转步骤,即从 业务流程401的当前步骤4013跳转到步骤4012 (机票服务)。从而,通 过本实施例的业务流程引擎SOO可以改变业务流程401中步骤4012和步骤 4013的顺序。
在本实施例中,业务流程引擎500还包括环境保存单元,用于在上述 跳转单元510进行从上述业务流程的当前执行的步骤跳转到该跳转规则的 跳转目的流程中的步骤之前,保存上述业务流程的当前的执行环境,例如 在上述实例l中,在从步骤2051跳转到步骤2053之前,保存包括在步骤 2051处接收到的用户信息在内的与服务执行有关的全部环境变量,以在后 续步骤中使用。
此外,在本实施例中,业务流程引擎500可以在服务组合创建阶段设 置一个或多个上鈔〖转规则以避免两个或两个以上的服务之间的不兼容问 题,也可以在服务运行阶段设置一个或多个上述跳转规则以解决服务可能 出现的g或异常问题。此外,业务流程引擎500可以针对一个服务或一 个服务组合设置一个或一组跳转规则。然而,应该理解,只要需要,业务 流程引擎500可以为任何服务、在服务的任何阶段设置任何跳转规则,可 以在不修改可执行的服务本身的情况下,解决服务不兼容和沖突而不修改 或停止服务,本发明对此没有任何限制。
可选地,在本实施例中,上^t转规则的跳转目的可以利用偏移量设 置,也就是说,根据上述业务流程的当前执行的步骤和所^i^转规则的跳 转目的的偏移量,计算上述跳转单元510的跳转目的。例如,在上述实例 2中,将跳转规则的偏移量设置为向下2个步骤,在执行跳转步骤时,从业务流程!301的当前步骤3011向下跳转2个步骤,即跳转到步骤3013。 又例如,在上述实例3中,将跳转规则2的偏移量可以_没置为向上1个步 骤,在执行跳转规则2的跳转步骤时,从业务流程401的当前步骤4013 向上跳转1个步骤,即跳转到步骤4011。
通过使用本实施例的业务流程引擎500,在部分不兼容的服务进行组 合时通过设置跳转规则,不需要对可执行的服务本身进行修改,从而极大 地降低了服务开发和再利用的成本。
此外,通过使用本实施例的业务流程引擎500,服务供应商可以在相 对稳定的服务中设置跳转规则,从而不需要对可执行的服务本身进行修改 即可为不同的用户提供不同的服务。
此外,通过使用本实施例的业务流程引擎500,可以通过修改跳转规 则方便地对服务进行升级和修改,而不需要升级和修^J艮务本身。
此外,通过使用本实施例的业务流程引擎500,可以通过设置跳转规 则解决服^4t误和异常情况,从而极大地降低了停止服务带来的损失。
部署业务流程引擎的方法
在同 一发明构思下,根据本发明的另 一个实施例提供了 一种部署业务 流程引擎的方法。下面就对本实施例进行描述,对于那些与前面实施例相 同的部分,适当省略其说明。
在本实施例的部署业务流程引擎的方法中,业务流程引擎用于执行利 用业务流程描述语言预先定义的业务流程,并包括事件监视单元,用于 监视在上述业务流程的执行过程中产生的事件;以及跳转单元,用于根据 预先设置的跳转规则,将上述业务流程从上述业务流程的一个步骤跳转到 另一个步骤,从而改变上述业务流程的处理过程。此外,本实施例的方法 部署的业务流程引擎还可以是上述参考图5的实施例中描述的业务流程引 擎500。
本实施例的部署业务流程引擎的方法的具体细节参见上述Dongsoo Han和Jaeyong Shim的文献1,在此不再赘述。
通过使用本实施例的部署业务流程引擎的方法,在部分不兼容的服务进行组合时通过设置跳转规则,不需要对可执行的服务本身进行修改,从 而极大地降低了服务开发和再利用的成本。
此外,通过使用本实施例的部署业务流程引擎的方法,服M应商可 以在相对稳定的服务中设置跳转规则,从而不需要对可执行的服务本身进 行修改即可为不同的用户提供不同的服务。
此外,通过使用本实施例的部署业务流程引擎的方法,可以通过^"改 跳转规则方便地对服务进行升级和修改,而不需要升级和修改服务本身。
此外,通过使用本实施例的部署业务流程引擎的方法,可以通过设置 跳转规则解决服M误和异常情况,从而极大地降低了停止服务带来的损 失。
计算机程序产 品
在同 一发明构思下,根据本发明的另 一个实施例提供了 一种计算M 序产品。下面就对本实施例进行描述,对于那些与前面实施例相同的部分, 适当省略其说明。
本实施例的计算机程序产品,存储在计算机可用介质上,包括计算 机可读程序代码,用于使计算装置执行业务流程的执行方法,其中,该业 务流程是利用业务流程描述语言预先定义的,所述方法包括执行上述业 务流程并监视在上述业务流程的执行过程中产生的事件;以及根据预先设 置的跳转规则,从上述业务流程的一个步骤跳转到另一个步骤,从而改变 上述业务流程的处理过程。此外,本实施例的计算M序产品的计算M 序代码也可以用于使计算装置执行上述参考图1A的实施例中描述的业务 流程的执行方法。
通过使用本实施例的计算机程序产品,在部分不兼容的服务进行组合 时通过设置跳转规则,不需要对可执行的服务本身进行修改,从而极大地 降低了服务开发和再利用的成本。
此外,通过使用本实施例的计算机程序产品,服务供应商可以在相对 稳定的服务中设置跳转规则,从而不需要对可执行的服务本身进行修改即 可为不同的用户提供不同的服务。此外,通过使用本实施例的计算机程序产品,可以通过修改跳转规则
方便地对服务进行升级和修改,而不需要升级和修^J良务本身。
此外,通过使用本实施例的计算机程序产品,可以通过设置跳转规则 解决服M误和异常情况,从而极大地降低了停止服务带来的损失。
以上虽然通过一些示例性的实施例对本发明的业务流程的执行方法, 业务流程引擎,部署业务流程引擎的方法,以及计算机程序产品进行了详 细的描述,但是以上这些实施例并不是穷举的,本领域技术人员可以在本 发明的精神和范围内实现各种变化和修改。因此,本发明并不限于这些实 施例,本发明的范围仅由所附权利要求为准。
权利要求
1. 一种业务流程的执行方法,其中,该业务流程利用业务流程描述语言预先定义,所述方法包括执行上述业务流程并监视在上述业务流程的执行过程中产生的事件;以及根据预先设置的跳转规则,从上述业务流程的一个步骤跳转到另一个步骤,从而改变上述业务流程的预先定义的处理过程。
2. 根据权利要求l所述的业务流程的执行方法,其特征在于,所述 跳转规则至少包括触发事件、跳转射ls跳转目的。
3. 根据权利要求2所述的业务流程的执行方法,其特征在于,所述 从上述业务流程的一个步骤跳转到另一个步骤的步骤,包括判断监视到的上述跳转规则的触发事件是否满足该跳转规则的跳转条 件;以及如果满足该跳转规则的跳转条件,则从上述业务流程的当前执行的步 骤跳转到该跳转规则的跳转目的的步骤。
4. 根据权利要求3所述的业务流程的执行方法,其特征在于,还包括在所述从上述业务流程的当前执行的步骤跳转到该跳转规则的跳转目 的的步骤之前,保存上述业务流程的当前的执行环境。
5. 根据权利要求4所述的业务流程的执行方法,其特征在于,所述 跳转规则的跳转目的是利用偏移量设置的,从上述业务流程的当前执行的 步骤跳转到该跳转规则的跳转目的的步骤包括确定上述业务流程的当前执行的步骤;根据上述业务流程的当前执行的步骤和所&兆转规则的跳转目的的偏 移量,计算跳转目的的步骤。
6. 根据权利要求1-5任意一项所述的业务流程的执行方法,其特 征在于,所述预先设置的跳转规则包括多条跳转规则。
7. 根据权利要求1-6任意一项所述的业务流程的执行方法,其特 征在于,针对一个服务组合设置一组跳转规则。
8. 根据权利要求1-7的任意一项所述的业务流程的执行方法,其 特征在于,所述跳转规则是利用上述业务流程描述语言设置的。
9. 根据权利要求7或8所述的业务流程的执行方法,其特征在于, 所述跳转规则是在服务组合创建过程中设置的。
10. —种业务流程引擎,用于执行利用业务流程描述语言预先定义的 业务流程,包括事件监视单元,用于监视在上述业务流程的执行过程中产生的事件;以及跳转单元,用于根据预先设置的跳转规则,将上述业务流程从上述业 务流程的一个步骤跳转到另一个步骤,从而改变上述业务流程的预先定义 的处理过程。
11. 根据权利要求10所述的业务流程引擎,其特征在于,所述跳转 规则至少包括触发事件、跳转条件、跳转目的。
12. 根据权利要求ll所述的业务流程引擎,其特征在于,还包括 条件判断单元,判断监视到的上鈔夂转规则的触发事件是否满足该跳转规则的跳转条件;其中,如果满足该跳转规则的跳转条件,上述跳转单元将上述业务流 程从上述业务流程的当前执行的步骤跳转到该跳转规则的跳转目的的步
13. 根据权利要求12所述的业务流程引擎,其特征在于,还包括 环境保存单元,用于在所述从上述业务流程的当前执行的步骤跳转到该跳转规则的跳转目的的步骤之前,保存上述业务流程的当前的执行环境。
14. 根据权利要求13所述的业务流程引擎,其特征在于,所鈔fe转 规则的跳转目的是利用偏移量设置的;上^L转单元被设定为确定上述业 务流程的当前执行的步骤,并且根据上述业务流程的当前执行的步骤和所 iii^转规则的跳转目的的偏移量,计算跳转目的的步骤。
15. 根据权利要求10-14任意一项所述的业务流程引擎,其特征在 于,所述预先设置的跳转规则包括多条跳转规则。
16. 根据权利要求10-15任意一项所述的业务流程引擎,其特征在 于,针对一个服务组合设置一组跳转规则。
17. 根据权利要求10-16的任意一项所述的业务流程引擎,其特征 在于,所述跳转规则是利用上述业务流程描述语言i殳置的。
18. 根据权利要求16或17所述的业务流程引擎,其特征在于,所述 跳转规则是在服务组合创建过程中设置的。
19. 一种部署业务流程引擎的方法,该业务$£^引擎用于执行利用业 务流程描述语言预先定义的业务流程,并包括事件监视单元,用于监视在上述业务流程的执行过程中产生的事件;以及跳转单元,用于根据预先设置的跳转规则,将上述业务流程从上述业 务流程的一个步骤跳转到另 一个步骤,从而改变上述业务流程的预先定义 的处理过程。
全文摘要
本发明提供了业务流程的执行方法,业务流程引擎,部署业务流程引擎的方法,以及计算机程序产品。根据本发明的一个方面,提供了一种业务流程的执行方法,其中,该业务流程是利用业务流程描述语言预先定义的,所述方法包括执行上述业务流程并监视在上述业务流程的执行过程中产生的事件;以及根据预先设置的跳转规则,从上述业务流程的一个步骤跳转到另一个步骤,从而改变上述业务流程的预先定义的处理过程。
文档编号G06Q10/00GK101286212SQ200710090499
公开日2008年10月15日 申请日期2007年4月12日 优先权日2007年4月12日
发明者英 刘, 俊 朱, 伟 谭 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1