您的位置:首页 > 编程语言 > Java开发

【Java】工作流框架JBPM

2017-02-02 19:26 316 查看
【工作流基础】

工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使

在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或

者促使此目标的实现”。

工作流管理系统(WfMS,Workflow Management System)的主要功能是通过计算机技术的支持去定义、执行

和管理工作流,协调工作流执行过程中工作之间以及群体成员之间的信息交互。工作流需要依靠工作流管理系统来实

现。工作流管理系统是定义、创建、执行工作流的系统,应能提供以下三个方面的功能支持:

1) 定义工作流:包括具体的活动、规则等

2) 运行控制功能:在运行环境中管理工作流过程,对工作流过程中的活动进行调度

3) 运行交互功能:指在工作流运行中,WfMS与用户(活动的参与者)及外部应用程序工具交互的功能。

采用工作流管理系统的优点

i. 提高系统的柔性,适应业务流程的变化 

ii. 实现更好的业务过程控制,提高顾客服务质量

iii. 降低系统开发和维护成本

工作流框架有:Jbpm、OSWorkflow、ActiveBPEL、YAWL等。

【开发环境准备】

此次学习接触的框架是JBPM,下面就看看利用JBPM需要准备哪些开发环境。

1. 添加JBPM的jar包。注意不要添加Servlet-api.jar和Junit.jar。因为junit是3.8.2版本的,与我们使用

的junit4.0版本冲突。

2. 添加jbpm.cfg.xml/logging.properties/jbpm.hibernate.cfg.xml配置

3. 初始化数据库,执行jbpm.*.create.sql。


【核心概念】

1. Process definition,流程定义:一个流程的步骤说明。如一个请假流程、报销流程等,是一个规则。


2. Process instance,流程实例:代表流程定义的一次执行。如张三昨天按请假流程请了一次假。一个流程

实例包括了所有运行阶段, 其中最典型的属性就是跟踪当前节点的指针。


3. Execution,执行:可以把一个流程实例看做一个根节点,而其下的子节点便可看作是执行。


【ProcessEngine与Service API】

我们与JBPM交互主要是通过它所提供的的services。而我们要想获取到这些services,就需要通过默认的配

置文件(jbpm.cfg.xml)生成Configuration去构建ProcessEngine。此工作流引擎是线程安全的,并且可以作为静态

成员。


JBPM包括6个Service,如下:

1. RepositoryService:管理流程定义

2. ExecutionS  ervice:管理执行的,包括启动、推进、删除Execution等操作

3. TaskService:管理任务的

4. HistoryService:历史管理(执行完的数据管理,主要是查询)

5. IdentityService:用户、组管理

6. ManagementService。

可通过processEngine.getService()获取Service,如RepositoryService repositoryService=processEngi-

ne.getRepositoryService();

【学习心得】

在.net阶段,就多多少少对工作流有些接触,所以对于工作流的一些理论知识和大体实现思路都还比较熟

悉。而这次学习接触到的java的jbpm这个框架,实现步骤也都大体相同,加上有了这个框架,给我们实现了很多东西

,感觉实现也是简单了许多。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: