zoukankan      html  css  js  c++  java
  • Activiti(工作流)学习(一)——初步认识activiti

    一、工作流的概念

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

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

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

    二、工作流基础

      1、BPM:BPM即Business Process Management的缩写,为业务流程管理。是一套达成企业各种业务环节整合的全面管理模式。BPM是一系列逻辑相关的活动的集合,BPM最早是由工作流和企业应用集成融合发展而来,当时是为了满足无纸化办公需求。

      2、工作流的生命周期

    • 定义:即流程的定义,所有的流程总是从定义开始。主要任务是收集需求并将其转化为流程定义。
    • 发布:开发人员将资源打包后在系统平台中发布流程定义,主要任务流程定义文件/自定义表单/任务监听类等。
    • 执行:具体的流程引擎按照上面定义的流程处理路线来执行业务。
    • 监控:收集每个任务的结果,将根据不同结果来做处理。
    • 优化:此时业务流程已经完成,需要的就是优化流程或重新设计等。

      3、BPMN:即Business Process Modeling Notation的简称,全称为业务流程建模标注 ,由BPMN标准组织发布,2011年发布到2.0之后,市场常用的都是此版本规范。BPMN定义类业务流程图,其基于流程图技术,同时对创建业务流程操作的图形化模型进行了裁剪。业务流程的模型即图形化对象的网图,包含有活动和定义操作顺序的流程控制。

    三、Activiti介绍

      1、什么是Activiti:Activiti是一个针对企业用户、开发人员、系统管理员的轻量级工作流业务管理平台,其核心是使用Java开发的快速、稳定的BPMN2.0流程引擎。Activiti是在ApacheV2许可下发布的,可以运行在任何类型的Java程序中,如:服务器、集群、云服务等。Activiti可以完美的与Spring集成,是基于简约的设计思想而创建。

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

      3、Activiti的特点:

    • 数据持久化:Activiti设计思想是简洁与快速。一般情况下系统的瓶颈主要就体现在应用和数据库的交互上,针对这种情况Activiti选择了使用Mybatis,而通过最优SQL语句执行Command。
    • 引擎Service接口:Activiti引擎提供了七大Service接口,都是通过ProcessEngine获取,同时支持链式API编程风格。
    Service接口 作用
    RepositoryService 流程仓库Service,用于管理流程仓库,如:部署、删除、读取流程资源
    IdentifyService 身份Service,可管理和查询用户、组之间的关系
    RuntimeService 运行时Service,处理所有正在运行的任务和流程实例等
    RuntimeService 运行时Service,处理所有正在运行的任务和流程实例等
    TaskService 任务Service,用于管理查询任务,如签收、办理、指派等
    FormService 表单Service,用于读取和任务、流程相关的表单数据
    HistoryService 历史Service,可查询所有历史数据
    ManagementService 引擎管理Service,和具体业务无关,可用查询引擎配置、数据库、作业等

      

    • 流程设计器:Activiti团队设计了基于BPMN2.0规范的设计器-Eclipse Designer,除此还有Signavio公司为Activiti定制的基于Web的Activiti Modeler流程设计器。
    • 原生支持Spring:当前企业开发,基本上都会基于Spring去开发自己的系统,由于Activiti原生支持Spring,所以很轻松地进行Spring集成。
    • 分离运行时与历史数据:运行与历史数据的分离,可以加快运行时数据的性能,当需要历史数据时,我们在去查询。

    四、Activiti应用

      1、在系统集成方面:与ESB整合 / 与规则引擎整合 / 嵌入已有系统平台;

      2、在其他产品中应用:Alfresco公司的ECM产品在企业中应用,主要涉及文档管理 / 协作 / 记录管理 / 知识库管理 / Web内容管理等。

    五、Activiti框架与组件

      1、Activiti最重要的就是引擎,除此之外就是外部的工具和组件。

      

       对上图中的组件进行简单的介绍:

    • Activiti Engine:最核心的模块,提供针对BPMN2.0规范的解析 / 执行 / 创建 / 管理(任务-流程实例) / 查询历史记录并生成相应报表等。
    • Activiti Modeler:模型设计器,非Activiti公司开发。用于将需求转换为规范流程定义。
    • Activiti Designer:设计器,与Activiti Modeler功能类似。
    • Activiti Exproler:用来管理仓库 / 用户 / 组,启动流程 / 任务办理等。
    • Activiti REST:提供REST风格的服务,允许客户端以JSON的方式与引擎的REST API交互,协议具有跨平台 / 跨语言。

    参考https://www.cnblogs.com/aimei/p/12199724.html

    2020-12-29 20:05:57

  • 相关阅读:
    两种unix网络编程线程池的设计方法
    僵尸进程处理方法
    僵尸进程概念
    fork()父子进程文件描述符的关系
    getsockname()和getpeername()
    linux文件系统总结
    deque时间复杂度和vector,list比较
    stl仿函数和适配器
    linux中断和异常睡眠问题
    umask码和文件权限
  • 原文地址:https://www.cnblogs.com/zrs123/p/14208513.html
Copyright © 2011-2022 走看看