JBoss 系列六十二:深入理解 jBPM Human Task - II(使用JMS做传输媒介执行Human Task)

原创 2013年12月02日 10:50:38

 概述

本文是继深入理解 jBPM Human Task - I,对使用JMS做传输类型过程中服务器端和客户端业务逻辑的明细。本文也是基于之前代码分析系列:

本问主要包括:
  • JMSTaskServer 启动过程
  • JMSTaskServer 处理AddTaskRequest过程
  • JMSTaskClientConnector启动连接过程
  • JMSTaskClientConnector处理AddTaskRequest过程

服务器端消息传递过程

JMSTaskServer 启动过程

JMSTaskServer 端主要包括两个消息队列ServerQueue和ResponseQueue,这两个队列负责与客户端进行交互,创建,修改Human Task。如下图所示:


JMSTaskServer启动过程中业务执行顺序包括如下三步:

1. 实例化 ServerQueue

2. 实例化 ResponseQueue

3. 创建消息队列消费者,监听到ServerQueue

JMSTaskServer 处理AddTaskRequest过程

JMSTaskServer 处理AddTaskRequest过程如下图所示:


4. 监听于ServerQueue的消费者获取客户端发送的消息,消息为ObjectMessage,封装着AddTaskRequest,包括客户端发送的Task对象实例

5. 从AddTaskCommand中获取Task实例,通过JPA将Task示例添加到数据库

6. 基于ResponseQueue创建生产者,并创建AddTaskResponse Command,将JPA生成的Task ID封装于AddTaskResponse Command

客户端消息传递过程

JMSTaskClientConnector启动连接过程

JMSTaskClientConnector启动连接还是通过两个消息队列ServerQueue和ResponseQueue进行,具体如下图:


1. 实例化 ServerQueue

2. 实例化 ResponseQueue

3. 基于消息队列ServerQueue,创建消息队列生产者

JMSTaskClientConnector处理AddTaskRequest过程

JMSTaskClientConnector处理AddTaskRequest过程如下图所示:


4. JMSTaskClientConnector基于ResponseQueue创建消费者

5. JMSTaskClientConnector基于ServerQueue创建生产者,并发送消息(Task及Content对象)到ServerQueue

6. 监听于ResponseQueue的消费者,消费服务器返回的消息,并进行处理消息,将taskID设置给ResponseHandler

总结

使用JMSTaskClientConnector连接Human Task Service完成一次AddTaskRequest过程消息传递可以分为如下几步:

  1. 客户端JMSTaskClientConnector和服务器端JMSTaskServer分别启动连接ServerQueue和ResponseQueue
  2. 服务器端JMSTaskServer监听到ServerQueue,等待客户端发送的消息
  3. 客户端JMSTaskClientConnector监听到ResponseQueue,等待服务器端返回消息,同时发送消息(Task及Content对象)给 ServerQueue
  4. 服务器端从ServerQueue消费消息,使用JPA存储 Task及Content,将JPA生成的taskID作为返回消息发送到ResponseQueue
  5. 客户端消费返回消息(taskID),将taskID设置给ResponseHandler

JBoss 系列六十一:深入理解 jBPM Human Task - I

概述 Human Task 是BPM流程中的节点必需通过人为的手动操作才能够执行。jBPM 5 通过 User Task(jBPM5示例之 User Task) 节点来支持Human Task。Hum...

JBoss 系列五十八:jBPM Human Task 源代码分析 - I

概述 本文基于jBPM 5.2.x分析jBPM 5jbpm-human-task 部分源代码,我们之所以选择jBPM 5.2.x是由于jBPM 5.2.x是有对应企业版本的BRMS,该代码是被Red ...

JBPM6学习笔记(三)创建并运行Human Task

人工任务是工作流当中相当重要的一部分,现在

工作流 human task

  • 2009年11月10日 22:13
  • 686KB
  • 下载

Delmia human task simulation

  • 2010年11月09日 15:27
  • 2.77MB
  • 下载

JBoss 系列四十七:jBPM5示例之 User Task

概述 jBPM5的 User Task是指节点必须有人的参与后才能够完成,是BPM重要特新的体现,User Task必须使用数据库存储流程运行时数据,如下为我们本文中使用到的流程示意: 为了方便数据...

WSO2 Human Task

  • 2015年03月18日 11:00
  • 950KB
  • 下载

human task simulation

  • 2010年10月26日 17:58
  • 7.06MB
  • 下载

JBoss 系列八十三: jBPM 6 中 Process Variable 和 Task Variable 以及它们之间的Mapping模式

概述 jBPM 6 中 Process Variable 和 Task Variable 以及它们之间的关系如下图所示: 如上,Process Variable位于Process 上下文中,Ta...

Heterogeneous Multi-task Learning for Human Pose Estimation with Deep Convolutional Neural Network

Heterogeneous Multi-task Learning for Human Pose Estimation with Deep Convolutional Neural Network...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JBoss 系列六十二:深入理解 jBPM Human Task - II(使用JMS做传输媒介执行Human Task)
举报原因:
原因补充:

(最多只允许输入30个字)