- 浏览: 123729 次
- 性别:
- 来自: 黑龙江
文章分类
最新评论
-
Mr_lee_2012:
总有人无私的奉献着,感谢。。。
BPM jPDL 用户开发手册 3.2.3 (全文pdf) -
sinodragon21:
学习!
工作流之大局势 -
yuzhenling:
楼主大好人啊 大好人
BPM jPDL 用户开发手册 3.2.3 (全文pdf) -
楚天阔:
楼主 我居然下不下来。。。谢谢您分享了这么多好资料
jBPM各版本及新手工具包下载地址 -
bingxinhan_aman:
xiaor186 写道题目是工作流之大趋势,可是我只看到了工作 ...
工作流之大局势
第9章Java EE 应用服务器工具
本章将描述jBPM提供的工具,它对Java EE基础架构起到一个杠杆的作用。
9.1. EJB
名称
|
类型
|
描述
|
JbpmCfgResource
|
环境入口
|
用来读jBPM配置的类路径资源。可选,缺省是jbpm.cfg.xml。
|
ejb/LocalTimerEntityBean
|
EJB 引用
|
连接到实现任务服务的本地实体bean。当包含定时器时是流程需要。
|
jdbc/JbpmDataSource
|
资源管理器引用
|
给jBPM持久化服务提供JDBC连接的数据源的逻辑名。必须同hibernate配置文件中的hibernate.connection.datasource属性相匹配。
|
jms/JbpmConnectionFactory
|
资源管理器引用
|
给jBPM消息服务提供JMS连接的工厂的逻辑名称。包含同步连续的流程需要。
|
jms/JobQueue
|
消息目的引用
|
jBPM消息服务发送工作消息到这里引用的队列。为了确保这个和job监听器bean收到消息是同一个队列,message-destination-link指出一个通用的逻辑目标, JobQueue。
|
表 9-1 Command service bean环境
相反,JobListenerBean是一个在JbpmJobQueue上用来监听工作消息的消息驱动bean来支持异步连续(asynchronous continuations)。
名称
|
类型
|
描述
|
ejb/LocalCommandServiceBean
|
EJB引用
|
链接到在独立的jBPM上下文上执行命令的本地会话baen。
|
jms/JbpmConnectionFactory
|
资源管理器引用
|
给产生结果消息的JMS连接提供本地工厂的逻辑命名。命令消息需要显示一个回复目标。
|
jms/DeadLetterQueue ce |
消息目标引用
|
不包含命令的消息被送到这里引用的队列。可选的,如果没有的话,这消息将被驳回,可能导致容器再投递消息。
|
表 9-2 Command/Job监听器bean环境
为了读取定时器的数据定时器的实体bean需要访问jBPM数据源。EJB部署符没有提供一种方式去定义如何让一个实体bean映射到一个数据库。这个留给了容器的提供器(provider)。在JBoss AS中,jbosscmp-jdbc.xml描述符定义数据源JNDI名和关系映射数据(它们中的表和列名)。注意JBoss XMP描述符使用一个全书JNDI名(java:JbpmDS),这和资源管理器引用形成对照(java:comp/env/jdbc/JbpmDataSource)。
名称
|
类型
|
描述
|
ejb/LocalCommandServiceBean
|
EJB引用
|
链接到独立的jBPM上下文中执行定时器的本地{@linkplain CommandServiceBean会话bean}。 |
表 9-2 Command/Job监听器bean环境
9.2. jBPM企业配置
<jbpm-context>
<service name="persistence" factory="org.jbpm.persistence.jta.JtaDbPersistenceServiceFactory" /> <service name="message" factory="org.jbpm.msg.jms.JmsMessageServiceFactoryImpl" /> <service name="scheduler" factory="org.jbpm.scheduler.ejbtimer.EntitySchedulerServiceFactory" /> </jbpm-context>
|
· isCurrentSessionEnabled:如果是true,jBPM将使用同进行的JTA事务关联的“当前”Hibernate会话。这是缺省设置。参考Hibernate手册,2.5 Contextual sessions节描述了这个行为。你可以利用session机制的上下文关系来使用被jBPM在应用的其他部分通过调用SessionFactory.getCurrentSession()取得的同一个session。另一方面,你可以让jBPM支持你自己的hibernate session。这样做的话,设置isCurrentSessionEnabled为false并通过JbpmContext.setSession(session)方法注入session。这也要确保jBPM同你应用的其他部分使用相同的Hibernate session。注意,Hibernate session可能通过持久化上下文注入到无状态的会话bean中。
· isTransactionEnabled:这个域值为true意味着jBPM将通过Hibernate的事务API(Hibernate手册的11.2数据库事务分界部分显示了这些API)用JbpmConfiguration.createJbpmContext()来创建事务,使用JbpmContext.close()来提交事务并关闭Hibernate会话。当jBPMp以ear来部署时这绝对不是一个期望的行为,因此isTransactionEnabled缺省情况下设置为false。
- connectionFactoryJndiName: 在JNDI初始上下文中的JMS连接工厂的名字。对于Java缺省是:comp/env/jms/JbpmConnectionFactory。
- destinationJndiName: 工作消息将被传送那里JMS目标的名字。必须同JobListenerBean 接收消息的目标相匹配。对于java缺省是:comp/env/jms/JobQueue。
- isCommitEnabled: 告诉jBPM是否应该使用JbpmContext.close()提交JMS会话。消息被JMS消息服务产生,那就意味着(消息)在当前的事务提交前将从不会被接收。因此通过服务创建的JMS会话总是被处理。当在用的连接工厂是XA时缺省的值false是合适的,同样的JMS会话产生的消息将通过被全部的JTA事务控制。这个域应该被设置为true如果JMS连接工厂不是XA的话,因此jBPM将明确地提交这个JMS会话的本地事务。
- timerEntityHomeJndiName: TimerEntityBean 在JNDI初始上下文中的本地home接口的名称。对于java缺省是:comp/env/ejb/LocalTimerEntityBean.
9.3. Hibernate企业配置
<!-- sql dialect --> <property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property> <property name="hibernate.cache.provider_class"> org.hibernate.cache.HashtableCacheProvider </property>
<!-- DataSource properties (begin) --> <property name="hibernate.connection.datasource">java:comp/env/jdbc/JbpmDataSource</property> <!-- DataSource properties (end) --> <!-- JTA transaction properties (begin) --> <property name="hibernate.transaction.factory_class"> org.hibernate.transaction.JTATransactionFactory </property>
<property name="hibernate.transaction.manager_lookup_class"> org.hibernate.transaction.JBossTransactionManagerLookup </property>
<!-- JTA transaction properties (end) --> <!-- CMT transaction properties (begin) === <property name="hibernate.transaction.factory_class"> org.hibernate.transaction.CMTTransactionFactory </property>
<property name="hibernate.transaction.manager_lookup_class"> org.hibernate.transaction.JBossTransactionManagerLookup </property>
==== CMT transaction properties (end) --> |
你可以符合你的数据库管理系统的一个方言来替换hibernate.dialect。hibernate参考手册在3.4.1 SQL方言部分列举了可用的数据库方言。
HashtableCacheProvider能够使用其他支持的缓存提供器实替换。对于支持的缓存提供器列表可以查阅hibernate手册19.2 二级缓存部分。
JbossTransactionManagerLookup可以被一个策略替换适合的不同于JBoss的应用服务器。查看3.8.1 事务策略配置部分找到符合每个应用服务器的lookup类。
9.4. 客户端组件
<session>
<ejb-name>MyClientBean</ejb-name> <home>org.example.RemoteClientHome</home> <remote>org.example.RemoteClient</remote> <local-home>org.example.LocalClientHome</local-home> <local>org.example.LocalClient</local> <ejb-class>org.example.ClientBean</ejb-class> <session-type>Stateless</session-type> <transaction-type>Container</transaction-type> <ejb-local-ref> <ejb-ref-name>ejb/LocalTimerEntityBean</ejb-ref-name> <ejb-ref-type>Entity</ejb-ref-type> <local-home>org.jbpm.ejb.LocalTimerEntityHome</local-home> <local>org.jbpm.ejb.LocalTimerEntity</local> </ejb-local-ref> <resource-ref> <res-ref-name>jdbc/JbpmDataSource</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> <resource-ref> <res-ref-name>jms/JbpmConnectionFactory</res-ref-name> <res-type>javax.jms.ConnnectionFactory</res-type> <res-auth>Container</res-auth> </resource-ref> <message-destination-ref> <message-destination-ref-name>jms/JobQueue</message-destination-ref-name> <message-destination-type>javax.jms.Queue</message-destination-type> <message-destination-usage>Produces</message-destination-usage> </message-destination-ref> </session>
|
被提供的目标服务器是JBoss,上面的环境引用可以像后面的那样被绑定资源在目标操作环境上。注意JNDI名称必须同jBPM Bean使用的值相匹配。
<session>
<ejb-name>MyClientBean</ejb-name> <jndi-name>ejb/MyClientBean</jndi-name> <local-jndi-name>java:ejb/MyClientBean</local-jndi-name> <ejb-local-ref> <ejb-ref-name>ejb/LocalTimerEntityBean</ejb-ref-name> <local-jndi-name>java:ejb/TimerEntityBean</local-jndi-name> </ejb-local-ref> <resource-ref> <res-ref-name>jdbc/JbpmDataSource</res-ref-name> <jndi-name>java:JbpmDS</jndi-name> </resource-ref> <resource-ref> <res-ref-name>jms/JbpmConnectionFactory</res-ref-name> <jndi-name>java:JmsXA</jndi-name> </resource-ref> <message-destination-ref> <message-destination-ref-name>jms/JobQueue</message-destination-ref-name> <jndi-name>queue/JbpmJobQueue</jndi-name> </message-destination-ref> </session>
|
<web-app>
<servlet> <servlet-name>MyClientServlet</servlet-name> <servlet-class>org.example.ClientServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MyClientServlet</servlet-name> <url-pattern>/client/servlet</url-pattern> </servlet-mapping> <ejb-local-ref> <ejb-ref-name>ejb/LocalTimerEntityBean</ejb-ref-name> <ejb-ref-type>Entity</ejb-ref-type> <local-home>org.jbpm.ejb.LocalTimerEntityHome</local-home> <local>org.jbpm.ejb.LocalTimerEntity</local> <ejb-link>TimerEntityBean</ejb-link> </ejb-local-ref> <resource-ref> <res-ref-name>jdbc/JbpmDataSource</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> <resource-ref> <res-ref-name>jms/JbpmConnectionFactory</res-ref-name> <res-type>javax.jms.ConnectionFactory</res-type> <res-auth>Container</res-auth> </resource-ref> <message-destination-ref> <message-destination-ref-name>jms/JobQueue</message-destination-ref-name> <message-destination-type>javax.jms.Queue</message-destination-type> <message-destination-usage>Produces</message-destination-usage> <message-destination-link>JobQueue</message-destination-link> </message-destination-ref> </web-app>
|
<jboss-web>
<ejb-local-ref> <ejb-ref-name>ejb/LocalTimerEntityBean</ejb-ref-name> <local-jndi-name>java:ejb/TimerEntityBean</local-jndi-name> </ejb-local-ref> <resource-ref> <res-ref-name>jdbc/JbpmDataSource</res-ref-name> <jndi-name>java:JbpmDS</jndi-name> </resource-ref> <resource-ref> <res-ref-name>jms/JbpmConnectionFactory</res-ref-name> <jndi-name>java:JmsXA</jndi-name> </resource-ref> <message-destination-ref> <message-destination-ref-name>jms/JobQueue</message-destination-ref-name> <jndi-name>queue/JbpmJobQueue</jndi-name> </message-destination-ref> </jboss-web>
|
昨天去医大看牙医了,要不昨天就能翻译完成的,可是没有...... :< ,还得今天起个大早
but all has got it! :~;
发表评论
-
BPM jPDL 用户开发手册 3.2.3 (全文pdf)
2008-10-16 12:58 9065最近太忙了,实在没有时间详细校稿,应大家要求,现在在将全文转为 ... -
jBPM jPDL 用户开发手册 3.2.3 - 第24章
2008-09-27 08:35 2544第24章 可插拨架构 jBPM功能特性分裂成模块。每个模块都有 ... -
jBPM jPDL 用户开发手册 3.2.3 - 第23章
2008-09-27 08:31 1519第23章 工作流的TDD文件 23.1.工作流TDD介绍 既然 ... -
jBPM jPDL 用户开发手册 3.2.3 - 第22章
2008-09-27 08:30 1974第22章 安全 jBPM的安全属性还处于alpha阶段。本章归 ... -
jBPM jPDL 用户开发手册 3.2.3 - 第21章
2008-09-27 08:27 1911第21章 jBPM流程定义语言(JPDL) JPDL指定一个X ... -
jBPM jPDL 用户开发手册 3.2.3 - 第20章
2008-09-23 09:04 1823第20章 业务流程仿真 jBPM包含一个仿真组件,这个是jB ... -
jBPM jPDL 用户开发手册 3.2.3 - 第19章
2008-09-23 09:00 1981第19章 日志 日志的目标是保持追踪流程执行的历史。在运行时 ... -
jBPM jPDL 用户开发手册 3.2.3 - 第18章
2008-09-23 08:59 2070第18章 Web Services支持 本章描述了jBPM ... -
jBPM jPDL 用户开发手册 3.2.3 - 第17章
2008-09-23 08:57 3225第17章 邮件支持 本章描述了jBPM jPDL中随包发行的邮 ... -
jBPM jPDL 用户开发手册 3.2.3 - 第16章
2008-09-23 08:22 1659第16章 商务日历 本章描述了jBPM的商务日历。商务日历知道 ... -
jBPM jPDL 用户开发手册 3.2.3 - 第15章
2008-09-23 08:20 2078第15章 异步连续 15.1. ... -
工作流之大局势
2008-09-22 08:49 33721. 从奴隶社会到封建后期 工作流(WorkFlow)的概 ... -
jBPM jPDL 用户开发手册 3.2.3 - 第12章
2008-09-12 15:06 2794第12章 任务分配 jBPM的 ... -
jBPM jPDL 用户开发手册 3.2.3 - 第14章
2008-09-04 13:02 175114章 定时器 本章描述了jBPM如何和定时器工作一起工作。 ... -
jBPM jPDL 用户开发手册 3.2.3 - 第13章
2008-09-03 20:49 1639第13章 文档管理 这仍然是一个试验性的属性。 为了使用这个 ... -
jBPM jPDL 用户开发手册 3.2.3 - 第11章
2008-09-03 20:45 1991第11章 上下文 上下文是关于流程变量的。流程变量是维护同流程 ... -
jBPM jPDL 用户开发手册 3.2.3 - 第10章
2008-09-02 12:42 2855第10章流程建模 10.1. 概 ... -
jBPM各版本及新手工具包下载地址
2008-08-22 17:40 4416由于一些刚开始学习jBPM的朋友看文档时,一般会提到 j ... -
jBPM jPDL 用户开发手册 - 第8章
2008-08-22 08:13 2773第8章 jBPM 数据库 8.1. 切 ... -
jBPM jPDL 用户开发手册 - 第7章
2008-08-20 17:24 2843第7章持久化 大多数的情况,jBPM用于维护流程的执行跨度很 ...
相关推荐
**jbPM jPDL 用户开发手册 - 第8章** jbPM(Java Business Process Management)是一个开源的工作流管理系统,用于在Java环境中实现业务流程自动化。它提供了丰富的API、工作流建模语言(jPDL)以及可视化工具,...
jbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3....
- **docs**目录:包含文档和手册,用于指导用户安装、配置和使用jBPM-jPDL。 - **samples**目录:提供了一些示例项目,帮助用户了解如何使用jBPM-jPDL实现具体业务流程。 安装配置jBPM-jPDL-suite-3.2.3通常涉及...
jbpm-jpdl-designer-site-3.1.7.zip jbpm-jpdl-designer-site-3.1.7.zip jbpm-jpdl-designer-site-3.1.7.zip
- 修改jbpm-jpdl-3.2.3\db目录下的jbpm.jpdl.mysql.sql文件,为每个SQL语句末尾添加分号,以便正确执行脚本。 4. **jbpm-jpdl-suite-3.2.3部署**: - 在MySQL中执行修改后的jbpm.jpdl.mysql.sql脚本,初始化jbpm...
jbpm-jpdl-suite-3.2GA -(5)分开压缩(共5个文件)jbpm下载 jbpm-jpdl-suite-3.2GA -(5)分开压缩(共5个文件)jbpm下载
"jbpm-jpdl-designer-nodeps-3.1.4" 是一个针对Jbpm工作流管理系统中的JPDL设计工具的无依赖版本,主要用于创建和编辑JPDL(Jbpm Process Definition Language)文件。该资源包含了该工具的详细文档、许可证协议以及...
jbpm-jpdl-suite-3.2.GA.zip
jbpm-jpdl-suite-3.2.GA.zip
jbpm-jpdl-suite-3.2.GA.zip
**JBoss jBPM jPDL用户开发手册1.1** **JBoss jBPM** 是一个开源的工作流管理系统,由JBoss组织开发,旨在提供一个灵活且可扩展的平台来设计、执行和管理业务流程。它基于Java,兼容J2EE(Java 2 Platform, ...
【jbpm-jpdl-designer-3.1.7.zip】是一个包含JBPM(Java Business Process Management)工作流设计工具的Eclipse插件版本3.1.7的压缩包。这个插件允许开发者在Eclipse集成开发环境中创建、编辑和管理JPDL(JBPML,...
**jBPM用户开发手册-中文版** jBPM(Java Business Process Management)是一个开源的工作流管理系统,专注于业务流程的建模、执行和监控。它提供了全面的BPM(Business Process Management)解决方案,包括流程...
jbpm-jpdl-designer-nodeps-3.0.13.zip是一款专为流程设计和管理而生的工具,主要用于JBPM(Java Business Process Management)系统。JBPM是一个开源的工作流和业务流程管理系统,它提供了对业务流程的建模、部署、...
jbpm-jpdl-suite-3.2.GA.zip
"jbpm-jpdl-designer-3.1.3.zip" 是一个压缩包,其中包含的是JBPMP项目中的JPDL设计器的相关资源。这个版本号3.1.3表明这是一个特定的历史版本。JBPMP(Java Business Process Management Suite)是用于业务流程管理...
jbpm-jpdl-suite-3.2GA -(2)分开压缩(五个文件)jbpm下载 jbpm-jpdl-suite-3.2GA -(2)分开压缩(五个文件)jbpm下载
jbpm-jpdl-designer-3.0.13 是一个与jbpm相关的软件包,主要功能是提供jbpm流程定义的图形化设计工具。jbpm(Java Business Process Management)是一个开源的工作流管理系统,用于管理和执行业务流程。JPDL(JBoss ...