# 产品概述
本部分对Primeton BPS Platform 7产品的定位、产品结构图及相关组件、概念参考模型等进行介绍。
# BPS产品简介
普元业务流程平台套件(Primeton BPS®:Business Process Suite,简称普元流程平台)是业界第一个完全基于业务化思想实现的SOA流程平台产品,负责对业务流程整个生命周期的管理,包括业务流程的设计建模、测试与调试、部署、运行、监控、管理。Primeton BPS®是遵从WfMC参考模型以及BPMN规范而又具备中国特色特性的流程平台产品。
Primeton BPS®是具有中国特色的流程平台产品。它融入了国内电子政务与电信等行业的特殊要求,在符合WfMC规范和BPMN规范的同时,又提供了灵活的工作任务分派策略、业务流程版本管理策略、丰富的流程模式、灵活的组织模型等特性,使得它能够从容应对复杂的中国特色流程模式和人工流程的处理。
Primeton BPS®采取了多种方式以保证流程引擎高效稳定的运行,满足大型流程应用建设需求,比如良好的事件驱动式系统架构、优化的BPS数据库、历史数据与运行数据分离、集群高速缓存等等。
Primeton BPS®业务流程定制选件提供基于WEB的业务化流程设计和调整能力,支持流程建设阶段完全业务化的分析建模,以及流程维护阶段敏捷的业务化流程变更,从而极大提高业务人员参与流程建设的能力,加快流程响应业务变化的速度。
# BPS产品组件及功能特性
Primeton BPS®由以下几个部分产品组件组成:BPS Process Server(BPS流程引擎)、BPS API & Component Library(BPS API和构件库)、BPS Studio(BPS流程设计建模工具)、BPS Process Composer(BPS业务流程定制)、BPS Rule Engine(BPS规则引擎)、BPS Rule Composer(BPS业务规则定制)、BPS HPA Module(BPS高性能高可用性模块)、BPS Governor(BPS引擎治理工具)、BPS Admin & Monitor(BPS流程管理监控台)和BPS Work Client(BPS流程客户端)。
BPS产品结构如下图所示:
# BPS Process Server(BPS流程引擎)
BPS Process Server(BPS流程引擎)是BPS运行期的核心,为企业流程运转提供驱动力,保证大业务量并发场景下的流程操作的顺利执行。 BPS Process Server共有三个职责:流程调度、任务调度和应用调度。
BPS Process Server支持包含自由流在内的多种复杂的流程模式,能灵活满足中国特色的业务需求;BPS Process Server支持复杂的代理代办模型,对人工任务的灵活性存在很大的优势;BPS Process Server同时负责与内部或外部的各种应用以同步或异步方式进行交互,保证引擎处理过程中的事务完整性,促使互联网时代大量业务交互能够顺利进行。
# BPS Rule Engine(BPS规则引擎)
BPS Rule Engine(BPS规则引擎)是一个高性能的业务规则运行环境,它能从业务变量以及系统环境数据中获取必要的数据作为决策数据源,通过复杂计算得出条件判断结果或者参与者集合,然后把结果传递给流程引擎使用。
通过把业务规则引擎和流程引擎的配合使用,可以大大提高业务配置化能力,快速支持业务流程和业务策略的变更。
# BPS API & Component Library(BPS API和构件库)
BPS API & Component Library(BPS API和构件库)提供众多的流程API与EOS服务构件,为流程业务开发提供了极大的便捷性。 在实际的应用开发过程中,Java开发模式中一般是通过API调用流程引擎所提供的服务,EOS平台开发模式中一般是通过调用EOS服务构件中的服务来使用流程引擎所提供的服务。BPS API和构件库是BPS流程引擎的访问接口,是对引擎功能的完备封装。 BPS API和构件库包括:流程定义管理接口和服务、实例管理接口和服务、客户端接口和服务、代理代办接口和服务、特殊功能接口和服务以及页面标签库。
# BPS Studio(BPS流程设计建模工具)
BPS Studio(BPS流程设计建模工具)是基于Eclipse插件体系结构实现的可视化流程设计器,它既可以与用户基于Eclipse的Java集成开发环境融合,又能与Primeton EOSTM的集成开发环境无缝集成,提供一体化的流畅的开发体验。
# BPS Governor(BPS引擎治理工具)
BPS Governor(BPS引擎治理工具)是集成BPS提供的系统管理工具,系统管理员可以通过它对BPS流程引擎进行配置和管理。
# BPS Process Composer(BPS业务流程定制)
BPS Process Composer(BPS业务流程定制)是在Primeton BPSTM流程引擎之上实现的基于Web的业务化流程定制工具,它支持业务部门的流程管理人员基于Web的方式进行流程的业务化配置与调整,为业务人员提供完全的业务域支撑能力,敏捷响应业务流程的变更。
# BPS Rule Composer(BPS业务规则定制)
BPS Rule Composer(BPS业务规则定制)是在Primeton BPSTM流程引擎和Primeton BPSTM规则引擎之上实现的基于Web的业务化规则定制工具,通过该组件,业务管理人员可以在系统维护期间维护业务规则,使业务策略的变更及时体现到IT系统当中。业务规则定制过程中可以引用业务变量、流程上下文数据、活动上下文数据等,以"类自然语言"的方式进行灵活的配置,并可以进行各种复杂的运算。
# BPS HPA Module(BPS高性能高可用性模块)
BPS HPA Module(BPS高性能高可用性模块)是基于S-EDA(Staged Event-Driven Architecture)分阶段的事件驱动架构实现引擎的分段部署和计算资源的灵活调配的高性能与高可用性组件。HPA,High Performance & Availability:即高性能与高可用性。能够满足大型的重流程的企业应用,在吞吐量、响应速度、可靠性方面要求特别高的场景。如电信行业即开即通类业务、金融行业流程银行等核心业务域。
# BPS Admin & Monitor(BPS流程管理监控台)
BPS Admin & Monitor(BPS流程管理监控台)是业务流程管控人员的流程操作平台。通过它,业务流程管控人员不但可以对流程实例实施挂起、恢复、回退等操作,还可以进行代理代办交接等管理动作,甚至可以查询业务审计日志,对业务操作人员的流程动作进行监控。
# BPS Work Client(BPS流程客户端)
BPS Work Client(BPS流程客户端)是一个客户端的典型案例,它为流程的开发、调试和验证提供极大的便捷性。 通过BPS流程客户端,业务人员和开发人员不但可以执行启动流程、查看任务、完成任务等基本操作,还可以进行包括代理、代办、领取等复杂操作。BPS流程客户端主要用来进行流程的模拟调试,验证流程的可行性和正确性。在业务运行阶段,应用一般需要构造满足自己特殊需要的客户端。
# BPS参考模型
1993年,国际工作流管理联盟WfMC(Workflow Management Coalition)的成立标志着工作流技术开始进入相对成熟的阶段。WfMC在工作流管理系统的相关术语、体系结构及应用编程接口等方面制定了一系列标准,提出了工作流参考模型。
工作流参考模型确定了工作流管理系统的基本架构。该架构是开发工作流软件时应当采纳的系统模型,当然,一个工作流管理系统也可以不遵循这个模型标准,或只实现这个模型的一部分,但事实证明,这个模型结构是目前最为合理的。
Primeton BPS®的参考体系架构在WfMC描述的体系架构基础上进行了加强和改进,如下图所示:
# BPS的调用模型
在开发期,开发人员主要通过集成BPS Studio的流程定义工具来定义流程。由于流程定义工具需要依赖组织模型和外部相关应用,所以在流程开发以前需要首先实现组织模型接口,构造被调用的应用(Java方法、EOS服务等)。如果开发者暂时不确定组织模型,也可以先使用产品内置的简单组织模型。
在运行期,流程引擎是所有依赖的中心。BPS流程引擎包含流程调度引擎和任务表管理器两大部分。
流程引擎主要完成这些工作:
- 通过从组织模型获取到适当的参与者来调度人为参与的人工活动;
- 通过调用外部应用来实现运转的自动活动;
- 通过访问流程相关数据进行必要的路由判断;
- 通过流程控制数据来记录流程运行的轨迹;
- 通过访问日历接口来进行恰当的时限设置。
流程调度引擎和任务表管理器之间通过任务表作为联系纽带,通过任务表的状态变迁来进行相互的驱动。
# BPS的角色模型
BPS应用环境中一共包含九种角色,分别是:
1、业务分析人员
- 职责描述:进行组织流程框架的规划和业务流程的梳理、流程的业务建模、流程分析。
- 基本技能要求:精通某一领域业务知识和流程需求;熟悉业务流程梳理概念与方法。
- 产品针对特性:提供流程梳理后的建模与模拟运行功能。
2、业务流程配置员
- 职责描述:进行业务流程的流程定制、流程调整、流程测试与验证、流程发布、流程监控、流程统计分析、流程优化。
- 基本技能要求:熟悉业务需求,了解业务流程基本概念,了解业务流程实现过程。
- 产品针对特性:流程建模功能、程测试验证功能、流程统计分析功能、流程调整功能。
3、流程实施人员
- 职责描述:主要是指开发商的流程实施人员,基本同流程配置员。
- 基本技能要求:基本同流程配置员。
- 产品针对特性:基本同流程配置员。
4、流程开发人员
- 职责描述:在流程开发人员的工作过程中,除了开发流程本身(定义流程、活动等)之外,还要开发流程相关的资源。比如,相关的任务列表、环节展现界面的开发、活动处理逻辑、组织模型接口的定制等。
- 基本技能要求:精通相关服务构件开发所需技能,如JEE开发技能、EOS构件开发技能等,熟悉业务流程基本概念和实现过程。
- 产品针对特性:BPS Studio、业务资源管理、业务流程定制、流程测试验证、流程管理监控。
5、业务操作员
- 职责描述:一般是通过和任务表的交互来进行工作的,他们通过工作流客户端进行流程的发起、获取到任务列表,然后处理具体的任务。
- 基本技能要求:精通某领域业务,了解业务流程基本概念。
- 产品针对特性:流程客户端、流程监控功能。
6、业务管理员
- 职责描述:对流程进行监控和管理,包括监控和跟踪流程和任务的状态,对异常流程进行维护等,还可能进行一些代理代办或工作交接的工作。
- 基本技能要求:熟悉流程监控和管理的流程与方法,了解业务流程概念。
- 产品针对特性:流程管理监控。
7、系统管理员
- 职责描述:进行系统配置、业务目录管理、权限设置等。
- 基本技能要求:熟悉领域技术相关知识。
- 产品针对特性:业务目录管理、引擎配置管理。
8、应用维护人员
- 职责描述:进行应用系统的软件升级、缺陷修复、流程所使用资源的管理等。
- 基本技能要求:熟悉系统维护与升级相关知识,了解业务化流程定制过程与方法。
- 产品针对特性:流程管理监控、业务资源管理。
9、超级系统管理员
- 职责描述:进行统一流程平台的配置,包括受管引擎实例的配置等。
- 基本技能要求:熟悉统一流程平台的配置与领域技术相关知识。
- 产品针对特性:受管引擎实例配置。
# BPS流程应用的数据模型
基于BPS开发的应用包含以下数据:业务流程定义数据、流程控制数据、流程相关数据、任务表数据、组织模型数据、流程日历数据和流程应用数据。各部分数据的概念如下:
- 业务流程定义数据 业务流程定义数据定义了流程的拓扑结构、流程所包含的活动、流程的相关数据定义以及流程使用的资源等流程规格特性。引擎把业务流程定义数据存储在文件系统(开发时)或关系数据库(运行时)中。
- 流程控制数据 流程实例运行期间进行实例化所产生的数据,由于流程实例经常存在于一个相对较长的生命周期中,一般为一天到几个月,所以流程控制数据需要持久化存储。BPS把流程的控制数据存储在关系数据库中。
- 流程相关数据 流程相关数据是在流程运转过程中和控制流程运转条件相关的数据,相关数据也可以用来保存在不同活动之间传递的信息。在BPS中,相关数据以结构化的形式存储在关系数据库中。
- 任务表数据 任务表是流程引擎和参与者(机构、角色、人员等)交互的一个媒介。人员通过任务表来获取自己的任务并执行。在BPS中,任务表数据存储在关系数据库中。
- 组织模型数据 组织模型是BPS系统依赖的一个重要的资源模型,是人工活动执行所需要的必备条件。考虑到组织模型在不同的企业和单位差异性非常大,BPS提供了接口来限定组织模型,并不提供具体的组织模型数据。通过实现组织模型接口,用户可以使用多种存储形式的遗留系统数据。
- 流程日历数据 工作日历是人工任务的时间相关的一个重要概念。考虑到不同企业和单位的差异性也比较大,BPS也提供了接口来限定工作日历,并不保存具体的数据。
- 流程应用数据 流程应用数据是所有应用数据中和流程相关的那一部分数据,一般用来保存流程实例在业务方面的属性。流程应用数据一般不在BPS流程引擎的管理范围之内,但是在BPS中,用户可以在任务表和应用数据之间建立关联,从而达到引擎和业务的更好的交互。
# BPS流程引擎与业务应用部署模式
BPS Process Server 主要支持两种种典型的与业务应用的部署方式:
- 独立部署模式--BPS服务器与应用功能分开部署
- 集中部署模式--BPS服务器与用户应用集中部署
说明:这两种集成方式适合与BPS For Java的环境。
# 独立部署模式
指BPS产品模块与用户业务应用部署在相互独立的应用服务器下,通过远程调用来访问BPS引擎和BPS资源,如下图所示。
# 集中部署模式
指BPS产品模块与用户业务应用耦合在一起,以用户应用为载体(称为嵌入部署模式)或以BPS引擎所在应用为载体部署在应用服务器上,如下图所示。开发方式采用BPS Studio和Eclipse插件集成开发。