摘自: http://news.csdn.net/n/20070820/107693.html
1、 工作流管理系统基本概念
近两年随着电子商务环境不断演进(例如阿里巴巴的B2B电子商务平台),从原来支持企业内部单系统的业务流程、到企业内部应用、服务的集成,再进一步向企业与合作伙伴之间业务交互,工作流正扮演着越来越重要的角色。
到底什么是工作流呢,笔者拿一个图来说明,如下图所示:
<shapetype coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f" id="_x0000_t75"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></path><lock v:ext="edit" aspectratio="t"></lock></shapetype>图1 工作流管理系统结构图
图1是工作流管理系统的一个基本组成结构,由流程建模工具、外部应用接口、任务管理工具、流程监控工具、组织建模工具、界面定义工具(电子表单工具)和内部核心引擎组成。
2、 工作流相关规范
Ø WFMC工作流管理联盟
工作流管理联盟在1993 年成立之后,颁布了一系列工作流管理系统相关标准和技术规范,包括工作流术语表[4]、工作流参考模型[5]、工作流管理系统各部分间协作的五个接口规格[6-9]、工作流产品的互操作性标准[10]等。其中接口一早期的标准为WPDL(Workflow Process Definition Language),后来这一接口的规范变更为XPDL(XML Process Definition Language)。XPDL是至今工作流领域最为重要的一个标准,目前大多数工作流引擎是依据该标准设计开发的。
Ø BPMI业务流程管理促进会
BPMI(Business Process Management Initiative,业务流程管理促进会)一直在积极推动BPM的标准化。它的目标是使各种类型以及不同行业的公司都可以跨越Internet、透过防火墙开发与操作涉及多个业务伙伴和应用的业务流程,通过建立流程设计、部署、执行、管理和优化的相关标准来促进BPM的发展。BPMI.org制定了许多开放标准,如业务流程建模语言(BPML-Business Process Modeling Language)[12]、业务流程查询语言(BPQL-Business Process Query Language)、业务流程建模标注(BPMN-Business Process Modeling Notation)[13]等。BPMI和WfMC在<chsdate year="2002" month="6" day="26" islunardate="False" isrocdate="False" w:st="on"><span lang="EN-US" style="font-size: 12pt;">2002</span><span style="font-size: 12pt; font-family: 宋体;">年</span><span lang="EN-US" style="font-size: 12pt;">6</span><span style="font-size: 12pt; font-family: 宋体;">月</span><span lang="EN-US" style="font-size: 12pt;">26</span><span style="font-size: 12pt; font-family: 宋体;">日</span></chsdate>宣布将合作制定业务流程和工作流标准,即采用BPML来描述工作流过程,同时采用XPDL所定义的工作流模型。
Ø BPEL业务流程执行语言
<chsdate year="2002" month="8" day="9" islunardate="False" isrocdate="False" w:st="on"><span lang="EN-US" style="font-size: 12pt; line-height: 150%;">2002</span><font face="Arial"><span style="font-size: 12pt; line-height: 150%; font-family: 宋体;">年</span><span lang="EN-US" style="font-size: 12pt; line-height: 150%;">8</span><span style="font-size: 12pt; line-height: 150%; font-family: 宋体;">月</span><span lang="EN-US" style="font-size: 12pt; line-height: 150%;">9</span><span style="font-size: 12pt; line-height: 150%; font-family: 宋体;">日</span></font></chsdate>,Microsoft、 BEA、 IBM、 SAP & Siebel联合提交发布了BPEL规范。 2003年4月BPEL规范提交给了OASIS(Organization for the Advancement of Structured Information Standards,结构化信息标准促进组织)更名为WSBPEL(Web Services Business Process Execution Language)规范[16], Sun Microsystems和甲骨文公司也相继加入了OASIS组织。此规范描述如何处理输入的消息,它不是一个关于业务流程规格化定义的规范。简单的说,可以将它看作XML形式的编程语言,提供将WSDL-Services组合成控制流的能力。此规范实际上BPM的规范,关于Workflow和BPM的区别笔者会在后续的文章中讲到。
除了上述三个主要的规范以外还有,OMG、WSCI、WSFL等规范,在此就不在赘述。
3、 工作流参考模型及解析
图2 WFMC工作流参考模型
图2是工作流管理联盟提出的工作流管理系统参考模型,包括5个接口和1个核心引擎,其中各个接口的具体含义如下:
Ø 接口1:工作流定义接口,为用户提供一种可视化的,可以对实际业务进行建模的工具,并生成业务过程的可被计算机处理的形式化描述。此接口的规范有WPDL、XPDL、BPEL(BPM定义规范)大多数的工作流产品都实现了此接口。
Ø 接口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 Hofstede、Bartosz Kiepuszewski、A. 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
通过上面4和5的分析,我们可以给出工作流流程的概念:工作流流程就是由多个活动节点(Activity) 通过工作流控制模式(例如顺序、并行分裂、排它选择、多路选择、多路合并等)连接起来形成一个有序且连续的流程。而引擎为每个活动节点按照各种参与者实体 模式(例如直接分配,基于角色、组、岗位的分配,基于组织关系的分配模式等)分配具体的参与者。为了使读者能对流程一个直观的认识,笔者给出一个典型的流 程图,如下所示:
分享到:
相关推荐
Activity 工作流入门旨在介绍工作流概念、工作流管理系统、Activiti 框架的核心组件和architecture。工作流管理系统(Workflow Management System, WfMS)是一个软件系统,负责定义和管理工作流程,并按照预定义的...
工作流入门必经的四个简单例子。 vacate主要说明基本使用。 UserModel说明如何同用户模型相结合。 ForkJoin主要说明Fork结点和Join结点的使用。 countersignature主要说明如何持久化和实现较复杂的task node控制,...
这两种模式为构建灵活多变的工作流提供了基础。 工作流的核心元素——活动,是构建工作流模型的基本砖石。开发者可以通过组合内置活动来创建所需的业务逻辑,同时也可以自定义活动以满足特定需求。Visual Studio ...
1. **流程定义**: 这是jbPM中的基础,用 BPMN 2.0 标准描述业务流程,包括流程图和流程定义XML文件(.bpmn20.xml)。 2. **流程实例**: 流程定义在实际运行时生成的实例,每个实例代表一个具体的流程执行。 3. **...
- **WfMS与工作流框架**:WfMS是一个完整的解决方案,而工作流框架则提供构建工作流应用的基础,允许开发者自定义和扩展。 2. **工作流引擎** - **工作流引擎**:它是工作流管理系统的核心组件,负责解析工作流...
"Activiti工作流入门详解教程" Activiti是一款基于Apache许可的开源BPM(Business Process Management,业务流程管理)框架,由Alfresco软件在2010年5月17日发布。Activiti提供了一个灵活、易扩展的可执行流程语言...
本教程将带你深入理解JBPM的核心概念,以及为何在IT行业中学习和应用工作流至关重要。 首先,让我们了解工作流的基本概念。工作流是指一系列相互关联的任务,这些任务按照一定的顺序执行,以完成一个业务过程。在...
文档详细易懂,尤其对于初学者很实用,从入门到熟练精通不成问题
总的来说,电路基本概念与定律是理解电路工作原理和进行电路分析的基础。掌握这些基础知识,能够帮助我们理解和设计各种电子系统,从简单的手电筒电路到复杂的通信和控制系统。通过深入学习和应用这些定律,可以解决...
根据提供的标题“poj pku图论、网络流入门题总结、汇总”及描述“很经典的图论,网络流入门的题目,值得一看啊~~其中有简单的解析”,本篇将对这些经典图论与网络流问题进行详细的分析和总结。通过梳理各题目及其...
强势天公式为:BARSLASTCOUNT((N日内净流入>REF(N日内净流入,1))>0 AND N日内净流入>0),弱势天公式为:BARSLASTCOUNT((N日内净流入(N日内净流入,1))>0 AND N日内净流入)。这两个指标可以反映市场的价格走势和市场...
什么是流程、工作流作用、Activiti背景简介、Activiti流程设计器安装、Activity环境搭建、通过HelloWorld掌握 Activiti操作流程的步奏、常见API使用、流程部署管理(发布流程、查看流程定义、删除流程、查看流程附件)...
电工基础是电气工程领域的基础知识,涉及电路的基本概念和原理,为理解和分析复杂电路提供理论基础。以下是基于提供的文件内容详细阐述的一些关键知识点: 1. **电路**:电路是由电源、负载、导线和控制器件组成的...
通达信指标公式源码资金净流入.doc 通达信指标公式源码中的资金净流入计算是基于技术指标的计算,通过对股票价格和交易量的分析,计算出股票的净流入资金。下面是对该指标公式的详细解释: 1. 买入信号计算:买:=...
财务会计与财务管理是企业管理的核心部分,它涉及到企业的经济活动记录、分析和决策。...在财务管理中,这些概念和原则是进行预算编制、成本控制、投资评估等各项工作的基础,对于企业健康发展至关重要。
会计是经济活动中的一项重要职能,涉及使用货币作为主要...以上即为《专升本会计基础重点概念.pdf》文件中所涉及的核心知识点,对于希望深入了解会计基础知识的学习者而言,这些概念是理解会计工作本质和流程的基础。
第四章的财务股价基础概念主要涉及财务分析中的关键术语和计算方法,如年金、复利、现值、终值、偿债基金、投资回收期、风险与回报的关系等。以下是对这些知识点的详细解释: 1. **年金**:年金是指一系列等额、...
基础概念中,租赁是承租人通过支付租金来使用出租人的资产,而出租人可能是资产的制造商或独立的租赁公司。租赁协议规定了双方的权利和义务,例如承租人使用资产的权益和定期支付租金的责任。 经营性租赁是一种短期...
例如,信息技术与教育的深度融合,物理学中场概念在教育研究中的应用,以及基于哲学三螺旋理论的跨学科合作,都是高等教育学科发展的新动向。 在新的发展时期,跨学科知识的引入和知识扩散的探讨,成为了理解高等...
本篇PPT详细介绍了财务会计的基本概念和核算管理的基础知识。 首先,财务会计报告的目标是向各类报告使用者,如股东、债权人、政府及社会公众等,提供关于企业财务状况、经营成果和现金流量的会计信息,帮助他们...