打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Fire Workflow 模型的设计思想
XPDL、BPMN、BPEL 的流程模型都有一个共同的特点,就是没有区分模型中的工作流逻辑和业务逻辑。

    业务逻辑是指某个具体的业务操作,例如填写一张表单,调用一个WebService 服务,发送一个消息等等。

    工作流逻辑是指对这些业务逻辑的某种编排方案,例如先执行哪个业务操作,然后执行哪个业务操作,哪些可以并行等等。

FireWorkflow 模型的核心思想是将两种逻辑解偶。

    下面以一个请假流程来讲解一下这两种模型的区别,该业务规则如下:

    首先由请假人提出申请;请假申请提交到部门经理处审批;审批通过后到人力资源部登记备案。(暂且不考虑审批不通过的情况。)

    这个业务用XPDL 建模,其流程图如下。这个流程图和UML 中的活动图差别不大,都是从宏观的抽象的层次描述了业务。我认为这种模型便于分析但是不利于执行。其根源在于流程元素的职责划分不清,在XPDL 中,Activity承担了太多的职责,可以代表一个人工活动,也可以代表一个自动的程序调用,还可以代表一个子流程,还可以是一个复杂的路由等等。

图ii-2-1 XPDLworkflow process

    如果用FPDL 建模,则稍有不同。FPDL 认为一个系统是由工作流子系统和业务子系统构成,流程的执行是实际就是控制权在这两个子系统之间转移。如果用圆圈表示工作流子系统的操作,用方框业表示务子系统的操作。那么请假流程如下图。

图ii-2-2FPDL workflow process

该流程图的执行过程描述如下:

    首先,工作流子系统启动一个新的业务流程实例,然后创建一个新的任务实例——“申请”,并将控制权交给业务子系统,业务子系统等待申请人填写表单。

    申请人完成表单后,控制权再次被交给工作流子系统,由它决定下一步的路由。这个工作是由称为Synchronizer 的元素完成的(图中标有"S" 的圆圈)。在这个业务示例中,它通过计算得出下一步操作是“部门经理审批”。于是创建一个名字叫做“部门经理审批”的任务实例,并将控制权交给业务子系统,业务子系统等待部门经理做审批操作。

    部门经理完成后,控制权又被转移到工作流子系统,由工作流子系统决定下一步,如此反复直到流程实例终结。

    上图转换成一般的FPDL 流程图如下

图ii-2-3FPDLworkflow process-2

    FPDL 似乎把问题复杂化了,实际上不是的,FPDL 把是把职责分解了。在FPDL 中,Activity 代表业务活动,完全不关心工作流如何分支、汇聚等工作,所有的工作流相关的运算全部委托给Synchronizer 处理,由他来决定路由。

    FPDL 这种清晰的职责划分在复杂的流程中体现出强大的优势,例如,把上述案例再丰富一下:如果请假天数不大于3天,则部门经理审批即可;如果大于3天,则必须提交给公司经理审批。

    这个流程用XPDL 建模如下图。在这个图中“部门经理审批Activity ”需要执行分支运算,“人力资源备案Activity ”必须执行汇聚运算。

图ii-2-4

    如果用FPDL 建模,流程图如下。在这个流程图中,各个流程元素的职责更加清晰,代表业务活动的Activity 仅完成与业务相关的操作,分支汇聚等工作流运算由Synchronizer 完成,如图中的S1 和S2 。

图ii-2-5

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
BlogJava - 成都心情 - 工作流理论总结
浅析C#工作流以及功能
Fire Workflow 的Eclispe设计器插件
博客园 - TJDLUT - 基于工作流程系统日志生成业务流程模型
《管理信息系统B》复习纲要
过程建模EPC,我拿什么拯救你
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服