[color=green][size=medium]
[转] http://blog.chinaunix.net/u/21752/showart_2097639.html
jBPM4常见概念
1. 流程定义(Process Definition)
流程定义是记录在xml文件中的对流程的描述,它包含唯一的流程开始节点和多个流程功能节点,每个节点之间使用transition进行连接。
Process Definition使用id, key和version进行标识,jBPM中可能包含多个key值相同的Process Definition,key值相同的Process Definition会拥有不同的version值,而id是使用key-version的形式用来表示唯一的Process Definition的。
jBPM中使用RepositoryService来控制流程定义的发布,浏览,删除等操作。
2. 流程实例(Process Instance)
以流程定义为蓝本生成的流程实例,在jBPM属于Execution的一种。
当我们执行start时,会根据流程定义启动一个新的流程实例,然后它会根据流程定义里的节点运行,在遇到state或task时停顿,等待外部用户调用signal,最后会执行到end节点,结束整个流程。
jBPM中只允许有一个start节点,所以每个流程都是单一入口的,jBPM4中可以允许有多个end节点,所以我们可以在任意位置结束流程。
jBPM中使用ExecutionService来控制流程实例的启动,浏览,执行,删除等操作
3. state节点
状态结点是一个典型的等待状态。同任务结点不同的是,状态结点不会向任务列表添加任务实例。当业务进程需要等待外部系统的干预时,这种结点是很有用的。(需要外部系统干预,但又不是让人去干预)假设如下情况:在进入该结点时,通过node-enter事件向外部系统发送一个消息,然后结点进入等待状态;当外部系统完成处理,并回送一个消息,这将导致触发一个signal()方法的运行,该方法重新激活正在等待的流程继续下行
jBPM中使用ExecutionService来控制对state的signal操作。
4. task节点
任务结点(task-node)任务结点是代表由人介入的一个或多个任务。因此当流程运行到一个任务结点时,会生成“任务实例对象(task instances)”,并添加到参与人的任务列表中,之后结点会处于等待状态,直到参与人完成他们的任务,并激活流程继续向下执行。
task节点可以使用assignee, swimelane等方式为任务定义分配到某个人或者某个组,对应的用户可以执行completeTask()结束任务,并控制任务结束后流程实例向哪个方向前进。
jBPM中使用TaskService控制task的各项操作。
5. Identity身份验证
jBPM中的身份验证分为User, Group和Membership三部分,用户表示登陆用户,Group表示用户组,用户和用户组之间的关联关系保存在Membership中。User和Group与Task中的assignee和swimelane是息息相关的。
6.事件
Event反映的是流程执行中的各个时刻。在流程执行中 JBPM引擎会在计算下一个状态的时候触发各种事件。一个事件通常和流程定义中的一个元素相关联,比如流程定义本身,节点或者转移。大部分的元素能够触发不同类型的事件,比如一个节点可以触发节点进入事件,节点离开事件。事件其实是和动作连接在一起的。每个事件维护一个动作列表。当JBPM引擎触发一个事件的时候,该事件维护的动作列表中的动作将被执行。
JBPM中事件类型是写死在事件类中的,共有16种:
EVENTTYPE_TRANSITION = "transition"; // 转移
EVENTTYPE_BEFORE_SIGNAL = "before-signal"; // 发信号前
EVENTTYPE_AFTER_SIGNAL = "after-signal"; // 发信号后
EVENTTYPE_PROCESS_START = "process-start"; // 处理开始状态
EVENTTYPE_PROCESS_END = "process-end"; // 处理结束状态
EVENTTYPE_NODE_ENTER = "node-enter"; // 进入节点
EVENTTYPE_NODE_LEAVE = "node-leave"; // 离开节点
EVENTTYPE_SUPERSTATE_ENTER = "superstate-enter"; // 进入超级状态
EVENTTYPE_SUPERSTATE_LEAVE = "superstate-leave"; // 离开超级状态
EVENTTYPE_SUBPROCESS_CREATED = "subprocess-created"; // 子流程创建
EVENTTYPE_SUBPROCESS_END = "subprocess-end"; // 子流程结束
EVENTTYPE_TASK_CREATE = "task-create"; // 任务创建
EVENTTYPE_TASK_ASSIGN = "task-assign"; // 任务分派
EVENTTYPE_TASK_START = "task-start"; // 任务启动
EVENTTYPE_TASK_END = "task-end"; // 任务结束
EVENTTYPE_TIMER = "timer"; // 定时器
7.transition
关联两个节点,用于表示节点的走向
8.常用类说明
ProcessEngine:它是整个jBPM4的入口,并且是单例模式。通过它可以获取processEngine,并藉此获得工作流引擎所提供的各种服务
RepositoryService:控制流程定义的发布,浏览,删除等操作
ExecutionService:控制流程实例的启动,浏览,执行,删除等操作
IdentityService:控制身份的各项操作[/size][/color]
分享到:
相关推荐
接下来,"jBPM4常见概念.docx"文档将帮助我们理解jBPM的核心概念。这包括: 1. **流程定义(Process Definition)**:这是描述一个业务流程的模型,用BPMN(Business Process Model and Notation)语言编写,包含了...
9. **jBPM4常见概念**:这部分会列举并解释jbpm4中的重要术语,如流程图、泳道、节点、连接线等,有助于理解工作流模型的基本构造。 这些文档集合为学习和掌握jbpm4提供了全面的资源,从基础到高级,从理论到实践,...
jbpm应用开发指面(胡奇).pdf可能是胡奇专家对jbpm应用开发的实践经验分享,可能包含了最佳实践、常见问题解决方案和案例研究。开发者可以从中学到如何在实际项目中有效地运用jbpm,以及如何解决开发过程中遇到的...
"JBPM最佳实践.txt"则可能包含了一系列在实际项目中运用jbpm时的最佳实践建议,如性能优化、流程设计原则、错误处理策略等,旨在帮助开发者避免常见问题,提升项目的质量和效率。 通过这些文档,学习者可以全面了解...
在实际应用中,开发者需要了解JBPM4的工作原理,包括流程实例、任务实例、信号和事件的概念,以及如何通过API或服务任务与外部系统交互。熟悉Maven的使用也是至关重要的,包括理解POM文件的结构、如何添加和排除依赖...
**标题解析:** "Extjs4.1+jbpm4综合案例视频教程" 指的是一个教学资源,涵盖了使用Extjs 4.1版本(一个JavaScript框架,用于构建富客户端Web应用程序)与jbpm4(一个开源的工作流管理系统)进行集成开发的实践案例...
该资料集合了API文档、安装配置指南、常见操作步骤、数据库表结构解析以及流程分支与合并等核心知识点,旨在帮助学习者深入理解和掌握JBPM4的使用。 1. **JBoss BPM系统介绍**:JBPM4是JBoss组织推出的一款开源BPM...
jbpm4与Struts2的结合是一个常见的企业级应用架构,用于实现业务流程管理和用户界面交互。jbpm4是一个强大的工作流和业务流程管理框架,它允许开发者定义、执行和监控复杂的业务流程。而Struts2则是一个流行的MVC...
《jBPM4工作流应用开发指南》是一本深度探讨工作流管理系统的专业书籍,尤其聚焦于jBPM4这一开源工作流引擎的使用与开发。工作流技术,作为企业管理信息化的重要工具,能够自动化和规范业务流程,提高企业效率。本书...
4. **常见应用场景**: - **行政管理**:如公文流转、行政审批。 - **产品研发与制造**:用于流程管理和调度。 - **电子商务**:订单处理和其他多步骤活动。 - **大型内容管理系统**:多步审核等。 5. **jBPM...
2. **研究官方文档**:JBPM的官方文档是学习的重要资源,其中包含了详细的API参考、教程和常见问题解答。 3. **参与社区讨论**:加入JBPM的社区论坛或邮件列表,可以获取最新的技术动态,同时也能向经验丰富的...
jbpm广泛应用于金融、制造、电信等多个行业,常见的应用场景包括: 1. **审批流程**: 如请假申请、报销审批等,自动流转和跟踪,提高效率。 2. **订单处理**: 自动处理订单的各个阶段,如审核、生产、发货等。 3....
常见的工作流框架包括 Jbpm、OSWorkflow、ActiveBPEL、YAWL 等。 #### 二、jBPM4.4介绍 **1. jBPM简介** jBPM 即 Java Business Process Management,是基于 Java 的业务流程管理系统。它是市面上相当流行的一款...
此外,JBPM5还增加了知识仓库的概念,便于流程相关知识的管理和维护。 **Activiti架构** Activiti同样拥有清晰的架构设计,但相较于JBPM更加注重技术细节: - **设计器**:支持BPMN 2.0标准的流程定义。 - **引擎...
这部分深入探讨了JBPM的核心概念和技术细节。 ##### 6.1 创建流程 - **使用图形化BPMN2编辑器**:通过图形化界面定义流程。 - **使用XML定义流程**:手动编写XML文件定义流程。 - **使用Process API定义流程**:...
jBPM-jBDL 相关概念 jBPM-jBDL(jBPM Business Definition Language)是一种用来定义业务流程的语言,基于有向图结构。流程图由节点(nodes)和转换(transitions)组成,每个节点都有特定的类型,如状态节点...
通过学习这个PPT,开发者不仅可以了解Spring与JBPM的基本概念,还能掌握它们整合的具体方法,为构建可扩展和灵活的业务流程管理系统打下坚实的基础。由于没有提供具体的PPT内容,以上是根据标题和标签推断出的知识点...