SSH+JBPM4.4完整配置实例
- 格式:doc
- 大小:144.00 KB
- 文档页数:11
第 1 章导言上一页下一页第 1 章导言最好使用firefox浏览这份教程。
在使用internet explorer的时候会有一些问题。
1.1. 许可证与最终用户许可协议jBPM是依据GNU Lesser General Public License(LGPL)和JBoss End User License Agreement(EULA)中的协议发布的,请参考完整的LGPL协议和完整的最终用户协议。
1.2. 下载可以从sourceforge上下载发布包。
/projects/jbpm/files/1.3. 源码可以从jBPM的SVN仓库里下载源代码。
https:///repos/jbpm/jbpm4/1.4. 什么是jBPMjBPM是一个可扩展、灵活的流程引擎,它可以运行在独立的服务器上或者嵌入任何Java应用中。
1.5. 文档内容在这个用户指南里,我们将介绍在持久执行模式下的jPDL流程语言。
持久执行模式是指流程定义、流程执行以及流程历史都保存在关系数据库中,这是jBPM实际通常使用的方式。
这个用户指南介绍了jBPM中支持的使用方式。
开发指南介绍了更多的、高级的、定制的、没有被支持的选项。
1.6. 从jBPM 3升级到jBPM 4没办法实现从jBPM 3到jBPM 4的升级。
可以参考开发指南来获得更多迁移的信息。
1.7. 报告问题在用户论坛或者我们的支持门户报告问题的时候,请遵循如下模板:聪明的读者可能已经注意到这些问题已经指向了可能导致问题的几点原因:)特别是对依赖库和配置的调整都很容易导致问题。
这就是为什么我们在包括安装和使用导入实现建议配置机制时花费了大量的精力。
所以,在你开始在用户手册覆盖的知识范围之外修改配置之前,一定要三思而行。
同时在使用其他版本的依赖库替换默认的依赖库之前,也一定要三思而行。
第 2 章安装配置2.1. 发布只需要把jBPM (jbpm-4.X.zip) 下载下来,然后解压到你的硬盘上的什么地方。
JBPM4.4应用开发——入门篇2010-10-27 20:38:24标签:JBPM工作流工作流程入门原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。
否则将追究法律责任。
/1931202/411612首先简单说说JBPM——java Business Process Management (java 业务流程管理)jBPM是一个框架、一堆开放的源代码。
而非一套“应用程序”。
jBPM的流程引擎可以看做是一个java工程——若干java类、依赖库和配置文件;使用和学习jBPM需要如下条件:1.jBPM的流程定义和运行时的上下文需要被存储到关系型数据库中——可以是基于调试目的的内存数据库HSQLDB,也可以是真正的持久化数据库(MySql,Oracle,PostgreSql,Sybase等等);2.jBPM的流程设计一般都需要一个基于客户端的图形化流程设计器软件,当然在jBPM4版本以后可以支持在web上做流程设计(这要归功于Sigvio项目)3.最终,基于jBPM开发出来的应用程序一般都会被部署到一台应用服务器中,以便服务于来自web的访问、监控和管理等。
注意:在jBPM4.3以后,几乎所有的准备工作(安装数据库,建表,安装应用服务器,安装图形化设计器插件等)jBPM软件包的发布者都帮我们做好了。
只要通过Ant脚本“一键获取”所需要的jBPM4整套开发、运行和管理环境。
在安装jBPM之前首先要安装JDK和Ant。
快速开始--------------------------------------------------------一、1.打开cmd命令控制台:进入到${jbpm.home}/install2.运行脚本:ant demo.setup.tomcat或ant.demo.setup.jboss使用这两个服务器都可以。
具体这个命令做了上面事:请查看install目录下的build.xml文件中的目标。
1. JBPM简介JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的基于java实现的流程业务处理框架(Business Process Management)。
jBPM是公开源代码项目,它使用要遵循Apache License。
支撑企业的流程性业务应用:解释业务规则,使得协作自动化2.JBPM最大特色就是它的商务逻辑定义没有采用目前的一些规范,如WfMC´s XPDL, BPML, ebXML, BPEL4WS等,而是采用了它自己定义的JBoss jBPM Process definition language (jPdl)。
jPdl认为一个商务流程可以被看作是一个UML状态图。
jPdl就是详细定义了这个状态图的每个部分,如起始、结束状态,状态之间的转换,过图型化的流程定义,直观地描述业务流程。
jBPM的另一个特色是它使用Hibernate来管理它的数据库。
Hibernate是目前Java领域最好的一种数据存储层解决方案,只要是Hibernate 支持的数据库,jBPM 也就支持。
通过Hibernate,jBPM将数据的管理职能分离出去,自己专注于商务逻辑的处理。
3.JBPM带来的益处实现了无纸化的工作模式;过程可监控:便于对执行过程的跟踪和监控数据可管理:便于对数据进行检索、分析可靠性:减少人-人交互的主观错误的机率4.JBPM常见应用领域行政管理:行政、事业单位、大中型(国有)企业产品研发和制造:用于对整个研发、生产制造过程的管理和调度电子商务:订单处理其他如大型内容管理系统的多步审核5.JBPM常见场景公文流转、行政审批、订单处理、产品研发、制造过程其他需要多个角色协作、多步完成的活动6.JBPM模型说明加载流程定义:定义工具可以系统提供,也可以只是读取定义结果启动流程:启动选定的流程,创建流程实例办理任务(流程的每一步):执行流程的每个步骤(不一定都需要人参与:自动任务节点)记录流程的状态:对状态的管理是工作流引擎的主要职责7.JBPM主要概念流程定义:预先定义的业务流转逻辑流程实例:业务的一次实际流转过程参与者:任务的执行者活动(任务):组成流程定义的节点活动实例:组成流程实例的元素流转:从一个节点到另一个节点这一行为工作列表:当前需要办理的任务集合工作流引擎:工作流的核心组件,对流程实例、任务实例以及其状态进行管理8.JBPM套件的组成jPDL Designer:流程定义设计器,流程建模工具jPDL Library:流程执行引擎WebConsole:参与者和流程执行环境的交互界面,流程运行期间的监控工具9. 使用jBPM开发工作流的一般流程1) jBPM的运行需要数据库的支持,因此系统设计时要选定所用数据库。
目录说明 (1)流程的定义 (1)流程的发布 (3)流程实例的启动 (7)流程节点的流转 (12)查看流程节点图片 (17)说明Jbpm的开发流程可以按如下几步进行:流程的定义、流程的发布、流程实例的启动、流程节点的流转、查看流程节点图片。
本示例是在spring2.0、hibernate3.2、struts1.2下开发。
如果是其它版本的框架也很容易做程序的迁移。
流程的定义流程的定义建议使用jbpm提供的eclipse下的插件,图形化配置插件安装文件可以到jbpm-starters-kit-3.1.4\jbpm-designer\jbpm-gpd-feature\eclipse下找到,需注意版本。
使用这种方式可以把定义的流程描述的三个文件压缩成zip包,统一的部署到数据库中,方便b/s系统中显示图片当前节点信息。
1插件安装把jbpm-gpd-feature文件夹复制到C:\Program Files\MyEclipse-6.0M1\eclipse \plugins下,注意自己的ecplise路径。
在C:\Program Files\MyEclipse-6.0M1\eclipse\links文件夹下建立jbpm-gpd.lin k文件。
内容如下:path=C:\\Program Files\\MyEclipse-6.0M1\\eclipse\\plugins\\j bpm-gpd-feature。
这样再重新启动eclipse就可以使用流程定义功能了。
2流程的定义在eclipse环境中选择file->new->other下的jboss jbpm->process definition 流程定义。
要在自己的项目文件中先指定文件要创建的文件夹。
这样会产生三个文件:gpd.xml、processdefinition.xml、processimage.jpg。
processdefinition.xml为描述流程定义文件,本例为:<?xml version="1.0" encoding="UTF-8"?><process-definition name="文档测试流程"><start-state name="开始"><transition name="提交张三审批" to="张三审批"></transition> </start-state><task-node name="张三审批"><task name="审批1"><assignment actor-id="张三"/></task><transition name="提交李四审批" to="李四审批"></transition> </task-node><task-node name="李四审批"><task name="审批2"><assignment actor-id="李四"/></task><transition name="提交王五审批" to="王五审批"></transition> </task-node><task-node name="王五审批"><task name="审批3"><assignment actor-id="王五"/></task><transition name="结束流程" to="结束"></transition></task-node><end-state name="结束"></end-state></process-definition>processimage.jpg文件是定义流程产生的图片、gpd.xml文件是图形文件的座标说明。
Myeclipse8.6搭建jbpm4.4的开发环境jbpm版本:4.4IDE:myeclipse8.6DB:mysql-5.0.261、Myeclipse中安装jbpm1)、解压jbpm4.42)、打开myeclipse8.6---->选择Help菜单---->选择Myeclipse Configuration Center------>打开第三个选项卡SoftWare----->选择右上角add site---->选折add form archive file-----》找到${jbpm_home}\install\src\gpd 目录下找到jbpm-gpd-site.zip即可!name随便输入即可(比如我输入jbpm)!这样下面就看到多一个jbpm(部分过程看下图)选择“add site”,弹出如下对话框:选择“Add from Archive File”,弹出如下对话框:选择“打开”,弹出如下对话框:选择“OK”,出现如下对话框:3)、一个一个选中jpd下面的文件,点击右击“add to profile”即可!4)、点击右下角“apply change”按钮即可!安装完成后会重启Myeclipse,重启后在新建项目里会多出一项“JBoss jBPM”,如下图所示:2、生成jbpm数据库表(这里以安装mysql为列)a)、先打开mysql数据库新建一个数据库比如jbpm(create database jbpm);b)、打开${jbpm_home}\install\src\db\create 下面,找到mysql的表脚本!c)、全部复制过来粘贴到mysql命令行上(当然也可以source ***.sql方式),3、搭建JBPM4运行环境一、下载JBPM4.3可以到官方下载,然后直接解压就可以了doc: 用户手册,javadoc和开发指南examples: 用户手册中用到的示例流程install: 安装脚本lib: 第三方库和一些特定的jBPM依赖库src: 源代码jbpm.jar: jBPM主库归档二、搭建JBPM4运行环境1、新建一个Java Project项目2、添加依赖库jar包a)jbpm.jar包b)JBPM目录/lib下的所有的jar包,当然了,这里有些是可选的。
jBPM4.4一、什么是jBPMJBPM是一个扩展性很强的工作流系统,百分百用JAVA语言开发,持久层采用Hibernate实现,理论上说,只要Hibernate支持的数据库JBPM都支持。
同时它还能被部署在任何一款JAVA应用服务器上。
java Business Process Management :工作流,工作流引擎注:记得j小写,因为j代表java,与Log4j中j一样工作流管理系统不止一中,如还有Intaliol BPMS …但JBoss jBPM灵活性且扩展性高。
jBPM项目于2002.3由Tom Baeyens 发起,2003.12发布1.0版本,2004年10.18发布2.0,并在这天加入了JBOSS组织-→被RedHat公司二、能干什么提供工作流的实现,帮助更好的进行BPM三、jBPM有什么,简介jBPM的Service API 各种服务1:ProcessEngine:流程引擎。
并不负责具体的业务,而是用于获取各种Service。
2:RepositoryService:流程资源服务的接口,如流程定义发布、查询、删除等。
3:ExecutionService:用于操作流程实例的服务,可以进行流程实例发布、查询、流程推进、设置流程变量等操作。
4:TaskService:用于操作人工任务的服务,可以进行任务创建、查询、获取、提交完成、保存、删除等操作。
5:HistoryService:用于操作流程历史的服务,提供对流程历史库(就是已经完成的流程实例)的操作。
比如:历史流程实例,历史活动实例等。
6:IdentityService:用于操作用户、用户组以及成员关系的服务7:ManagementService:流程管理控制服务的接口,只提供异步工作(Job)相关的执行和查询操作。
四、Myeclipse8.5 搭配开发环境1.jbpm-4.4.zip 下载完2.myeclipse→help→Myeclipse Configuration Center →add…….3.找到\jbpm-4.4\install\src\gpd\jbpm-gpd-site.zip 安装这个插件4.记得不要联网安装,不要选source文件5.安装完后window→JBoss jBPM→runtime Location→add 添加jbpm的路径6.添加lib下所有jar包,如果你使用的是tomcat6.0则:要把Juel-api.jar ,juel-impl.jar,juel-engine.jar 拷到tomcat lib 下并把原来的el-api.jar删掉项目中就不要再导上面三个包五、修改配置文件1、将example中的下列配置文件拷贝到java项目的src目录下:jBPM.cfg.xml、jBPM.hibernate.cfg.xml、jBPM.mail.properties、jBPM.mail.templates.xml、process_forms.css2、在以上配置文件中的jBPM.hibernate.cfg.xml,实际上就是我们熟悉的hibernate.cfg.xml,这里,要修改为连接我们的数据库。
试谈ssh+jbpm整合(doc 20页)简述Jbpm工作流框架与现有ssh框架的集成工作其实很简单,但国内外的资料太小,所以会在集成时走入太多误区,本文是在struts1.2,spring2.5,hibernate3.2上集成成功的详细步骤。
其中解决了,jbpm的访问数据库session 与原有hibernate的session不同的问题,string-max大字段问题。
完成了流程部署web 及后台程序。
利用spring-modules-0.8当中的spring31做为集成的桥梁(其实它已经做好了集成,但文档和实例实在是太简单)。
使用jbpm-starters-kit-3.1.4生成数据库表及安# these properties are used by the build script to create# a hypersonic database in the build/db directory that contains# the jbpm tables and a process deployed in therehibernate.dialect=org.hibernate.dialect.OracleD ialecthibernate.connection.driver_class=oracle.jdbc.d river.OracleDriverhibernate.connection.url=jdbc:oracle:thin:@10.62.1.12:1521:oracleername=dpf hibernate.connection.password=dpf hibernate.show_sql=truehibernate.cache.provider_class=org.hibernate.c ache.HashtableCacheProvider2.5 修改jbpm\src\config.files\hibernate.cfg.xml 文件,同样是配置数据库的连接属性如下:<!-- jdbc connection properties --><property name="hibernate.dialect">org.hibernate.dialect .OracleDialect</property><property name="hibernate.connection.driver_class">ora cle.jdbc.driver.OracleDriver</property><property name="hibernate.connection.url">jdbc:oracle:t hin:@10.62.1.12:1521:oracle</property><property name="ername">dpf</ property><property name="hibernate.connection.password">dpf</p roperty><propertyname="hibernate.cache.provider_class">org.hi bernate.cache.HashtableCacheProvider</proper ty>2.6 修改jbpm\build.deploy.xml文件.找到create.db项并进行如下修改:<!-- ============== --><!-- === SERVER === --><!-- ============== --><target name="create.db" depends="declare.jbpm.tasks, db.clean, db.start" description="creates a hypersonic database with the jbpm tables and loads theprocesses in there"><jbpmschema actions="create"cfg="${basedir}/src/config.files/hibern ate.cfg.xml"properties="${basedir}/src/resources/ oracle/create.db.hibernate.properties"/><loadidentities file="${basedir}/src/resources/oracle/identity.db. xml"cfg="${basedir}/src/config.files/hibern ate.cfg.xml"properties="${basedir}/src/resources/ oracle/create.db.hibernate.properties"/><ant antfile="build.xml" target="build.processes" inheritall="false" /><deployprocess cfg="${basedir}/src/config.files/hibernate.cfg.xm l"properties="${basedir}/src/resource s/oracle/create.db.hibernate.properties"><fileset dir="build" includes="*.process" /></deployprocess><antcall target="db.stop" /></target>2.7 配置ant,在jbpm目录执行ant create.db –buildfile build.deploy.xml命令。
1、开发环境搭建欧阳引擎(2021.01.01)1.1必须安装的软件1)jbpm-4.4.zip2)jdk 5或者更高版本3)支持的数据库有hsqldb、mysql、oracle、postgresql、sybase,本说明以oracle作为数据库。
4)GPD插件(jbpm在IDE中的流程设计器), eclipse(建议3.6版本以上)或者myeclipse(建议8.1版本以上)安装插件所需的zip在解压后jbpm-4.4\install\src\gpd中的jbpm-gpd-site.zip,本说明以eclipse3.6为例。
1.2配置JBPM运行时1)打开window preferences2)选择 JBoss jBPM --> jBPM 4 --> Runtime Locations3)点击 Add...4)在 Add Location 对话框中,输入一个名字,比如 jbpm-4.0 然后点击 Search...5)在Browse For Folder 对话框中,选择你的jbpm 根目录,然后点击 OK6)点击 OK 在 Add Location 对话框中1.3定义jBPM 用户库1)点击窗口 --> 属性(Windows --> Preferences)2)选择Java --> 创建路径--> 用户类库(Java --> BuildPath --> User Libraries)3)点击新建(New)4)类型名字jBPM Libraries5)点击添加JARs(Add JARs...)6)找到jBPM 安装程序下的lib 目录7)选择lib 下的所有jar 文件并点击打开(Open)8)选择jBPM Libraries 作为入口9)重新点击添加JARs(Add JARs)10)在jBPM 的安装程序的根目录下选择jbpm.jar 文件11)点击打开(Open)12)在jbpm.jar 下选择源码附件(Source attachment)作为入口13)点击编辑(Edit)14)在源码附件的配置(Source Attachment Configuration)对话框中,点击目录(ExternalFolder...)15)找到jBPM 安装程序下的src 目录16)点击选择(Choose)17)点击两次'确定'(Ok)会关闭所有对话框1.4在目录中添加jPDL4 模式如果你想直接编辑XML 源码,最好是在你的XML 目录中指定一下模式(schema),这样当你在编辑流程源码的时候,可以更好的帮助你编写代码。
一、流程定义1.部署流程定义Proces sEngi ne proces sEngi ne = new Config urati on().buildP roces sEngi ne();Reposi toryS ervic e reposi toryS ervic e = proces sEngi ne.getRep osito rySer vice();例:布署文件中的流程//布署当前目录下pd.jpdl.xml文件String deploy mentI d = reposi toryS ervic e.create Deplo yment().addRes ource FromC lassp ath("pd.jpdl.xml").deploy();例:布署网页上T extAr ea中的流程<form action="jbpm?family168=deploy" method="post"><textar ea name="xml" cols=50 rows=15></textar ea><inputtype="submit" value="发布"/><inputtype="reset" value="取消"/></form>在后台处理如下:String xml = reques t.getPar amete r("xml");reposi toryS ervic e.create Deplo yment().addRes ource FromS tring("proces s.jpdl.xml", xml).deploy();2.删除流程定义类Proce ssDef initi on 包含如下属性:ID:流程定义ID号Deploy mentI d:流程定义的布署ID号Key:关键字name:流程名versio n:版本号数据如下ID Key 名称版本hello-1 hello hello 1//获取类Pro cessD efini tion的属性IDString id = reques t.getPar amete r("id");//根据流程ID获取流程定义实例Proces sDefi nitio n pd = reposi toryS ervic e.create Proce ssDef initi onQue ry().proces sDefi nitio nId(id).unique Resul t();//根据流程定义的布署ID号,删除该流程定义//注意:jbpm4是不允许直接根据流程定义的ID来直接删除流程定义的,因为还要删除其它配置数据reposi toryS ervic e.delete Deplo yment Casca de(pd.getDep loyme ntId());3.获取全部流程定义根据流程名获取所有流程定义List<Proces sDefi nitio n> proces sDefi nitio ns = reposi toryS ervic e.create Proce ssDef initi onQue ry().orderA sc( Proces sDefi nitio nQuer y.PROPER TY_NAME).list();还可以根据以下顺序进行排序(org.jbpm.api.Proces sDefi nitio nQuer y)public static finalng.String PROPER TY_DE PLOYM ENT_T IMEST AMP "deploy ment.timest amp" public static finalng.String PROPER TY_ID "idProp erty.string Value"public static finalng.String PROPER TY_KE Y "keyPro perty.string Value"public static finalng.String PROPER TY_NA ME "idProp erty.object Name"public static finalng.String PROPER TY_VE RSION "versio nProp erty.longVa lue"二、流程实例1.启动一个流程实例1.1根据key启动流程实例用户必须为新启动的流程实例分配一个key,这个key是用户执行的时候定义的且唯一。
jBPM4.4⼊门指南1.⼯作流与⼯作流管理系统1.1. ⼯作流(Work Flow)⼯作流就是⼯作流程的计算机模型,即将⼯作流程中的⼯作如何前后组织在⼀起的逻辑和规则在计算机中以恰当的模型进⾏表⽰并对其实施计算。
⼯作流要解决的主要问题是:为实现某个业务⽬标,在多个参与者之间,利⽤计算机,按某种预定规则⾃动传递⽂档、信息或者任务。
通俗的说,流程就是多个⼈在⼀起合作完成某件事情的步骤,把步骤变成计算机能理解的⽅式就是⼯作流。
公司内采⽤纸张表单,⼿⼯传递的⽅式,⼀级⼀级审批签字,⼯作效率低下,对于统计报表功能则不能实现。
⽽采⽤⼯作流软件,使⽤者只需在电脑上填写有关表单,会按照定义好的流程⾃动往下跑,下⼀级审批者将会收到相关资料,并可以根据需要修改、跟踪、管理、查询、统计、打印等,⼤⼤提⾼了效率,实现了知识管理,提升了公司的核⼼竞争⼒。
作为⼀个成熟稳定的⼯作流产品,不仅提供⽇常办公和关键业务流程智能化管理,⽽且能根据公司的特殊实际要求轻松⽅便地随时定制各种流程,并可实现不同⾓⾊不同的跟踪、查询、统计、打印等强⼤功能1.2.⼯作流管理系统(Workflow Management System)⼯作流管理系统(WfMS)的主要功能是通过计算机技术的⽀持去定义、执⾏和管理⼯作流,协调⼯作流执⾏过程中⼯作之间以及群体成员之间的信息交互。
⼯作流需要依靠⼯作流管理系统来实现。
⼯作流管理系统是定义、创建、执⾏⼯作流的系统,应能提供以下三个⽅⾯的功能⽀持:1.定义⼯作流:包括具体的活动、规则等2.运⾏控制功能:在运⾏环境中管理⼯作流过程,对⼯作流过程中的活动进⾏调度3.运⾏交互功能:指在⼯作流运⾏中,WfMS与⽤户(活动的参与者)及外部应⽤程序⼯具交互的功能。
⼀、定义⼯作流⼆、执⾏⼯作流1.3.什么地⽅使⽤⼯作流技术OA中的审批流转的功能,其作⽤是能按照指定的流程(步骤)流转要审批的表单(就像流⽔线⼀样)。
有如下问题:1,流程有很多。