过程虚拟机(ProcessVirtualMachine)引言(Introduction)有许多描述业务过程管理(BPM)、工作流(workflow)或任务自动化编排(orchestration)的语言,为简洁,统称其为工作流(workflow)
工作流涉及两方面的内容:业务过程模型及其软件实现
目前,工作流技术的最大问题是无法正确处理这些技术的双重性质
本文旨在正确地定位此类问题
过程虚拟机不是定义一种流程语言,而是要澄清某些流程语言可能更好地适用一定的场合,而其他流程语言却适用另外的场合,因此,多种流程语言可以共存
过程虚拟机将定义一种可在所有基于图的执行语言间共享的公共模型,以及流程结构对应软件组件的实现策略,以便支持多种流程语言,也将更清晰地阐明流程技术如何正确地与软件开发项目(softwaredevelopmentprojects)融为一体
组件技术(Componenttechnology)分划流程语言的原因在于存在诸多可采用工作流技术的环境和特性,截至目前,主要聚焦于构建“最好的”流程语言,尚无在某些方面彼此相互融合或其他趋势
因此,过程虚拟机的新思路就是在不同的环境选用更适合的流程语言
尽管每一开发者了解基于关系数据库的关系模型,工作流却缺乏这样的概念模型
过程虚拟机将通过为流程结构定义组件模型填补这一空白,因此,完整的流程语言将在过程虚拟机之上定义为一组流程结构的实现,理解过程虚拟机的开发人员将更好地选择或把握目前更适用的流程引擎;此外,期盼过程虚拟机成为下一代所有流程引擎的基石
越来越多的软件开发由多种语言混合编程,正如采用通用的编程语言(如Java)可更好地描述领域模型或绑定框架到领域语言的“粘合代码(gluecode)”,但是,远离通用编程语言的变化正在发生,并影响到软件开发具体方向相关的许多框架,其典型代表为带有支撑包的框架和领域描述语言(DSL)的出