《JBossjBPM305832.docx》由会员分享,可在线阅读,更多相关《JBossjBPM305832.docx(169页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、JBoss jjBPM 33.0 下一页JBoss jBPM 3.0 Workflow and BPM 实践 目录 1.介绍 1.1.综述述 1.2. Thhe JBooss jBBPM新手手工具箱 1.3. Thhe JBooss jBBPM流程程图形设计器器 1.4. Thhe JBooss jBBPM核心心组件 1.5. Thhe JBooss jBBPM 控制制台web应应用 1.6. Thhe JBooss jBBPM身份份组件 1.7. Thhe JBooss jBBPM日程程安排程序 1.8. Thhe JBooss jBBPM 兼容容数据库包 1.9. Thhe JBooss
2、jBBPM BPPEL扩展展 2.开始 2.1.下载一一览 2.1.1. jBPM 3 2.1.1.11. 新手工工具箱 2.1.1.22. 核心引引擎和身份组组件 2.1.1.33. 数据库库扩展 2.1.2. jBPM流程设计器器 2.1.2.11. Ecllipse更新站点 2.1.2.22. Ecllipse特点 2.1.3. jBPM BPEL扩展 2.2. Thhe JBooss jBBPM项目目目录 2.3. 公开开CVS访问问 3.指南 3.1. Heello WWorld例子 3.2. 数据据库 例子 3.3. 上下下问(conntext) 例子: 流程变量 3.4. 任务务
3、分派例子 3.5. 定制制动作Acttion例子子 4. 面向图的的程序设计 4.1.缺少少的一环 4.2. 图解解表示和开发发过程 4.3. 习惯惯方法 4.4. 什么么是面向图的的程序设计 4.5. 组建建块 5.发布 5.1.运行行时的相关部部分 5.1.1.Java运运行环境 5.1.2. jBPM库 5.1.3.运行时需要要的库 5.2.配置置文件 5.2.1. jbpm.propeertiess 5.2.2. Hiberrnate cfg xxml fiile 5.2.3.业务日历配配置文件 5.2.4. 变量映射配配置稳健 5.2.5. 转换器配置置文件 5.2.6. 缺省模块配
4、配置文件 5.2.7. 流程文档解解析器配置文文件 5.3. 在WWeb应用程程序中使用jjBPM 5.4. 在EEJB 包容容器中使用jjBPM 6.永久化 6.1.永久久化API 6.2. 数据据库配置 6.3. 管理理事务 6.4.jBBPM数据库库 6.4.1. Hiberrnate集集成 6.4.2. 开发数据库库是hsqlldb 6.4.3. 其他数据库库的支持 6.4.4.高速缓冲存存储器 6.5. Hiibernaate定制制 7.流程模型型 7.1.综述述 7.2.流程程图(proocess Graphh) 7.3. 节点点(Nodees) 7.3.1. 节点(Noode)职
5、责责 7.3.2. 节点类型(Nodettype)任任务(tassk-nodde) 7.3.3. 节点类型(Nodettype) 状态(sttate) 7.3.4. 节点类型(Nodettype) 判定(deecisioon) 7.3.5. 节点类型(Nodettype) 分叉(foork) 7.3.6. 节点类型(Nodettype) 联合(jooin) 7.3.7. 节点类型(Nodettype)节点(noode) 7.4. 动作作(Actiions) 7.4.1.动作配置 7.4.2. 动作引用 7.4.3.事件 7.4.4.事件传播 7.4.5. Scrippt 7.4.6. 定制事件
6、 7.5.超状状态(supperstaate) 7.5.1.超状态 变变迁 7.5.2. 超状态 事事件 7.5.3. 分级名字 7.6. 异常常处理 7.7. 流程程组成 7.8. 定制制节点行为 7.9. 图(Graphh)执行 8. 上下文(Conteext) 8.1. 存取取变量 8.2. 变量量的使用期限限 8.3. 变量量永久化 8.4. 变量量范围 8.4.1. 变量重载( overrloadiing) 8.4.2.变量重写 (ovverridding) 8.5. 瞬间间变量 8.6. 定制制变量永久化化 9. 任务管理理 9.1.任务务 9.2.任务务实例 9.2.1. 任务实
7、例生生命周期 9.2.2. 任务实例及及图执行 9.3. 委派派(Assiignmennt) 9.3.1. 委派接口 9.3.2. 委派数据模模型 9.3.3. 推模型型 9.3.4. 拉模型型 9.4. 泳道道(Swimmlaness) 9.5. 任务务 事件 9.6.任务务 定时器 9.7. 任务务 控制器 9.8. 定制制 任务实例例 9.9. 身份份组件 9.9.1. 身份模型 9.9.2. 赋值表达式式 9.9.2.11. 第一个个术语 9.9.2.22. 下一个个术语 9.9.3. 删除身份组组件 10. 调度程程序 10.1. 定定时器 10.2. 调调度程序发布布 11. 业务
8、日日历 11.1.持持久时间 11.2. 配配置 12. 记录 12.1.建建立日志 12.2. 日日志检索 12.3. 数数据仓库 13. jBPPM流程定定义语言 (JPDL) 13.1.流流程档案 13.1.1. 发布流程程档案 13.1.2. 流程版本本(verssioninng) 13.1.3. 流程转换换(convversioon) 13.2. 代代理 13.2.1. jBPPM类载入器器 13.2.2. 流程类载载入器(cllass lloaderr) 13.2.3. 代理配置置 13.2.3.1.配置置类型 fiield 13.2.3.2. 配置置类型 beean 13.2.3
9、.3. 配置置类型 coonstruuctor 13.2.3.4. 配置置类型 coonfiguuratioon-proopertyy 13.3. JJPDL xxml scchema 13.3.1. proccess-ddefiniition(流程定义) 13.3.2. nodee(节点) 13.3.3. commmon noode ellementts(常见节节点元素) 13.3.4. starrt-staate(开始始状态) 13.3.5. end-statee(结束状态态) 13.3.6. statte(状态) 13.3.7. taskk-nodee(任务节点点) 13.3.8. pr
10、occess-sstate(流程状态) 13.3.9. supeer-staate(超状状态) 13.3.100. forrk(交叉) 13.3.111. joiin(联合) 13.3.122. deccisionn(判定) 13.3.133. eveent(事件件) 13.3.144. traansitiion(转换换) 13.3.155. acttion(动动作) 13.3.166. scrript(脚脚本) 13.3.177. exppressiion(表达达式) 13.3.188. varriablee(变量) 13.3.199. hanndler(处理器) 13.3.200. tim
11、mer(定时时器) 13.3.211. creeate-ttimer(建立定时器器) 13.3.222. canncel-ttimer(放弃定时器器) 13.3.233. tassk(任务) 13.3.244. swiimlanee(泳道) 13.3.255. asssignmeent(委派派) 13.3.266. conntrolller(控制制器) 13.3.277. subb-proccess(子子流程) 13.3.288. connditioon(条件) 13.3.299. excceptioon-hanndler(异常处理) 14.安全 14.1.要要做的 14.2. 验验证 14.
12、3. 授授权 15. TDDD for workfflow 15.1. IIntrodducingg TDD for wworkfllow 15.2. XXML soourcess 15.2.1. Parssing aa proccess aarchivve 15.2.2. Parssing aan xmll filee 15.2.3. Parssing aan xmll Striing 15.3. TTestinng subb proccessess 16. 可插入入架构 下一步Chapteer1.介绍第一章:介绍前一页后一页第一章:介绍JBoss jjBPM 是是一个复杂的的可扩展的工工作
13、流管理系系统. JBBoss jjBPM 有有直观的流程程语言来表示示商业流程图图的术语比如如,任务,异异步通讯的等等待状态,定定时器,自动动操作等等.把这些操作作绑在一起, JBooss jBBPM 就有有了最强大和和易扩展性的的控制流机制制. JBoss jjBPM 只只有最小的倚倚赖性可以很很容易的作为为java库库来使用.当当然它也可以以用在吞吐量量极为关键的的J2EE 群应用服务务器环境中. JBoss jjBPM 可可以同任何数数据库配置可可以部署在任任何应用服务务器上. 1.1.综述述核心工作流和BBPM 功能能被封状作为为一个简单的的Java库库.这个库包包括在jBPPM数据库
14、中中存储,更新新和检索流程程信息的服务务 Figure1.1.JBosss jBPMM 组件一览览 1.2.JBBoss jjBPM新新手工具箱 新手工具箱是包包含了jBPPM所有组件件包在一个可可下载的包里里. 这个包包括: jbpm-seerver , 预先配配置的jbooss 应用用服务器. jbpm-deesigneer , jjBPM流程程图形化设计计器的ecllipse插件 . jbpm-dbb ,jBBPM 数据据库兼容包 (参看下面面). jbpm , 核心jbppm组件包括括库和本手册册. jbpm-bppel ,JBosss jBPMM BPELL 扩展参考考. 预配置的J
15、Booss 应用用服务器有下下列安装组件件: 核心jBPM 组件 , 打包作为JJBoss服服务档案 一个包括所有jjBPM 表表格的完整数数据库 : 默认的 hhyperssonic 数据库包含含所有的jBBPM表格格和已经定义义的流程. jBPM 控制制台web应应用程序 这这个可以用来来为jBPMM管理员. jBPM调度程程序 所有定定时器的执行行. 调度程程序在新手工工具箱里配置置成了一个sservleet.这个SServleet会为产生生一个线程来来监视每个定定时器的执行行. 一个流程例子 已经发布进进了jBPMM 数据库. 1.3.JBBoss jjBPM 图图形化流程设设计器 J
16、Boss jjBPM 也也包括一个图图形化的流程程设计工具. 这个设计计器是用来创创作商业流程程的 JBoss jjBPM 图图形设计器是是一个Ecllipse插插件. 独立立安装版本的的设计器工具具已经在开发发路线图里了了. 图形化设计工具具最重要的特特性是它同时时支持业务分分析员和技术术开发人员. 这样就可可以在业务流流程建模和实实际执行之间间平滑转换. 插件可用做为本本地的upddate ssite(EEclipsse 纯粹的的zip文件件),用做符符合Ecliipse软件件更新机制的的安装包. 当然你也可可以把它展开开到你的Ecclipsee的安装目录录. 1.4.JBooss jBB
17、PM核心组组件 JBoss jjBPM 核核心组件是纯纯粹的Javva(J2SSE)软件,来处理流程程定义和运行行时的流程实实例执行. JBoss jjBPM 是是一个Javva库. 因因此,它可以以用在任何jjava环境境比如webb 应用程序序,Swinng应用程序序,EJB,Web SServicce等等. jBPM 库可以被打打包作为saatelesss sesssion EJB(无无状态会话EEJB). 这可以用做做集群的发布布具有极高的的吞吐量可伸伸缩性. 无无状态会话EEJB根据JJ2EE 11.3规范重重新写过所以以可以发布到到任何应用服服务器上. JBoss jjBPM 核核
18、心组件被打打包成一个简简单的Javva库文件.依赖你所使使用的功能性性,库 jjbpm-33.0.jaar及一些相相关的第三方方的库比如 . hibbernatte, doom4j 等等等.这些些相关性在 第五章发布有清晰晰的描述永久性方面, jBPM内内部使用hiibernaate. 除除了传统的OO/R 映射射外, hiibernaate也分析析不同数据库库系统的SQQL方言 ,这使jBPPM在当前所所有的数据库库上都可以移移植. JBoss jjBPM AAPI 可以以从项目中任任意编写的JJava软件件访问,比如如Web应用用程序,EJJB,或weeb Serrvice组组件,消息bb
19、ean或其其他javaa组件. 1.5.JBBoss jjBPM控制制台web应应用程序 jBPM 控制制台web应应用程序是为为两个目的服服务的.首先先,它作为流流程执行运行行时间任务生生成的中央用用户接口. 其次, 它它也是一个管管理和监视控控制台允许检检查和操作运运行中的流程程实例. 1.6.JBBoss jjBPM 身身份组件 JBoss jjBPM可以以集成进任何何包含公司用用户和组织信信息的目录. 对项目来来说从那里得得到组织信息息组件不是容容易得到的, JBosss jBPPM就包含这这个组件. 身份组件使使用的模型比比通常的seervlett,ejb和和门户模型跟跟富有. 更多
20、信息可参考考 章节9.9, “身身份组件” 1.7.JBBoss jjBPM调调度程序 JBoss jjBPM 调调度程序是用用来监视和运运行已经计划划到时执行流流程的定时器器的组件. 定时器组件被打打包在核心jjbpm库中中, 但是它它需要被发布布到下面的任任一环境中: 要不你把把调度程序SServleet来产生监监视线程或者者就必须用独独立的JVMM来调用调度度程序的maain方法. 1.8.JBBoss jjBPM 数数据库兼容包包 JBoss jjBPM 数数据库兼容包包包括所有支支持数据库的的相关信息,JDBC驱驱动程序和数数据库初始化化脚本. 1.9.JBBoss jjBPM BB
21、PEL扩展展 JBoss jjBPM BBPEL扩展展是独立的扩扩展包用来支支持BPELL(Busiiness Proceess Exxecutiion Laanguagge 商业流流程执行语言言). BPPEL的基本本要素是 xxml Sccriptiing语言用用来写其他wweb seerver的的web sservicces. 前一页Up后一页JBoss jjBPM 33.0 首页第二章:开始始 第二章 开始前一页后一页第二章 开始本章将带你如何何获得JBooss jBBPM的第一一步并且提供供立即运行的的初始提示 .2.1.下载载包一览下面是当前可用用的不同jBBPM包清单单. 这些包
22、包中的每一个个都包含一个个或多个可下下载的文件. 同这些文文件一起的包包含一个描述述它的内容及及相关安装的的指示 所有下面下载的的描述都可以以在 thee sourrceforrge jbbpm 下载载页面.上找找到2.1.1.jBPM 3这是主要的发行行包,包括了了主要核心引引擎和数个额额外的你使用用jBPM的的时候可能用用得上的包.下载这个包包的文件从 这里.2.1.1.11.新手工工具箱如果你想尽快开开始运行jBBPM,那么么这就是你想想下载的文件件.工具箱包包含了所有jjBPM的模模块以及图形形化的设计工工具在一个单单独下载的文文件里名字为为: jbbpm-sttarterrs-kit
23、t-.zip. 展开这这个压缩文件件到目录下阅阅读reaadme.hhtml 获取更多信信息.有了了这个工具箱箱,你可以立立即开始进入入 第三章章 讲座.2.1.1.22.核心引引擎和身份组组件下载文件名为jbpmm-.zip 包含jBBPM 核心心引擎也包含含角色和组管管理的身份组组件. 开始始工作前, 展开文件到到一个目录下下,然后 jbpm-文件夹下找找到包含重要要的参考信息息的reaadme.hhtml文文件2.1.1.33.数据库库扩展如果你想改变jjBPM的默默认数据库( Hypeersoniic HSQQLDB), 你需要下下载这个包.文件名为为jbpmm-db-.zzip 包包
24、含你改变数数据库需要的的各种资源. 包含, 数据库建立立脚本, hhibernnate 属属性文件及数数据库JDBBC驱动程序序. 如何操操作的步骤包包含在 rreadmee.htmll 文件里里,它在你展展开这个压缩缩包的最上层层的目录下.2.1.2.jBPM 流程设计器器The seccond ppackagge conntainss the downlloads relatted too the jBPM Graphhical Procees Dessignerr. Thee desiigner enablles yoou to authoor youur proocess definn
25、itionns andd to eeasilyy deplloy thhem. YYou caan finnd theese doownloaads heere.Thhe dessignerr is aa plugg-in ffor thhe Ecllipse platfform wwhich is avvailabble foor dowwnloadd eithher ass a ziipped Eclippse feeaturee or aas a zzippedd Ecliipse uupdatee sitee. Theere iss no ddifferrence in coonten
26、tt, thee onlyy diffferencce is in thhe wayy you have to doo the instaallatiion.2.1.2.11.Ecllipse 更新站点If you want to bee absoolutelly surre thaat thee desiigner instaallatiion gooes smmoothlly, wee recoommendd to uuse thhe upddate ssite mmechannism ttogethher wiith a new EEclipsse insstallaation. Of
27、ccourcee the Eclippse veersionn shouuld maatch tthe doownloaaded uupdatee sitee archhive. To obbtain the PProcesss Dessignerr Updaate Siite, yyou shhould downlload tthe fiile jjbpm-ggpd-siite-.ziip. TThen ffolloww the instrructioons inn the readdme.httml ffile iincludded inn the archiives rroot ffol
28、derr to ssuccessfullyy insttall tthe GPPD.2.1.2.22.Ecllipse 特性If you are ttired of eaach tiime haaving to doo a frresh EEclipsse insstallaation and yyou arre willling to coope wiith soome poossiblle isssues, you ccan trry thee featture ddownlooad. IIn thiis casse insstallaation is ass easyy as eextr
29、accting the aarchivve intto youur Ecllipse instaallatiion (mmake ssure tthe inncludeed plluginss andd feaaturess follders end uup in the ssame llocatiion off yourr Ecliipse iinstalllatioon) ovverwriiting the ffiles and ffolderrs witth thee samee namee thatt are possiibly aalreaddy preesent. Thiss in
30、sttallattion iis verry eassy, buut youu coulld runn intoo incoompatiibilitty isssues wwhen yyou ovverwriite plluginss alreeady ppresennt in your instaallatiion beecausee of oother featuures tthat yyou diid insstall. Thouugh thhey haave thhe samme namme it couldd happpen thhat thhe verrsionss of tthe
31、se colliiding plugiins arre nott equaal, heence tthe poossiblle inccompattibiliities. Downnload the ffile jbpm-gpd-ffeaturre-.zipp to obtaiin thee GPD featuure. TThe innstalllationn insttructiions aare reepeateed in the readmme.htmml fiile.2.1.3.jBPM BPEL 扩展第三个也是最后后一个包包含含jBPM BPEL 扩展. 它它只包含一个个文件: jb
32、pm-bpel-.zip. 你可以找找到这个包 在这里 .要要开始BPEEL扩展,在在doc目录录下找到Ussers Guidee .2.2.JBBoss jjBPM 项项目号码簿 professsionall suppport: JBosss is tthe coompanyy thatt backks thiis prooject with profeessionnal suupportt, traainingg and consuultanccy serrvicess. user guuide: is thhe doccumentt youre reeadingg and servees
33、 as the mmain eentry pointt intoo the projeect. downloaad desscripttions: desccriptiion off the downlloadabbles downloaads: ssourceeforgee downnload page for jjBPM forums: get in coontactt withh the commuunity, ask questtions and ddiscusss jBPPM wiki: eextra inforrmatioon, moostly proviided bby thee
34、 commmunityy issue ttrackeer: foor subbmittiing buugs annd feaature requeests roadmapp: shoows whhat too expeect inn the next versiions mailingg listts: maailingg listts aree usedd for annouuncemeents javadoccs: paart off the downlload iin thee doc/javaddoc diirectoory. cvs: thhe dettails of hoow to
35、 get tthe jBBPM soourcess fromm CVS2.3.公开开的CVS访访问另外,你可以通通过JBosss jBPPM cvss服务器 得得到jBPMM服务器的信息如如下 Connecttion ttype: pservver User: aanonymmous Passworrd: Host: Port: 22401 (whichh is tthe deefaultt) Reposittory ppath: /cvsrroot/jjbpm Label: :pserrver:aanonymmous:/cvsrooot/jbbpm第三章.讲座座前一页后一页第三章.讲座座这个
36、讲座将展示示如何建造一一个jpdll和如何使用用API的方方法来管理运运行时的执行行.这个讲座的方式式是解释一系系列的例子. 每个例子子将集中关注注特别的主题题和额外的说说明. 这些些例子可以在在jBPM包包的exammples目目录下找到.最好的方法就是是学着来建立立一个Prooject实实验所给的例例子.eclipsee 用户注意意:下载jbbpm-3.0-veersionn.zipp并且解压缩缩到系统.然后从菜单单 Fille - Immport. - EExistiing Prrojectt intoo Workkspacee.点 Nextt 然后浏浏览jBPMM根目录然然后点击 Fi
37、nissh. 现现在你的有了了jbpm 3 prooject了了. 你可以以发现这个讲讲座目录在目目录 srcc/javaa.exammples/. . 你打开这这些例子后,可以运行它它们Runn - Runn As. - JUUnit TTestjBPM 包括括一个图形设设计器来产生生例子中的XXML. 你你可以从这里里下载和学习习有关图形设设计器的说明明 节22.1, “下下载一览”3.1.Heello WWorld 例子一个流程 是有有一个定向图图(direected graphh)来定义,由节点和变变换组成. helllo worrld流程程有3个节点点.如下看如如何组合起来来, 我们
38、先先开始一个简简单的流程不不使用图形设设计器. 下下面的图形表表示helllo worrld 流程程: Figure3.1. helllo worrld 流程程图public void testHHelloWWorldPProcesss() / 这个方法法展现流程定定义和流程执执行的定义 / 流程定义义有3个节点点. / 一个未命命名的开始状状态starrt-staate,一个个状态 ss / 一个结束状状态名字为end. / 下面行行解析一个xxml teext为一个个ProceessDeffinitiion对象(流程定义) / PrrocesssDefinnitionn 把流程定定义形式描
39、述述为javaa对象 ProceessDeffinitiion prrocesssDefinnitionn = PrrocesssDefinnitionn.parsseXmlSStringg( + + + + + + + + ); / 下一行行建立了一个个流程执行定定义. /在构造后后,流程执行行有一个主要要的执行路径径 / (= roott tokeen 根令牌牌) 此时位位置在staart-sttate处 ProceessInsstancee proccessInnstancce = nnew PrrocesssInstaance(pprocesssDefiinitioon); / 在构造
40、后后流程执行有有一个主要的的执行路径 / (= rooottokken 根令令牌) . Tokenn tokeen = pprocesssInsttance.getRoootTokken(); / 构造后, 位置处于于流程定义执执行路径sttart-sstate的的位置 asserrtSamee(proccessDeefinittion.ggetStaartStaate(), tokeen.gettNode(); / 现现在开始流程程执行,离开开startt-statte 结束默默认的转换(transsitionn) tokenn.signnal(); / 这这个signnal方法将将会阻塞直
41、到到流程执行进进入 waiit 状态 / 流程执行在在状态s 进入第一一个 等待状状态 / 因此执执行主路径现现在位置在 状态s asserrtSamee(proccessDeefinittion.ggetNodde(s), tooken.ggetNodde(); / 我们再送另另外一个信号号signaal. 这将将继续执行离离开状态ss 结束默默认的转换(transsitionn) tokenn.signnal(); / 现在信号ssignall方法将返回回,因为流程程实例到达了了end-sstate 结束状态 asserrtSamee(proccessDeefinittion.ggetNo
42、dde(ennd), tokenn.getNNode();3.2.数据据库例子jBPM一个基基本的特性是是当流程处于于等待状态时候候可以把流程程执行 永久久化到数据库库中 . 下下一个例子想想你展示了如如何存储一个个流程实例到到jBPM数数据库中. 例子给出一一个将会发生生的上下文.分开的方法法用来建立不不同部分的用用户代码. 比如一部分分用户代码在在web 应应用程序中开开始一个流程程并永久化执执行到数据库库中.然后,messaage drrive bbean从数数据库中载入入流程实例并并继续它的执执行 jBPM 永久久化的更多内内容可以参看看 第六章章, 永久化化.public class
43、s HellloWorlldDbTeest exxtendss TesttCase / 我们们在每个应用用程序中需要要一个JbppmSesssionFaactoryy. 因此我我们把它放在在一个静态变变量中 / JbpmSSessioonFacttory 在在test 方法中来建建立一个 JbpmSSessioons. statiic JbppmSesssionFaactoryy jbpmmSessiionFacctory = JJbpmSeessionnFactoory.buuildJbbpmSesssionFFactorry(); statiic / 因因为HSQLLDBin-memorry数据库是