在BPM项目中,业务流偏于应用业务整合及业务动态组合。工作流则偏于人员交互等。BPM通常同时包括工作流和业务流,集流程调控与企业应用整合于一身。在项目中,取决于业务需求,往往采用不同的流程架构设计。例如,侧重于人员交互的流程管理以工作流为主,而强调业务服务组件的灵活性以业务流为主,并可外加人员服务。当然,也可同时采用工作流与业务流形成综合业务流程管理系统,例如,以工作流为导向,利用业务流的组合服务,同时利用企业整合的中介服务等。
图1从流程的视角来示意流程与界面,人员及信息/系统的关联。其中,工作流比较侧重于人员及界面的交互。业务流比较侧重于系统应用的集成。当然,工作流与业务流的功能有相当部分的重叠。当工作流用作信息/系统整合时,往往是将这些信心/系统串接起来,并不带有作为中介层的业务对象或服务数据对象,而且也不负责系统信息/系统整合的事务完整性。同时,工作流一般没有模块化的版本控制机制。
2、以业务流为导向的面向服务流程架构
以业务流(BusinessProcess)为主的流程架构具有不同的实施方法。下面是两个项目案例。
图3主要应用于现有系统的整合,特别是与ERP相关产品的整合。一般通过流程的编排功能及并行处理能力,将不同系统进行关联,实现业务的有效组合。在不改变原有系统的基础上,设计业务流程,满足目前业务的需求。这种流程设计一般使用中介及转换使系统间松散连接。接口一般采用标准形式,例如,基于JCA标准的适配器。业务监控反映在业务对象层面,符合SOA对KPI监控的设计理念。在实际应用时,结合使用临时人工任务,状态机,版本控制,业务规则服务,动态服务绑定等。
使用了动态节点的架构设计,给业务流增添了自由节点的灵活性。通过使用循环节点,根据用户动态指定,确定节点及相应参数。这种设计考虑工作流与业务流的双重效应。业务与流程信息通过数据层关联,并由此形成业务监控数据源。
3、工作流与业务流松散耦合的流程架构
在工作流及业务流产品兼有的情况下,松散耦合两种产品技术也是一种整合方案。如图5所示,前端页面应用通过统一的前端接口(Facade)调用不同的工作流或业务流接口或服务组件。后端的工作流与业务流基本上独立运转,工作流可以调用业务流服务。前端接口不局限于固定的应用或组件。例如,监控部分可以通过松耦合的形式,与工作流或业务流监控组件或服务接口链接,在界面灵活地展现。
由此可见,工作流与业务流程有不同的协同组合。根据不同的业务需求及架构设计,每个项目的流程模式不尽相同。
下面我们通过简单的图示,来看一下在四个流程项目架构设计中,工作流与业务流的不同偏向。
1、以工作流为导向的面向构件流程架构
目前国内很多业务流程管理项目采用以工作流(Workflow)为主的流程架构。工作流流程主要关注于流程的灵活跳转,快速开发等。如图2所示,工作流通常是以人员为中心的架构设计。当然,也有文档为中心等。工作流一般直接调用应用程序,或Web服务等。其功能包括:简单规则,动态人员配置,消息对象设置,基本事件处理,表单链接,自由跳转路由等。但工作流没有服务编排功能。
当然,这种架构如果主要调用服务来实现业务转换的,亦有称之为面向服务的。但从主体上来说,它强调的是人工节点流或页面流的灵活性,而非业务服务的灵活性。只有当这一架构与业务服务(特别是组合服务)关联密切而松耦合绑定(通过服务中介总线)时,它才能取得面向服务的效应。