2.工作流初识

一.工作流简介
1.1工作流
工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。目前主流的工作流框架有:Shark,OSWorkflow,jBpm,YAWL,ActiveBPEL,activiti。这些框架和其他框架一样只是减少重复劳动便于于团队合作,他们都依赖于工作流引擎,就像Java开发依赖于JDK一样,目前主流的工作流引擎是jbpm5,activiti5,SWF。所以我们有了工作流的引擎,我们就可以开发出我们自己需要的工作流系统或者软件。

1.2选择工作流的原因
我们来举个日常生活中的例子:你在大学里申请贫困生补助需要经过产生候选人-候选人演讲-投票-产生贫困生-报到学校-国家发款-学生获得补助这样一个流程,那么这么多的过程中我们每进行一次申请都需要完整的走一遍流程,这样不仅耗时耗力,而且一旦有个过程出错得重头再来。所以我们需要一个理念来对这种重复流程来进行预设,什么意思呢,就是我们定义了一些“部门”来解决每个流程所需完成的事,比如上面例子的投票过程,我们就假设一直有一群固定的我们提前准备好的投票人员,这样形成一个“部门”,那么不论多少次我们都不需要重新组织人去进行投票。其实说到这里,我们就会想到现在生活中很多办事的流程都是遵循着工作流的理念。那么弄清楚这个理念后,我们来引入到我们开发当中,当我们开发系统的领域在不同公司都有着相同或者类似的流程时,我们就可以使用工作流。因为如果我们每次都对系统进行从0开始到系统完成的过程,不仅对甲方公司有着等待时间长的弊端,对乙方也有着效益低下的烦恼。而我们引入工作流对这个领域的整体进行一个流程的定义,你只要符合我的流程,我就能很快的开发出一套系统,我只需要创建流程的“entity”让它走这个定义好的流程就行了。其实很早就有做这件事情的人了,如OA办公系统等,那么有了这个思路以后我们来更深入的了解一下它。
二.Activiti简介
2.1Activiti
Activiti是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。Activiti基于Apache许可的开源BPM平台,创始人Tom Baeyens是JBoss jBPM的项目架构师,它特色是提供了eclipse插件,开发人员可以通过插件直接绘画出业务流程图。目前CMS、OA、ERP都离不开工作流,activiti作为当前开源最流行的框架做为集成开发是最好不过了。目前我们用Activiti5用来作为该框架的引擎。

2.2OA与BPM
OA即Office Automation即办公自动化。是依靠信息化设备整理企事业单位、行政机关内的办公文件的规范和记录,主要应用于请假、报销等日常办公流程;信息传递与沟通;半无纸化办公等。
BPM是Business Process Management即业务流程管理。是一套达成企业各种业务环节整合的全面管理模式.他的理念提出20年来,目前已成为全方位企业风险管控和运营效率提升的必备品.可帮助管理者有效、及时地掌握企业的完整信息为企业进行全面风控。主要功能有流程体系管理,服务于‘战略’的流程规划、编制、发布、变更、查阅和执行跟踪;基于SOA架构,以流程为主轴的系统集成,包括统一主数据、跨系统业务对象、跨系统直通式处理、EAI等;分析并改进业务等。
简单的说他两区别在于:OA是办公系统的意思,是一个广义的称呼,BPM是企业流程建模分析,在详细了解企业流程划分之后,用全局的视角,对一堆的流程进行梳理,并给出企业流程全局图,并通过一定技术手段把它开放出来,进行BPO优化,即实现设计、执行、监控和优化全生命周期循环。简单的说,BPM应该是对OA的一种优化和提升。
2.2.1以下条件OA适合
(1)公司刚起步,希望上线低成本的系统,如行政类、办公类,流程简单,且不太变更的情况。
(2)公司业务系统不多,基本独立运行,不需要做集成。
(3)只为了解决某一部门的业务需求,不需要牵扯到其他部门,比如公告、发文类流程。
2.2.2以下条件BPM适合
(1)公司跨分支,跨部门、跨系统集成的情况非常多,且对流程应用有很大影响。
(2)公司对IT规范,体系化有较高要求,希望能借助一个平台做流程的集中管控和优化。
(3)公司业务特殊,需要经常变人员架构,流程变更频繁,运维投入很大。
(4)已经有了OA系统或正被局限于OA,难以扩展应用时,BPM也是不二之选。
三.JBPM和Activiti
3.1Activiti5与jBPM5技术组成对比:
序号技术组成 Activiti jBPM5
1 数据库持久层ORM MyBatis3 Hibernate3
2 持久化标准 / JPA规范
3 事务管理 spring事务控制 Bitronix,基于JTA事务管理
4 数据库连接方式 Jdbc/DataSource Jdbc/DataSource
5 支持数据库 多数数据库 多数数据库
6 设计模式 Command模式、观察者模式等 /
7 内部服务通讯 Service间通过API调用 基于Apache Mina异步通讯
8 集成接口 SOAP、Mule、RESTful 消息通讯
9 支持的流程格式 BPMN2、xPDL、jPDL等 目前仅只支持BPMN2 xml
10引擎核心 PVM(流程虚拟机) Drools
11技术前身 jBPM3、jBPM4 Drools Flow
12所属公司 Alfresco jBoss.org

3.2JBPM和Activit联系
Activiti5是在jBPM3、jBPM4的基础上发展而来的,是原jBPM的延续,而jBPM5则与之前的jBPM3、jBPM4没有太大关联,且舍弃了备受推崇的PVM(流程虚拟机)思想,转而选择jBoss自身产品Drools Flow作为流程引擎的核心实现,工作流最为重要的“人机交互”任务(类似于审批活动)则由单独的一块“Human Task Service”附加到Drools Flow上实现,任务的查询、处理等行为通过Apache Mina异步通信机制完成。总的来说Activiti上手比较快,界面也比较简洁、直观。

3.3 JBPM的软件示例
jBPM Web Designer是一款基于Web的jBPM 5工作流编辑器。主界面如下:
在这里插入图片描述
可以看到左侧有着很多的组件,我们通过选择不同的组件对流程进行自定义式的装配。下载地址:https://sourceforge.net/projects/jbpm/。
下载完成后将该包名改为designer.war,然后把该包放在你配置好的tomcat7以上版本的webapps文件夹下,启动Tomcat后访问地址:http://localhost:8080/designer/editor?profile=jbpm
即可。如何操作我们这里不进行阐述。

3.4Activiti的软件示例
activiti explorer 是一个Activiti框架的示例项目,如下图:
在这里插入图片描述

下载地址:https://www.activiti.org/get-started。
下载完成后需要进行数据库的配置,具体的运行步骤下面的地址有详细的讲解:
https://jingyan.baidu.com/album/4e5b3e19107ad091901e249e.html?picindex=13。

四.总结

在有了上述概念后,那么我们需要一个什么样的目标?我提出以下几点:
1.找到适合我们公司的工作流;
2.最好能够自主开发出一款网站或者软件来对流程进行简单的可视化定义;
3.能够更简捷的搭出一个符合甲方条件的系统。

猜你喜欢

转载自blog.csdn.net/qq_38347518/article/details/83268066
今日推荐