工作流普及风暴—基础概念篇

 
您的位置: CSDN 首页−> 新闻频道−>正文
工作流普及风暴—基础概念篇
2007.08.20       共有评论(0)条 发表评论   [收藏到我的网摘]
O 接口4:工作流引擎协作接口,是不同的工作流引擎之间进行协作的接口规范,此接口WFMC定义的不是很详细,不同厂商的工作流引擎直接进行协作也存在大量的困难,因此实现此接口规范的工作流引擎产品也极少。基于角色/组分配模式:在工作流设计期,直接为某个活动节点指定某个角色或组为参与者;
用友软件急聘.NET开发工程师 接口
用友软件一直秉持“人才为重”的理念 我们盛情邀您加入……
job.csdn.net
主机完全DIY,域名免费试用 接口
时代互联100M主机 216元/年
www.now.cn
青娱乐招聘高级运维工程师 接口
“青娱乐”Qyule.com是国内领先的网络视频网
job.csdn.net
<script type=text/javascript>show_ads_zone(13);</script>

  1、  工作流管理系统基本概念

近两年随着电子商务环境不断演进(例如阿里巴巴的B2B电子商务平台),从原来支持企业内部单系统的业务流程、到企业内部应用、服务的集成,再进一步向企业与合作伙伴之间业务交互,工作流正扮演着越来越重要的角色。
到底什么是工作流呢,笔者拿一个图来说明,如下图所示:
图1 工作流管理系统结构图
图1是工作流管理系统的一个基本组成结构,由流程 建模 工具、外部应用接口、任务管理工具、流程监控工具、组织建模工具、界面定义工具(电子表单工具)和内部核心引擎组成。
2、  工作流相关规范
Ø        WFMC工作流管理联盟
工作流管理联盟在1993 年成立之后,颁布了一系列工作流管理系统相关标准和技术规范,包括工作流术语表[4]、工作流参考模型[5]、工作流管理系统各部分间协作的五个接口规格[6-9]、工作流产品的互操作性标准[10]等。其中接口一早期的标准为WPDLWorkflow Process Definition Language),后来这一接口的规范变更为XPDLXML Process Definition Language)。XPDL是至今工作流领域最为重要的一个标准,目前大多数工作流引擎是依据该标准设计开发的。
Ø        BPMI业务流程管理促进会
BPMIBusiness Process Management Initiative,业务流程管理促进会)一直在积极推动BPM的标准化。它的目标是使各种类型以及不同行业的公司都可以跨越Internet、透过防火墙开发与操作涉及多个业务伙伴和应用的业务流程,通过建立流程设计、部署、执行、管理和优化的相关标准来促进BPM的发展。BPMI.org制定了许多开放标准,如业务流程建模语言(BPMLBusiness Process Modeling Language[12]、业务流程查询语言(BPQLBusiness Process Query Language)、业务流程建模标注(BPMNBusiness Process Modeling Notation[13]等。BPMIWfMC2002626宣布将合作制定业务流程和工作流标准,即采用BPML来描述工作流过程,同时采用XPDL所定义的工作流模型。
Ø        BPEL业务流程执行语言
200289Microsoft BEA IBM SAP & Siebel联合提交发布了BPEL规范。 20034BPEL规范提交给了OASISOrganization for the Advancement of Structured Information Standards,结构化信息标准促进组织)更名为WSBPELWeb Services Business Process Execution Language)规范[16] Sun Microsystems和甲骨文公司也相继加入了OASIS组织。此规范描述如何处理输入的消息,它不是一个关于业务流程规格化定义的规范。简单的说,可以将它看作XML形式的编程语言,提供将WSDL-Services组合成控制流的能力。此规范实际上BPM的规范,关于WorkflowBPM的区别笔者会在后续的文章中讲到。
除了上述三个主要的规范以外还有,OMGWSCIWSFL等规范,在此就不在赘述。
3、  工作流参考模型及解析
图2 WFMC工作流参考模型
2是工作流管理联盟提出的工作流管理系统参考模型,包括5个接口和1个核心引擎,其中各个接口的具体含义如下:
Ø        接口1:工作流定义接口,为用户提供一种可视化的,可以对实际业务进行建模的工具,并生成业务过程的可被计算机处理的形式化描述。此接口的规范有WPDLXPDLBPELBPM定义规范)大多数的工作流产品都实现了此接口。
Ø        接口2:工作流客户应用接口,它给用户提供一种手段,以处理流程运行过程中需要人工干预的任务(实际上就是工作项workitem)。工作流管理系统负责维护这个工作项列表。
Ø        接口3:工作流调用应用接口,工作流引擎调用外部业务应用的规范,例如在流程执行的过程中去调用业务系统提供的接口处理业务数据等。此接口各个工作流产品实现的不尽相同,它和具体的工作流产品的实现语言和架构相关,例如本公司工作流产品就可以支持对javabean的调用,对webservice的调用(通过webservice技术可以调用任何异构的,不同语言实现的业务应用),对xml bean的事件调用,对spring bean的调用等。
Ø        接口4:工作流引擎协作接口,是不同的工作流引擎之间进行协作的接口规范,此接口WFMC定义的不是很详细,不同厂商的工作流引擎直接进行协作也存在大量的困难,因此实现此接口规范的工作流引擎产品也极少。
Ø        接口5:管理监控接口,其功能是对工作流管理系统中所有实例的状态进行监控与管理,如组织机构管理、实例监控管理、统计分析管理、资源控制等。
  工作流引擎:它是工作流管理系统的核心,工作流引擎对使用工作流模型描述的过程进行初始化、调度和监控过程中每个活动的执行,在需要人工介入的场合完成计算机应用软件与操作人员的交互。另外它的另外一个重要的功能是完成与应用软件及操作人员的交互。
