工作流:
先来一个官方定义:工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。
简单举例:大家都熟悉的淘宝退货,首先买件要填写退货申请,给卖家提供必要的信息,然后等待卖家收到货后,卖家会在自己的账号下对买家的退货申请做出处理比如点击同意,之后买家就会收到退货的货款。这样就算完成了一次简单的流程,发出申请—等待审批—结束流程。随着OA系统的流程各个公司都开始使用工作流来处理公司的一部分业务,比如请假、申请报销等等。
Java中的工作流框架:
Jbpm、OSWorkflow、Shark等。本次主要是对JBPM进行学习。
Jbpm全称:jboss business process managerment,所以它是依赖jboss的。Jbpm的持久层采用hibernate实现,而且在Eclipse中也有JBPM的插件,可以直接画出流程图并且生成相应的xml和png图片保存定义的流程。
工作流程:
流程定义:画出自己需要的流程保存,一般生成两个文件,一个为xml记录流程中的信息,一个为png图片文件主要作业给你是用于查看流程。
部署:将流程定义语言部署到jbpm引擎中
启动:请的流程实例
使用:用户可以使用
基本概念:
流程定义(ProcessDefinition):一个流程的步骤说明。如一个请假流程、报销流程、借款流程等,是一个规则。一般包括画好的流程图+生成的流程的相关信息的xml。
流程实例(ProcessInstance):某个用户发起的一次请求。
Execution:执行。
流程变量:流程实例各个步骤产生的数据,可能是填写的内容、任务执行人等。
流程定义和流程实例就好像是类和对象的关系。
流程定义是类说明了本流程的步骤,每个步骤可以看做是一个方法。
流程实例相当于是实例化出来的对象,执行过程中按照类定义好的流程执行对应的方法。
流程实例而执行过程中可能会给其中的方法赋予参数,这些参数相当于是流程变量。
Execution理解起来相对不怎么容易,现在可以结合processinstance理解,如果不存在并发的情况,那么exection和processinstance是一样的,即executionID和processinstanceID是一样的。
先来一个官方定义:工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。
简单举例:大家都熟悉的淘宝退货,首先买件要填写退货申请,给卖家提供必要的信息,然后等待卖家收到货后,卖家会在自己的账号下对买家的退货申请做出处理比如点击同意,之后买家就会收到退货的货款。这样就算完成了一次简单的流程,发出申请—等待审批—结束流程。随着OA系统的流程各个公司都开始使用工作流来处理公司的一部分业务,比如请假、申请报销等等。
Java中的工作流框架:
Jbpm、OSWorkflow、Shark等。本次主要是对JBPM进行学习。
Jbpm全称:jboss business process managerment,所以它是依赖jboss的。Jbpm的持久层采用hibernate实现,而且在Eclipse中也有JBPM的插件,可以直接画出流程图并且生成相应的xml和png图片保存定义的流程。
工作流程:
流程定义:画出自己需要的流程保存,一般生成两个文件,一个为xml记录流程中的信息,一个为png图片文件主要作业给你是用于查看流程。
部署:将流程定义语言部署到jbpm引擎中
启动:请的流程实例
使用:用户可以使用
基本概念:
流程定义(ProcessDefinition):一个流程的步骤说明。如一个请假流程、报销流程、借款流程等,是一个规则。一般包括画好的流程图+生成的流程的相关信息的xml。
流程实例(ProcessInstance):某个用户发起的一次请求。
Execution:执行。
流程变量:流程实例各个步骤产生的数据,可能是填写的内容、任务执行人等。
流程定义和流程实例就好像是类和对象的关系。
流程定义是类说明了本流程的步骤,每个步骤可以看做是一个方法。
流程实例相当于是实例化出来的对象,执行过程中按照类定义好的流程执行对应的方法。
流程实例而执行过程中可能会给其中的方法赋予参数,这些参数相当于是流程变量。
Execution理解起来相对不怎么容易,现在可以结合processinstance理解,如果不存在并发的情况,那么exection和processinstance是一样的,即executionID和processinstanceID是一样的。
如果存在并发的情况,execution代表分支,processinstance代表主线,可以理解为Execution为执行路径,当同时有几个路径在执行,ExecutionId就和ProcessId不同了。
小结:
理解了JBPM这个工作流框架中的一些基本概念,学习其他框架时应该会更加清楚一些。下篇博客对应这些基本概念了解几张数据库表,同时对这些抽象的概念能有一个具象的学习。