JBPM——工作流概念

一、概念

工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现”。具体的说工作流表达了一个抽象的流程定义,之所以说是抽象,因为它没有表示确切的执行者,比如某借款人被具体化为张三,部门主管成为张三的部门经理李四,而财务明确为王五的时候,这个流程定义就被具体化,成为一个流程实例。此外过程中的相关人员我们称之为参与者Actor,过程需要参与者介入的环节称之为Task,每—个任务在流程实例中的具体化称之为任务实例,从一个任务结点到另一个任务结点转为叫做流转(Transition),在流程中,由程序预先设定的行为如发邮件,我们称之为活动(Action)。

二、理解

尽管我们可以从书上、网络上、博客上得到许多关于工作流的定义、概念和资料,然而对于一个没有深刻的对面向对象概念的初学者来说要理解工作流还是有一定难度的。

首先来说假如我们在系统中不用工作流只是简单的使用面向对象技术编程的话,那么我们所敲的代码所实现的功能只是对系统的业务的具体实现,值得夸奖的是由于系统中采用的面向对象的技术增强了系统的灵活性,使得系统后期的可维护性、可扩展性大大增强。例如在系统中多使用一些设计模式如工厂+策略,这样就可以减少系统中对象间的耦合度,通过面向接口编程为具体的一些业务逻辑提供一个可实现的接口,为业务扩展预留接口。然而现实中面对一些需求我们可能需要实现一个这样的功能:几个独立的功能模块人选几个就可以实现一个业务,而这些业务往往是经常变动的,需要用户自己来决定是什么样的业务需要,换句话说用户只需要通过简单的配置就可以随意设置、更改业务的执行,包括业务功能的添加与减少、功能模块之间的调用顺序以及涉及到的一些资源信息。

从抽象的角度来说工作流要做的是对工作流程及其各操作步骤之间业务规则的抽象、概括、描述。通过工作流建模将工作流程中的前后组织在一起的逻辑和规则,在计算机中以恰当的模型进行表示并对其实施计算。所以工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档信息或者任务。工作流管理系统的主要功能是通过计算机技术的支持去定义、执行和管理工作流,协调工作流执行过程中工作之间以及群体成员之间的信息交互。通俗的说工作流是对一种业务流程的抽象,只不过当需要的时候根据具体的需求来实例化我们的业务流程,而这个过程是是由用户来完成的而不再是我们程序
开发人员或系统维护人员。

三、JBPM工作流引擎

jBpm是一个灵活可扩展的工作流管理系统。作为 jBpm运行时server输入的业务流程使用简单强大的语言表达并打包在流程档案中。jBpm将工作流应用开发的便利性和杰出的企业应用集成(EAI)能力结合了起来。jBpm包括一个Web应用程序和一个日程安排程序。jBpm是一组J2SE组件,可以作为J2EE应用集群部署。

JBPM的业务逻辑定义没有采用目前的一些规范,如WfMC´s XPDL, BPML, ebXML, BPEL4WS等,而是采用了它自己定义的JBoss jBPM Process definition language (jPdl)。jPdl认为一个业务流程可以被看作是一个UML状态图。jPdl就是详细定义了这个状态图的每个部分,如起始、结束状态,以及状态之间的转换,通过图型化的流程定义,直观地描述业务流程。

jBPM的另一个特色是它使用Hibernate来管理它的数据库。Hibernate是目前Java领域非常流行的一种数据存储层解决方案,只要是
Hibernate 支持的数据库, jBPM 也就支持。通过Hibernate,jBPM将数据的管理职能分离出去,自己专注于业务逻辑的处理。

四、总结

工作流到底有什么好处?什么样的项目需要用工作流,什么样的不适合用工作流?好的工作流引擎不但能帮助用户实现价值,同时又能灵活处理用户认识发展过程中一些不一定合适的需求。
末端需求的实现能力才能真正体现工作流引擎的强大。用使用工作流的好处是,高可维护性以及扩展性。如果你这个系统中只用到了一个流程,且变动的可能性不大,基本不需要考虑工作流。其实说白了该不该使用工作流还得看系统中涉及到的业务是不是工作流。

时间: 2024-07-28 16:20:32

JBPM——工作流概念的相关文章

JBPM工作流

1.工作流 工作流是一项分离业务操作和系统流程的技术.工作流由实体(Entity).参与者(Participant).流程定义(Flow Definition).工作流引擎(Engine) 四部分组成. ① 实体是工作流的主体,是需要随着工作流一起流动的物件(Object).例如,在一个采购申请批准流程中,实体就是采购申请单;在公文审批流程中,实体就是公文. ② 参与者是各个处理步骤中的责任人,可能是人,也可能是某个职能部门,还可能是某个自动化的设备; ③ 流程定义是预定义的工作步骤,它规定了实

