最近在用K2 Blackpearl开发工作流的项目,但是网上关于这方面的资料很少,几乎找不到什么很好的帮助。下面是分享一位大虾的文章,提供给大家参考。
首先在这里感谢原创的分享(http://blog.csdn.net/shanyou/article/details/4681127),谢谢!
工作流定义: The automation of a business process, in whole or part, during which documents, information or tasks are passed from one participant to another for action, according to a set of procedural rules. - The Workflow Management Coalition (WfMC) . 把文档,信息,任务从一个参与者遵照一定的规则传递到另一个参与者的自动的部分或全部过程。-工作流标准组织
业务流程管理:Adding Integration to the above definition. Integration with systems, organizations and applications. Some analysts and vendors refer to this as Business Process Management (BPM). 也就是把把整合的概念加到上述工作流定义中。把系统、组织结构、程序整合到一起。
所谓BPM(Business Process Management), 即业务流程管理,是指根据业务环境的变化,推进人与人之间、人与系统之间以及系统与系统之间的整合及调整的经营方法与解决方案的IT工具。业务流程管理应该包括"建模-实施-监控-管理"等过程,要具备其所需的所有服务与工具才能叫作BPM。
现在的信息系统开发方式的缺点在于对需求表达不清晰、效率不高。在这种思维方式下流程被固化在系统中,企业不能随着商业环境的变化而方便迅速地改变业务流程,而企业环境的变化促使企业必须快速地调整业务来响应。实时性企业将敏捷地使用最新信息,以积极地消除其关键性业务流程中的管理与执行层面出现的低效率延迟。BPM的出现正是为了解决企业流程实时改变所带来的敏捷性、实时效果评估、资源整合与优化等问题,而这些问题是不能为传统的OA和工作流所解决的。
通过BPM,可以对业务流程进行自动化,并通过流程的分析及监控功能,对业务进行整合及计量,从业务角度、组织角度、IT角度都可得到可量化的改善效果,这种效果随着管理者通过BPM分析与优化流程,将越来越显著。
完整的BPM系统需由图形化流程设计环境、流程管理与监控、BPM引擎、使用者执行环境以及整合各种资源的底层EAI平台等主要元素所架构而成。SOA是一种架构方法,BPM则是一组流程协调管理理念。一般来说,BPM基于SOA(Service Oriented Architecture)架构。BPM通过捆绑其他应用系统的服务来制作并提供跨应用系统的BPM流程,也可以组合各个单纯的业务服务生成新的服务,对其基本要素进行模块化管理,并且可以循环使用。
它的运作是分布式的:多数企业流程都是由多个参与者共同运行,参与者可能来自不同办公室,甚至不同的地域区域,打破部门藩篱,甚至跨越公司的疆界;因此,跨因特网环境的应用系统支持,以及网络环境下的安全性,都必须列入考量。
它可以进行工作协调与应用程序集成:大部分的企业流程并不只是运行单一业务功能,而是多个业务功能互相协调后的成果;因此,原本独立支持某项业务运作的应用系统,也必须跟其他业务的应用系统相互集成。
它是动态的系统:企业流程中的各项元素经常动态改变。工作串连方式会随着环境改变、人员角色扮演会异动,工作的运行地点也会改变。因此,BPM环境中的应用程序模块,必须演化成快速适应变动的动态系统,可以轻易透过设置或配置的改变行为模式,甚至调整运行地点,以因应企业流程的变动。
它的构成元素种类繁多而复杂:BPM系统内含分布于各模块的企业逻辑与规则、各种不同安装与监管模式的应用模块,以及众多模块之间的串联与相依关系设置。因此,BPM环境中的软件模块,需要让模块变得可以被BPM配置机制管理,这包含模块的启用停用、健康状态回报,以及系统安全政策,都应有一致的管理方式与技术标准。如此,整个复杂的BPM环境运作才可列入掌握而不致失控。
它可以渐进式地成长:企业可以从最简单的BPM活动开始着手,再演进到成熟复杂的BPM系统;因此,整个系统架构必须能提供清楚的进步蓝图,允许企业按部就班投入IT资源,并逐渐提升BPM成熟度来运行BPM。
在上面描述的BPM的五个特征,每个都和SOA有千丝万缕的联系。灵活地结合运用BPM与SOA,才能使企业的业务流程变得更加高效,企业IT架构变得更加敏捷。