[发明专利]基于数据来源的流程引擎设计方法有效
申请号: | 201010614123.6 | 申请日: | 2010-12-30 |
公开(公告)号: | CN102566998A | 公开(公告)日: | 2012-07-11 |
发明(设计)人: | 施伟;李伟 | 申请(专利权)人: | 盛乐信息技术(上海)有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 上海浦一知识产权代理有限公司 31211 | 代理人: | 丁纪铁 |
地址: | 201203 上*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 数据 来源 流程 引擎 设计 方法 | ||
技术领域
本发明涉及一种软件系统的设计方法,特别是涉及一种流程引擎的设计方法。
背景技术
流程引擎是一种根据外来输入对一个或多个对象进行操作的软件系统。流程引擎通常基于有限状态机(Finite State Machine)进行设计。有限状态机又称有限状态自动机或简称状态机,是表示有限个状态以及在这些状态之间的转换和动作等行为的数学模型。
流程引擎通常是针对一个或多个对象进行操作的软件系统。每个对象具有一个或多个流程。每个流程包括至少两个状态(State)及状态之间进行转换(Transition)的条件。状态转换的条件是指各状态在遇到何种外来输入时转换为另一状态,此时的外来输入称为事件(Event)。某个对象的某个流程从一个状态转换到另一状态,称为一个动作(Action)。流程引擎在同一时刻或者不调度任何流程,或者只调用一个流程。
现有的流程引擎的设计方法有两种:
一种是基于线性调度的流程引擎设计方法,请参阅图1,即流程引擎总是线性地进行各个动作。图中对于事件,程序依次执行流程1、流程2、流程3,其中,每个流程中执行了状态的转换。这种方法需要穷举所有流程的所有状态和状态之间进行转换的条件,局限于非常简单的对象操作。
另一种是基于非线性调度的流程引擎设计方法,请参阅图2,与线性方式的区别在于,支持多事件的输入和流程非线性调度,当某一事件会引发一个或多个对象的状态发生改变时,各个对象的动作执行顺序并非事先设定,而是由流程引擎根据当时具体的上下文关系来动态选择的。例如当事件1发生时,流程引擎首先根据事件1对应的操作1,调用对象1的动作,对象状态变化之后,执行权交还流程引擎,流程引擎更新事件1的操作列表,并根据操作2,调用对象2的动作,同理,操作3,在每个操作完毕之后,流程引擎都会更新操作列表,并判断是否事件1执行完毕。。由此可见,这种方法不在限于流程的线性执行顺序,流程引擎决定了下一步调用的对象和它的动作。这种方法将流程调度操作分离出来,从而实现对象操作的非线性,可以实现复杂系统的对象操作,但是过多的对象操作会使程序设计也变得繁琐而复杂。
发明内容
本发明所要解决的技术问题提供一种基于数据来源的流程引擎设计方法,该方法可以适用于简单或复杂的对象操作,也易于进行程序设计。
为解决上述技术问题,本发明公开了一种基于数据来源的流程引擎设计方法,所述流程引擎操作一个或多个对象,每个对象具有一个或多个流程,每个流程包括至少两个状态及状态之间进行转换的条件;所述流程引擎设计方法包括如下步骤:
第1步,流程引擎归纳所有事件的来源为x种,并为每个流程提供x个函数接口,每个流程的一个函数接口对应于一种事件的来源;
流程引擎启动时,最先加载根流程;
所述事件指引起一个或多个对象的一个或多个流程中状态之间进行转换、或一个或多个对象的一个或多个流程的创建、或一个或多个对象的一个或多个流程的销毁的外部输入;
第2步,流程引擎维护当前调度的流程列表,调度该列表中的流程,添加新流程,删除执行完毕的流程;
第3步,当流程引擎接收到一个事件时,首先分析该事件的来源,并调用当前所调度流程中与该事件的来源相对应的函数接口,流程引擎判断该事件是否满足该流程中状态之间进行转换、或流程创建、或流程销毁的条件;如果是则执行流程中状态之间的转换、或流程创建、或流程销毁,执行完毕后进入第4步,如果否则直接进入第4步;
第4步,流程引擎判断该事件所需操作的一个或多个流程是否已经全部执行完毕,如果是则返回第3步;如果否则将该事件所需操作的一个或多个流程中尚未执行的流程放入流程引擎所调度的流程列表之中再返回的3步。
本发明基于数据来源的流程引擎设计方法可以适用于简单或复杂的对象操作,也易于进行程序设计。
附图说明
图1是现有的一种流程引擎的设计方法的示意图;
图2是现有的另一种流程引擎的设计方法的示意图;
图3是本发明基于数据来源的流程引擎的设计方法的流程图。
具体实施方式
请参阅图3,本发明公开了一种基于数据来源的流程引擎设计方法,所述流程引擎操作一个或多个对象,每个对象具有一个或多个流程,每个流程包括至少两个状态及状态之间进行转换的条件;所述流程引擎设计方法包括如下步骤:
第1步,流程引擎归纳所有事件的来源为x种,并为每个流程提供x个函数接口,每个流程的一个函数接口对应于一种事件的来源;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于盛乐信息技术(上海)有限公司,未经盛乐信息技术(上海)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010614123.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于缓存的图标读取方法
- 下一篇:风扇固定装置
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置