一、工作流概念
工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。
工作流管理系统(Workflow Management System, WfMS)是一个软件系统,它完成工作量的定义和管理,并按照在系统中预先定义好的工作流规则进行工作流实例的执行。工作流管理系统不是企业的业务系统,而是为企业的业务系统的运行提供了一个软件的支撑环境。
工作流管理联盟(WfMC,Workflow Management Coalition)给出的关于工作流管理系统的 定义是:工作流管理系统是一个软件系统,它通过执行经过计算的流程定义去支持一批专门设定的业务流程。工作流管理系统被用来定义、管理、和执行工作流程。
工作流管理系统的目标:管理工作的流程以确保工作在正确的时间被期望的人员所执行——在自动化进行的业务过程中插入人工的执行和干预。
二、Activiti
Activiti
Alfresco软件在2010年5月17日宣布Activiti业务流程管理(BPM)开源项目的正式启动,其首席架构师由业务流程管理BPM的专家 Tom Baeyens担任,Tom Baeyens就是原来jbpm的架构师,
而jbpm是一个非常有名的工作流引擎,当然activiti也是一个工作流引擎。
Activiti是一个工作流引擎, activiti可以将业务系统中复杂的业务流程抽取出来,使用专门的建模语言(BPMN2.0)进行定义,业务系统按照预先定义的流程进行执行,
实现了业务系统的业务流程由activiti进行管理,减少业务系统由于流程变更进行系统升级改造的工作量,从而提高系统的健壮性,同时也减少了系统开发维护成本。
1、 BPM
2、 BPMN
BPMN(Business Process Model And Notation)- 业务流程模型和符号 是由BPMI(Business Process Management Initiative)开发的一套标准的业务流程建模符号,
使用BPMN提供的符号可以创建业务流程。 2004年5月发布了BPMN1.0规范.BPMI于2005年9月并入OMG(The Object Management Group对象管理组织)组织。OMG于2011年1月发布BPMN2.0的最终版本.
activiti就是采用bpmn2.0进行建模
关于流程的两个常用到的关键词 流程定义 ,流程实例
他们的关系就像java类和java对象一样
1流程实例(ProcessInstance):a和b都发起了一个病假,那么就产生了两个病假的流程实例
2流程定义(ProcessDefinition):a和b请的病假就是一个流程定义
activiti服务架构图

上面的架构说白了就是通过activiti.cfg.xml获取引擎配置对象ProcessEngineConfiguration
通过这个配置对象获取引擎对象ProcessEngine,
最后可以通过引擎获取各个service来进行流程的处理
3.工作流引擎
ProcessEngine对象,这是Activiti工作的核心。负责生成流程运行时的各种实例及数据、监控和管理流程的运行。
工作流的API所有的调用都要用到工作流引擎
ProcessEngine对象,这是Activiti工作的核心。负责生成流程运行时的各种实例及数据、监控和管理流程的运行。
工作流的API所有的调用都要用到工作流引擎
RepositoryService | activiti的资源管理类 ,用于流程部署,获取流程部署的资源。。 |
RuntimeService | activiti的流程运行管理类,用于启动一个流程实例,操作当前运行的流程信息 |
TaskService | activiti的任务管理类,操作个人任务,组任务 |
HistoryService | activiti的历史管理类,用于操作历史 流程信息 |
IdentityService | activiti的用户身份管理类,设置用户、组(角色)、用户和组关系 。。 |
FormService | activiti的表单管理类,实现activiti中配置表单数据。 |
ManagerService | activiti的引擎管理类,用于activiti运行的监控,给超级管理员使用。 |