- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
jbpm3.2开发总结
jbpm3.2 总结Java Business Process Management jBpm 是一个功能强大的可扩展的工作流管理系统。jBPM在2004年10月18日,发布了2.0版本,并在同一天加入了JBoss,成为了JBoss企业中间件平台的一个组成部分,它的名称也改成JBoss jBPM。随着jBPM加入JBoss组织,jBPM也将进入一个全新的发展时代,它的前景是十分光明的。jBpm用流程语言来表示商业流程的术语比如:任务、异步通讯的等待状态、定时器、自动操作等等。把这些操作绑在一起, jBpm就有了强大和易扩展的控制流机制。特点:jBpm倚赖性很小,可以很容易的作为java库来使用。可以用在吞吐量极为关键的J2EE 群应用服务器环境中;jBpm的持久化层用Hibernate实现,可以同任何数据库配置可以部署在任何应用服务器上。jBpm工具箱;jBpm图形化流程设计器:图形设计器是一个Eclipse插件;它同时支持业务分析员和技术开发人员,这样就可以在业务流程建模和实际执行之间平滑转换。jBpm核心组件:是一个Java库;处理流程定义和运行时的流程实例执行。可以用在任何java环境(web应用程序,Swing应用程序,EJB等等)。jBpm控制台web应用程序:流程执行运行时间任务生成的中央用户接口;管理和监视控制台允许检查和操作运行中的流程实例。jBpm身份组件:身份验证。jBpm调度程序:监视和运行已经计划到时执行流程的定时器的组件。jBpm数据库兼容包:包括所有支持数据库的相关信息,JDBC驱动程序和数据库初始化脚本。jBpm BPEL扩展:独立的扩展包用来支持BPEL(Business Process Execution Language 商业流程执行语言) 流程建模基本概念(1):流程定义:基于定向图表示了一个商业流程的规范。图由节点和转换组成,图中的每个节点都有一个特定的类型,节点类型定义了运行时的行为;流程定义有且只有一个开始状态。流程实例:一个流程定义执行的实例,当一个流程实例被建立后,一个令牌也为主要执行路线建立了,这个令牌称为这个流程实例的根令牌,她的位置处于流程定义的开始状态。令牌:令牌:是执行的一个路线。令牌是运行时概念,用来维护指向图中某一节点的指针。信号:信号指示令牌继续图执行。当接受到无名的信号,令牌将用缺省的离开转换离开节点;当转换名字在信号中已经指定,令牌将使用指定的转换离开节点。动作:在流程执行中在事件上执行的片段java代码。主要事件类型是:(进入节点) entering a node,(离开节点) leaving a node?和(执行转换)taking a transition。节点责任:首先,它可以执行传统java代码;比如:建立一个新的任务实例、发送一个通知、更新数据库。其次,使流程继续执行。节点类型:任务节点(task-node):任务型接点代表一个或多个可以被执行的任务,此类节点需要指定某个人执行;等待节点(state):是一个单纯(bare-bones)等待状态,等待一个信号,信号到达到继续执行;条件节点(decision):进行条件判断;分支节点(fork):一个分支把一个执行路线分割成多个并发的执行路线;联合节点(join):将多个并发路线合并成一个路线;普通节点(node):当你想在节点里写入自己的代码时,可以使用普通节点。该类型节点无条件执行。Transitions(转换):转换具有一个源节点和一个目标节点;转换可以有一个任意的名字,但必须是唯一的。Actions(动作):Action是一段代码,由流程中的时间触发Action的代码:public class RemoveEmployeeUpdate implements ActionHandler { public void execute(ExecutionContext ctx) throws Exception {??? //get the fired employee from the process variables. ??? String firedEmployee = (String)?????? ctx.getContextInstance().getVariable(fired employee);??? ??? Connection connection = ctx.getProcessInstance().?????? getJbpmSession().getSession().getConnection(); ??? Statement statement = connection.createStatement();?? ??? statement.execute(DELETE
文档评论(0)