4、  工作流引擎内部对象
图3 工作流引擎实例关系图
3是工作流引擎的内部实例对象关系图,一个流程实例(InstProcess)由一个流程实例变量(InstProcessVariable)、1…*个活动实例(InstActivity)、1…*个转移实例(InstTransition)组成,而一个活动实例包括一个活动实例变量(InstActivityVariable)和1…*个工作项实例(Workitem)组成。
5、  工作流之控制模式
工作流控制模式是由[W.M.P. van der Aalst]A.H.M. ter HofstedeBartosz KiepuszewskiA. P. Barros等人于2000年提出的一个概念。他们一共总结了21种工作流模式。包括:顺序(sequence)、并行分裂(Parallel Split))、同步(Synchronization)、排它选择(Exclusive Choice、简单合并(Simple Merge、多路选择(Multiple Choice)、多路合并(Multiple Merge)、路径鉴别器(Discriminator)、M中选N合并(N-out-of-M Join)、同步合并(Synchronising Join)、任意循环(Arbitrary Cycles)、绝对终止(Implicit Termination)、多实例(设计时已知实例数目)、多实例(运行时才知实例数目)、多实例(无预知)、多实例(要求同步的多实例)、延期选择(Deferred Choice)、交叉路由(Interleaved Routing)、里程碑(Milestone)、取消任务(Cancel Activity)、取消流程(Cancel Case)。以上就是著名的工作流21种模式。详细的参考资料参见:http://www.workflowpatterns.com/patterns/control/index.php  
6、  工作流之资源模式
工作流资源包括参与实体资源、外部应用资源
参与者实体模式,包括直接分配(Direct Allocation)、基于角色/组分配(Role-Based/Group-Based Allocation)、基于岗位分配(Position-Based Allocation)、延期分配/动态分配(Deferred Allocation/Dynamic Allocation)、基于规则分配(Rule-Based Allocation)、基于能力的分配(Capability-Based Allocation)、基于组织关系分配(Organisational Allocation)、基于历史分配(History-Based Allocation)、轮转法分配(Round Robin Allocation)、竞争分配(Competitive Allocation)、委派(Delegation)、跳跃(Skip)、重做(Redo
直接分配模式:在工作流设计期,直接为某个活动节点指定具体的用户为参与者;
基于角色/组分配模式:在工作流设计期,直接为某个活动节点指定某个角色或组为参与者;
基于岗位分配模式:在工作流设计期,为某个活动分配一个具体的岗位;
延期/动态分配模式:在运行期动态的分配某个参与实体给某个活动节点;
基于规则的分配模式:在设计期或运行期,根据某个具体的规则来决定某个活动节点的参与者,此规则可以由规则引擎(例如DRools)来运算,也可以由xpath来查询,或者有某个具体的运算逻辑(在活动节点调用业务应用,例如javabean来实现);
基于能力的分配模式:要求某个活动的参与者实体必须具备特定的条件;
基于组织关系分配:基于当前参与者的职位以及与其它组织资源的关系(例如请假流程中,程序员请假会自动路由给项目经理,项目经理请假会路由给部门经理,然后依次给根据行政关系自动分配参与者);
基于历史分配模式:当前活动节点的参与者为前续某个已经执行过的活动节点的参与者,此模式在电子政务的审批流程中经常会用到,例如某个工作项由秘书办理后发给领导,然后又从领导处返回个秘书;
轮转法分配模式:在运行期按照轮转法进行分配,轮转法大家应该在负载均衡的解决方案中经常看到;
竞争分配模式:活动节点的参与者有多个人,多个人共同竞争此活动,某个人竟得此活动后,其他的参与者不能再竞争;
另外还有委派、跳跃、重做等模式,上面给出了最常用的参与者模式。
对于资源模式参见:http://www.workflowpatterns.com/patterns/resource/index.php
通过上面45的分析,我们可以给出工作流流程的概念:工作流流程就是由多个活动节点(Activity)通过工作流控制模式(例如顺序、并行分裂、排它选择、多路选择、多路合并等)连接起来形成一个有序且连续的流程。而引擎为每个活动节点按照各种参与者实体模式(例如直接分配,基于角色、组、岗位的分配,基于组织关系的分配模式等)分配具体的参与者。为了使读者能对流程一个直观的认识,笔者给出一个典型的流程图,如下所示:
发表评论 0条】
media="all" href="http://news.csdn.net/css/tagegg_front.css" type="text/css" rel="stylesheet" />
其他文章
相关文章
<script> remark_para_SiteId = 'f5acec92-3be6-4494-961c-86c46a335615'; remark_para_PCId = 107693; remark_para_Title = '%e5%b7%a5%e4%bd%9c%e6%b5%81%e6%99%ae%e5%8f%8a%e9%a3%8e%e6%9a%b4%e2%80%94%e5%9f%ba%e7%a1%80%e6%a6%82%e5%bf%b5%e7%af%87'; remark_para_Tags = escape(' , 分配,工作流,接口,实例,模式,流程,参与者,引擎,节点,规范, , '); remark_para_IframeHeight = '330px'; //remark_para_IframeWidth = '50%'; remark_para_Charset = "utf-8";; remark_para_CountElemId = "remark_count1|remark_count2"; remark_para_PostAreaId = "Ian_PostRemarkArea"; remark_para_List_PanelId = "Ian_RemarkList"; remark_para_Top_Id = "Ian_RemarkTop"; remark_para_PostAreaRandomImageWidth = "90";//"120"; remark_para_PostAreaRandomImageHeight = "25";//"30"; remark_para_PostAreaRandomImageFontSize = "15";//"15"; remark_para_PostAreaStyle = 'http://remark2.csdn.net/demo/csdnnews/rview.css'; remark_para_List_PageSize =5; </script>
最近评论
href="http://remark2.csdn.net/demo/csdnnews/rviewli.css" type="text/css" rel="stylesheet" />
热点评论

<script type=text/javascript>show_ads_zone(12);</script><script language=JavaScript type=text/javascript> </script>

热点新闻
  • <script type=text/javascript>show_ads_zone(11);</script>
  • <script type=text/javascript>show_ads_zone(9);</script>
热点文章

<script type=text/javascript>show_ads_zone(10);</script>

最新招聘更多
<script language=javascript> ad_width=468; ad_height=60; adcss=2; unionuser=16; tags=' , 分配,工作流,接口,实例,模式,流程,参与者,引擎,节点,规范, , '; ad_type='j'; count=3; </script> <script>document.write(" ");</script>

 
网站简介广告服务网站地图帮助联系方式诚聘英才English- 问题报告
北京百联美达美数码科技有限公司  版权所有  京 ICP 证 020026 号
Copyright © 2000-2006, CSDN.NET, All Rights Reserved

 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

wxexplorer

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值