第一章 背景及目标
本人研究了多年的工作流引擎技术,作为研究成果的Superflow,已经有许多成熟的应用。我愿意把这些点滴的积累奉献出来,与大家共享作学问的乐趣与辛酸。
有人说,35岁一个程序员的暮年,我今年36了,才刚刚领悟到程序人生的真谛。
§1-1 研制背景
企业的运作过程本质上是人、财、物等资源的优化和配置,形式上无一不体现为信息流、资金流、物流、价值流等合理的流动;随着社会分工的日益具体化,合作已成为主题,合作的体现形式必然是一个完整而高效的工作流程;有管理的企业的活动过程必然是有序的,这种有序性体现为合理的工作流程。因而工作流无处不在。
但是企业花钱购买的工作流信息系统往往是软件开发商针对大部分企业流程的共性而设计的,很难满足形态各异的企业的个性要求,结果是企业虽然购买了工作流软件,但是还必须花大量财力要求软件开发商作二次开发。而且一旦企业的业务流程发生变化,可能会导致后续的多次开发和维护。
导致上述现象的原因就是目前几乎所有的业务流程系统都是将企业的业务逻辑和软件系统的控制逻辑捆绑在一起,使得一旦企业的业务逻辑发生变更,将全面的影响到软件系统的控制逻辑,因而必须修改大量源代码甚至重新开发。
在这种背景之下,我们研制了动态业务工作流引擎Superflow。该中间层应用平台有效地解决了上述问题。
§1-2 研制目标
Superflow的研制目的如下:
- 隔离软件系统的控制逻辑和企业的业务逻辑,使得业务逻辑的变更对于控制逻辑透明。
- 利用该引擎开发的业务信息系统可以根据具体业务需求量身定制个性化的业务流程,而不用修改控制逻辑,甚至无需修改源代码。
- 提供灵活、丰富的标准开发接口,使得开发人员能采用自己习惯的开发工具在该平台上定制和扩充模块。
- 采用多层分布式构件技术,力求技术先进性和应用的健壮性。
- 提供应用的负载均衡和容错能力。
- 工作流自动化和企业应用积木化。
第二章 过程与成果
§2-1 研制过程
一、项目来源及概念的提出
在长期的软件研发和企业工作流应用实施的过程中,我们发现企业工作流应用在突现个体特异性的同时,也存在一般性。
首先,不同企业的工作流应用系统的控制逻辑基本相似。随着项目经验的积累,同类应用之间具备可比性,尤其是代码的可移植性。为避免重复开发,我们设想能否有一个通用的开发工具,避免同类应用的控制逻辑部分的重复开发?
其次,应用开发过程最令人头痛的是企业需求会不断变化。开发过程之中的需求变化会导致需求再分析和代码重构;运行过程中的需求变化会导致企业应用的“雪球效应”。那么,我们设想能否有一个通用的开发工具,可以自适应地应对企业需求的变化,而最小化甚至不用作二次开发?
再次,企业运作的所有活动无一不体现为工作流程,工作流程具备普遍性。推而广之,那么,我们设想能否有一个通用的开发工具能够满足目前普遍性的企业应用的开发?
面对企业提出的诸多问题和研发过程的复杂性,我们萌发了解决企业复杂工作流应用的企图。经过系统的论证和考察,并辅之以相关的数学手段,形成了我们独创的工作流应用模型和技术体系。
二、初始模型的建立
基于上述想法,最初我们利用Delphi4.0企业版研制了一个工作流应用框架的雏形Simpleflow。现在看来,该框架很不完善。
(1)Simpleflow基于两层的客户服务器结构。
(2)Simpleflow不是一个严格意义上的开发工具,它以Delphi的工程文件的形式存在。
(3)Simpleflow把业务流程看成一棵流程树,因而是针对简单业务流程的开发是有效的。但对于复杂的业务流程,则无能为力。
三、完善与升华及初期实施
Simpleflow的固有缺陷在以后的应用中得到突现。进一步,我们于2000年8月对Simpleflow作了革命性的改进,就是后来的Superflow系列的第一个版本。它具有如下特点:
(1)Superflow1.0是一个多层次的分布式应用开发平台。
(2)Superflow1.0以独立的中间件的形态存在。
(3)Superflow1.0定义了一套较为完善的API接口,允许用户作前台瘦客户机的开发。并且可以挂接符合接口定义要求的用户独立开发的任意模块。
(4)Superflow1.0以把业务流程看成有向图,从而解决了用流程树解释业务流程的狭隘性。
(5)Superflow1.0允许用户在图形界面的向导之下,进行复杂业务流程的重组,而不用二次开发。
但是Superflow1.0版也存在一些问题。
针对Superflow1.0版的问题,Superflow后续版本从哲学理念、功能结构、数学模型和技术路线上都作了彻底的重构。
四、目前进展
Superflow是一个面向分布式应用的工作流设计和运行平台,它主要由工作流定义工具、工作流客户端API、工作流管理和监控工具以及工作流运行引擎等几个部分组成。
Superflow5.0版目前已基本开发完成。
- 工作流客户端API 包括客户端界面定制、客户端系统连接、客户端数据集、系统调用、系统管理等等。
- 工作流监控工具 包括连接数量、资源状态、过程跟踪、时限跟踪等。
- 工作流引擎 包括通用控制逻辑引擎、应用逻辑自适应引擎、需求规则化专家等。
- 工作流程定义工具 包括需求馈送机、流程直通车等。
- 完全基于ASP.net开发,利用Janeva与J2EE互联。
Superflow的版本演进(一直在不断的提升)
版本 |
开发工具 |
系统架构 |
特色 |
1.0 Before 2001 |
Delphi6 |
Win32
Midas |
- 图论的引入成为工作流应用的基本工具。
- 层次结构和关系模型构建流程的任意重组;
- Superflow规则集对流程树提供全面支持;
- 中间件技术的引入;
- 需求表达机使得应用具体和需求具体的差异性缩减至最小;
- 控制逻辑和应用逻辑的隔离,最小化应用开发力度
|
2.0 Before 2003 |
Delphi7, |
Win32
DataSnap
Soap |
- 支持Corba,EJB,COM对象调用, 支持XML数据传输;
- Superflow规则集对流程森林提供全面支持。
- 完全意义上的企业业务流程重组与拖放式流程搭建;
- 增加了节点动态路由技术;
- 逐层抽象到逐层镜像的转变。
|
5.0 Until now |
Delphi.net
JBulider |
.Net
DataSnap
Janeva |
- Janeva对EJB的调用;
- 基于流程知识库的路由识别与学习功能;
- Superflow规则集对任意复杂有向图提供全面支持。
|
§2-2 研制成果
该项目的研制成果最终应体现形式为光盘介质软件一套(中间层应用服务器、客户端开发库/Web Application/ISAPI开发接口、电子文档等)、开发手册一套。
|