转发 JBPM工作流小结

JBoss 题记:某部门领导有天突发奇想,把我们几个人叫过去,曰:最近出去开会,老有人推销自己的工作流产品,说的这好那好,你们几个给我研究研究.正好刚做完的xxx子系统里有一个申请审批的流程,你们按这个需求,把系统改成jbpm工作流试试.一定要搞清楚,引入工作流能不能减少我们开发部门的工作量. 于是,4个啥也不懂的人,忙碌的两周(实际时间大概是一周不到,因为每个人都一直有其他项目的工作)开始了. 也许是我们几个的水平不行,最后写了这么一个报告,结论是一般都会增加工作量. JBPM工作流小结 经过

BOS项目 第9天(activiti工作流第一天,工作流概念、工作流所需要的23张表、eclipse安装流程设计插件、流程api基本操作)

BOS项目笔记 第9天 今天内容安排: 1.工作流概念 2.安装流程设计器插件(eclipse)----设计流程图 3.创建activiti数据库(23张表) 4.activiti的API操作流程 1. 工作流概念 工作流(Workflow),就是"业务过程的部分或整体在计算机应用环境下的自动化",它主要解决的是"使在多个参与者之间按照某种预定义的规则传递文档.信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现". 工作流管理系统(Workf

Jbpm工作流(一)

了解一下什么是Jbpm及特点. jBPM,全称是Java Business Process Management,是一种基于J2EE的轻量级工作流管理系统.jBPM是公开源代码项目,它使用要遵循 Apache License.jBPM在2004年10月18日,发布了2.0版本,并在同一天加入了JBoss,成为了JBoss企业中间件平台的一个组成部分,它的名称也改成JBoss jBPM. jBPM最大的特色就是它的商务逻辑定义没有采用目前的一些规范,如WfMC′s XPDL, BPML, ebXM

JBPM工作流(一)——实现一个简单的工作流例子

一.JBPM定义 JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理.工作流.服务协作等领域的一个开源的.灵活的.易扩展的可执行流程语言框架. 二.为什么用JBPM 业务分析师和开发人员使用的是同一种语言来交谈,大大降低了开发的风险,如果要开发一个项目,速度也更快了,因为开发人员不用再将用户需求转化成软件设计了.其次,JBPM采用的不是一般的开发工具,而是自己的图形化开发工具,非常方便随时了解和掌握运行的进程.最后,JBPM的

python调用Java代码,完毕JBPM工作流application

1.缘由 有一庞大Python django webproject,要引入工作流引擎,像OA一样.方便的流程控制与管理.Python或django关于工作流的开源插件,稀少,并且弱爆了,终于选用java的开源框架JBPM.为了使Pythonproject整合Java框架,尝试过jbpm-console提供的 REST, 以失败告终,终于选用Python 直接调用Java代码.操作JBPM. 1.1pythonprojectREST与JBPM Workbench交互 失败 REST URL格式 h

jbpm 工作流(二)

1           概述 本文主要介绍如何将JBPM+Struts+Spring+Hibernate整合在一块.并通过一个简单实例来说明.此实例为一个申请审批的简单流程,并将申请人和审批人记录到数据库中,流程为start----申请----审批----end,中间无退回,无分支,只是看一下jbpm的流程设计,本文将jbpm和struts/spring/hibernate结合在一块做为一个完整的项目来叙述. 通过processdefinition.xml的可视图,可了解一下流程图: 2    

JBPM工作流(八)——流程实例(PI)Process Instance

/** * 流程实例 *    *  启动流程实例 *    *  完成任务 *    *  查询 *      *  查询流程实例 *      *  查询任务 *          *  查询正在执行的任务 *            *  查询所有的正在执行的任务 *            *  根据任务的执行人查询正在执行的任务 *            *  根据executionId查询正在执行的任务 *            *  根据piid查询正在执行的任务 *         

【Java EE 学习第58-67天】【OA项目练习】【SSH整合JBPM工作流】【JBPM项目实战】

一.SSH整合JBPM JBPM基础见http://www.cnblogs.com/kuangdaoyizhimei/p/4981551.html 现在将要实现SSH和JBPM的整合. 1.添加jar包 (1)jbpm项目/lib目录下的所有jar包和根目录下的jbpm.jar包放入/WEB-INF/lib文件夹下,同时删除tomcat服务器/lib文件夹中的el-api.jar包. 注意:必须删除el-api.jar包,该jar包和jbpm项目中需要使用到的三个jar包冲突了:juel-api