一、概念

    
    工作流(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将数据的管理职能分离出去,自己专注于业务逻辑的处理。


四、总结

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

        

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

  1. JBPM工作流入门总结

    关于JBPM工作流 1.工作流 工作流是一项分离业务操作和系统流程的技术.工作流由实体(Entity).参与者(Participant).流程定义(Flow Definition).工作流引擎(Eng ...

  2. 转发 JBPM工作流小结

    JBoss 题记:某部门领导有天突发奇想,把我们几个人叫过去,曰:最近出去开会,老有人推销自己的工作流产品,说的这好那好,你们几个给我研究研究.正好刚做完的xxx子系统里有一个申请审批的流程,你们按这 ...

  3. Jbpm工作流(一)

    了解一下什么是Jbpm及特点. jBPM,全称是Java Business Process Management,是一种基于J2EE的轻量级工作流管理系统.jBPM是公开源代码项目,它使用要遵循 Ap ...

  4. JBPM工作流

    一.开发环境的搭建 1.下载Jbpm4.4 1.1下载地址: https://sourceforge.net/projects/jbpm/files/jBPM%204/jbpm-4.4/ 1.2解压后 ...

  5. 【Java EE 学习 67 上】【OA项目练习】【JBPM工作流的使用】

    OA项目中有极大可能性使用到JBPM框架解决流程控制问题,比如请假流程.报销流程等等. JBPM:JBoss Business Process Management,翻译过来就是业务流程管理.实际上就 ...

  6. jbpm 工作流(二)

    1           概述 本文主要介绍如何将JBPM+Struts+Spring+Hibernate整合在一块.并通过一个简单实例来说明.此实例为一个申请审批的简单流程,并将申请人和审批人记录到数 ...

  7. JBPM工作流(七)——详解流程图

    概念: 流程图的组成: a. 活动 Activity / 节点 Node b. 流转 Transition / 连线(单向箭头) c. 事件 1.流转(Transition) a) 一般情况一个活动中 ...

  8. JBPM工作流(五)——执行流程实例

    概念: ProcessInstance,流程实例:代表流程定义的一次执行.如:张三昨天按请假流程请了一次假.一个流程实例包括了所有运行阶段,其中最典型的属性就是跟踪当前节点的指针,如下图. Execu ...

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

    一.JBPM定义 JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理.工作流.服务协作等领域的一个开源的.灵活的.易扩展的可执行流 ...

随机推荐

  1. mysql-cluster 环境安装&配置

    一.mysql-cluster 的介绍: 1.说心里话mysql-cluster这货性能上是不行的,之前一个同事测试了来的结果是8个主机组成的mysql-cluster性能 上搞不过一个单机的mysq ...

  2. MYSQLDUMP参数详解(转)

    mysqldump客户端可用来转储数据库或搜集数据库进行备份或将数据转移到另一个SQL服务器(不一定是一个MySQL服务器).转储包含创建表和/或装载表的SQL语句. 如果你在服务器上进行备份,并且表 ...

  3. Spring Boot(一):初步认识

    简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置 ...

  4. linux内存管理之DMA

    说起DMA我们并不陌生,但是实际编程中去用的人不多吧,最多就是网卡驱动里的环形buffer,再有就是设备的dma,下面我们就分析分析.   DMA用来在设备内存和内存之间直接数据交互.而无需cpu干预 ...

  5. [na]锐起无盘机并发部署多台windows

    小时候很好奇这个技术,也并无卵,只是为了遂儿时愿, 用到锐起无盘部署,支持win7哦: 视频教程: 拓展:网吧电脑为什么没有硬盘? 网吧电脑没有硬盘是怎么运行的? 所需软件: https://yunp ...

  6. CyclicBarrier分析与实例

    一,介绍 ​CyclicBarrier是一个保持多个线程共享同一个状态的工具类. 也就是说在多线程环境下,能够通过设定某一个状态来达到线程之间的同步.这个类有两个有參构造方法.各自是CyclicBar ...

  7. 中间件监控之tomcat

    中间件主要目的:能够支持更多人去访问 一.Tomcat 介绍 Tomcat 是一个小型的轻量级应用服务器,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP页面和Serv ...

  8. tornado日志使用详解

    1.需求 将http访问记录,程序自定义日志输出到文件,按天分割,保留最近30天的日志. 2.使用示例 init_logging("%s/QYK.%s.%s.log" % (log ...

  9. ny716 River Crossing

    River Crossing 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 Afandi is herding N sheep across the expanses ...

  10. JDK Logger 简介 (zhuan)

    http://antlove.iteye.com/blog/1924832 ******************************************* 一 简述 java.util.log ...