CN101286212A - 业务流程执行方法、业务流程引擎及其部署方法 - Google Patents

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

Info

Publication number
CN101286212A
CN101286212A CNA200710090499XA CN200710090499A CN101286212A CN 101286212 A CN101286212 A CN 101286212A CN A200710090499X A CNA200710090499X A CN A200710090499XA CN 200710090499 A CN200710090499 A CN 200710090499A CN 101286212 A CN101286212 A CN 101286212A
Authority
CN
China
Prior art keywords
operation flow
redirect
rule
mentioned operation
business process
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
CNA200710090499XA
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to CNA200710090499XA priority Critical patent/CN101286212A/zh
Priority to US12/102,199 priority patent/US20080255903A1/en
Publication of CN101286212A publication Critical patent/CN101286212A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06316Sequencing of tasks or work

Landscapes

  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Tourism & Hospitality (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Development Economics (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供了业务流程的执行方法,业务流程引擎,部署业务流程引擎的方法,以及计算机程序产品。根据本发明的一个方面,提供了一种业务流程的执行方法,其中,该业务流程是利用业务流程描述语言预先定义的,所述方法包括:执行上述业务流程并监视在上述业务流程的执行过程中产生的事件;以及根据预先设置的跳转规则,从上述业务流程的一个步骤跳转到另一个步骤,从而改变上述业务流程的预先定义的处理过程。

Description

业务流程执行方法、业务流程引擎及其部署方法
技术领域
本发明涉及数据处理技术,特别涉及解决业务流程之间的兼容性问题的技术。
背景技术
在当前的服务环境中,通过业务流程执行语言(Business ProcessExecution Language,BPEL)引擎,可以获得许多服务。目前,BPEL引擎的产品有很多,例如包括IBM(国际商业机器)公司的WebSphereTM业务流程服务器、Active Endpoints公司的ActiveBPELTM引擎、IBM公司的BPWS4J产品、Oracle公司的BPEL流程管理器、Bexee、Cape Clear公司的OrchestratorTM、以及Parasoft公司的BPEL MaestroTM等等。通过这些BPEL引擎,可以获得各种各样服务。
但是,在实际的应用环境中,通常无法找到完全匹配的服务。通常的情况是用户可以找到一些所需的服务,但是这些服务包括一些不兼容的功能。
不管是在服务组合创建阶段(service composition build-time)还是在服务组合运行阶段(service composition run-time),服务不兼容都是一个极具挑战的问题。下面给出两个服务不兼容的例子。
(1)在服务组合创建阶段,由于存在不兼容的功能,一些服务不能直接与其它服务组合。然而,修改服务的成本又很高。
(2)在动态服务环境中,各个服务供应商通常会修改或升级他们的服务,从而会影响服务的用户。此外,在服务运行阶段,服务可能出现一些错误或异常问题,因此如何避免服务用户的损失就成为一个亟待解决的问题。然而,由于修改、升级或异常而停止服务对于服务用户的损失巨大。
目前,除了由软件开发人员对应用程序进行修改以外,还没有在服务组合创建阶段不对服务进行修改而解决服务不兼容问题的方法。在服务组合运行阶段,大多数解决服务修改、升级或异常的方法是停止冲突服务。然而,修改服务或停止服务成本太高并影响太多服务用户。
发明内容
为了解决上述现有技术中存在的问题,本发明提供了业务流程的执行方法,业务流程引擎,部署业务流程引擎的方法,以及计算机程序产品。
根据本发明的一个方面,提供了一种业务流程的执行方法,其中,该业务流程利用业务流程描述语言预先定义,所述方法包括:执行上述业务流程并监视在上述业务流程的执行过程中(during the execution of theservice workflow)产生的事件;以及根据预先设置的跳转规则,从上述业务流程的一个步骤跳转到另一个步骤,从而改变上述业务流程的预先定义的处理过程(process)。
根据本发明的另一个方面,提供了一种业务流程引擎,用于执行利用业务流程描述语言预先定义的业务流程,包括:事件监视单元,用于监视在上述业务流程的执行过程中产生的事件;以及跳转单元,用于根据预先设置的跳转规则,将上述业务流程从上述业务流程的一个步骤跳转到另一个步骤,从而改变上述业务流程的预先定义的处理过程。
根据本发明的另一个方面,提供了一种部署业务流程引擎的方法,该业务流程引擎用于执行利用业务流程描述语言预先定义的业务流程,并包括:事件监视单元,用于监视在上述业务流程的执行过程中产生的事件;以及跳转单元,用于根据预先设置的跳转规则,将上述业务流程从上述业务流程的一个步骤跳转到另一个步骤,从而改变上述业务流程的预先定义的处理过程。
根据本发明的另一个方面,提供了一种计算机程序产品,存储在计算机可用介质上,包括:计算机可读程序代码,用于使计算装置执行上述业务流程的执行方法,其中,该业务流程是利用业务流程描述语言预先定义的,所述方法包括:执行上述业务流程并监视在上述业务流程的执行过程中产生的事件;以及根据预先设置的跳转规则,从上述业务流程的一个步骤跳转到另一个步骤,从而改变上述业务流程的预先定义的处理过程。
附图说明
相信通过以下结合附图对本发明具体实施方式的说明,能够使人们更好地了解本发明上述的特点、优点和目的。
图1A是根据本发明的一个实施例的业务流程的执行方法的流程图;
图1B是根据本发明的实施例的业务流程的执行方法的详细流程图;
图2是根据本发明的实施例的跳转过程的一个实例;
图3是根据本发明的实施例的跳转过程的另一个实例;
图4是根据本发明的实施例的跳转过程的另一个实例;
图5是根据本发明的另一个实施例的业务流程引擎的方框图。
具体实施方式
下面就结合附图对本发明的各个优选实施例进行详细的说明。
业务流程的执行方法
图1A是根据本发明的一个实施例的业务流程的执行方法的流程图。如图1A所示,首先,在步骤101,执行业务流程并监视在业务流程的执行过程中产生的事件。其中,在该步骤执行的业务流程是利用例如业务流程描述语言(Business Process Specification Language,BPSL),又或称为业务流程建模语言(Business Process Modeling Language,BPML)预先定义的,然而,本实施例的业务流程也可以利用本领域的技术人员公知的其它语言或未来开发的语言定义,本发明对此没有任何限制。
在本实施例中,在业务流程的执行过程中产生的事件是指该业务的执行过程中发生的可以由业务流程引擎监视到的各种事件,例如订票服务发送中“接收用户信息”的事件,下面将对其进行详细描述。
例如,在采用IBM公司的WebSphereTM业务流程服务器的情况下,可以利用通用事件基础构架(Common Event Infrastructure,CEI)来监视在业务流程的执行过程中产生的事件。当然,本发明并不限于此,例如可以采用Active Endpoints公司的ActiveBPELTM引擎、IBM公司的BPWS4J产品、Oracle公司的BPEL流程管理器、Bexee、Cape Clear公司的OrchestratorTM、以及Parasoft公司的BPEL MaestroTM等等,已经它们相应的监视工具,只要是可以执行业务流程并监视在业务流程的执行过程中产生的事件即可。
最后,在步骤105,根据预先设置的跳转规则,从上述业务流程的一个步骤跳转到另一个步骤。其中,预先设置的跳转规则利用上述业务流程描述语言根据事件-条件-动作(Event-Condition-Action,ECA)规则设置,然而,应该理解,可以利用本领域的技术人员公知的任何语言和规则设置跳转规则,只要能够清楚地描述跳转条件和跳转目的即可,本发明对此没有任何限制。
通常,业务流程服务器或引擎都具有服务调用功能,例如,在采用IBM公司的WebSphereTM业务流程服务器的情况下,可以利用适配动作管理器(Adaptive Action Manager)来实现上述跳转。本发明并不限于此,例如可以采用Active Endpoints公司的ActiveBPELTM引擎、IBM公司的BPWS4J产品、Oracle公司的BPEL流程管理器、Bexee、Cape Clear公司的OrchestratorTM、以及Parasoft公司的BPEL MaestroTM等等各自己有的服务调用功能;当然,也可以采用另外的程序来实现,总之,只要在需要的时候能够实现上述跳转功能即可,本发明对此没有任何限制。
本实施例的跳转规则主要包括以下三个方面:
事件(Event)用于定义该跳转规则的触发事件,也就是说,如果在上述步骤101中监视到在业务流程的执行过程中产生的事件与该触发事件一致时,则进一步判断是否满足该跳转规则的跳转条件;
条件(Condition)用于定义该跳转规则的跳转条件,如果满足该条件,则执行该跳转规则的动作,如果不满足条件,则执行该业务流程的当前步骤;
动作(Action)用于定义该跳转规则的跳转目的,即应该跳转到的流程中的活动,也就是说,如果满足该跳转规则的跳转条件,则将上述业务流程从当前执行的步骤跳转到该跳转规则的跳转目的的步骤。
并表示为如下形式:
On_EVENT EventID IF ConditionExp DO ActionExp
其中EventID表示触发事件,ConditionExp表示跳转条件,ActionExp表示跳转目的。应该理解,这里给出跳转规则的只是一种示例性表示形式,可以利用本领域的技术人员公知的任何方式表示跳转规则,只要能够利用其实现跳转功能即可。
具体地,图1B示出了根据上述实施例的一个优选方式执行业务流程方法的详细流程图。在步骤101通过业务流程引擎(例如IBM公司的Websphere Process Server)执行业务流程并通过事件监视器(例如IBM公司的Wehsphere Business Monitor)监视在业务流程的执行过程中产生的事件之后,在步骤1051,判断监视到的事件是否是上述跳转规则中定义的触发事件。如果在步骤1051监视到上述跳转规则中定义的触发事件,则进行到步骤1052。否则,返回到步骤101。
接着,在步骤1052,判断是否满足该跳转规则中定义的跳转条件。如果在步骤1052判断满足该跳转规则的跳转条件,则进行到步骤1053。否则,返回到步骤101。
接着,在步骤1053,确定上述业务流程的当前执行的步骤。
接着,在步骤1054,根据上述业务流程的当前执行的步骤和该跳转规则的偏移量,计算跳转目的,其中设置偏移量的具体细节将在下面参考实例2和3进行详细描述。此外,应该理解,设置偏移量只是确定跳转目的的一种可选方式,本发明也可以不通过偏移量,而直接将跳转目的设置为上述业务流程的某个步骤,具体细节将在下面参考实例1-3进行描述。
最后,在步骤1055,从上述业务流程的当前执行的步骤跳转到该跳转规则的跳转目的,从而实现本实施例的跳转功能。
下面通过实例1-3详细描述在步骤105中进行的跳转过程。
实例1
图2是根据本发明的实施例的业务流程的执行方法中跳转过程的一个实例。在图2中,标号201表示旅行社的订票业务流程,标号205表示航空公司的业务流程。在航空公司的业务流程205中,为了给VIP用户和非VIP用户提供不同的服务,在步骤2051(接收用户信息)和步骤2053(接收旅行路线)之间引入一个判断步骤2052,即在步骤2052中判断用户是否为VIP用户,如果不是,则执行步骤2053,如果是VIP用户,则在另一分支为VIP用户提供一站式服务。顺便提及,在引入该判断步骤之后,在订票业务流程201和航空公司的业务流程205之间出现了不兼容。
为了解决二者之间的不兼容,在实例1中设置了如下跳转规则:
On_EVENT Accept_customer_information IF MsgFrom(Bookingservice)DO Jump(Accept_customer_information,Accept_itinerary)
其中:
触发事件(EventID)=Accept_customer_information(接收用户信息)
跳转条件(ConditionExp)=MsgFrom(Booking service)(消息是否来自于订票服务)
跳转目的(ActionExp)=Jump(Accept_customer_information,Accept_itinerary)(从接收用户信息跳转到接收旅行路线)
也就是说,本实施例的业务流程的执行方法在执行业务流程的过程中监视在业务流程的执行过程中产生的事件,如果监视到上述触发事件,即在业务流程205执行到步骤2051时,监视到“接收用户信息”事件的发生,则判断跳转条件“消息是否来自于订票服务”。如果消息不是来自于订票业务流程201,则业务流程205进行到步骤2052。如果消息来自于订票业务流程201,则执行该跳转规则的跳转步骤,即从业务流程205的当前步骤2052跳转到步骤2053(接收旅行路线)。从而,通过本实施例的业务流程的执行方法避免了订票业务流程201和航空公司的业务流程205之间的不兼容。
实例2
图3是根据本发明的实施例的业务流程的执行方法中跳转过程的另一个实例。在图3中,标号301表示没有设置跳转规则之前的订票业务流程,标号305表示设置跳转规则之后的订票业务流程。在订票业务流程301中,只有携带信用卡的用户可以使用该业务流程,为了让没有携带信用卡的用户使用订票业务流程301,在实例2中设置了如下跳转规则:
On_EVENT Accept_customer_information DO Jump(Accept_customer_information,Ticket_service)
其中:
触发事件(EventID)=Accept_customer_information(接收用户信息)
跳转条件(ConditionExp)=缺省(即只要监视到触发事件即执行跳转步骤)
跳转目的(ActionExp)=Jump(Accept_customer_information,Ticket_service)(从接收用户信息跳转到机票服务)
也就是说,本实施例的业务流程的执行方法在执行业务流程301的过程中监视在业务流程的执行过程中产生的事件,如果监视到上述触发事件,即在业务流程301执行到步骤3011时,监视到“接收用户信息”事件的发生,则执行该跳转规则的跳转步骤,即从业务流程301的当前步骤3011跳转到步骤3013(机票服务)。从而,通过本实施例的业务流程的执行方法可以在没有携带信用卡时通过用户输入来使用业务流程301。
实例3
图4是根据本发明的实施例的业务流程的执行方法中跳转过程的另一个实例。在图4中,标号401表示没有设置跳转规则之前的订票业务流程,标号405表示设置跳转规则之后的订票业务流程。在订票业务流程401中,在机票服务之后检查付款情况,为了在机票服务之前检查付款,在实例3中设置了如下两个跳转规则:
跳转规则1
On_EVENT Accept_customer_information DO Jump(Accept_customer_information,Check_payment)
其中:
触发事件(EventID)=Accept_customer_information(接收用户信息)
跳转条件(ConditionExp)=缺省(即只要监视到触发事件即执行跳转步骤)
跳转目的(ActionExp)=Jump(Accept_customer_information,Check_payment)(从接收用户信息跳转到检查付款)
跳转规则2
On_EVENT Check_payment DO Jump(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的顺序。
在本实施例中,在从上述业务流程的当前执行的步骤跳转到该跳转规则的跳转目的的步骤之前,保存上述业务流程的当前的执行环境,例如在上述实例1中,在从步骤2051跳转到步骤2053之前,保存包括在步骤2051处接收到的用户信息在内的与服务执行有关的全部环境变量,以在后续步骤中使用。
此外,在本实施例中,可以在服务组合创建阶段设置一个或多个上述跳转规则以避免两个或两个以上的服务之间的不兼容问题,也可以在服务运行阶段设置一个或多个上述跳转规则以解决服务可能出现的错误或异常问题。此外,可以针对一个服务或一个服务组合设置一个或一组跳转规则。然而,应该理解,只要需要,可以为任何服务、在服务的任何阶段设置任何跳转规则,可以在不修改可执行的服务本身的情况下,解决服务不兼容和冲突而不修改或停止服务,本发明对此没有任何限制。
可选地,在本实施例中,上述跳转规则的跳转目的可以利用偏移量设置,也就是说,根据上述业务流程的当前执行的步骤和所述跳转规则的跳转目的的偏移量,计算跳转目的的步骤。例如,在上述实例2中,将跳转规则的偏移量设置为向下2个步骤,在执行跳转步骤时,从业务流程301的当前步骤3011向下跳转2个步骤,即跳转到步骤3013。又例如,在上述实例3中,将跳转规则2的偏移量可以设置为向上1个步骤,在执行跳转规则2的跳转步骤时,从业务流程401的当前步骤4013向上跳转1个步骤,即跳转到步骤4011。
通过使用本实施例的业务流程的执行方法,在部分不兼容的服务进行组合时通过设置跳转规则,不需要对可执行的服务本身进行修改,从而极大地降低了服务开发和再利用的成本。
此外,通过使用本实施例的业务流程的执行方法,服务供应商可以在相对稳定的服务中设置跳转规则,从而不需要对可执行的服务本身进行修改即可为不同的用户提供不同的服务。
此外,通过使用本实施例的业务流程的执行方法,可以通过修改跳转规则方便地对服务进行升级和修改,而不需要升级和修改服务本身。
此外,通过使用本实施例的业务流程的执行方法,可以通过设置跳转规则解决服务错误和异常情况,从而极大地降低了停止服务带来的损失。
业务流程引擎
在同一发明构思下,图5是根据本发明的另一个实施例的业务流程引擎的方框图。下面就结合该图,对本实施例进行描述。对于那些与前面实施例相同的部分,适当省略其说明。
如图5所示,本实施例的业务流程引擎500用于执行利用业务流程描述语言预先定义的业务流程,包括:事件监视单元501,用于监视在上述业务流程的执行过程中产生的事件;条件判断单元505,当上述事件监视单元501监视到跳转规则的触发事件发生时,判断是否满足该跳转规则的跳转条件;以及跳转单元510,用于根据预先设置的跳转规则,将上述业务流程从上述业务流程的一个步骤跳转到另一个步骤,从而改变上述业务流程的处理过程。
可选地,本实施例的业务流程引擎500还可以包括现有的业务流程引擎,例如BPEL引擎525。也就是说,本实施例的业务流程引擎500可以基于BPEL引擎525进行扩展或改进而获得。BPEL引擎525,例如,包括IBM公司的WebSphereTM业务流程服务器、Active Endpoints公司的ActiveBPELTM引擎、IBM公司的BPWS4J产品、Oracle公司的BPEL流程管理器、Bexee、Cape Clear公司的OrchestratorTM、以及Parasoft公司的BPEL MaestroTM等等。除了BPEL引擎525,也可以基于本领域的技术人员公知的其它业务流程引擎进行扩展或改进,本发明对此没有任何限制。
可选地,本实施例的业务流程引擎500还可以包括现有的其它公知部件,例如通用事件基础构架(Common Event Infrastructure,CEI)515,它用于捕获在BPEL引擎525执行业务流程的过程中产生的事件。除了CEI515,也可以使用本领域的技术人员公知的其它产品实现此功能,例如BEAWeblogic公司的TuxedoTM事件代理/监视器(Broker/Monitor),以及Oracle公司的业务活动监视器等等,本发明对此没有任何限制。
可选地,本实施例的业务流程引擎500还可以包括现有的其它公知部件,例如通用执行逻辑控制业务单元520,它用于在跳转单元510和BPEL引擎525之间进行交互,从而实现跳转功能。
业务流程引擎500的其它公知部件的具体细节参见Dongsoo Han和Jaeyong Shim的文献“A Framework Supporting Dynamic WorkflowInteroperation and Enterprise Application Integration”,Proceedings of the35th Hawaii International Conference on System Sciences,2002,在此通过参考引入其整个内容(下文中称为文献1)。
在本实施例中,业务流程引擎500执行的业务流程是利用例如业务流程描述语言(Business Process Specification Language,BPSL),又或称为业务流程建模语言(Business Process Modeling Language,BPML)预先定义的,然而,本实施例的业务流程也可以利用本领域的技术人员公知的其它语言或未来开发的语言定义,本发明对此没有任何限制。
在本实施例中,事件监视单元501监视的在业务流程的执行过程中产生的事件是指该业务的执行过程中发生的可以由业务流程引擎监视到的各种事件,例如订票服务发送中“接收用户信息”的事件,下面将对其进行详细描述。
在本实施例中,预先设置的跳转规则利用上述业务流程描述语言根据事件-条件-动作(Event-Condition-Action,ECA)规则设置,然而,应该理解,可以利用本领域的技术人员公知的任何语言和规则设置跳转规则,只要在需要的时候能够实现跳转功能即可,本发明对此没有任何限制。
本实施例的跳转规则主要包括以下三个方面:
事件(Event)用于定义该跳转规则的触发事件,也就是说,如果在上述步骤101中监视到在业务流程的执行过程中产生的事件与该触发事件一致时,并进一步判断是否满足该跳转规则的跳转条件;
条件(Condition)用于定义该跳转规则的跳转条件,如果满足该条件,则执行该跳转规则的动作,如果不满足条件,则执行该业务流程的当前步骤;
动作(Action)用于定义该跳转规则的跳转目的,即应该跳转到的流程中的活动,也就是说,如果满足该跳转规则的跳转条件,则将上述业务流程从当前执行的步骤跳转到该跳转规则的跳转目的的步骤。
并表示为如下形式:
On_EVENT EventID IF ConditionExp DO ActionExp
其中EventID表示触发事件,ConditionExp表示跳转条件,ActionExp表示跳转目的。应该理解,这里给出跳转规则的只是一种示例性表示形式,可以利用本领域的技术人员公知的任何方式表示跳转规则,只要能够利用其实现跳转功能即可。
下面通过实例1-3详细描述跳转单元510进行的跳转过程。
实例1
图2是根据本发明的实施例的业务流程引擎500的跳转过程的一个实例。在图2中,标号201表示旅行社的订票业务流程,标号205表示航空公司的业务流程。在航空公司的业务流程205中,为了给VIP用户和非VIP用户提供不同的服务,在步骤2051(接收用户信息)和步骤2053(接收旅行路线)之间引入一个判断步骤2052,即在步骤2052中判断用户是否为VIP用户,如果不是,则执行步骤2053,如果是VIP用户,则在另一分支为VIP用户提供一站式服务。顺便提及,在引入该判断步骤之后,在订票业务流程201和航空公司的业务流程205之间出现了不兼容。
为了解决二者之间的不兼容,在实例1中设置了如下跳转规则:
On_EVENT Accept_customer_information IF MsgFrom(Bookingservice)DO Jump(Accept_customer_information,Accept_itinerary)
其中:
触发事件(EventID)=Accept_customer_information(接收用户信息)
跳转条件(ConditionExp)=MsgFrom(Booking service)(消息是否来自于订票服务)
跳转目的(ActionExp)=Jump(Accept_customer_information,Accept_itinerary)(从接收用户信息跳转到接收旅行路线)
也就是说,本实施例的业务流程引擎500在执行业务流程的过程中利用事件监视单元501监视在业务流程的执行过程中产生的事件,并利用条件判断单元505判断当上述事件监视单元501监视到上述触发事件,即在业务流程205执行到步骤2051时,监视到“接收用户信息”事件的发生时,是否满足跳转条件“消息是否来自于订票服务”。如果消息不是来自于订票业务流程201,则业务流程205进行到步骤2052。如果消息来自于订票业务流程201,则利用跳转单元510执行该跳转规则的跳转步骤,即从业务流程205的当前步骤2052跳转到步骤2053(接收旅行路线)。从而,通过本实施例的业务流程引擎500避免了订票业务流程201和航空公司的业务流程205之间的不兼容。
实例2
图3是根据本发明的实施例的业务流程引擎500的跳转过程的另一个实例。在图3中,标号301表示没有设置跳转规则之前的订票业务流程,标号305表示设置跳转规则之后的订票业务流程。在订票业务流程301中,只有携带信用卡的用户可以使用该业务流程,为了让没有携带信用卡的用户使用订票业务流程301,在实例2中设置了如下跳转规则:
On_EVENT Accept_customer_information DO Jump(Accept_customer_information,Ticket_service)
其中:
触发事件(EventID)=Accept_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 Accept_customer_information DO Jump(Accept_customer_information,Check_payment)
其中:
触发事件(EventID)=Accept_customer_information(接收用户信息)
跳转条件(ConditionExp)=缺省(即只要监视到触发事件即执行跳转步骤)
跳转目的(ActionExp)=Jump(Accept_customer_information,Check_payment)(从接收用户信息跳转到检查付款)
跳转规则2
On_EVENT Check_payment DO Jump(Check_payment,Ticket_service)
其中:
触发事件(EventID)=Check_payment(检查付款)
跳转条件(ConditionExp)=缺省(即只要监视到触发事件即执行跳转步骤)
跳转目的(ActionExp)=Jump(Check_payment,Ticket_service)(从检查付款跳转到机票服务)
也就是说,本实施例的业务流程引擎500在执行业务流程401的过程中利用事件监视单元501监视在业务流程的执行过程中产生的事件,并利用条件判断单元505判断当上述事件监视单元501监视到上述跳转规则1的触发事件,即在业务流程401执行到步骤4011时,监视到“接收用户信息”事件的发生时,利用跳转单元510执行该跳转规则的跳转步骤,即从业务流程401的当前步骤4011跳转到步骤4013(检查付款)。此外,利用条件判断单元505判断当上述事件监视单元501监视到上述跳转规则2的触发事件,即在业务流程401执行到步骤4013时,监视到“检查付款”事件的发生时,利用跳转单元510执行该跳转规则的跳转步骤,即从业务流程401的当前步骤4013跳转到步骤4012(机票服务)。从而,通过本实施例的业务流程引擎500可以改变业务流程401中步骤4012和步骤4013的顺序。
在本实施例中,业务流程引擎500还包括环境保存单元,用于在上述跳转单元510进行从上述业务流程的当前执行的步骤跳转到该跳转规则的跳转目的流程中的步骤之前,保存上述业务流程的当前的执行环境,例如在上述实例1中,在从步骤2051跳转到步骤2053之前,保存包括在步骤2051处接收到的用户信息在内的与服务执行有关的全部环境变量,以在后续步骤中使用。
此外,在本实施例中,业务流程引擎500可以在服务组合创建阶段设置一个或多个上述跳转规则以避免两个或两个以上的服务之间的不兼容问题,也可以在服务运行阶段设置一个或多个上述跳转规则以解决服务可能出现的错误或异常问题。此外,业务流程引擎500可以针对一个服务或一个服务组合设置一个或一组跳转规则。然而,应该理解,只要需要,业务流程引擎500可以为任何服务、在服务的任何阶段设置任何跳转规则,可以在不修改可执行的服务本身的情况下,解决服务不兼容和冲突而不修改或停止服务,本发明对此没有任何限制。
可选地,在本实施例中,上述跳转规则的跳转目的可以利用偏移量设置,也就是说,根据上述业务流程的当前执行的步骤和所述跳转规则的跳转目的的偏移量,计算上述跳转单元510的跳转目的。例如,在上述实例2中,将跳转规则的偏移量设置为向下2个步骤,在执行跳转步骤时,从业务流程301的当前步骤3011向下跳转2个步骤,即跳转到步骤3013。又例如,在上述实例3中,将跳转规则2的偏移量可以设置为向上1个步骤,在执行跳转规则2的跳转步骤时,从业务流程401的当前步骤4013向上跳转1个步骤,即跳转到步骤4011。
通过使用本实施例的业务流程引擎500,在部分不兼容的服务进行组合时通过设置跳转规则,不需要对可执行的服务本身进行修改,从而极大地降低了服务开发和再利用的成本。
此外,通过使用本实施例的业务流程引擎500,服务供应商可以在相对稳定的服务中设置跳转规则,从而不需要对可执行的服务本身进行修改即可为不同的用户提供不同的服务。
此外,通过使用本实施例的业务流程引擎500,可以通过修改跳转规则方便地对服务进行升级和修改,而不需要升级和修改服务本身。
此外,通过使用本实施例的业务流程引擎500,可以通过设置跳转规则解决服务错误和异常情况,从而极大地降低了停止服务带来的损失。
部署业务流程引擎的方法
在同一发明构思下,根据本发明的另一个实施例提供了一种部署业务流程引擎的方法。下面就对本实施例进行描述,对于那些与前面实施例相同的部分,适当省略其说明。
在本实施例的部署业务流程引擎的方法中,业务流程引擎用于执行利用业务流程描述语言预先定义的业务流程,并包括:事件监视单元,用于监视在上述业务流程的执行过程中产生的事件;以及跳转单元,用于根据预先设置的跳转规则,将上述业务流程从上述业务流程的一个步骤跳转到另一个步骤,从而改变上述业务流程的处理过程。此外,本实施例的方法部署的业务流程引擎还可以是上述参考图5的实施例中描述的业务流程引擎500。
本实施例的部署业务流程引擎的方法的具体细节参见上述DongsooHan和Jaeyong Shim的文献1,在此不再赘述。
通过使用本实施例的部署业务流程引擎的方法,在部分不兼容的服务进行组合时通过设置跳转规则,不需要对可执行的服务本身进行修改,从而极大地降低了服务开发和再利用的成本。
此外,通过使用本实施例的部署业务流程引擎的方法,服务供应商可以在相对稳定的服务中设置跳转规则,从而不需要对可执行的服务本身进行修改即可为不同的用户提供不同的服务。
此外,通过使用本实施例的部署业务流程引擎的方法,可以通过修改跳转规则方便地对服务进行升级和修改,而不需要升级和修改服务本身。
此外,通过使用本实施例的部署业务流程引擎的方法,可以通过设置跳转规则解决服务错误和异常情况,从而极大地降低了停止服务带来的损失。
计算机程序产品
在同一发明构思下,根据本发明的另一个实施例提供了一种计算机程序产品。下面就对本实施例进行描述,对于那些与前面实施例相同的部分,适当省略其说明。
本实施例的计算机程序产品,存储在计算机可用介质上,包括:计算机可读程序代码,用于使计算装置执行业务流程的执行方法,其中,该业务流程是利用业务流程描述语言预先定义的,所述方法包括:执行上述业务流程并监视在上述业务流程的执行过程中产生的事件;以及根据预先设置的跳转规则,从上述业务流程的一个步骤跳转到另一个步骤,从而改变上述业务流程的处理过程。此外,本实施例的计算机程序产品的计算机程序代码也可以用于使计算装置执行上述参考图1A的实施例中描述的业务流程的执行方法。
通过使用本实施例的计算机程序产品,在部分不兼容的服务进行组合时通过设置跳转规则,不需要对可执行的服务本身进行修改,从而极大地降低了服务开发和再利用的成本。
此外,通过使用本实施例的计算机程序产品,服务供应商可以在相对稳定的服务中设置跳转规则,从而不需要对可执行的服务本身进行修改即可为不同的用户提供不同的服务。
此外,通过使用本实施例的计算机程序产品,可以通过修改跳转规则方便地对服务进行升级和修改,而不需要升级和修改服务本身。
此外,通过使用本实施例的计算机程序产品,可以通过设置跳转规则解决服务错误和异常情况,从而极大地降低了停止服务带来的损失。
以上虽然通过一些示例性的实施例对本发明的业务流程的执行方法,业务流程引擎,部署业务流程引擎的方法,以及计算机程序产品进行了详细的描述,但是以上这些实施例并不是穷举的,本领域技术人员可以在本发明的精神和范围内实现各种变化和修改。因此,本发明并不限于这些实施例,本发明的范围仅由所附权利要求为准。

Claims (19)

1. 一种业务流程的执行方法,其中,该业务流程利用业务流程描述语言预先定义,所述方法包括:
执行上述业务流程并监视在上述业务流程的执行过程中产生的事件;以及
根据预先设置的跳转规则,从上述业务流程的一个步骤跳转到另一个步骤,从而改变上述业务流程的预先定义的处理过程。
2. 根据权利要求1所述的业务流程的执行方法,其特征在于,所述跳转规则至少包括:触发事件、跳转条件、跳转目的。
3. 根据权利要求2所述的业务流程的执行方法,其特征在于,所述从上述业务流程的一个步骤跳转到另一个步骤的步骤,包括:
判断监视到的上述跳转规则的触发事件是否满足该跳转规则的跳转条件;以及
如果满足该跳转规则的跳转条件,则从上述业务流程的当前执行的步骤跳转到该跳转规则的跳转目的的步骤。
4. 根据权利要求3所述的业务流程的执行方法,其特征在于,还包括:
在所述从上述业务流程的当前执行的步骤跳转到该跳转规则的跳转目的的步骤之前,保存上述业务流程的当前的执行环境。
5. 根据权利要求4所述的业务流程的执行方法,其特征在于,所述跳转规则的跳转目的是利用偏移量设置的,从上述业务流程的当前执行的步骤跳转到该跳转规则的跳转目的的步骤包括:
确定上述业务流程的当前执行的步骤;
根据上述业务流程的当前执行的步骤和所述跳转规则的跳转目的的偏移量,计算跳转目的的步骤。
6. 根据权利要求1-5任意一项所述的业务流程的执行方法,其特征在于,所述预先设置的跳转规则包括多条跳转规则。
7. 根据权利要求1-6任意一项所述的业务流程的执行方法,其特征在于,针对一个服务组合设置一组跳转规则。
8. 根据权利要求1-7的任意一项所述的业务流程的执行方法,其特征在于,所述跳转规则是利用上述业务流程描述语言设置的。
9. 根据权利要求7或8所述的业务流程的执行方法,其特征在于,所述跳转规则是在服务组合创建过程中设置的。
10. 一种业务流程引擎,用于执行利用业务流程描述语言预先定义的业务流程,包括:
事件监视单元,用于监视在上述业务流程的执行过程中产生的事件;以及
跳转单元,用于根据预先设置的跳转规则,将上述业务流程从上述业务流程的一个步骤跳转到另一个步骤,从而改变上述业务流程的预先定义的处理过程。
11. 根据权利要求10所述的业务流程引擎,其特征在于,所述跳转规则至少包括:触发事件、跳转条件、跳转目的。
12. 根据权利要求11所述的业务流程引擎,其特征在于,还包括:
条件判断单元,判断监视到的上述跳转规则的触发事件是否满足该跳转规则的跳转条件;
其中,如果满足该跳转规则的跳转条件,上述跳转单元将上述业务流程从上述业务流程的当前执行的步骤跳转到该跳转规则的跳转目的的步骤。
13. 根据权利要求12所述的业务流程引擎,其特征在于,还包括:
环境保存单元,用于在所述从上述业务流程的当前执行的步骤跳转到该跳转规则的跳转目的的步骤之前,保存上述业务流程的当前的执行环境。
14. 根据权利要求13所述的业务流程引擎,其特征在于,所述跳转规则的跳转目的是利用偏移量设置的;上述跳转单元被设定为确定上述业务流程的当前执行的步骤,并且根据上述业务流程的当前执行的步骤和所述跳转规则的跳转目的的偏移量,计算跳转目的的步骤。
15. 根据权利要求10-14任意一项所述的业务流程引擎,其特征在于,所述预先设置的跳转规则包括多条跳转规则。
16. 根据权利要求10-15任意一项所述的业务流程引擎,其特征在于,针对一个服务组合设置一组跳转规则。
17. 根据权利要求10-16的任意一项所述的业务流程引擎,其特征在于,所述跳转规则是利用上述业务流程描述语言设置的。
18. 根据权利要求16或17所述的业务流程引擎,其特征在于,所述跳转规则是在服务组合创建过程中设置的。
19. 一种部署业务流程引擎的方法,该业务流程引擎用于执行利用业务流程描述语言预先定义的业务流程,并包括:
事件监视单元,用于监视在上述业务流程的执行过程中产生的事件;以及
跳转单元,用于根据预先设置的跳转规则,将上述业务流程从上述业务流程的一个步骤跳转到另一个步骤,从而改变上述业务流程的预先定义的处理过程。
CNA200710090499XA 2007-04-12 2007-04-12 业务流程执行方法、业务流程引擎及其部署方法 Pending CN101286212A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CNA200710090499XA CN101286212A (zh) 2007-04-12 2007-04-12 业务流程执行方法、业务流程引擎及其部署方法
US12/102,199 US20080255903A1 (en) 2007-04-12 2008-04-14 Business process execution method, business process engine and method for deploying a business process engine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA200710090499XA CN101286212A (zh) 2007-04-12 2007-04-12 业务流程执行方法、业务流程引擎及其部署方法

Publications (1)

Publication Number Publication Date
CN101286212A true CN101286212A (zh) 2008-10-15

Family

ID=39854577

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA200710090499XA Pending CN101286212A (zh) 2007-04-12 2007-04-12 业务流程执行方法、业务流程引擎及其部署方法

Country Status (2)

Country Link
US (1) US20080255903A1 (zh)
CN (1) CN101286212A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102024199A (zh) * 2010-06-04 2011-04-20 西本新干线股份有限公司 业务规则引擎及业务流程生成方法
CN105574709A (zh) * 2015-12-10 2016-05-11 南车青岛四方机车车辆股份有限公司 一种高速列车快速设计的流程跳转方法及装置
CN106408180A (zh) * 2016-09-06 2017-02-15 北京恒华伟业科技股份有限公司 一种业务流程的拼接方法和系统
CN107153942A (zh) * 2016-03-02 2017-09-12 北京京东尚科信息技术有限公司 一种动态配置和校验黑名单方法
CN107924502A (zh) * 2016-03-01 2018-04-17 华为技术有限公司 多阶段高效能业务流程管理引擎
CN109542556A (zh) * 2018-10-30 2019-03-29 珠海伟诚科技股份有限公司 一种基于Activiti的流程与表单交互方法及系统
WO2019144438A1 (zh) * 2018-01-23 2019-08-01 李冰 知识产权业务管理系统及方法

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100262557A1 (en) * 2009-04-14 2010-10-14 Ferreira Rodrigo C Systems, methods, and apparatus for guiding users in process-driven environments
WO2011137935A1 (en) * 2010-05-07 2011-11-10 Ulysses Systems (Uk) Limited System and method for identifying relevant information for an enterprise
CN102236557A (zh) * 2011-08-01 2011-11-09 苏州万图明电子软件有限公司 一种软件流程设计系统
US9027144B1 (en) * 2012-12-20 2015-05-05 Emc Corporation Semantic-based business events
WO2015116191A1 (en) * 2014-01-31 2015-08-06 Hewlett-Packard Development Company, L.P. Business process managment
CN109471691A (zh) * 2018-10-16 2019-03-15 平安普惠企业管理有限公司 流程节点处理方法、装置、计算机设备及存储介质
CN117933950B (zh) * 2024-03-25 2024-06-18 浪潮通用软件有限公司 一种业务流程自动化审批方法、设备及介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4250344B2 (ja) * 2001-01-29 2009-04-08 インターナショナル・ビジネス・マシーンズ・コーポレーション ワークフローシステム、ワークフローサーバ、および記憶媒体
US8725548B2 (en) * 2002-06-28 2014-05-13 Oracle International Corporation Dynamic workflow approvals
US20040162741A1 (en) * 2003-02-07 2004-08-19 David Flaxer Method and apparatus for product lifecycle management in a distributed environment enabled by dynamic business process composition and execution by rule inference
US20070156486A1 (en) * 2005-12-29 2007-07-05 Microsoft Corporation Multiple concurrent workflow persistence schemes
US7509655B2 (en) * 2006-08-30 2009-03-24 Microsoft Corporation Integration of workflow and rules

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102024199A (zh) * 2010-06-04 2011-04-20 西本新干线股份有限公司 业务规则引擎及业务流程生成方法
CN105574709A (zh) * 2015-12-10 2016-05-11 南车青岛四方机车车辆股份有限公司 一种高速列车快速设计的流程跳转方法及装置
CN107924502A (zh) * 2016-03-01 2018-04-17 华为技术有限公司 多阶段高效能业务流程管理引擎
CN107153942A (zh) * 2016-03-02 2017-09-12 北京京东尚科信息技术有限公司 一种动态配置和校验黑名单方法
CN106408180A (zh) * 2016-09-06 2017-02-15 北京恒华伟业科技股份有限公司 一种业务流程的拼接方法和系统
WO2019144438A1 (zh) * 2018-01-23 2019-08-01 李冰 知识产权业务管理系统及方法
CN109542556A (zh) * 2018-10-30 2019-03-29 珠海伟诚科技股份有限公司 一种基于Activiti的流程与表单交互方法及系统
CN109542556B (zh) * 2018-10-30 2022-04-15 珠海伟诚科技股份有限公司 一种基于Activiti的流程与表单交互方法及系统

Also Published As

Publication number Publication date
US20080255903A1 (en) 2008-10-16

Similar Documents

Publication Publication Date Title
CN101286212A (zh) 业务流程执行方法、业务流程引擎及其部署方法
US8127237B2 (en) Active business client
Rotem-Gal-Oz SOA patterns
US8904343B2 (en) Adding services to application platform via extension
US8555248B2 (en) Business object change management using release status codes
US8892667B2 (en) Systems and methods for sending and receiving communications
US8332813B2 (en) Service re-factoring method and system
US20080275713A9 (en) Architectural design for physical inventory application software
US8538793B2 (en) System and method for managing real-time batch workflows
JP2012142017A (ja) ワイヤレス・アプリケーションのスクリーン・エレメント又はデータ・オブジェトを生成する方法及びシステム
KR20140047580A (ko) 다중-서버 예약 시스템 상의 동기화 메커니즘 시스템 및 방법
CN101645013A (zh) 综合业务管理平台插件式业务管理系统及方法
US8239467B2 (en) Extending business processes to mobile devices
CN105138313A (zh) 客户机应用程序和网页集成
CN104750522A (zh) 任务或流程的动态执行方法和系统
US8190461B2 (en) Logically centralized scrap management using planning operations
FI120286B (fi) Menetelmä ja laitejärjestely palvelin-asiakaslaite-ympäristön hallitsemiseksi
US9152937B2 (en) Message sequence management of enterprise based correlated events
CN103327062A (zh) 提供企业信息技术生命周期工具同步平台的系统和方法
CN105302529B (zh) 浏览器控制方法及管理器
US9059992B2 (en) Distributed mobile enterprise application platform
CN110740178A (zh) 一种应用服务处理系统和应用服务处理方法
CN113837870A (zh) 金融风险数据审批方法及装置
US20120310997A1 (en) Customizing language for organization application installation
CN110648081A (zh) 用于计算系统的业务建模方法、装置和计算机系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Open date: 20081015