ntalio Tempo研究二 (如何创建和完成一个人工任务)
Intalio Tempo研究一(架构设计)
Tempo如何创建和完成一个任务
1. 创建和完成一个任务的序列图
图 1 创建和完成任务序列图
上图中的缩写词意义:
1) UBP:User Business Process。它就是创建该任务的流程。一般情况下是一个BPEL流程,但是事实上它可以是任何形式的应用程序。它发起一个Web Service调用来创建一个任务,并且提供一个Web Service操作来完成该任务。
2) FDS:Form Dispatcher Service。它就像一个UBP和TMP之间的代理器。
3) TMP:Task Manager Process。BPEL流程负责管理任务的生存周期。它在接受来自FDS的createTaskRequest流程时被初始化。
4) TMS:Task Management Service。这是一个提供工作流动作,持久化任务到数据库还有处理安全事务的Web服务。
5) UI-FW:UI Framework。显示任务列表和转发表单的管理到表单管理器(XFM)。
6) XFM:XForms Manager。这是一个表单管理器的实现,XForms forms。
7) WDS:Workflow Deployment Service。管理表单的存储和访问。
注意:创建和完成一个任务是完成分开的。任务的ID被用来将createTaskResponse消息和notifyTaskCompletionRequest消息连接起来。这个ID是由TMP产生的。
2. 创建一个任务
创建任务是由对于FDS的一个Web服务调用启动的。接着FDS将这个请求转发给TMP,接下来TMP通过调用TMS来创建任务。
FDS是为了将“任何流程”都转化为“一个TMP”的关系而存在的,这一步是无法在BPEL中完成的。从TMP的角度来看,createTaskRequest的消息只能由一个特别定义的partnerLink发出。每一个不同的UBP就是一个不同的parterLink。为了解决这个问题,FDS设计为一个servlet可以处理any-to-one的关系,它通过接收所有发往/fds/workflow的createTaskRequest请求消息,并且动态的将命名空间转变成TMP所期望的一样,接下来将这些请求转发到TMP。
当TMP返回createTaskResponse消息时,它同样发送到/fds/workflow,当然会被FDS所截获,接着FDS改变它的命名空间到该请求的最初模样。命名空间可以在createTaskResponse消息中找到,它是由先前的createTaskRequest中映射过来的。这就是为什么在UBP中创建一个任务时必须做命名空间映射的原因。这个命名空间可以通过createTaskResponse消息传回到FDS中,因此FDS才可以创建这样的消息,这个消息是UBP实例所一直等待的。
3. 完成一个任务
当一个用户登录系统,或者刷新了任务列表,这时UI-FW将会向TMS发送一个调用来取得最新的任务列表。当用户点击一个任务,这个请求被转发到相应的表单管理器上。目前,UI-FW还只适用于XFM,但是这个可以扩展成为根据一个任务的属性动态选择一个表单管理器。接下来,XFM调用TMS来获得所有任务细节。它同时还调用WDS来取得实际的表单。基于这些所有信息,XFM生成一个表单,包括有它所需的输入数据,还有让用户完成任务的按钮或者任何其他的工作流动作XFM所支持的。
当用户点击完成按钮,XFM调用TMP去完成该任务。注意:在这里FDS不需要被调用,这个调用根据任务ID来进行关联。
接着,TMP通过调用TMS来改变任务的输出以及它的状态。
接下来,TMP通过FDS将任务输出转发到UBP。任务ID在这里做完任务的关联标识。
最终,TMP在接收到UBP的回应之后,向XFM发送结果。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架