2, 体验下jBMP及文件目录介绍.
前面对jBPM有了个概念上的把握, 下面我们运行起来, 对这个jBMP来个近距离观察. 按上篇中提供的链接下载到本地, 解压下, 为了介绍的方便, 我们称这个解压后的目录为jBPM_HOME, 运行%jBPM_HOME%\jbpm-server目录下的start.bat文件, 在浏览器里输入"http: //localhost:8080/jbpm/ "就能看到jBMP自带的一个例子. 如何来操作体验那个例子, 网上有不少例子, 我这里就不再赘述.
这里先介绍下jBPM解压的目录结构, 注意我这里用的是3.1.4的版本, 现在最新的版本目录结构上有很大的不同, 为了研究的方便, 我们这里采用大多项目中用到的这个旧版本, 即3.1.4.
解压后, jBPM_HOME目录下有五个文件夹, 依次是jbpm, jbpm-bpel, jbpm-db, jbpm-designer,jbpm-server. 以后我主要打交道的是jbpm文件夹, 这个文件夹下有可能要常看的文档, jBPM自身的源码和自带例子的源码(这是最最常用的, 以后对jBPM的研究还是以debug的方式来跟踪jBPM运行源码的),jBPM运行所依赖的jar包. 第二个文件夹jbpm-bpel没什么可说的, 看名字觉得它跟bpel整合相关, 现在先关心这个,跳过. 每三个文件夹jbpm-db, 这个也是我们开始这段时间常看的一个文件夹, 它下面放的是jbpm部署时往各种常见数据库里建表的SQL语句, (当时我不知道有这个文件夹, 硬是自己改了hibernate的配置它在把相应的sql语句输出到文件中,想想自己走了不少弯路呀). 第四个文件夹jbpm-designer,它下面放着是jBPM对eclipse做的流程定义插件, 后面我们搭建Eclipse里会用到这里, 到时再说. 最后一个jbpm-server,它下面放的是jBPM自带一个服务器,我们刚才就是启动这里的服务器对jBPM有了个初步的体验,当然它还有其它一些功 能,如对流程运行的监视, 还有JMS等, 不过这些我还没有接触过, 以后再补上.
3, 使用jBPM要做些什么及结合构件图的一点说明说明.
简单地说,在项目中使用jBPM一般有这么些要做的: 按业务逻辑画出流程图, 打包部署定义好的流程图, 在项目中配置jBPM,调用jBPM的API完成整个业务逻辑.
这里结合jBPM的构件图, 我们看下这些步骤都是jBPM中的"谁"来具体负责的.
先看最左边的ProcessArchive. 我们用Process language(也就是这里的jDPL)定义业务逻辑, 打包为这里所说的Process Archive, 也就是说这个archive里包含的是业务的流程信息, 这里不仅仅指通过eclipse生成的解压文件, 还指部署到数据库后的信息. 再顺着箭头往左走, 看到Definition Loader, jBPM通过它把前面部署到数据库里的流程信息加载到jBPM的执行引擎中, 这样就有了下面的"process definition", 通过这个路径我们知道这个process definition是流程信息在内存中的表示. 我们再看最右边的Process client, 我是把它理解成jBPM让我们调用的API, 也就是我们项目中写的代码让流程一步步地执行. 再往右是Request Handler, 顾名思义, jBPM通过它来接收process client发来的请求,再往下的Execution Service, jBPM通过它结合前面加载到内存的流程定义来真正执行定义好的业务流程. 其余的两块Process Monitor和Log Manager, 就是负责前面说的"流程执行监测"任务了. 另外一下State Manager,应该是负责引擎执行过程中状态的变更事宜相关.
至此, 我们对jBPM的轮廓做了个相当简单的介绍,后续的文章中将结合实例来做详细的分析.