欢迎来到天天文库
浏览记录
ID:11022168
大小:23.24 KB
页数:10页
时间:2018-07-09
《jbpm3.2 开发总结》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、jbpm3.2总结JavaBusinessProcessManagementjBpm是一个功能强大的可扩展的工作流管理系统。jBPM在2004年10月18日,发布了2.0版本,并在同一天加入了JBoss,成为了JBoss企业中间件平台的一个组成部分,它的名称也改成JBossjBPM。随着jBPM加入JBoss组织,jBPM也将进入一个全新的发展时代,它的前景是十分光明的。jBpm用流程语言来表示商业流程的术语比如:任务、异步通讯的等待状态、定时器、自动操作等等。把这些操作绑在一起,jBpm就有了强
2、大和易扩展的控制流机制。特点:jBpm倚赖性很小,可以很容易的作为java库来使用。可以用在吞吐量极为关键的J2EE群应用服务器环境中;jBpm的持久化层用Hibernate实现,可以同任何数据库配置可以部署在任何应用服务器上。jBpm工具箱;jBpm图形化流程设计器:图形设计器是一个Eclipse插件;它同时支持业务分析员和技术开发人员,这样就可以在业务流程建模和实际执行之间平滑转换。jBpm核心组件:是一个Java库;处理流程定义和运行时的流程实例执行。可以用在任何java环境(web应用程序
3、,Swing应用程序,EJB等等)。jBpm控制台web应用程序:流程执行运行时间任务生成的中央用户接口;管理和监视控制台允许检查和操作运行中的流程实例。jBpm身份组件:身份验证。jBpm调度程序:监视和运行已经计划到时执行流程的定时器的组件。jBpm数据库兼容包:包括所有支持数据库的相关信息,JDBC驱动程序和数据库初始化脚本。jBpmBPEL扩展:独立的扩展包用来支持BPEL(BusinessProcessExecutionLanguage商业流程执行语言)流程建模基本概念(1):流程定义:
4、基于定向图表示了一个商业流程的规范。图由节点和转换组成,图中的每个节点都有一个特定的类型,节点类型定义了运行时的行为;流程定义有且只有一个开始状态。流程实例:一个流程定义执行的实例,当一个流程实例被建立后,一个令牌也为主要执行路线建立了,这个令牌称为这个流程实例的根令牌,她的位置处于流程定义的开始状态。令牌:令牌:是执行的一个路线。令牌是运行时概念,用来维护指向图中某一节点的指针。信号:信号指示令牌继续图执行。当接受到无名的信号,令牌将用缺省的离开转换离开节点;当转换名字在信号中已经指定,令牌将使
5、用指定的转换离开节点。动作:在流程执行中在事件上执行的片段java代码。主要事件类型是:(进入节点)enteringanode,(离开节点)leavinganode?和(执行转换)takingatransition。节点责任:首先,它可以执行传统java代码;比如:建立一个新的任务实例、发送一个通知、更新数据库。其次,使流程继续执行。节点类型:任务节点(task-node):任务型接点代表一个或多个可以被执行的任务,此类节点需要指定某个人执行;等待节点(state):是一个单纯(bare-bone
6、s)等待状态,等待一个信号,信号到达到继续执行;条件节点(decision):进行条件判断;分支节点(fork):一个分支把一个执行路线分割成多个并发的执行路线;联合节点(join):将多个并发路线合并成一个路线;普通节点(node):当你想在节点里写入自己的代码时,可以使用普通节点。该类型节点无条件执行。Transitions(转换):转换具有一个源节点和一个目标节点;转换可以有一个任意的名字,但必须是唯一的。Actions(动作):Action是一段代码,由流程中的时间触发Action的代码:
7、publicclassRemoveEmployeeUpdateimplementsActionHandler{publicvoidexecute(ExecutionContextctx)throwsException{ //getthefiredemployeefromtheprocessvariables. StringfiredEmployee=(String) ctx.getContextInstance().getVariable("firedemployee");
8、 Connectionconnection=ctx.getProcessInstance(). getJbpmSession().getSession().getConnection(); Statementstatement=connection.createStatement(); statement.execute("DELETEFROMEMPLOYEEWHERE..."); statement.execute(); statement.cl
此文档下载收益归作者所有