# 开发过程(T2B)
# T2B(Tech-to-Business)模式的流程设计和开发过程
Primeton BPS®提供了实现业务流程整个生命周期的支持,包括业务流程的建模模拟、流程设计建模、开发与测试、部署发布、运行、管理监控、流程优化与调整。
本部分对基于BPS进行流程应用开发的从"技术实现"到后期运维阶段的"业务调整"的全过程(简称"T2B(Tech-to-Business)模式流程实现过程")进行阐述,该过程主要是在这样的业务场景下发生的:
- 最终用户业务分析人员提出业务需求(包括用户需求文档、梳理的Visio流程图等)
- 开发商需求分析人员分析需求
- 开发商设计开发人员进行流程应用设计开发
- 开发商实施团队进行应用部署上线
- 系统运行和维护,最终用户业务管理员进行管理和监控、分析
- (系统运行一段时间后)发生业务变更时最终用户业务流程配置员进行流程调整
- 若需要技术实现需要返回开发商设计开发人员或实施团队实现
- 最终用户业务流程配置员基于重新实现的内容进行部署、流程调整等。
实际上这是比较传统的开发过程,之所以叫T2B(Tech-to-Business)是指先由开发商从技术维度进行应用的设计和开发,然后上线运行后由于业务的变更,需要业务方面的人员(业务流程配置员)进行流程的调整(当然如果是结构性的调整还是需要技术支持的),即从"技术实现(Tech)"到"业务调整(Business)"。
其过程如下图所示:
我们按照一般的流程应用开发过程将基于BPS的过程分为"流程梳理"、"流程建模模拟"、"架构策略设计"、"流程设计建模"、"开发测试"、"部署发布"、"运行管理监控"、"业务流程调整"等8个步骤。其中的步骤不一定是严格按顺序进行的,很多情况下是交互进行的。
# 流程梳理
流程梳理阶段是指在业务流程实现之前,根据组织所属的业务领域的特征及其业务类型,对其相关的业务流程进行梳理(如下图所示),主要进行如下几类工作:
注意:该过程目前不在BPS所提供的集成环境中进行,而是用户通过其它工具完成,比如MS Visio等。
- 规划组织流程框架 从组织的高端主流程进行规划,一般包括核心流程(比如研发流程、订单履行流程、客户服务流程)、管理流程(战略规划流程、风险管理流程、预算与控制历程)、支持流程(HR流程)等,逐步形成组织的流程框架(或称流程地图)。
- 梳理业务流程和业务活动 进而梳理一级流程和二级流程。具体级别没有一个确切的定论,根据组织的业务特点有所不同。
- 编制操作规范与作业指导书 通过对业务流程和业务活动的梳理之后,在流程的实际运转过程中往往需要一些操作规范、作业指导书和相关模版与CheckList的支持,该过程就是梳理这些内容。
# 流程建模模拟
该步骤是在流程开发与测试之前先对业务流程进行建模并通过BPS提供的活动表单的功能进行模拟执行,籍此对前面梳理的流程进行可行性和正确性验证。该步骤一般包括如下内容:
组织机构规划:
在对企业进行流程规划和建模的时候,首先需要确定企业的组织模型。此时一般有两种情况,第一种情况是利用企业已有的组织模型(比如:现有人力资源系统);另一种情况是自定义组织模型,此时一般先开发组织模型项目,然后才能开发流程应用。
组织模型确定以后,需要实现BPS所提供的组织模型接口,并对BPS进行相关的配置,详见《BPS管理员手册》。通过实现接口,不管用户的组织模型是什么类型的(关系数据、LDAP、平面文件等),BPS都可以很方便地把该模型集成进来(BPS的组织机构扩展模型详见下图所示)。
说明:BPS本身自带一个简单的组织模型,它是通过XML数据文件来存储模型数据的,包含几个卡通用户(tiger、kitty等)。如果实际开发中只需要从逻辑上验证流程,而不需和企业具体的组织模型联系起来,也可以把定义组织模型放到后面的设计开发中进行。
业务流程建模:
根据前面步骤梳理的业务流程,在这个步骤中需要使用BPS的流程设计建模工具(BPS Studio)对流程进行建模与设计,主要包括如下内容:
- 确定业务流程包括的流程活动,有些活动是自动完成的(自动活动),有些活动是需要人工干预的(人工活动),有些活动代表另外一个流程(子流程活动),还有一些是系统内置的辅助活动(开始活动、结束活动、路由活动);
- 确定业务活动的拓扑关系,即执行的串行并行关系、优先级等,一般通过迁移线以及分支聚合模式来控制活动之间的拓扑关系;
- 设置流程、活动、迁移线的基本属性,如活动参与者、分支条件等,以便能够让流程流转;
- 定义流程相关数据或业务变量;
- 定义人工活动的业务表单,包括表单属性的名称、输入方式、提交后保存的目标位置(如某业务变量或相关数据);
- 注:借助BPS6.1所提供的业务流程定制功能,可以实现完全非技术化的业务建模,无需设置任何技术细节即可实现流程的模拟运行。
流程模拟运行:
在业务规划阶段一般需要对流程的合理性进行反复的验证,从而需要尽快构造一个可以运转的流程原型。此工作重点是快速开发一个流程,并用这个流程和客户演示及交流,并不断改进原型,使得原型中的流程基本符合流程的需求。在开发阶段具体实现每个流程,这样可以最大程度满足客户需求,减少返工次数。
BPS对构造流程原型提供专门支持。用户可以利用BPS的缺省流程客户端功能来完成流程原型,不需要开发代码。在调试和模拟业务流程的过程中需要注意以下几点:
- 模拟过程中可以在BPS Studio中提交和提取流程定义库中的业务流程。
- 一般需要交替使用BPS客户端和BPS管理监控两个工具。通过BPS客户端进行流程交互,通过管理监控查看流程的状态。
- 对于模拟过程中需要从业务获取数据的地方一般需要利用表单数据来模拟,表单数据的存储对应到相关数据。表单数据提供多种默认显示方式的控件,支持常用数据的输入和显示。
# 架构策略设计
与一般的非流程应用不同的是,在进行流程驱动类应用的设计和开发过程中,由于流程与业务的结合关系带来了应用额外的复杂度,需要特别考虑以下问题:
- 业务应用架构与流程架构关系
- 业务应用的数据与流程相关数据库的关系
- 业务应用与流程服务器的部署关系
- 异常处理方式及业务补偿策略
- 事务一致性保障机制
- 访问控制策略
- 等...
针对上述问题,我们可以发现大部分是为了保障系统的非功能特性,所以一般情况下我们需要从"非功能特性"和"架构类型"两个角度考虑,如下图所示:
# 流程设计建模
在业务流程建模完毕并得到模拟运行验证以后,开始进入流程的设计建模阶段。与业务流程建模不同的是,该阶段需要对流程的很多技术特性进行设计,比如实现组织机构接口、规划并建立业务目录、流程事件的设置、自由流、复杂任务分配模式、复杂流程流转模式的设置、业务资源的定义等。下面逐一进行说明:
- 组织机构建模: 确定了组织机构实现的方式以及与BPS结合之后,就需要对流程中所需要的组织机构进行建模。BPS的组织机构模型支持任意Party类型的机构类型作为流程的参与者,比如最常使用的机构、角色、岗位、工作组、人员等都可以非常灵活的支持。
- 业务目录规划与定义 每个业务流程、业务资源必定属于某一个特定的业务,面对客户纷繁复杂的业务,首先需要对业务进行分类管理,每个业务分类称之为"业务目录"。为了管理的需要,业务目录是按照分多级结构进行组织的,即每个业务目录还可以包括多个下级业务目录。 在该步骤中,需要根据业务的需要规划业务目录的层级以及业务的分类,确定具体的业务目录。然后通过BPS6.1的业务目录管理功能创建业务目录。
- 业务资源定义 为了在流程定制和调整过程中方便业务人员的理解和使用,BPS6.1中可以将流程活动、业务规则、事件等使用的技术组件包装为以业务化方式描述的"业务资源"。在该步骤中就需要将流程中相关的内容提炼为业务资源,并使用BPS6.1的业务资源管理功能进行定义。
- 业务流程设计
包括流程具体细节内容、技术特性的设计,比如包括:
- 流程事件的设置
- 自由流的设置
- 复杂任务分配模式,比如多工作项、通过规则逻辑或相关数据获取参与者
- 复杂流程流转模式的设置,比如活动启动策略、结束方式
# 开发测试
在业务流程设计建模完成后,开始进入系统的功能设计和开发阶段。该阶段需要开发很多内容,包括数据建模、逻辑设计、逻辑开发、展现开发、部署调试等。这其中的某些开发产物直接就是系统功能,还有一些是被业务流程调用的资源。这些资源包括:
- 用以作为人工活动UI展示的资源
- 用以自动活动调用的自动逻辑资源
- 用以获取参与者的自动逻辑资源
- 用以作为启动策略的自动逻辑资源
- 用以作为回退策略的自动逻辑资源
- 用以作为触发事件的自动逻辑资源
上面的"自动逻辑资源"包括Java方法、EOS服务、EOS逻辑流,以及EOS运算逻辑。UI展示的资源是指用以作为人工活动处理页面的UI,包括JSP页面、EOS页面流、普通URL等等。
业务流程的相关资源全部开发完毕以后,就可以对业务流程进行更加完善的开发和测试。此阶段的主要内容包括:
- 进一步丰富和完善流程的含义;
- 把自动逻辑资源绑定到"业务资源/业务操作"上或直接绑定到流程活动/事件上;
- 流程调试阶段的人工活动一般都配置为"默认表单",在实际开发当中需要修改为具体的EOS页面流或者WEB页面;
- 模拟阶段一般不会关心触发事件等流程扩展配置,但是在装配阶段往往需要配置流程上的各种触发事件;
# 部署发布
该步骤主要内容是将前面步骤设计与开发的流程和功能逻辑部分的代码部署到最终的运行环境中:
- 流程及业务资源的部署、发布: 在开发期,可以在BPS Studio中直接提取或者提交业务流程和业务资源。在应用和业务流程全部开发完毕以后,可以导出部署包,在BPS Workspace中进行流程的部署和发布。
- 功能逻辑部署: 除了需要部署和发布流程之外,还需要将前面"开发测试"步骤所实现的UI展现资源和自动逻辑资源等功能逻辑部署到运行环境中。根据用户所使用开发框架的不同(J2EE框架和Platform平台),部署的方式不尽相同,请参照具体的开发框架的部署说明文档。
# 运行管理监控
业务流程部署发布完成后,下面就进入到流程的运行、管理和监控阶段:
- 流程运行: 在流程客户端启动流程、执行任务。
- 流程管理: 使用BPS流程管理监控台来管理流程,包括更换执行版本、代理代办管理、工作交接管理、审计日志查询等。
- 流程监控: 使用BPS流程管理监控台来监视流程执行情况,图形化查看流程执行过程,查看流程、活动、活动项结果是否正确,性能情况等各项指标,并提供流程的运行状态(启动、挂起、等待)的监控。
# 业务流程调整
业务流程实现的整个生命周期中经常需要面对流程需求的变更以及针对流程瓶颈的优化和调整。BPS的业务流程定制功能以Web的方式提供面向业务人员的流程业务化调整的能力,主要调整的内容包括:
结构性调整:
即对流程定义的较大幅度的调整,包括:
- 新增或删除流程环节,比如从原来的二级审批变为三级审批
- 调整流程的拓扑结构,比如调整环节的前后顺序,流转关系等
非结构性 调整:
即对流程定义的较幅度调整,主要指对相关属性的重新设置,包括:
- 流程流转规则的调整
- 活动参与者的调整
- KPI时效的调整
- 等...
特别说明:
另外,从整个过程的"7、业务流程调整"步骤到"3、流程设计建模"步骤是通过虚线的方式连接,表达了--"当流程调整比较大时,比如当增加了一个活动,而活动所使用的人工任务/业务操作不存在,需要到技术域由设计开发人员开发实现,然后回到业务域进行配置"。