IntalioTempo研究研究
架构设计架构设计
1. 文档编写目的
该文档通过对Tempo这个开源工作流引擎的架构设计进行描述,学习其设计方法,重要的是了解其对于BPEL4People规范的实现机制,
以其在后续的项目开发中可以集成到BPEL引擎中。
本文档主要分为以下几个部分,首先是对Tempo的总体架构的一个简单描述,再就是对于其各个子模块进行描述,其中着重了解其
BPEL4People的实现方式,最后,对于Tempo与ODE的集成提出自己的看法。
2. Tempo系统架构
Tempo是一个具有很高模块化的软件,它以此来给开发人员提供最大限度的灵活性,开发人员可以根据自己的不同需求来替换或修改任
何其中的模块。
从一个较高层次来看,Tempo可以分成三层结构,以top-down的方式主要有以下几个方面:
1) 终端用户用来管理他们的任务列表的用户接口(界面)。Tempo有两个模块提供最终用户接口:用户接口框架(User Interface
Framework)和XForms管理器(XForms Manager)。
2) 管理任务生存周期的工作流逻辑。这部分是由一组WS-BPEL流程来实现的,叫做任务管理流程(Task Management Processes),
这些流程可以一个Web Service接口来访问。
3) 负责以一个安全的方式,来负责持久化任务属性的持久化层。这部分是通过任务管理服务(Task Management Service),通过Web
Service接口进行访问。
其他的组件提供了额外的/可选的功能,这些功能可以来完成Tempo与一个BPEL环境的集成工作以及Tempo的管理。
1) 安全框架是一个基于角色的访问控制框架(授权、认证、单点登录)。
2) 任务附件服务(Task Attachment Service)是一个接口,用来将附件存储到数据存储或者内容管理系统中。
3) 表单调度服务(Form Dispatcher Service)就像一个代理,它位于任务管理流程(Task Management Processes)和用户接口框架
(User Interface Framework)之间。
4) 工作流部署服务(Workflow Deployment Service)提供一个接口来在工作流数据库中部署工作流组件,并且提供其他方法来访问这些
组件。
最终,任务对象模型(Task Object Model)定义了任务的属性,它定义在一个通用包中,其他模块都可以重用该对象。
下图描述了这些模块是怎样一起协同工作的: