前言
有关工作流的基本概念、标准等方面的文章和有关资源现在很容易获得,使用工作流管理系统(WFMS)或业务流程管理(BPM)对企业在商业上的意义与利益,已经无人不晓了。可是虽然很多人都说工作流技术将会成为IT架构的基础组成部分[1],当我们要在自己开发的企业级应用中使用工作流技术时,该如何设计实现呢?关于这个问题的文章很少。
本文针对想在企业级应用中使用工作流技术的软件开发人员,基于作者工作学习的经验和心得,介绍如何在企业级应用中使用嵌入式工作流引擎。文章首先描述了需求范围,然后介绍了业务流程的分析和设计要考虑的问题,最后实现了一个完整的例子。文章的内容很有限,但我可以确定的是:在企业级应用开发一线的技术人员,需要可以帮助他们快速解决问题、有实质内容的文章,本文应该可以在一定程度上为他们提供一些有用的信息。
需求范围
企业级应用(Enterprise Applications)也可称为信息系统(Information Systems)或者商业应用(Commercial applications)。对于企业级应用的特点,总结Martin Fowler在[2]中和Bevington在[3]中的阐述可以得到如下几点:
大量的持久化数据:企业的业务活动状态由持久化数据保持。表现为数据量大、持续的时间长,数据之间有业务关联,一般都使用关系数据库系统作为存储管理工具;
多用户:企业的业务活动状态由多个用户,通过大量的交互界面查询和更新。企业应用要在多用户之间保持业务活动状态的完整和一致性;
复杂的业务逻辑:为了满足商务需要,业务逻辑复杂、多变,有时甚至“无逻辑可循”;
企业级应用之间的集成:企业的业务可能跨越多个应用系统。
在企业级系统中应用工作流技术主要解决两类问题[4 p110]:包含在一个业务或软件过程中的所有实体的协作和系统内外部的数据、资源、应用逻辑等的集成。工作流技术的应用方式也分为两种:独立(Stand-alone)的工作流管理系统和嵌入(Embedded)的工作流组件。“在上个世纪80-90年代,大部分工作流应用采用第一种应用方式(独立)。现在,对于包含复杂流程的应用系统,许多软件提供商重新定位和设计它们的工作流产品,使其成为应用系统的构建模块(即嵌入式)”。[4 p116]
本文提供的内容适用于,以解决企业级应用中“协作”问题为主要目的的嵌入式工作流组件的使用。
(待续)
参考文章:
1、Delphi Study: The Future of Process Automation :What is the role of Process Automation Technology in future Information System Architectures? http://www.stevens.edu/workflow/projects/delphi/round_1/question8.htm
2、“Patterns of enterprise application architecture” by Martin Fowler ISBN 0-321-12742-0
3、“Business function specification of commercial applications” by Bevington IBM SYSTEMS JOURNAL, VOL 39, NO 2, 2000
4、“Workflow-based Process Controlling”http://www.workflow-research.de/Publications/Book/index.html by Michael zur Muehlen
5、“http://www.joinwork.net/document/The State of Workflow2.htm The state of Workflow”[中文] by Tom Baeyens