1、工作流介绍

工作流(WorkFlow),是对工作流程及其各操作步骤之间业务规则的抽象、概括、描述。工作建模,即将工作流程中的工作如何前后组织在一起的逻辑和规则,在计算机中以恰当的模型进行表示并对其实施计算。

工作流要解决的问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按照某种预定规则自动传递文档,信息或者任务。

2、BPMN2.0概述

BPMN2.0规范于2011年1月正式发布,并且全称改为Business Process Model And Notation(业务流程模型和符号)。BPMN2.0规范定义了业务流程的符号以及模型,并且为流程定义设定了转化格式,目的是为了让流程定义实现可移至性,那么用户可以在不同的供应商环境中定义流程,并且这些流程可以移至到其他遵守BPMN2.0规范的供应商环境中。

3、BPMN2.0元素

使用BPMN2.0的目的是建立简单并且易懂的业务流程模型,但是又要同时处理高度复杂的业务流程,因此要解决两个矛盾的要求,需要在规范中定义标准的图形和符号。BPMN定义了五个基础的元素类别:

  • 流对象(Flow Objects):在一个业务流程中,流对象用于定义行为的图像元素,主要有事件(Events)、活动(Activities)、和网关(Gateways)三种流对象。
  • 数据(Data):主要有数据对象(Data Objects)、数据输入(Data Inputs)、数据输出(Data Outputs)、和数据存储(Data Stores)四种元素。
  • 连接对象(Connecting Objects):用于连接对象,主要有四种连接对象的方式,包括顺序流(Sequence Flows)、消息流(Message Flows)、关联(Associations)、和数据关联(Data Association)。
  • 泳道(Swimlanes):泳道提供了两种途径用于组织基础的模型元素,分别是池(Pools)和道(Lanes)。
  • 制品(Artifacts):制品用于为流程提供附加信息,当前制品包括组(Group)和注释(Text Annotation)。

以上元素分类以及表中所列元素,均是BPMN规范中元素组成部分,每个对象都有自己对应图形,表中给出了各个元素图形及其描述。

元素 图形 描述
事件(Events)

 用于描述流程中发生的事件,事件会对流程产生影响,事件会被触发或产生结果。
 活动(Activities)    活动是工作流中一个通用的术语,活动包括任务(Task)和子流程(Sub-Process)。
 网关(Gateways)  网关主要控制流程中顺序流的走向,使用网关可以控制流程进行分支与合并。
 顺序流(Sequence Flow)    顺序流显示流程会执行哪个活动。
 消息流(Message Flow)  消息流主要用于显示消息在流程参与者之间的传递情况。
 关联(Association)    主要用于连接元素及其制品(流程信息)。
 池(Pool)    存放道的容器。
 道(Lane)  用于区分流程参与人的职能范围。
 数据对象(Data Object)  数据对象主要表示活动需要的或者产生的信息。
 消息(Message)  消息主要用于描述流程参与者之间的沟通内容。
 组(Group)  主要用于存放一些流程信息,包括流程文档、流程分析信息等。
 注释(Text Annotation)    主要为阅读流程图的人提供附加文字信息。

4、Activiti介绍

Activiti5是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。Activiti基于Apache许可的开源BPM平台,创始人Tom Beayens是JBoss JBPM的项目框架师,他特色是提供了eclipse插件,开发人员可以通过插件直接绘出业务流程图。

5、工作流引擎

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

6、工作流的基本使用

  • 定义工作流

使用eclipse插件完成,****.bpmn(给计算机进行流程的执行和信息的传递的使用),*****.png(给用户看)。

  • 执行和管理工作流

调用Activiti的API(Activiti用来存放数据流一共使用了23张表,底层操作默认操作使用mybatis。一定需要业务去关联流程,才能开发工作流系统。)

Activiti20180624的更多相关文章

随机推荐

  1. 电脑MAC地址

    电脑MAC地址(Media Access Control) MAC地址是固化在网卡上串行EEPROM中的物理地址,通常有48位长.用来表示互联网上每一个站点的标识符,采用十六进制数表示. 任一网络设备 ...

  2. hdu1079

    #include<cstdio> #include<iostream> #include<cstring> using namespace std; int mai ...

  3. Tomcat之NIO 启动与应用分析

    概述 从入门Web开始一直在使用Tomcat,随着对网络相关的知识的进一步了解,觉得越有必有去阅读一下常用的开源服务器的整个工作流程,以及使用场景,对比几款服务器的优劣势.最终根据合适的业务场景进行优 ...

  4. C#在Linux上的开发指南

    本人才疏学浅,在此记录自己用C#在Linux上开发的一点经验,写下这篇指南.(给想要在Linux上开发C#程序的朋友提供建议) 目前在Linux上跑的网站:http://douxiubar.com | ...

  5. [Windows]获取系统版本号

    1 string GetMainProgInfo() 2 { 3 string strRet; 4 TCHAR szPath[MAX_PATH]; 5 GetModuleFileName(NULL,s ...

  6. SQL数据库操作整理

    1.规范 ①关键字与函数名称全部大写: ②数据库名称.表名称.字段名称全部小写: ③SQL语句必须以分号结尾. 2.数据库操作 // 1. 创建数据库,其中[]表示可以省略 CREATE { DATA ...

  7. 洛谷P3116 [USACO15JAN]约会时间Meeting Time

    P3116 [USACO15JAN]约会时间Meeting Time 题目描述 Bessie and her sister Elsie want to travel from the barn to ...

  8. loj#6053. 简单的函数(Min_25筛)

    传送门 题解 \(Min\_25\)筛有毒啊--肝了一个下午才看懂是个什么东西-- \(zsy\)巨巨强无敌-- //minamoto #include<bits/stdc++.h> #d ...

  9. [Xcode 实际操作]四、常用控件-(18)MKMapView地图,将地理坐标转换为实际地名

    目录:[Swift]Xcode实际操作 本文将演示将地理坐标转换为实际地名. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //首先往视 ...

  10. RabbitMQ简介和使用

    一.RabbitMQ简介 1.什么是RabbitMQ AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设 ...