jBPM5学习资料
本文论述关于jBPM5的整体架构和关键特性,我们热烈欢迎并感谢关于本文的任何反馈(包括那些你认为应该包含,但在文档中没有提到的内容)。让我们了解你最关心的,找出最重要的,以便我们安排优先级。这将作为创建jBPM5路线图的基础,是时候给出你们的反馈了。
jBPM5将基于jBPM与Drools Flow经验的结合。这次组合,将结合两个方案的优点。
声明:本文并未描述jBPM5路线图,根据反馈情况,可能会增减一些特性。
下图描述了(计划的)jBPM5架构,每个组件将在后面详细解释,并说明关键特性。
核心流程引擎(工作流)能够执行你的流程,引擎将强烈关注BPMN2(以XML格式保存流程定义)。BPMN2不仅定义一套业务流程的图形化表述标准(如BPMN1.1),现在还包含了所定义元素的执行语义,和如何保存(和共享)流程定义的XML格式。这套标准化的格式将作为主要的流程定义语言,我们将尝试提供一种(半自动化的、用户辅助性质的)迁移方式,将jPDL(3.x)转换为BPMN2。
(核心引擎)提供API来发起和推进流程实例、管理你的流程实例等,并可以配置和集成到不同的上下文环境。
关键特性:
1、 干净的API
2、 原生的BPMN2执行
3、 可嵌入(从类似一个简单的Java POJO组件在应用中嵌入运行,到作为一个独立的服务运行)
4、 基于流程虚拟机(PVM),支持在同一个流程引擎上定义多种流程语言
5、 其他非功能性需求,如持久(JPA)、事务(JTA,其他)、性能等
6、 集群
7、 事件监听,审计,历史日志
8、 流程实例迁移,让你可以升级正在运行的流程实例到新的流程定义版本
在支持完整的BPMN2规范之前,作为中间的里程碑,我们将首先尝试支持BPMN2规范中的“公共可执行”子类(它们是可执行流程规范中的所有已定义元素的子集,只支持最常用的节点类型)
在有任务需要人工参与者来交互执行时,人工任务非常重要,它包括如下及个部分:
1、 人工任务服务:管理任务生命周期的后端服务。流程引擎自身并不绑定某个特定的实现,而是支持插接这种实现。默认将提供一个基于WS-HT(WS-HumanTask)规范的独立实现,该规范描述了像生命周期(分配、获取、完成、释放(release)等)之类的内容,也包括群组分配、扩大(escalation)、分配规则等
2、 人工任务控制台:一个基于Web的应用,可用来查询任务列表,填写任务表单等。这个控制台的目标,是最终用户(那些将在流程中执行任务的参与者)。延续现有BPM控制台中已有的人工任务管理部分。
3、 表单编辑器:支持创建自定义任务表单(在需要完成任务时显示)。该编辑器的目标是开发人员,将提供基础的(类HTML的)任务表单辅助创建功能。可以集成不同的任务表单方案,默认将提供基于xforms(或类似方案)的表单编辑器。
(逻辑)集中的流程仓库可以保存和管理流程(和相关的交付件),它同样也包括一个基于Web的控制台,提供个业务用户,用于管理流程。他们可以检视流程,甚至可能动态的更新流程,创建和重新部署更新的知识库。支持对交付件的分类、检索、协作和部署前的场景测试等特性。另外也包括通过Eclipse或文件系统与该仓库集成。延续Drools项目中当前Guvnor仓库部分的功能。
这是一个用于管理流程实例的基于Web的控制台。它包含如下特性:管理流程实例(启动、停止)、检查它们的状态和变量等。这个控制台的目标用户是开发者(希望快速的测试他们的流程)和管理员(管理在运行的流程)。延续现有BPM控制台的流程管理功能。
这是一个Eclipse插件,帮助用户定义他们的BPMN2流程。它包括一个图形化编辑器,定义你的业务流程为流程图(使用拖拽方式和属性面板),目标用户是开发者。当然,它也提供验证、测试、调试等附加功能。
一个基于Web的BPMN2流程定义工具,目标用户是业务人员。该工具延续Oryx/Signavio合作团队提供的基于Web的BPMN2流程编辑器。
提供仿真执行流程的能力。比如,你可以(手动或自动)模拟流程的某条路径(或其他替代路径),也可以基于历史数据或统计输入,测量流程的时间和资源使用情况。这部分是jBPM3项目的实验性仿真模块的延续。
这部分可划分为下面几个部分:
1、 报表编辑器:使用Eclipse BIRT插件创建报表,展示关键性能指标。使用预定义的数据集,可以很容易定义你自己的报表,这些数据集包含所有的流程历史信息,也可以包含你自己需要加入的其他数据集。Eclipse BIRT框架允许你定义数据集,创建报表、图表等。这部分是BPM控制台报表部分的延续。
2、 报表控制台:基于Web的控制台,可以动态生成和展示BIRT报表。目标用户是业务人员,这部分也是BPM控制台报表部分的延续。
3、 BAM引擎:业务活动监控(BAM)将实时监控你的流程的执行,并能够即时响应事件。BAM引擎允许你组合各种来源的事件,搜索事件模式,产生高层事件,响应关键场景等。这是服务活动监控项目(SAM)的一部分,基于Drools Fusion作为负责事件处理(CEP)引擎。
4、 BAM控制台:基于Web,用来获取系统的实时状态概貌。包括仪表盘概览、图形等,目标用户为业务人员,也是SAM项目的一部分。
领域特定流程:通过领域特定阶段,可以容易地扩展流程工具箱。它允许用户使用自己更熟悉的领域特定概念,来建立他们的流程模型。
安装脚本:简化引擎安装,包括Eclipse插件和Web工具,可以用来快速的生成一个安装好的示例。
持续集成和质量保证:基于Hudson,就像jBPM和Drools现在做的。
文档:(暂无内容)
OSGI:(暂无内容)
与各种其他项目集成:
1、 Drools:与其强制用户在流程中定义他们的业务知识(如使用一种面向流程的方式),我们支持用户组合使用业务流程、业务规则和事件处理来建立他们的知识模型。通过集成流程、规则和事件,用户可以选择最适合他们自己需求的方式,并组合他们。这也意味着用户只需要学习一种统一的方案,因为工具提供了无缝的集成,无论你使用的是流程、规则还是事件处理。最后,你会看到一种转变,从面向流程的方式,到更面向知识的方式(包括API、工具等)。
2、 认证/授权:要对系统提供不同级别的访问时,必需要有一套含可配置访问许可的安全模块。这需要集成现有的认证授权服务(如PicketLink)
3、 JBoss ESB:流程引擎可以作为服务部署到Jboss企业服务总线(ESB)。这样,流程引擎可以作为不同服务之间的编排引擎,这些服务可以都通过服务总线访问到。
4、 JOPR:对JMX标准的支持,使得用户可以使用任何JMX控制台,监控和检查流程定义和运行时。
Jbpm5资源下载地址
源码:https://github.com/droolsjbpm