流程驱动方法及装置的制作方法

文档序号:6602885阅读:183来源:国知局

专利名称::流程驱动方法及装置的制作方法
技术领域
:本发明涉及计算机领域,特别涉及一种流程驱动方法及装置。
背景技术
:随着计算机技术的日益发展,流程语言的种类也越来越多。尽管流程语言的语法与格式各不相同,但要解决的问题却是大体相同的,流转行为是一致的。设计一个适应各种流程语言的通用驱动系统,有利于提高BPM(BusinessProcessManagement,业务流程管理系统)引擎的开发效率;可以使得BPM产品线具有高度的扩展性;也可以满足在一个系统中同时支持多种流程语言的特殊需求。现有技术一提供的驱动系统,首先提出了PVM(ProcessVirtualMachine,流程虚拟机)这个概念,并利用该PVM成功驱动了BPEL(BusinessProcessExecutionLanguage,业务流程执行语目)禾口JPDL(JavabusinessprocessmanagementProcessDefinitionLanguage,业务流程管理过程定义语言)。现有技术二则开发了WindowsWorkflowFoundation(工作流框架)系统,虽然没有取名“PVM”,但是该系统的设计目标和PVM是一致的,该系统可驱动各种与BPEL语言类似的流程语言。在实现本发明的过程中,发明人发现现有技术至少存在以下缺点现有技术一提供的PVM在运行时严重依赖开放源代码的对象关系映射框架(Hibernate),该PVM还具有IOCanversionofControl,控制反转)容器等组件,这些组件本质上与PVM无关,反而导致该产品无法与其他产品集成,导致移植性差;现有技术二对于图状流程语言,如BPMN(BusinessProcessModelingNotation,业务流程建模标注)等则较难胜任,尤其对于有自由跳转、取回、加签等需求的业务流程;另外,由于严重依赖于.NetFramework,导致扩展性也较差。
发明内容为了提高流程驱动的扩展性及可移植性,进而提高流程驱动的实用性能,本发明实施例提供了一种流程驱动方法及装置。所述技术方案如下—方面,提供了一种流程驱动方法,所述方法包括确定待驱动流程的流程元素,及所述流程元素对应的流程行为;将所述流程元素映射到对应的执行对象中,并将所述流程元素的流程行为装配到所述对应的执行对象中;在外部调用所述执行对象时启动所述执行对象的执行过程。另一方面,提供了一种流程驱动装置,所述装置包括确定模块,用于确定待驱动流程的流程元素,及所述流程元素对应的流程行为;映射模块,用于将所述流程元素映射到对应的执行对象中,并将所述流程元素的流程行为装配到所述对应的执行对象中;驱动模块,用于在外部调用所述执行对象时启动所述执行对象的执行过程。本发明实施例提供的技术方案的有益效果是通过将流程元素映射到对应的执行对象中,并在外部调用该执行对象时启动执行对象的执行过程,即以执行对象概括各种流程语言的行为特征,实现对流程的驱动,不仅可以支持块状流程语言,也可以很好地支持图状流程语言,从而提高了流程驱动的扩展性;另外,由于本发明实施例提供的技术方案不与任何特定的数据存储层技术及IOC容器进行绑定,因此,具有很高的可移植性。为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例--提供的流程驱动方法流程图2是本发明实施例二提供的BPMN2.0与流程驱动装置的关系示意图图3是本发明实施例二提供的流程驱动方法流程图4是本发明实施例二提供的BPMN2.0的流程元素示意图5是本发明实施例二提供的BPMN2.0的流程元素的流程行为示意图图6是本发明实施例二提供的各种执行对象示意图7是本发明实施例二提供的各种执行对象之间的关系示意图8是本发明实施例二提供的执行对象结构示意图9是本发明实施例三[提供的流程驱动装置结构示意图10是本发明实施例_Ξ提供的驱动模块结构示意图11是本发明实施例_三提供的执行单元结构示意图。具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。实施例一参见图1,本实施例提供了一种流程驱动方法,该方法流程具体如下101确定待驱动流程的流程元素,及该流程元素对应的流程行为;102将该流程元素映射到对应的执行对象中,并将该流程元素的流程行为装配到对应的执行对象中;103在外部调用该执行对象时启动该执行对象的执行过程。本实施例提供的方法,通过将流程元素映射到对应的执行对象中,并在外部调用该执行对象时启动执行对象的执行过程,即以执行对象概括各种流程语言的行为特征,实现对流程的驱动,不仅可以支持块状流程语言,也可以很好地支持图状流程语言,从而提高了流程驱动的扩展性;另外,由于本发明实施例提供的技术方案不与任何特定的数据存储层技术及IOC容器绑定,因此,具有很高的可移植性。实施例二本实施例提供了一种流程驱动方法,该方法通过将流程元素映射到对应的执行对象中,以执行对象概括各种流程语言的行为特征,实现对流程的驱动。为了便于说明,本实施例以BPMN2.0流程语言为例进行说明,图2为该BPMN2.0流程引擎与流程驱动装置之间的关系示意图。参见图3,本实施例提供的方法流程具体如下301确定待驱动流程的流程元素,及该流程元素对应的流程行为;针对该步骤,每个特定的流程语言都包含了各种流程元素,关于如何确定待驱动流程的流程元素及对应的流程行为,本实施例不做具体限定。以BPMN2.0流程语言为例,其流程元素如图4所示,包含了ftOcess,Activity,Event,SequnceFlow等流程元素,对应的流程行为可如图5所示。302为该流程元素选择对应的执行对象;具体地,本实施例以ExecutableObject表示执行对象,将其看作是一个具有特定行为的JavaBean,并定义了三种进程,即执行进程execute()、唤醒进程awaken()和结束进程complete()。其中,execute()用于执行业务逻辑,该业务逻辑即为映射到该执行对象中的流程所承载的业务逻辑;awakenO用于唤醒执行对象,实际应用时,通过进行数据恢复唤醒执行对象;complete()则在execute()执行业务逻辑结束后被调用。虽然每个执行对象都有execute(),awaken(),complete()三个进程,但这些进程的具体实现方式不一定完全相同。参见图6,根据进程实现方式的不同,可以将执行对象分为网(NetInstance),节点(NodeInstance)和弧(ArcInstance)三种类型。其中,一个网可以包含若干个互相连接的节点和弧;节点可以有若干个输入弧和若干个输出弧,每个弧必须有一个输入节点和一个输出节点;另外,一个网可以包含子网,各种执行对象之间的关系可如图7所示。关于如何为流程元素选择对应的执行对象,本实施例不对具体的选择方式进行限定,仍以BPMN2.0中的流程元素为例,可以选择将Process流程元素映射到Net类型的执行对象中,ActiVity、EVent等流程元素映射到Node类型的执行对象中,而将kqunceFlow等流程元素映射到Arc类型的执行对象中。303将该流程元素映射到对应的执行对象中,并将该流程元素的流程行为装配到对应的执行对象中;其中,将该流程元素的流程行为装配到对应的执行对象中之后,可以将所有执行对象装配到内核管理器,由该内核管理器负责管理一系列有互相关系的执行对象,在外部调用执行对象时,通过该内核管理器负责调用执行对象的执行过程。304在外部调用该执行对象时启动该执行对象的执行过程。针对该步骤,由于不同的流程定义语言表达所承载的业务逻辑的方式不一样,ExecutableObject不可能将所有的情况预先硬编码到流程驱动装置架构中。因此,本实施例提供的方法采用扩展点的设计思想来满足这个需求为每个ExecutableObject装配了3个扩展点,即引用3个固定的接口JncomingLogic,BusinessLogic,LeavingLogic,如图8所示。其中,hcomingLogic接口中设置有CanBeFiredO对象,用于判断业务逻辑是否满足了执行条件;BusinessLogic中设置有performO对象,用于执行真正的业务逻辑;LeavingLogic中设置有determineLeavingStragegyQ对象,用于在业务逻辑结束时指示下一步操作,下一步操作可能是执行一个新的ExecuteObject,也可能是返回上一级ExecuteObject,并调用其complete()方法。则启动执行对象的执行过程时,首先调用hcomingLogic接口中设置的CanBeFiredO对象,再调用BusinessLogic中设置的perform()对象,最后调用LeavingLogic中设置的determineLeavingStragegy()对象,也就是说,启动执行对象的执行过程时,具体包括判断是否可触发执行对象所对应的业务逻辑;如果是,则执行业务逻辑,并在执行结束之后指示下一步操作。其中,执行业务逻辑,具体包括调用执行进程execute()执行业务逻辑,并在执行业务逻辑结束后,调用结束进禾呈complete();如果需要长时间执行业务逻辑,则将执行对象的状态保存在存储介质中,直至执行业务逻辑结束,调用唤醒进程awaken()进行数据恢复,并在数据恢复后调用结束进程complete()0本实施例提供的方法,通过将流程元素映射到对应的执行对象中,并在外部调用该执行对象时启动执行对象的执行过程,即以执行对象概括各种流程语言的行为特征,实现对流程的驱动,不仅可以支持块状流程语言,也可以很好地支持图状流程语言,从而提高了流程驱动的扩展性;另外,由于本发明实施例提供的技术方案不与任何特定的数据存储层技术及IOC容器绑定,因此,具有很高的可移植性。实施例三参见图9,本实施例提供了一种流程驱动装置,该装置包括确定模块901,用于确定待驱动流程的流程元素,及流程元素对应的流程行为;映射模块902,用于将流程元素映射到对应的执行对象中,并将流程元素的流程行为装配到对应的执行对象中;驱动模块903,用于在外部调用执行对象时启动执行对象的执行过程。具体地,参见图10,驱动模块903,具体包括判断单元9031,用于在外部调用执行对象时,判断是否可触发执行对象所对应的业务逻辑;执行单元9032,用于在判断单元9031判断可触发业务逻辑时,执行业务逻辑;指示单元9033,用于在执行单元9032执行业务逻辑结束后,指示下一步操作。进一步地,参见图11,执行单元9032,具体包括第一调用子单元9032a,用于调用执行进程执行业务逻辑;第二调用子单元9032b,用于在第一调用子单元903调用的执行进程执行业务逻辑结束后,调用结束进程;第三调用子单元9032c,用于在第一调用子单元903调用的执行进程需要长时间执行业务逻辑时,将执行对象的状态保存在存储介质中,直至执行业务逻辑结束,调用唤醒进程进行数据恢复,并在数据恢复后调用结束进程。本实施例提供的装置,通过将流程元素映射到对应的执行对象中,并在外部调用该执行对象时启动执行对象的执行过程,即以执行对象概括各种流程语言的行为特征,实6现对流程的驱动,不仅可以支持块状流程语言,也可以很好地支持图状流程语言,从而提高了流程驱动的扩展性;另外,由于本发明实施例提供的技术方案不与任何特定的数据存储层技术及IOC容器绑定,因此,具有很高的可移植性。需要说明的是上述实施例提供的流程驱动装置在驱动流程时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的流程驱动装置与流程驱动方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。本发明实施例中的全部或部分步骤,可以利用软件实现,相应的软件程序可以存储在可读取的存储介质中,如光盘或硬盘等。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。权利要求1.一种流程驱动方法,其特征在于,所述方法包括确定待驱动流程的流程元素,及所述流程元素对应的流程行为;将所述流程元素映射到对应的执行对象中,并将所述流程元素的流程行为装配到所述对应的执行对象中;在外部调用所述执行对象时启动所述执行对象的执行过程。2.根据权利要求1所述的方法,其特征在于,所述在外部调用所述执行对象时启动所述执行对象的执行过程,具体包括判断是否可触发所述执行对象所对应的业务逻辑;如果是,则执行所述业务逻辑,并在执行结束之后指示下一步操作。3.根据权利要求2所述的方法,其特征在于,所述执行所述业务逻辑,具体包括调用执行进程执行所述业务逻辑,并在执行所述业务逻辑结束后,调用结束进程;如果需要长时间执行所述业务逻辑,则将所述执行对象的状态保存在存储介质中,直至执行所述业务逻辑结束,调用唤醒进程进行数据恢复,并在数据恢复后调用结束进程。4.根据权利要求1所述的方法,其特征在于,所述执行对象分为网,节点和弧;其中,每个网包含多个互相连接的节点和弧;每个节点包含多个输入弧和多个输出弧;每个弧至少包含一个输入节点和一个输出节点。5.一种流程驱动装置,其特征在于,所述装置包括确定模块,用于确定待驱动流程的流程元素,及所述流程元素对应的流程行为;映射模块,用于将所述流程元素映射到对应的执行对象中,并将所述流程元素的流程行为装配到所述对应的执行对象中;驱动模块,用于在外部调用所述执行对象时启动所述执行对象的执行过程。6.根据权利要求5所述的装置,其特征在于,所述驱动模块,具体包括判断单元,用于在外部调用所述执行对象时,判断是否可触发所述执行对象所对应的业务逻辑;执行单元,用于在所述判断单元判断可触发所述业务逻辑时,执行所述业务逻辑;指示单元,用于在所述执行单元执行所述业务逻辑结束后,指示下一步操作。7.根据权利要求6所述的装置,其特征在于,所述执行单元,具体包括第一调用子单元,用于调用执行进程执行所述业务逻辑;第二调用子单元,用于在所述第一调用子单元调用的执行进程执行所述业务逻辑结束后,调用结束进程;第三调用子单元,用于在所述第一调用子单元调用的执行进程需要长时间执行所述业务逻辑时,将所述执行对象的状态保存在存储介质中,直至执行所述业务逻辑结束,调用唤醒进程进行数据恢复,并在数据恢复后调用结束进程。全文摘要本发明公开了一种流程驱动方法及装置,属于计算机领域。该方法包括确定待驱动流程的流程元素,及所述流程元素对应的流程行为;将所述流程元素映射到对应的执行对象中,并将所述流程元素的流程行为装配到所述对应的执行对象中;在外部调用所述执行对象时启动所述执行对象的执行过程。本发明通过将流程元素映射到对应的执行对象中,并在外部调用该执行对象时启动执行对象的执行过程,即以执行对象概括各种流程语言的行为特征,实现对流程的驱动,不仅可以支持块状及图状等流程语言,提高了流程驱动的扩展性;又由于不与任何特定的数据存储层技术及IOC容器绑定,因此,又可以提高流程驱动的可移植性。文档编号G06Q10/00GK102254233SQ20101018004公开日2011年11月23日申请日期2010年5月20日优先权日2010年5月20日发明者陈乜云申请人:深圳市金蝶中间件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1