协同时光的立体工作流
协同时光是最早提供立体工作流的厂家,立体工作流对基于petri网的信牌驱动模型进行扩充,使其在运行过程中能够实时响应工作流事件,也就是说在基于状态的基础上,再增加一维:事件。协同时光称这种不仅基于状态驱动而且能够响应工作流事件的工作流模型为立体工作流。
(1)立体工作流为令牌驱动模型增添了主动行为能力。
(2)立体工作流表达能力增强。
(3)立体工作流提高了系统的交互性。
(4)商业产品的丰富的预设动作库,减轻了应用系统的开发量。
(5)使得更多的驻留在应用系统的程序可以独立出来,模块化,进而融入工作流引擎的运行中去。由工作流引擎处理预设动作,可以统一处理系统级的事情,比如事务、异常处理、性能等。
(6)满足了工作流系统与基于工作流的应用系统之间的松耦合要求。
(1)平面工作流
相应的把petri网工作流和不支持工作流事件的令牌驱动模型称为平面工作流。 对于令牌驱动模型这种基于状态的工作流模型,由于工作流引擎本身没有主动的行为能力,其本身是一个状态机,流程只能按照预设规则进行状态变化的工作流模型,我们称其为平面工作流。
平面工作流的特点就是基于状态,预设驱动,不能对工作流运行过程中的事件进行主动响应。而立体工作流在基于状态的基础上,对工作流事件进行响应,使其执行预定义的一些动作。立体工作流模型示意图如下:
事件模型示意图令牌驱动模型运行在二维平面上,通过在工作流事件的点上触发一些事件,使得工作流模型在这些点上能够执行一些动作。在令牌驱动模型流转的过程中,这些动作或同步或异步在第三维上运行。这样使得整个模型在一种立体状态下运行。立体运行的模型,反应更加丰富了,模型不仅可以从一种状态变化为另一种状态,而且在状态变化前、变化后等许多细致入微的点上,都可以添加动作代码,模型反应更加细致,表现力更丰富。
(2)立体驱动模型表达能力分析
对前面描述的场景案例,利用立体工作流模型可以按照如下的方式建模:
财务报销审批流程图
财务报销审批流程的事件设计图
为了实现要求的邮件提醒的功能,利用立体工作流技术,可以为每个工作项的“产生工作项之后”事件添加一个动作,为“填写报销单”这个活动的“产生工作项之后”事件添加一个名为mail的动作,该动作利用JavaScript脚本编写了一段发送邮件的代码。
在产生工作项之后,该事件被触发,动作被执行,则邮件被发出。从而实现了邮件提醒的功能。
至于第二个需求,要求发送消息与产生工作项同时进行,只要在“产生工作项之前”事件中添加一个动作,由该动作发送消息,并且设置动作的执行方式为“异步”,则动作执行与产生工作项就会并行执行。
这样 ,立体工作流就轻松解决平面工作流不好解决的问题。由上面的场景案例可以看出,立体工作流模型在保持信牌驱动模型良好的表达能力的同时,更进一步增强了模型的灵活性。
在模型的整个运行过程中,为用户的参与提供了入口,提供了人工干预、促进模型流转的能力。使得人与工作流模型的交互能力更加增强。
【责任编辑】:协同时光
【稿件来源】:协同时光
赞一个。。