• 1. JBPM工作流介绍主讲:liveam 2008年3月7日
  • 2. 前言工作流:workflow 工作流系统 :workflow management systems (WFMS) 工作流系统的现状:还处于技术发展曲线(technology hype curve)上的初级阶段。 WFMC:是由约300家成员参加的组织,基于参考模型定义了一系列的标准。参考模型用例(use case)的形式描述了工作流系统和其他相关部分之间的关系。XPDL是WFMC制定的描述业务流程控制流(control flow )的XML格式规范。 BPM:Business Process Management 业务流程管理
  • 3. Workflow vs. RDBMS positioned in the hype-curve前言-工作流的生命期
  • 4. 前言-WFMC定义的流程模型
  • 5. 前言-WFMC提供参考的几个系统设计模式Generic Workflow Product StructureStandard Workflow Enactment Service BoundaryAlternative Client Worklist Handle Implementations
  • 6. 前言-现有的工作流列表IBM的Flowmark/MQ Series 微软的Workflow Designer for Exchange JBPM-jboss(redhat) OsWorkFlow-opensymphony(webwork2.0) Shark-Enhydra 普元EOS 西安协同 其他
  • 7. 第一章 JBPM介绍JBOSS JBPM是一个灵活的、可扩展的工作流管理系统。JBOSS JBPM拥有直观的流程语言,用任务、异步的等待状态、定时器、自动化动作…等来表示业务流程图,把这些操作绑定在一起,JBOSS JBPM就拥有了非常强大和可扩展的控制流机制。 JBOSS JBPM是采用JAVA语言开发的流程引擎,可将其封装成Web Service以供第三方应用调用。 JBOSS JBPM只有最小的依赖,可以象使用java库一样非常容易的使用它。另外,也可以通过把它部署在J2EE集群应用服务器中,用在吞吐量极为关键的环境中。 JBOSS JBPM可被配置为任何数据库,并且可以部署到任何应用服务器。 JBPM不符合WFMC组织制定的工作流规范。
  • 8. 第二章 JBPM工作流的主要概念工作流引擎(engine):核心组件,负责生成流程运行时的各种实例及数据,以及监视和管理流程的运行; 流程定义(process definition):预先定义的业务逻辑; 流程实例(process instance):业务的实际流转过程; 参与者(actor):任务的参与者(可能是人也可能是角色或是组织等); 任务(task):业务逻辑上定义的需要呈现给参与者参与处理的元素; 任务实例(task instance):业务实际流转过程中,生成的需要参与者进行参与的实际内容; 流转(transition):连接业务逻辑不同节点的桥梁,也是业务实例进行流转的依据; 令牌(token):概念源与PetriNet,可记录流程当前状态及记录父子流程及分支等; 信号(signal):触发流程进行流转的一个标志; 工作列表(worklist):根据实际应用的需求,需要展示给参与者的任务实例列表。 //待办任务列表为其最具代表性的例子
  • 9. 第三章 JBPM流程基本的处理步骤加载(发布)流程定义 启动流程 处理任务 流程监控及管理
  • 10. 第三章 加载(发布)流程定义我们可以通过JBPM的eclipse designer图形化插件,或者是用其他工具,制定出ProcessDefinition,然后将其加载到应用中。 ProcessDefinition既为我们的业务逻辑的计算机表达 ProcessDefinition的载体可以是内存、File或者是数据库等。
  • 11. 第三章 启动流程在定义好了业务逻辑的流程定义后,我们就可以依托该定义进行实际业务的运行。 开始实际业务的运行意味着我们要在其流程定义的基础上创建其实例,既ProcessInstance JBPM提供了几个依据ProcessDefinition创建其实例的api,具体可见下面的示例或查api。
  • 12. 第三章 处理任务在流程流转的过程中,JBPM引擎会根据流程定义为我们生成任务的实例。 我们就需要针对这些任务实例来进行处理,然后结束这些任务实例,并推动流程的流转。 处理的过程简要如下: 签收任务 任务处理 任务结束(并根据所选条件自动创建下一任务实例或结束流程)
  • 13. 第三章 流程监控及管理记录流程状态这点包括且不限于以下内容: 1)流程实例的开启; 2)任务实例的创建; 3)任务实例的执行; 4)任务实例的结束; 5)流程实例的结束; 6)统计任务执行周期,分析系统瓶颈; 7)统计各业务的任务数及执行情况等。
  • 14. 第四章 流程定义的组成部分流程定义是一种采用xml语法表达的有向图结构 流程定义文件包包括: processdefinition.xml processimage.jpg gpd.xml 三个文件 processdefinition.xml为流程定义的xml表示文件 processimage.jpg为其图片展示 gpd.xml为定义文件上个节点位置信息
  • 15. 第四章 流程定义的组成部分构成流程定义的组成部分主要有:start-state end-state task-node node state decision fork/join subprocess superstate action eventscript timer swimlane
  • 16. 第四章 流程定义的组成部分节点的继承谱NodeEventActionTransitionDecisionEndStateForkJoinProcessStateStartStateStateTaskNodeSwimlaneTask
  • 17. 第四章 流程定义的组成部分JBPM流程定义的示例-processdefinition.xml
  • 18. 第四章 流程定义的组成部分JBPM流程位置文件的示例-gpd.xml
  • 19. 第四章 流程定义的组成部分JBPM流程图的示例-processimage.jpg
  • 20. 第五章 流程数据库由于JBPM采用Hibernate来实现ORM机制,因此JBPM是跨数据库的.JBPM_ACTION JBPM_BYTEARRAY JBPM_BYTEBLOCK JBPM_COMMENT JBPM_DECISIONCONDITIONS JBPM_DELEGATION JBPM_EVENT JBPM_EXCEPTIONHANDLER JBPM_JOB JBPM_LOG JBPM_MODULEDEFINITION JBPM_MODULEINSTANCE JBPM_NODE JBPM_VARIABLEINSTANCE JBPM_POOLEDACTOR JBPM_PROCESSDEFINITION JBPM_PROCESSINSTANCE JBPM_RUNTIMEACTION JBPM_SWIMLANE JBPM_SWIMLANEINSTANCE JBPM_TASK JBPM_TASKACTORPOOL JBPM_TASKCONTROLLER JBPM_TASKINSTANCE JBPM_TOKEN JBPM_TOKENVARIABLEMAP JBPM_TRANSITION JBPM_VARIABLEACCESS
  • 21. 第五章 流程数据库创建JBPM数据库的三种方式: 1、采用程序方式创建 2、使用hibernate自动生成 3、根据JBPM提供的各类型数据库的sql自行生成
  • 22. 第六章 JBPM资源包
  • 23. 第七章 JBPM Helloworld接下来我们进行一个基于JBPM工作流引擎的小实例的开发。
  • 24. 结束语鉴于JBPM优秀的理论指导和方法论支持,其极有希望在近几年成为工作流领域的一个鲜明旗帜,起到领军带头的作用,前景十分光明。
  • 25. 谢谢author:liveam email:liveam@126.com