首页 > 代码库 > 工作流学习1----基本概念

工作流学习1----基本概念

一.什么是工作流?

工作流(Workflow),就是将“业务过程的部分或整体在计算机应用环境下的自动化”,是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。工作流主要解决的主要问题是:为了实现某个业务目标,利用计算机在多个参与者之间按某种预定规则自动传递文档、信息或者任务。

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

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

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

二.activiti的介绍

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

       技术分享

 

 2.1工作流引擎

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

  工作流引擎一般做的事

    (1)定义流程,也就是给我们提供某种规范来定义规则,以及如何定义一个流程的这种规范,同事我们可以根据工作流引擎提供的相关概念来定义更为复杂的流程,这就是工作流引擎做的第一件事叫做定义流程。

    (2)执行流程,也就是工作流引擎需要解释这个规则,还要负责流程,它相当于流程的调度者,监控每个流程的执行情况,并将流程操作发往下一步,或者根据条件休眠或终止流程的这么一个过程就叫做执行流程。

 2.2bpmn

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

2.3数据库

  Activiti的后台是有数据库的支持,所有的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。 用途也和服务的API对应。

  Acitiviti数据库中表的命名都是以ACT_开头的。第二部分是一个两个字符用例表的标识。此用例大体与服务API是匹配的。

  •   ACT_RE_*:’RE’表示repository。带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等)。
  •   ACT_RU_*:’RU’表示runtime。这是运行时的表存储着流程变量,用户任务,变量,职责(job)等运行时的数据。Activiti只存储实例执行期间的运行时数据,当流程实例结束时,将删除这些记录。这就保证了这些运行时的表小且快。
  •   ACT_ID_*:’ID’表示identity。这些表包含标识的信息,如用户,用户组,等等。
  •   ACT_HI_*:’HI’表示history。就是这些表包含着历史的相关数据,如结束的流程实例,变量,任务,等等。
  •   ACT_GE_*:普通数据,各种情况都使用的数据。

  2.3.1 资源库流程规则表

    ① act_re_deployment   部署信息表

    ② act_re_model           流程设计模型部署表

    ③ act_re_procdef         流程定义数据表 

  2.3.2 运行时数据表   

    ① act_ru_execution        运行时流程执行实例表

    ② act_ru_identitylink      运行时流程人员表,主要存储任务节点与参与者的相关信息

    ③ act_ru_task                运行时任务节点表

    ④ act_ru_variable          运行时流程变量数据表

  2.3.3 历史数据表

    ① act_hi_actinst            历史节点表

    ② act_hi_attachment            历史附件表

    ③ act_hi_comment         历史意见表

    ④ act_hi_identitylink             历史流程人员表

    ⑤ act_hi_detail               历史详情表,提供历史变量的查询

    ⑥ act_hi_procinst           历史流程实例表

    ⑦ act_hi_taskinst            历史任务实例表

    ⑧ act_hi_varinst                    历史变量表

  2.3.4 组织机构表

    ① act_id_group        用户组信息表

    ② act_id_info                  用户扩展信息表

    ③ act_id_membership    用户与用户组对应信息表

    ④ act_id_user                 用户信息表

  2.3.5 通用数据表 

    ① act_ge_bytearray       二进制数据表

    ② act_ge_property         属性数据表存储整个流程引擎级别的数据,初始化表结构时,会默认插入三条记录,

2.4. activiti.cfg.xml(activiti的配置文件)

  Activiti核心配置文件,配置流程引擎创建工具的基本参数和数据库连接池参数。

  定义数据库配置参数:

      jdbcUrl: 数据库的JDBC URL。

     jdbcDriver: 对应不同数据库类型的驱动。

     jdbcUsername: 连接数据库的用户名。

     jdbcPassword: 连接数据库的密码。

  基于JDBC参数配置的数据库连接 会使用默认的MyBatis连接池。 下面的参数可以用来配置连接池(来自MyBatis参数):         jdbcMaxActiveConnections: 连接池中处于被使用状态的连接的最大值。默认为10。

     jdbcMaxIdleConnections: 连接池中处于空闲状态的连接的最大值。

     jdbcMaxCheckoutTime: 连接被取出使用的最长时间,超过时间会被强制回收。 默认为20000(20秒)。

     jdbcMaxWaitTime: 这是一个底层配置,让连接池可以在长时间无法获得连接时, 打印一条日志,并重新尝试获取一个连接。(避免因为错误配置导致沉默的操作失败)。 默认为20000(20秒)。

2.4.1 logging.properties

  日志处理的文件,Activiti操作数据库的时候,整个的日志文件。

2.4.2 Activiti使用图示

  技术分享

三.安装activiti

① 使用eclipse商店在线安装(一般不用,因为服务器在美国,网速是最大的障碍)

  第一步,首先打开Eclipse(J2ee版本的,最好用新的版本,Maven啥的都支持,不要搞个老古董)

技术分享

 第二步,点击 Add,填入一下两个值,然后点击ok

 技术分享

 Activiti BPMN 2.0 designer

 http://activiti.org/designer/update/

 第三步,选中该选的,然后下一步直到结束

技术分享

 第四步,等待下载安装,或者拉个屎。中间可能会一些安全提示,点 OK 即可;

 技术分享

技术分享

第五步,等待安装按成,重启eclipse即可

技术分享

② 使用eclipse商店,但是使用离线包,离线安装(这种方法百试百灵,但是也需要一点网速)

第一步,首先打开Eclipse(J2ee版本的,最好用新的版本,Maven啥的都支持,不要搞个老古董)

技术分享

第二步,选择Add,得到可添加插件包的弹框。然后点击Archive,选择插件包的地址。如图所示。输入插件包名称,OK,以后如上,还得将那3个插件拷贝到eclipse的plugins文件中

技术分享

技术分享

3.1.6 对流程设计器的使用说明。

打开菜单Windows->Preferences->Activiti->Save下流程流程图片的生成方式:

 技术分享

虽然流程引擎在单独部署bpmn文件时会自动生成图片,但在实际开发过程中,自动生成的图片会导致和BPMN中的坐标有出入,在实际项目中展示流程当前位置图会有问题。

所在完成以上配置后,会由我们自己来管理流程图片。在发布流程时把流程规则文件和流程图片一起上传就行了。

 

 

 

 

工作流学习1----基本概念