作者:empty 页数:199 出版社:empty |
jBoss jBPM是一个灵活、可扩展的流程语言框架, jP DL是建立在这个通用框架之上的一个流程语言.它使用真观的流程评言以图形化的方式来表示业务流程,使用术语任务、异步通讯等待状态、定时器、自动操作等。为了将这些操作绑定在一起, jP DL提供了强有力的、可扩展的流程控制机制,jP DL有一个具有最小的依赖性和尽可能简单易用的java犀。但它也能被部署在高春叶量极为关键的J2EE集群应用服务器的环境里,jP DL能够使用任何数据库来进行配置, 同时也能任何应用服务器上进行部署。1.1.概述核心工作流和BPM功能被封装成一个简单的java库, 它包含了一个用来管理和执行jP DL数据库中流程的服务,1.2.jP DL套件这个套件中包含了捆绑在起的所有jBPM组件的组成的简易下载包。下载包中包括以
db:创建数据库的SQL脚本文件以及兼容性信息designer:用来创作jP DL流程的eclipse插件, 以及安装脚木(这部分内容不包含在仅jp dl的下载中) 。请参考:13节jP DL图形流程设计器。doc:用户手册和javadoc文档exampleslib:jbpm依粮的库文件.需要更多的信息请参考:5.3节第三方库文件server:包含内置jbpm控制台web应用程序的预先配置好的JBoss服务器(这部分内容不包含在仅jp dl的下载中)。sre:jbpm和身份组件(identitycomponent)的源代码Web控制台打包成一个web包.控制台既能够被流程的参与者, 也可以由jBPM管理员来使用。工作执行器扮演定时器和异步消息的角色, 在控制台的we h应用中有一个servlet上下文件监听器,用来执行工作执行器,它产生一个线程池来执行定时器和异步消息.jBPM数据库, 包含jBPM表的一个内置流程(in-process) 的hypersonic数据库。已部署进jBPM数据库中的示例流程、身份组件库是web控制台应用的一部分。在数据库中的身份组件表(那些表以“JB PMID”开头) 是有效的1.3.jP DL图形流程设计器jP DL也包含一个图形化的流程设计工具。这个设计器是创作业务流程的图形化工具。它是个eclipse插件员。它允许从业务流程建模到实际实现之间的平滑转换,流程设计工具最重要特性就是,不但支持业务分析人员,同时也很好的支持技术开发人这个插件既可以使用本地更新站点《纯zip文件) 的方式, 来通过标准的eclipse软件更新机制来进行安装, 同时也有一个可以将其解压到你的eclipse的安装日录来完成安装的功能包.1.4.jBPM web控制台成的运行时任务。其次,它是一个管理和监控控制台,控制台允许检查和操作运行时实例。出瓶颈或其他的优化方法。enesihjbrncjeffminp@126.comhttp/zhang ym.javaeye.com/第10页/共199jBPM web控制台服务于两个目标, 首先, 作为一个中央用户接作用于流程执行所生再有的功能就足业务活动的监控.这些是流程执行的统计信息,他们有助于管理人员我页
1.5.jBPM核心库运行时环境。JBoss jBPM核心组件是一个纯java(J2SE) 库, 用来管理流程定义和流程实例执行的JBoss jBPM是一个java库。因此, 它能够在任何一个java环境上使用, 例如; web应用、swing应用、EJB、Webservice等等.jBPM库也能够当作个无状态会话EJB(statelesssession EJB) 打包并发布。这样就适合具有极高的吞量要求场合的集群部署和伸缩性。无状态会话EJB在J2EE 1.3规范的基础上进行重写, 这样它就可以部署在任何的应用服务器上,依靠你所使用的功能, jbpm-jp dL jar库文件有一些依赖于其他的第一方库。例如hibernate、dom4j和其他的库, 我们已经付出了极大的努力来要求那些仅仅是你真正使用的依赖库文件。这些依赖在第5章部署中有更多的整理文档.决在不同的数据库间的SQL方言的差异, 使得jBPM可以在目前所有的数据库间进行迁移.webservice组件、消息驱动bean(message driven beans) 或任何其他java组件,对于它的持久化, jBPM内部使用hibernate。除了传统的O/R映射外, hi be mate也能解JBoss jBPM API能够被项目中的任何自定义的java软件访问, 例如web应用、EJB、1.6.JBoss jBPM身份组件JBoss jBPM能够同包含用广和其他的织结构信息的企业目录进行整合但对于项目来讲, 是不会轻易地找到组织结构信息组件的, 正因为如此, JBoss jBPM白身就提供了这个组件。身份件使用的模型比传统的servlet、ejb和portlet所使用的模型更加丰富.了解更多的信息,请参考:12.11身份组件1.7.JBoss jBPM工作执行器工作执行器是一个在标准Java环境中用来监控和执行工作的组件。用于定时器和异步消息, 在一个企业环境里.JMS和EJB定时服务能够用于此斤的相反, 工作执行器能够用在既没有JMS也没有EJB的环境里。可以注册Job Executor Launcher servlet上下文监听器在web应用的部署描述符中开始/停止工作执行器在创建/销毁servlet上下文期这一期间, 也可以开始独立的JVM并启动程序化的工作执行器,enesihljbrnejeffing@126.comhttp:/zhangym.javaeye.com/第11页/共199页第2章正式开始本章将带你完成第一步, 获得JBoss jBPM井给出立即开始运行基本的指南、2.1.下载包概述件,连同这些文件还有其内容的描述,如果是可以安装的话还会有相关的安装手册,下面列出的是当前可用的不周的jBPM包。每个包都包含了个或更多的可下载的文下列被描述的所有的下载都可以在Sour ec for geiB PM下载面上找到.2.1.1.jP DL 3下载BPM i PDL 3丛Sourceforge.net站点, 这是一个主发布包, 它包含了核心引擎和许多同jP DL一起工作可能会用到的的额外模块.2.1.2.jP DL流程设计器jP DL套件(bpm-jpd-suite.zip) :jP DL套件是一个扩展了的包含设计器和服务器的运行时, 所有的这些组件被预配置来进行交互操作。如果你想快速的开始jBPM, 那么这个就是你要下载的文件。它包含了这个包的所有其他的模块加上图形化的设计器在一个单独的下载里。解压这个压缩包到你选择的目录, 并阅读“readme.html”这个文件米获得更多的信息和深入的安装指南,有了这个新于工具箱你就能快速的开始第3章教程:jP DL运行时引擎(jbpm-jp dL.zip) :这个下包含了jBPM核心库、文档和依粮库, 还有为参与者和群组管理提供的身份组件。要让它工作,解压压缩包进入你选择的文件夹, 你将经 jbpm- version> 文件夹下找到用户指导手册的提示以及“readme.html”文件中的其他重要的资源信息。jP DL套件包中包含jP DL流程设计器。你通常将下载它在jP DL套件包中。但是你也可以从sourceforge.net站点单独下载JBoss jBPM流程设计器。设计器是一个eclipse的插件, 你可以用它米创作流程定义并简便的部署这些流程, 插件可以以压缩的Eclipse功能包或者Eclipse的更新站点两种方式进行下载,它们在内容上没有什么不同,唯一的区别就是你所采用的安装方式的差异,enesihjbrncjeffming@126.comhttp:/zhangymjavaey.om/第12页/共199页E elipse更新站点(jbpm-gpd-site-c version>.zip) :如果你想绝对确保设计器流畅地安装, 我们建议你使用站点更新机制和全新安装的c clipse.当然Eclipse的版本要同下载包匹配, 为了启动设计器插件, 包含在包根目录下的“readme.html”文件中的下列使用说明帮助你成功安装GPD(图形流程设计器) .
E elipse特性包(jbpm-gpd-feature- version>.zip) :如果你讨厌不得不每次都刷新Eclipse的安装, 并且你愿意去处理一线可能会发生的问题的话, 你可以试着下载它。在这种情况下释放这个包进入你的Eclipse的安装目录(确保你的plugins和feature目录在E clisp e安装的相同的位置) , 覆盖已经存在的相同的名称的目录和文件。这样的安装是非常的容易的,但是当你可能会陷入兼容性问题因为你的覆盖安装其他属性的安装文件时,虽然他们有和同的文件名,但也可能发生版本冲突的plugins是完全相同的, 以后可能会有不兼容的问题.安装说明在“readme.html”文件中也还份。和顾问服务作为候选, 你可以使用下列信息从CVS服务器获得JBoss jBPM项目;为了获得CVS的开发人员访问权限, 你必须签署页献者协议并有一个ssh钥匙(key) 。更2.2.JBoss jBPM项目目录2.3.访问源代码CVS服务器2.3.1.匿名CVS访问2.3.2.开发人员CVS访问专业支持:JBoss是这个项目背后的公司, 公司提供专业的技术支持、培训用户手册:你正在阅读的文档和项目的主要文档的入论坛:取得与社区的联系, 提出问题井且讨论jBPMwiki:额外的信息, 大部分为社区提供问题追踪:提交的bug和功能要求下载BPM的sourceforge的下载页面邮件列表:用于公告发布邮件列表java does:部分下载的doc/javadoc文档目录连接类型:pserver用户名:anonymous主机:an one vs.forge.boss.com端:2401(款省)库路径:/evs root jbpm连接类型:ext over ssh(eclipse里的ext ssh)用户名:s.net用户名或jboss用户名主机:evs.forgejboss.com端:2401(缺省)库路径:/evs root jbpm标签::pserveranonymous@evs.forge.jboss.com:/ev sro ou/jbpm多的信息在JBoss evs repository wiki面上可以找到,enesihljbrnejeffming@126comhttp:/zhang ym.avaey.com页enesihljbrnejeffming@126.comhttp://zhangym.javaeye.com/页第13页/共199第14页/共199
第3章教程图3-1hllo world流程图 transition to-stl a +”si start-state”本教程将向你展示使用jp dl构建基本流程及管理运行时执行的API的使用方法。教程的方式是解释一系列的例子,每个例子以特定的主题为焦点并包含大量的注释。这最好的学习方法就是创建一个项目并凡在给定实例的基础上试着修改,Eclipse用广首先要做的是:下载jbpm-3.0-[version] .zip文件并解压到你的系统中, 然后执行 File -> Impor.”- Existing Project into Workspace , 点击 Next 按钮, 找到jBPM根目录点击“Finish 按钮。现在你的工作空间(workspace) 中已经有一个jbpm.3的项目了,现在就可以在src java.examples/文件夹下找到教程的例子, 打开这些例子时, 可以使用jBPM包含一个图形化设计工具来创作例子中的XML文件, 你可以找到下载说明在2.1流程定义是一个定向图, 由节点和流程转换组成。helloworld流程中有3个节点, 来看下如何将他们放在一起,我们先不用流程设计工具来开始一个简单流程,下面的图形显示了些例子在jBPM下载包的s re/java.examples目录中也能找到,“Run .->“Run As.”->“JUnit Test 方式来运行它们,下载包概述,你不需要这个图形化设计工具来完成本教程。3.1.HelloWorld实例helloworld流程的图示。package org.zy m.helloworld;enesihljbrnejeffing@126.comhttp//zhang ym java ey com页import org jbpm graph.def Process Definition,import org jbpm graph.exe.Process Instance;import org jbpm l graph.exe.Token;import junit framework.TestCase,public e ass HelloWorld extends TestCase(enesihjbracjeffminp@126.comhttp://hangymjavaeycom/startend第15页/共199第16页/共199public void test HelloWorld Process 0(页/这个方法导一个流程定义和一个流程定义的执行。流程定义有三个节点/米命名的star-state, state y和命名为end'的ends ate节点、下一行解析xml文本到Process Definition类,Process Det inition是作为java对象的的流程的正规描述Process Definition process Definition=Process Definition 下一行建立一个流程定义的执行,在创建后,流程执行有一个执行的上路径W(-root token) , 定位在star-state节点位置。parse Xm/String( e process-de inition + C star l-st te + + state name='sa + s transition to-'end'/y + c state a + c end-state name'end' + s/process-definition) :
Process Instance process Instance=new Process Instance(process Definition) ;H创建流程执行的土路径(root token)Token token=process Instance.get Root Token() :在创建流程定义后,确定主路径种开始状态节点处assertSame l process Defini ion.get Start State() , token getNode 0) ;/让我们开始流程执行,通过它的缺省流程转换高开开始状态节点token signal 0;//signal方法将阻止直到流程执行进入一个等待状态甘流程执行将已经进入了这第一个等待状态,状态节点、所以执行的主路径现在定位在状态yassertSame(process Defintion getNode( s ) , token getNode 0) ) ;//让我们发送另一个信号。假设执行离开状态:通过缺省的流程转换token signal 0;//现在信息方法返回, 因为这个流程实例己经到达结束节点(end-state)asser Same(process Definition.getNode( end ) , token.get Nod cO) ;cnesihljbrncjeffminp@126.comhttp:/zhangym.javaeycom页第17页/共199译以上的代码基可执行的Junit测试用例程序, 复制到ee lipa e中即可执行。文档的码有所差异,恒主测试方法是全样的3.2.Database实例jBPM的基本属性之就是流程在等待状态时, 能够将流程执行的状态在数据库中进行持久化, 下一个实例将向你显示如何在jBPM数据库中存储一个流程实例,Web应用中的一处代码开始流程并在数据库中持久化执行。后来, 一个消息驱动bean从数据库中加载流程实例并恢复它的执行,import java.util List;import junit framework.TestCase;import org jbpm Jbpm Configuration;mportorgjbpmJbpm Context,import org jbpm udb.Graph Session;import org jbpm graph.def.Process Definition:import org jbp a graph.exe.Process n stance,import org jbpm graph.exe.Token:public class HelloWorld Db Test extends TestCase{enesinljbrncjeffming@126.comhttp://zhangymjavaeye.com第18页/共199实例也暗示了可能遇到的上下文,独立的方法被用来创建用户代码的不同部分,例如:更多的关于jBPM持久性的信息能在第7章持久性中找到。页
Evalua ion Warning:The document was created wth Spire.PDF for NET.static Jbpm Configura ion jh pm Config w ration=null;static{实例配置文件, 例如此文件能够在src/config files文件夹下找到.正常的情况下此配置文件的信息是在jbpm eg xml资源文中/但这里我们放配置文件信息作为一个XML宁符串首先我们创建Jh pm Configuration静态变量。jh pm Configuration-Jbpm Configuration, parse Xml Strng(“jbpm-conf guration> +#jbpm-context上下文机制把jBPM核心引擎和jbpm使用的服务从环境中分开 jbpm-context a +a而月jbpm所使用的资源文件都参考jbpm.cfg.xml文件一个Jh pm Conf guration能够用于系统中的所有线程, 那就是我们让它是sat ic类型的原因enesihljbrnejeffing@126.comhttp//zhang ym java ey com第19页/共199页 service name-persistence l + jbpm-contex c*+factory-org jbpm persistence db.Db Persistence Service Factory'/s +value-'hibernate.cfg.xml s +value org/bpm/calendar/jbpm.busines.calendar properties'b*+value-org/jb prn/graph/defi jbpm.default modules.properties' +value org jbpm/dbv hibernate/jbpm.conver ler.properties th +value-org/jbpm/graph/action/action.types xm'/a +value-org jbpm/graph/node/node.types.xml/a +value=org/jbpm/context/exe/jbpm va mapping xm's +cst ng name-'resource hibernate.cfg.xml + string name-'resource.business.calendar + string name='resour ee.default modules' + s string name-'resource.converter'“+ string name-resour ee.action.types' +cs ring name-'e source.node.types'“+s string name-resource.var mapping'“+ jbpm-configuration );public void setUp Ofjh pm Conguration.create Schema 0;cnesinjbrncjeffming@126.comhttp://zhangym.avaeye.com页第20页/共199
第1章介绍.
第2章正式开始.
1.1.概述.
1.2.jP DL套件.
4.2.3.流程语言.
4.3.3.流程组成.
1.3.jP DL图形流程设计器.
14.jBPM web控制台.
1.5.jBPM核心库.
L 6.JBoss jBPM身份组件.
1.7.JBoss jBPM工作执行器.
2.1.下载包概述.
3.1.HelloWorld实例.
3.2.Database实例.
3.3.Context实例:流程变量.
3.4.Task分配实例.
3.5.自定义动作实例.
4.1介绍.
4.2.面向图的程序设计.
4.3.面向扩展图的程序设计.
2.1.1.jP DL 3.
2.1.2.jP DL流程设计器.
2.2.JBoss jBPM项目目录.
2.3.访问源代码CVS服务器.
2.3.2.开发人员CVS访问.
4.3.4.异步连续.
4.3.5.持久化和事务.
4.3.6.服务和环境.
4.4.1.运行时数据隔离.
4.4.2.GOP与其他技术和比.
44.3.GOP与Petri网比较.
4.5.1.业务流程管理(BPM) .
4.5.2服务编排.
4.7.1.终极流程语言.
4.7.2.相关信息.
4.7.3.其他实现技术.
5.6.1.运行时.
5.6.2.套件.
5.6.3.在套件服务器上配置日志.
5.6.4.在套件里调试流程.
6.3.1.Hi be mate cfg xml文件.
6.3.2.Hi be mate查询配置文件.
6.3.3.节点类型配置文件.
6.3.4.动作类型配置文件.
6.3.5.业务日历配置文件.
6.3.6.变量映射配置文件.
6.3.7.转换器配置文件.
6.3.8.缺省模型配置文件.
6.3.9.流程包解析配置文件.
6.4.在JBoss中的jBPM调试日志.
7.1.持久化API.
7.2.配置持久化服务.
7.3.Hi be mate事务.
7.4.JTA事务.
7.5.定制查询.
7.6.数据库兼容性.
7.7.合并hibernate类.
4.4.注意事项.
4.5.应用领域.
4.6.基于嵌入图的语言.
4.7.市场.
第5章部半.
5.1.jBPM库.
第6章配置.
5.2.Java运行时环境.
5.3.第三方库.
5.4.Web应用.
5.5.企业包.
5.6.jP DL运行时和套件.
6.1.配置工厂.
6.2配置属性.
6.3.其他的配置文件.
6.5.乐观并发异常日志.
6.6.对象工).
第7章持久化.
第8章jBPM数据库.
7.1.1.配置框架关系.
8.1.1.隔离级别.
10.3.1.Node职责.
10.3.2.task-node节点类型.
10.3.3 state节点类型.
7.1.2.Jbpm Context上的方便方法.
7.1.3.管理事件.
7.1.4.注入hi be mate session.
7.1.5.在程序中注入资源.
7.1.6.高级API使用.
7.2.1.Db Persistence Service Factory.
7.2.2.hibernate会话工厂.
7.2.3.配置c3po连接池.
7.24.配置eh cache cache provider.
7.6.1.JDBC隔离级.
7.6.2.变更jBPM数据库.
7.6.3.jBPM数据库模式.
7.6.4.已知问题.
7.8.定制jBPM hibernate映射文件.
7.9.二级缓存.
8.1.切换后端数据库.
8.1.2.安装PostgreSQL数据库管理器.
8.1.3.安装MySQL数据库管理器.
8.2.数据库升级.
9.1.EJB.
9.2.jBPM企业配置.
9.3.Hi be mate企业配置.
9.4.客户端纠件.
10.1.概述.
10.2.流程图.
10.3.节点.
8.14.使用PostGreSQL或MySQL创建JBoss jBPM数据库.
8.1.5,最后一步.
8.1.6.更新JBoss jBPM服务器配置.
8.3.在JBoss上开始hsqldb管理器.
第9章Java EE应用服务器工具.
第10章流程建模.
10.3.4.decision节点类型.
10.3.5.fork节点类型.
10.3.6.join节点类型.
10.3.7.node节点类型.
10.5.1.动作配置.
10.5.2.动作引用.
10.5.3.事件.
10.5.4.事件传播,
10.5.5.脚本.
10.5.6.定制事件.
10.6.1.超级状态转换.
10.6.2.超级状态事件.
10.6.3.分层命名.
11.4.1.变量重载.
11.4.2.变量重写.
11.4.3.任务实例变量范围.
12.2.1.任务实例生存期.
12.2.2.任务实例和图执行.
12.3.1.分派接.
12.3.2.分派数据模型.
12.3.3.个人任务列表.
12.3.4.群组任务列表.
12.11.1.身份模型.
12.11.2.分派表达式.
12.11.3.移除身份组件.
17.1.1.邮件动作.
17.1.3.任务分派邮件.
17.1.4.任务提醒邮件.
17.3.1.多个收件人.
17.3.2.密送邮件.
17.3.3.地址解析.
18.1.1.部署.
10.4.转换.
10.5.动作.
10.6.超级状态.
10.7.异常处理.
10.8.流程组成.
10.9.定制节点行为.
10.10.图执行.
10.11.事务划分.
11.1.访问变量.
11.2.变量生存期.
11.3.变量持久化.
11.4.变量范围.
11.5.瞬态变量.
11.6.定制变量持久化.
12.1.任务.
12.2.任务实例.
12.3.分派.
12.4.任务实例变量.
12.5.任务控制器.
12.6.泳道.
12.7.开始任务中的泳道.
12.8.任务事.
12.9.任务定时器.
12.10.定制任务实例.
12.11.身份构件.
14.1.定时器.
14.2.调度部署.
15.1.概念.
15.2.示例.
15.3.工作执行器.
15.4.jBPM内置异步消息.
15.5.异步架构JMS.
15.6.属性用法.
16.1.到期日期.
16.1.1.持续时间.
16.1.2.基准日期.
16.1.3.示例.
16.2.日历配置.
17.1.jP DL中的邮件.
17.1.2.件节点.
17.2.郎件表达式.
17.3.指定收件人.
17.4.邮件模板.
17.5.邮件服务器配置.
17.6.From地址配置.
17.7.自定义邮件支持.
17.8.邮件服务器.
18.1.调Hj PDL WebServices.
第11章上下文.
第12章任务分配.
第13章文档管理.
第14章定时器.
第15章异步连续.
第16章商务日历.
第17章邮件支持.
第18章WebServices支持.
18.1.2.测试