`
jacky6024
  • 浏览: 81127 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

《深入浅出jBPM》一书中第7章与第9章相关工程的源码

阅读更多
《深入浅出jBPM》一书中第7章与第9章相关工程的源码。本书由人民邮电出版社出版。

第7章介绍的报销及采购流程的完整工程及其源代码: jbpm-web-test.rar

第9章企业级应用里涉及到的工程及相关EJB的源代码:jbpm-ent-test.ear.rar
分享到:
评论
131 楼 pcrazyenglish 2010-01-09  
好,非常感谢。

1、对于Jbpm的内核是否也可以介绍一下,看能否参考一下他的继承组合关系及设计模式。

2、对于.net环境下,是否也有类似的JBPM的工作流引擎。如果无,改造jbpm内核为。net,把它的内核改造为。net的方式是否可行? 如果理解jbpm的内核,转化为.net语言,应感觉容易一些。。net的界面开发速度,比JAVA效率也高很多。

3、对于刚刚出现的4.3,它的内核实现是如何处理的?

4、我支持高老师写第二版。把针对内核的分析内容包含进去。工作流应该是所有应用系统都包含的。功德无量。

5、如果现在要开发项目,老师你建议采用3.2.X引擎还是最新的引擎,如果采用最新的引擎,所有参考文档全在项目中的doc文档中吗?
130 楼 jacky6024 2010-01-09  
pcrazyenglish 写道
1、classpath 全部是通过Add Jar方式引用进行配置的吗?还是要修改Eclipse的那个文本文件?
2、另外一个很奇怪的现象,如果单独在Eclipise外,启动了Tomcat,通过Localhost:8080访问就可以访问到Tomcat的管理页面。但是在Ecipise内部启动Tomcat,端口号也是8080,但是在访问Localhost:8080的时候,确无法找到Tomcat的管理页面。
3、在流程中,自己取消申请,每次都采用Fork流程节点来处理。这个与人工画的流程图还是有区别的。如果每个环节都需要取消操作,是否有不通过Fork的方式来实现?
4、流程在人工干预的时候,跳转是否进行人工干预?
5、流程验证的程序好像要自己编写
6、流程运转的轨迹和历史,一般如何获得?
7、JBPM的并发性能,在采用LoadRunner测试情况下,会如何?
8、JBPM 4.0的内核,我从网上看到如下形式

高老师,能否抽时间,分析一下3.2.3的内核实现与4.X的内核实现的差异及其PVM的实现差异?
9、与普元的BPM商业应用比较,JBPM还缺哪些内容?



您好,
第一个问题,关于classpath您可以去google一下,网上有很多关于java的classpath的解释。

第二个问题我没有遇到过哟,我这里都是正常的,可能还需要您仔细检查一下配置应该是您配置的问题。

第三个问题,关于取消申请我的理解有两种方式可以实现,一种是将ProcessInstance Delete掉;另外一种是将ProcessInstance Cancel掉。

第四个问题,不知道您所说的跳转是不是指的Transition,如果是的话关于Transition是可以动态创建的,通过这种方式应该可以满足您的需求。

第五个问题,jBPM流程模版是一个XML,您在画模版时可以先配置好其xmlns,这样如果XML信息有错,Eclipse会有相关提示,同时对于有问题的XML在发布到数据库也会有提示。
第六个问题您可以google一下关于jBPM3.2中流程监控的实现,里面有涉及到流程历史的分析内容。

第七个问题,jBPM流程流转实际上就是在采用Hibernate对数据库进行操作的过程,所以其并发的性能完全取决于流程数据库服务器的性能,个人觉得如果在不考虑流程应用中非jBPM代码部分性能及服务器的性能的话,那么jBPM并发量应该是没有限制的。

第八个问题,jBPM4中与3比较起来差异很大,jBPM4中引进了另外一个名为PVM的项目,这个在网上已经有很多介绍了,同时这也是一个很大的话题。

第九个问题,我个人觉得与商用BPM比较起来,jBPM最大的不足就是其开发及监控工具配套不完善,新手上手困难,但因为其开放原代码,所以如果在熟悉之后会发现其灵活、功能强大、定制性强的特点也是目前市面上商用BPM所不具备的。
129 楼 pcrazyenglish 2010-01-09  
1、classpath 全部是通过Add Jar方式引用进行配置的吗?还是要修改Eclipse的那个文本文件?
2、另外一个很奇怪的现象,如果单独在Eclipise外,启动了Tomcat,通过Localhost:8080访问就可以访问到Tomcat的管理页面。但是在Ecipise内部启动Tomcat,端口号也是8080,但是在访问Localhost:8080的时候,确无法找到Tomcat的管理页面。
3、在流程中,自己取消申请,每次都采用Fork流程节点来处理。这个与人工画的流程图还是有区别的。如果每个环节都需要取消操作,是否有不通过Fork的方式来实现?
4、流程在人工干预的时候,跳转是否进行人工干预?
5、流程验证的程序好像要自己编写
6、流程运转的轨迹和历史,一般如何获得?
7、JBPM的并发性能,在采用LoadRunner测试情况下,会如何?
8、JBPM 4.0的内核,我从网上看到如下形式

高老师,能否抽时间,分析一下3.2.3的内核实现与4.X的内核实现的差异及其PVM的实现差异?
9、与普元的BPM商业应用比较,JBPM还缺哪些内容?

128 楼 alfan001 2010-01-08  
想请问高老师,jBPM的并行处理能力如何,能否用来开发有十几万用户的大型工作流系统?也就是说jBPM能否支持大批量用户同时发起工作流程实例,或是数量巨大的流程实例同时运行?谢谢
127 楼 pcrazyenglish 2010-01-08  
1、对于Jbpm的内核是否也可以介绍一下,看自己能否参考一下他的继承组合关系
2、对于.net环境下,是否有类似的JBPM的工作流引擎。如果无,改造jbpm内核为。net,设计思路如何?
3、对于刚刚出现的4.3,它的内核实现是如何处理的?
4、我支持高老师写第二版。把针对内核的分析内容包含进去。工作流应该是所有应用系统都包含的。功德无量。
126 楼 jacky6024 2010-01-08  
chenchendf  您好,您可以试试用link的方式安装,应该不会出现问题
125 楼 jacky6024 2010-01-08  
chenchendf   您好,MyEclipse没有用过,SORRY。
124 楼 chenchendf 2010-01-06  

我安装了jpdl designer插件(将jbpm-jpdl-suite-3.2.3\jbpm-jpdl-3.2.3\designer\eclipse复制到myeclipse的相关目录下),但是在myeclipse中打开时只能看到流程图,左边的画图按钮看不到,这是什么原因?
我的myeclipse是Version: 6.0.1 GA版本
123 楼 chenchendf 2009-12-30  
jacky6024 写道
您好,从Log的WARN当中可以看到,应该是您的jBPM3.2.x的Job没有在hibernate.cfg.xml当中配置或者是配置的不正确,但是您又配置jbpmConfiguration.getJobExecutor().start();,所以会有这种WARN信息。

请看一下您的hibernate.cfg.xml当中有没有下面这段信息:

    <mapping resource="org/jbpm/job/Job.hbm.xml"/>
    <mapping resource="org/jbpm/job/Timer.hbm.xml"/>
    <mapping resource="org/jbpm/job/ExecuteNodeJob.hbm.xml"/>
    <mapping resource="org/jbpm/job/ExecuteActionJob.hbm.xml"/>

谢谢。


太谢谢了,确实是这个原因!!!
122 楼 jacky6024 2009-12-29  
alfan001  您好,从您贴上来的异常没法判断错误。不过还请您仔细检查一下,这个工程我这里完整运行过几次的,肯定是没有问题的。请您细心一点,谢谢。
121 楼 alfan001 2009-12-28  
谢谢楼主。但是用manager身份登录时,点击列表中“处理该任务”,会出现错误,感觉是manager-process.jsp的问题,控制台异常信息是:
ERROR StandardWrapperValve : Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at org.apache.jsp.manager_002dprocess_jsp._jspService(manager_002dprocess_jsp.java:115)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:619)
120 楼 jacky6024 2009-12-28  
您好,从Log的WARN当中可以看到,应该是您的jBPM3.2.x的Job没有在hibernate.cfg.xml当中配置或者是配置的不正确,但是您又配置jbpmConfiguration.getJobExecutor().start();,所以会有这种WARN信息。

请看一下您的hibernate.cfg.xml当中有没有下面这段信息:

    <mapping resource="org/jbpm/job/Job.hbm.xml"/>
    <mapping resource="org/jbpm/job/Timer.hbm.xml"/>
    <mapping resource="org/jbpm/job/ExecuteNodeJob.hbm.xml"/>
    <mapping resource="org/jbpm/job/ExecuteActionJob.hbm.xml"/>

谢谢。
119 楼 chenchendf 2009-12-28  
高总,我已经顺利走完一个报销流程了,但是在登陆进系统后,出现以下提示,不知道是什么原因:
20:33:29,468 [http-8080-1] WARN  QuerySplitter : no persistent classes found for query class: 
    
      delete from org.jbpm.job.Job job
      where job.processInstance = :processInstance
    
  
20:33:29,484 [http-8080-1] WARN  QuerySplitter : no persistent classes found for query class: 
    
      update org.jbpm.job.Job job
      set job.isSuspended = true
      where job.token = :token
    
  
20:33:29,906 [http-8080-1] WARN  QuerySplitter : no persistent classes found for query class: 
    
      delete from org.jbpm.job.Timer timer
      where timer.processInstance = :processInstance
    
  
20:33:29,906 [http-8080-1] WARN  QuerySplitter : no persistent classes found for query class: 
    
      select job
      from org.jbpm.job.Job as job
      where ( (job.lockOwner is null) or (job.lockOwner = :lockOwner) )
      and job.retries > 0
      and job.isSuspended != true
      order by job.dueDate asc
    
  
20:33:30,015 [http-8080-1] WARN  QuerySplitter : no persistent classes found for query class: 
    
      select job
      from org.jbpm.job.Job as job
      where ( (job.lockOwner is null) or (job.lockOwner = :lockOwner) )
      and job.retries > 0
      and job.dueDate <= :now
      and job.isSuspended != true
      order by job.dueDate asc
    
  
20:33:30,015 [http-8080-1] WARN  QuerySplitter : no persistent classes found for query class: 
    
      select timer
      from org.jbpm.job.Timer timer
      where timer.token = :token
        and timer.name = :name
    
  
20:33:30,062 [http-8080-1] WARN  QuerySplitter : no persistent classes found for query class: 
    
      select job
      from org.jbpm.job.Job as job
      where ( (job.lockOwner is null) or (job.lockOwner = :lockOwner) )
      and job.retries > 0
      and job.dueDate <= :now
      and job.processInstance = :processInstance
      and job.isExclusive = true
      and job.isSuspended != true
      order by job.dueDate asc
    
  
20:33:30,062 [http-8080-1] WARN  QuerySplitter : no persistent classes found for query class: 
    
      update org.jbpm.job.Job job
      set job.isSuspended = false
      where job.token = :token
    
  
20:33:30,109 [http-8080-1] WARN  QuerySplitter : no persistent classes found for query class: 
    
      select job
      from org.jbpm.job.Job as job
      where ( (job.lockOwner is null) or (job.lockOwner = :lockOwner) )
      and job.id not in ( :jobIdsToIgnore )
      and job.retries > 0
      and job.isSuspended != true
      order by job.dueDate asc
    
  
20:33:30,125 [http-8080-1] WARN  QuerySplitter : no persistent classes found for query class: 
    
      delete from org.jbpm.job.ExecuteNodeJob executeNodeJob
      where executeNodeJob.processInstance = :processInstance
    
  
Hibernate: select taskinstan0_.ID_ as ID1_26_, taskinstan0_.VERSION_ as VERSION3_26_, taskinstan0_.NAME_ as NAME4_26_, taskinstan0_.DESCRIPTION_ as DESCRIPT5_26_, taskinstan0_.ACTORID_ as ACTORID6_26_, taskinstan0_.CREATE_ as CREATE7_26_, taskinstan0_.START_ as START8_26_, taskinstan0_.END_ as END9_26_, taskinstan0_.DUEDATE_ as DUEDATE10_26_, taskinstan0_.PRIORITY_ as PRIORITY11_26_, taskinstan0_.ISCANCELLED_ as ISCANCE12_26_, taskinstan0_.ISSUSPENDED_ as ISSUSPE13_26_, taskinstan0_.ISOPEN_ as ISOPEN14_26_, taskinstan0_.ISSIGNALLING_ as ISSIGNA15_26_, taskinstan0_.ISBLOCKING_ as ISBLOCKING16_26_, taskinstan0_.TASK_ as TASK17_26_, taskinstan0_.TOKEN_ as TOKEN18_26_, taskinstan0_.PROCINST_ as PROCINST19_26_, taskinstan0_.SWIMLANINSTANCE_ as SWIMLAN20_26_, taskinstan0_.TASKMGMTINSTANCE_ as TASKMGM21_26_ from JBPM_TASKINSTANCE taskinstan0_ where taskinstan0_.ACTORID_=? and taskinstan0_.ISSUSPENDED_<>1 and taskinstan0_.ISOPEN_=1

能否解答一下啊?
118 楼 chenchendf 2009-12-28  
建好
gt2966 写道
真不容易啊,为了发这个帖子。。
你好,我是一名学生,现在做毕业设计,选了jbpm做工作流。我的基础很差,java平台的很多东西还不太懂。我现在唯一稍微能看懂的资料是你的《jbpm深入浅出》。这两天在搭环境,一直弄不好。我用的是mysql数据库,在mysql查询分析器中打开jbpm文件夹下的db文件夹下的mysql脚本,一直执行不成功,出现1064报错。
补充:我先用sql语句建好数据库了 然后选择数据进行执行的 还是报错 不成功。。。
请你给我解答下为什么好吗 谢谢了!


如果全部一起执行出错,建议一个表一个表的创建,如果单个表创建也出错,那就。。。
117 楼 jacky6024 2009-12-28  
您好,

感觉您写的manager-process.jsp中,long taskId=Long.parseLong(request.getParameter("taskId")) 和<input type="hidden" name="taskId" value="<%=taskId %>">互相矛盾,"taskId"和java中的String变量taskId到底是谁读谁的值?

这是不矛盾的,前面已经和您说了,不知道您看了没有这里的有一个名为taskId的隐藏域,它的作用是用来在表单提交的时候提交对应的taskId的值,所以这里为这个隐藏域添加了一个名为taskId的Java变量值。没有问题的。
116 楼 alfan001 2009-12-28  
感觉您写的manager-process.jsp中,long taskId=Long.parseLong(request.getParameter("taskId")) 和<input type="hidden" name="taskId" value="<%=taskId %>">互相矛盾,"taskId"和java中的String变量taskId到底是谁读谁的值?

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ include file="include.jsp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>经理审批页</title>
</head>
<body>
<%
JbpmContext jbpmContext=JbpmConfiguration.getInstance().createJbpmContext();
try{
long taskId=Long.parseLong(request.getParameter("taskId"));
TaskInstance ti=jbpmContext.getTaskInstance(taskId);
String isSubmit=request.getParameter("isSubmit");
if(isSubmit!=null && isSubmit.equals("true")){
//判断当前是部门经理审批还是总经理审批,分别写入不同的流程变量
String result=request.getParameter("approve_result");
if(ti.getDescription().equals("payment.manager.approve")){
ti.getContextInstance().setVariable("manager_approve_result",result);
if(result.equals("1")){
//部门经理审批结果为同意
ti.end("agree");
}else{
//部门经理审批结果为不同意
ti.end("disagree");
}
out.println("<h1>部门经理审批完成!</h1>");
}else{
ti.getContextInstance().setVariable("super_manager_approve_result",result);
ti.end();
out.println("<h1>总经理审批完成!</h1>");
}
}else{
String title=ti.getVariable("title").toString();
String money_count=ti.getVariable("money_count").toString();
String remark=ti.getVariable("remark").toString();
String issueperson=ti.getVariable("issueperson").toString();
%>
报销人:<%=issueperson %><br>
报销主题:<%=title %><br>
报销金额:<%=money_count %><br>
报销说明:<%=remark %><br>
<form action="manager-process.jsp" method="post">
审批意见:      
<input type="radio" name="approve_result" value="1" checked="checked" />同意 &nbsp;&nbsp;
<input type="radio" name="approve_result" value="0" />不同意<br>
<input type="hidden" name="isSubmit" value="true">
<input type="hidden" name="taskId" value="<%=taskId %>">
<input type="submit" value="提交审批结果">
</form>
<%
}
}finally{
jbpmContext.close();
}
%>
</body>
</html>
115 楼 gt2966 2009-12-27  
真不容易啊,为了发这个帖子。。
你好,我是一名学生,现在做毕业设计,选了jbpm做工作流。我的基础很差,java平台的很多东西还不太懂。我现在唯一稍微能看懂的资料是你的《jbpm深入浅出》。这两天在搭环境,一直弄不好。我用的是mysql数据库,在mysql查询分析器中打开jbpm文件夹下的db文件夹下的mysql脚本,一直执行不成功,出现1064报错。
补充:我先用sql语句建好数据库了 然后选择数据进行执行的 还是报错 不成功。。。
请你给我解答下为什么好吗 谢谢了!
114 楼 jacky6024 2009-12-27  
chenchendf  您好,配置有错一般是相关需要的jar没有加到工程的classpath里所导致,您可以看一下eclipse在这个方面是怎么配置的,这是非常简单的。

另外书当中涉及到的业务表的结构是非常简单的,而且我都贴在书里了,所以就没有提供相关的建表SQL。
113 楼 chenchendf 2009-12-27  
chenchendf 写道
您好,执行到task-list.jsp中的:
List taskList=jbpmContext.getTaskList(currentperson);
出现错误:
currentperson=user1
2009-12-27 18:10:30 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
java.lang.NoClassDefFoundError: javax/transaction/Synchronization
at org.hibernate.impl.SessionImpl.<init>(SessionImpl.java:213)
at org.hibernate.impl.SessionFactoryImpl.openSession(SessionFactoryImpl.java:473)
at org.hibernate.impl.SessionFactoryImpl.openSession(SessionFactoryImpl.java:497)
at org.hibernate.impl.SessionFactoryImpl.openSession(SessionFactoryImpl.java:505)
at org.jbpm.persistence.db.DbPersistenceService.getSession(DbPersistenceService.java:117)
at org.jbpm.persistence.db.DbPersistenceService.getTaskMgmtSession(DbPersistenceService.java:381)
at org.jbpm.JbpmContext.getTaskMgmtSession(JbpmContext.java:579)
at org.jbpm.JbpmContext.getTaskList(JbpmContext.java:189)
at org.apache.jsp.task_002dlist_jsp._jspService(task_002dlist_jsp.java:93)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
但是我看了,我导入的j2ee包中是有这个类的。

我服务器使用的是tomcat

加了jboss-j2ee.jar包就可以了。
112 楼 chenchendf 2009-12-27  
另外:为什么会有下面的提示啊?
18:21:17,375 [http-8080-1] WARN  QuerySplitter : no persistent classes found for query class:
   
      select job
      from org.jbpm.job.Job as job
      where ( (job.lockOwner is null) or (job.lockOwner = :lockOwner) )
      and job.id not in ( :jobIdsToIgnore )
      and job.retries > 0
      and job.isSuspended != true
      order by job.dueDate asc
   
 
18:21:17,375 [http-8080-1] WARN  QuerySplitter : no persistent classes found for query class:
   
      delete from org.jbpm.job.ExecuteNodeJob executeNodeJob
      where executeNodeJob.processInstance = :processInstance
   

相关推荐

    深入浅出JBPM最新源码第七章-报销实例

    【深入浅出JBPM最新源码第七章-报销实例】是一个关于企业流程管理(Business Process Management,简称BPM)的实战教程,主要聚焦在JBPM框架的使用上,结合了myeclipse集成开发环境、SQL数据库、Tomcat6.0应用服务器...

    深入浅出jBPM 5,6章

    《深入浅出jBPM 5,6章》是一本专为理解jBPM这一流程管理系统而精心编写的书籍。jBPM是一个开源的工作流管理系统,它提供了业务流程建模、执行、监控和优化的全面解决方案。这本书的第5章和第6章尤其关键,它们涵盖...

    jbpm深入浅出第7章实例代码

    本资源“jbpm深入浅出第7章实例代码”聚焦于通过jbpm实现工作流的实战演练,旨在帮助读者更深入地理解和掌握jbpm的使用。 jbpm的工作流程管理包括了流程定义、流程执行、流程监控等多个方面。第7章可能涉及的内容...

    深入浅出 jBPM 电子书, ,综合大量例子和资料

    深入浅出jBPM 电子文档,内容包括:面向图的程序设计,流程建模,节点——Node 职责,task-node节点,state节点类型,decision节点类型.等等,.还 综合大量例子和资料 , 是 学习 JBPM 必读首选! 希望这部书,大家能...

    《深入浅出jBPM》第3章

    《深入浅出jBPM》中文版由jBPM方面的专家高杰根据自己的经验编写,是一本实用的jBPM教程。全书分两个部分,第一部分详细讲 解jBPM 3.2,第二部分介绍jBPM 4。作者从初学者的角度由浅入深地介绍jBPM的基本知识、使用...

    深入浅出_jBPM_电子书

    深入浅出 jBPM 电子书,很适合初学者学习的一个开发文档

    《深入浅出jBPM》第2章(2)

    《深入浅出jBPM》中文版由jBPM方面的专家高杰根据自己的经验编写,是一本实用的jBPM教程。全书分两个部分,第一部分详细讲 解jBPM 3.2,第二部分介绍jBPM 4。作者从初学者的角度由浅入深地介绍jBPM的基本知识、使用...

    《深入浅出jBPM》第2章(1)

    《深入浅出jBPM》中文版由jBPM方面的专家高杰根据自己的经验编写,是一本实用的jBPM教程。全书分两个部分,第一部分详细讲 解jBPM 3.2,第二部分介绍jBPM 4。作者从初学者的角度由浅入深地介绍jBPM的基本知识、使用...

    深入浅出jBPM.1-6章测试代码_jbpm-test.rar

    《深入浅出jBPM:1-6章测试代码详解》 jBPM,全称为Java Business Process Management,是一款开源的工作流管理系统,用于处理业务流程的建模、部署、执行和监控。它提供了灵活的工作流定义,支持BPMN 2.0标准,...

    深入浅出JBPM

    **深入浅出JBPM** JBPM,全称Java Business Process Management,是一款开源的工作流管理系统,由JBoss组织开发,现在是Red Hat公司的产品。它提供了一整套解决方案,用于设计、执行、监控和优化业务流程。JBPM的...

    深入浅出jBPM完整版part1

    第 1 章 helloworld..............................................2 1.1 下载开发套件.............................................2 1.2 安装流程设计器 .........................................7 1.3 jBPM...

    深入浅出jBPM完整版.part4

    《深入浅出jBPM》深入浅出,示例丰富,实用性强,适合有一定Java基础的读者阅读。

    深入浅出jBPM电子书

    深入浅出jBPM电子书,JBOSS jBPM是一个灵活的、可扩展的工作流管理系统。JBOSS jBPM拥有直观的流程语言,用任务、异步的等待状态、定时器、自动化动作…等来表示业务流程图,把这些操作绑定在一起,JBOSS jBPM就拥有...

    深入浅出JBPM 采购实例

    【深入浅出JBPM 采购实例】是一个基于Myeclipse8.5、Tomcat6.0和JBPM3.2.3的实践教程,旨在帮助读者理解并掌握工作流管理系统JBPM在采购流程中的应用。在这个实例中,作者省略了邮件功能,因为JBPM3.2.3版本不包含...

    深入浅出jbpm系统开发

    【深入浅出jbpm系统开发】是一本专为jbpm工作流引擎初学者设计的入门指南,旨在帮助读者快速理解和掌握这一强大的开源工作流引擎。jbpm作为一个流行且功能丰富的工具,广泛应用于企业流程自动化、任务管理和决策支持...

    jbpm源码阅读之一

    压缩包中的文件 "Java23种设计模式(总结).doc" 显然是一个关于Java设计模式的文档,这与jbpm源码阅读紧密相关。设计模式是软件工程中的最佳实践,对于理解任何复杂系统的源码都是非常有帮助的。jbpm作为一个成熟的...

Global site tag (gtag.js) - Google Analytics