隐式BPM:实现透明工作流编织的业务流程平台
立即解锁
发布时间: 2025-08-20 01:49:54 阅读量: 1 订阅数: 5 


业务流程管理:第12届国际会议论文集
### 隐式BPM:实现透明工作流编织的业务流程平台
在当今的企业环境中,将业务流程集成到现有应用程序中变得越来越重要。然而,这种集成往往涉及大量的开发工作和成本,限制了业务流程管理(BPM)在许多组织中的广泛应用。本文将介绍一种名为“工作流编织”(Workflow Weaving)的新技术,它基于非侵入式技术,能够实现业务流程与组织应用程序的透明集成。
#### 1. 背景
- **BPM集成**:构建全新系统既不经济也不实用,因此BPM被视为集成系统和开发新应用的有效机制。但现有的BPM解决方案存在一些缺点,如难以适应横向业务流程、需要组合不同的设计和执行环境,以及处理遗留应用程序的困难。
- **隐式技术**:为了解决透明度和集成问题,可以使用面向方面编程(AOP)。AOP允许在程序执行的特定点描述和分离横切系统关注点,支持灵活切换新行为,同时保持系统的模块化。AOP的拦截发生在连接点(执行流程中的点),并在切入点(连接点的集合)内定义。当应用程序执行到达切入点时,与之关联的通知(回调)将被执行。AOP的编织机制可以分为静态和动态两种,动态编织允许在程序执行期间交换或停用方面,而静态编织则不允许。此外,AOP还可以分为清箱和黑箱方法,黑箱方法通过在战略点使用方面包装器来避免对代码内部的详细了解,从而简化了分布式拦截。
#### 2. 工作流编织技术
工作流编织技术允许将由BPMN模型表示的业务流程透明地集成到企业Web应用程序中。透明意味着该解决方案必须避免访问、修改和详细了解现有应用程序的源代码。该技术的主要要求包括:
- **通用代码拦截**:使用黑箱解决方案对现代Web应用程序进行通用代码拦截,并提供内省功能,以获取有关现有Web应用程序中模型、控制器和视图的信息。
- **拦截器代码的轻松管理和部署**:通过公共接口进行代码注入,使IT技术人员无需了解应用程序代码。
- **高级领域语言和解释器**:简化业务流程和Web应用程序的集成,避免对底层拦截框架(AOP)的了解。
#### 3. 用例
以一个组织内的电子商务宠物商店应用程序和通用会计应用程序为例,业务分析师设计了一个采购工作流。两个应用程序都基于MVC框架实现,其组件包括模型、控制器和视图。通过工作流编织,业务流程与应用程序之间的交互如下:
- **A点**:在宠物商店应用程序中,订单控制器的“Process”操作被替换为采购工作流的“init”事件触发。
- **B点**:“Save Purchase”任务完成后,执行返回应用程序以渲染成功页面视图。
- **C点**:付款验证后,执行流程转移到会计应用程序。在“Book Balance”任务开始之前,通过国家识别号码查找客户模型,并将结果设置到该任务的“exists”布尔属性中。
- **D点**:“Book Balance”任务完成后,编织器执行图书控制器的“Edit”操作。
- **E点**:“Register Customer”任务完成后,编织器执行客户控制器的“Create”操作。
#### 4. MVC模式的应用
现代Web框架广泛采用MVC模式,这为实现工作流编织提供了便利。通过MVC模式,可以在Web应用程序框架的战略点注入代码,以透明和分离的方式拦截模型、视图和控制器。具体来说,MVC模式允许使用AOP设施在关键点拦截代码(如A、B、C点),并使用反射和内省技术获取必要的信息(如D、E、F点)。反射技术可以帮助检查系统的结构和行为,而MVC模式的清晰外观、标准命名约定和继承规则使得应用程序的自动内省变得容易。
```mermaid
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(AOP设施):::process --> B(XPI拦截):::process
B --> C(工作流编织器[DSL]):::process
C --> D(视图选择):::process
C --> E(状态更改):::process
C --> F(状态查询):::process
D -
```
0
0
复制全文
相关推荐










