【Java】工作流框架JBPM

【工作流基础】
	工作流(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这个框架,实现步骤也都大体相同,加上有了这个框架,给我们实现了很多东西
,感觉实现也是简单了许多。


你可能感兴趣的:(【JAVA】,5.,OA)