1. 工作流概念

工作流(Workflow):就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。

工作流管理系统(Workflow Management System, WfMS):是一个软件系统,它完成工作量的定义和管理,并按照在系统中预先定义好的工作流规则进行工作流实例的执行。工作流管理系统不是企业的业务系统,而是为企业的业务系统的运行提供了一个软件的支撑环境。

工作流管理联盟(WfMC,Workflow Management Coalition)给出的关于工作流管理系统的定义是:工作流管理系统是一个软件系统,它通过执行经过计算的流程定义去支持一批专门设定的业务流程。工作流管理系统被用来定义、管理、和执行工作流程。

工作流管理系统的目标:管理工作的流程以确保工作在正确的时间被期望的人员所执行——在自动化进行的业务过程中插入人工的执行和干预。

2. Activiti简介

Activiti工作流框架,是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。Activiti基于Apache许可的开源BPM平台,创始人Tom Baeyens是JBoss jBPM的项目架构师,它特色是提供了eclipse插件,开发人员可以通过插件直接绘画出业务流程图。

                                             

2.1 工作流引擎

ProcessEngine对象,这是Activiti工作的核心。负责生成流程运行时的各种实例及数据、监控和管理流程的运行。

2.2 BPMN

业务流程建模与标注(Business Process Model and Notation,BPMN) ,描述流程的基本符号,包括这些图元如何组合成一个业务流程图(Business Process Diagram)。

3. eclipse的activiti插件安装

推荐在线安装:

help——》Install New Software...——》

  Name: Activiti BPMN 2.0 designer

  Location: http://activiti.org/designer/update/
注意:安装之后要勾选save选项,这样会在流程文件保存时自动生成一张流程图片。
                           

4. BPMN图元介绍

安装好插件之后,新建项目的时候可以直接新建Activiti 项目

新建完成之后,项目初始化如下

项目中要设计的BPMN流程图通常就是在diagrams文件夹下创建,新建生成bpmn后缀文件,我们可以通过右边的画板直接进行流程图的绘制。

BPMN基本元素包括了这些元素,如下图所示:

  • 泳道(Swimlanes):池和道;
  • 流对象(Flow Objects):包括事件、活动、网关,是BPMN的核心元素;
    • 两种事件:普通开始事件(NoneStart Event)和普通结束事件(None End Event);
    • 一种活动:任务(Task),其中包括了子流程任务(Sub-ProcessTask);
    • 两种网关:排他网关(Exclusive)和并发网关(Parallel);
  • 三种连接对象(Connecting Objects):序列流(Sequence Flow)、消息流(Message Flow)和关联(Association);
  • 人工信息(Artifacts):包括数据对象、组、注释(Annotation)。

4.1 泳道(Swimlanes)

使用泳道来区分不同部门或者不同参与者的功能和职责。泳道包含两种类别:池和道。使用池来表示流程的参与者,应用在公开流程和协作模型里。池与池之间的交互只能使用消息流表示。

我们使用道对池内的活动进行分组,我们可以根据活动所属的部门或办理所需的职责(角色)来对活动进行分组。

如果流程是私有流程并且活动没有分组的需要,那么通常我们会省略池。

4.2 流对象(Flow Objects)

流对象是定义业务流程的主要图形元素。它进一步细分为三个大的类别,分别是事件、活动和网关。具体到事件、活动和网关里,流对象有很多的类别,BPMN元素的复杂性体现在流对象的众多类别上。

  • 事件:发生在流程执行过程中的事情。
  • 活动:在流程执行过程中执行的工作。
  • 网关:控制流程的分支和聚合。

4.3 连接对象(Connecting Objects)

连接对象用来把各个流对象或流对象与其他信息连接起来,它分为三种类别:顺序流、消息流、关联。

  • 顺序流:表示流对象的前后执行顺序。
  • 消息流:表示公开流程或协作模型里参与者之间的消息、交互。
  • 关联:为流程中的元素关联信息或数据。

4.4 人工信息(Artifacts)

包括数据对象、组、注释(Annotation)。图片来源

 

(一)Activiti之——简介、插件安装及BPMN元素的更多相关文章

  1. activiti工作流之Eclipse的Eclipse BPMN 2.0 Designer无法安装或者(安装后无法重复打开*.bpmn)

    1.首先.既然学习activiti工作流,连官网和相应文件都没有下载就说不过去了 这是官网下载:http://www.activiti.org/download.html 2.对于下载后的activi ...

  2. Activity 学习(一) 插件安装篇

    目录 Ider下安装 Eclipse下安装 Ider安装图解 首先,创建一个普通的Java工程即可,然后按照下面流程进行: 1:点击菜单中的File(最左上角),选择settings 2:plugin ...

  3. 分布式搜索引擎ElasticSearch+Kibana (Marvel插件安装详解)

    在安装插件的过程中,尤其是安装Marvel插件遇到了很多问题,要下载license.Marvel-agent,又要下载安装Kibana 版本需求 Java 7 or later Elasticsear ...

  4. Java Gradle入门指南之简介、安装与任务管理

        这是一篇Java Gradle入门级的随笔,主要介绍Gradle的安装与基本语法,这些内容是理解和创建build.gradle的基础,关于Gradle各种插件的使用将会在其他随笔中介绍.    ...

  5. VMware vSphere 5.1 简介与安装

    虚拟化系列-VMware vSphere 5.1 简介与安装  标签: 虚拟化 esxi5.1 VMware vSphere 5.1 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 . ...

  6. ElasticSearch学习笔记-01 简介、安装、配置与核心概念

    一.简介 ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便.支持通过HTTP使用JSON进 ...

  7. Nutch搜索引擎(第2期)_ Solr简介及安装

    1.Solr简介 Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器.同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置.可扩展并对查询性能进行了优化 ...

  8. jBPM 6 开发 eclipse 插件安装

    jBPM 6 开发 eclipse 插件安装 概述 与之前的jBPM 5相比,jBPM 6 新引入的kjars及mavenized的特性,使流程开发设计与之前有了很大的不同,本文主要说明jBPM 6 ...

  9. Nutch之简介与安装

    初学Nutch之简介与安装 初学Nutch之简介与安装   1.Nutch简介 Nutch是一个由Java实 现的,开放源代码(open-source)的web搜索引擎.主要用于收集网页数据,然后对其 ...

随机推荐

  1. (3)三剑客之sed

    (1)基本介绍 1) 工作流程:sed每次处理一行内容,处理时,把当前处理的行存储在临时缓存区,称为模式空间,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕,直到内容处理完毕2 ...

  2. Centos7源码编译安装tengine1.5.1

    安装依赖包 yum install pcre pcre-devel openssl openssl-devel gcc make zlib-devel wget -y 下载和创建用户 mkdir /t ...

  3. centos6.5 中文输入法图标和提示都不见了【解决】

    原因python升级引起的 两步解决: # vi /usr/bin/ibus-setup # vi /usr/libexec/ibus-ui-gtk 把这两个文件中的exec python 修改为 e ...

  4. (7)python 函数和lambda表达式

    一.函数定义和调用 1.定义函数用def 2.函数注释 在函数体里的开头写上字符串,可以起到说明的作用 可以用函数名.__doc__的方式读取在函数开头加的字符串(双下划线) 内建的help()函数也 ...

  5. CF A.Mishka and Contest【双指针/模拟】

    [链接]:CF/4892 [题意]: 一个人解决n个问题,这个问题的值比k小, 每次只能解决最左边的或者最右边的问题 解决了就消失了.问这个人能解决多少个问题. [代码]: #include<b ...

  6. 51nod 编辑距离问题(动态规划)

    编辑距离问题 给定两个字符串S和T,对于T我们允许三种操作:(1) 在任意位置添加任意字符(2) 删除存在的任意字符(3) 修改任意字符 问最少操作多少次可以把字符串T变成S? 例如: S=  “AB ...

  7. linux历史命令

    "忘记历史的Linux用户注定要输入很多信息.” 这也让强有力的历史命令(包括Bash shell的历史变体)不仅在援引之前执行命令而不需重新输入它们时有用,在调用其它很少用到的命令时也有用 ...

  8. 简单的INSERT语句

    INSERT INTO 语句用来向数据表中插入数据,比如执行下面的语句就可以向T_Person表中插入一条数据: INSERT INTO T_Person(FName,FAge,FRemark) VA ...

  9. 转:mysql group by 用法解析(详细)

    group by 用法解析 group by语法可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表. SELECT子句中的列名必须为分组列或列函数.列函数对于GROUP BY子 ...

  10. Scrum生命周期

    Recently while cleaning up my photo albums I found some interesting old pictures which were captured ...