Send As SMS

2005-04-04

工作流、数据流

软件开发的本质就是控制流和数据流。在传统的过程开发模式中,我们以控制流为驱动,但在设计时仍然强调“数据流”分析,使用数据流带动控制流。在OO的世界中,虽然我们一直在强调对象,但更多的仍然是控制对象,在一定的程度上反而轻视了数据对象的作用。

工 作流引擎试图把流程本身作为一种数据,通过可视化的模式来定义一个流程,并提高流程的可变更能力。普遍的工作流引擎充当着一种更高层次的脚本语言的粘合 作用,通过把一些更为基础的逻辑部件以流程的形式串联在一起,从而将基本逻辑单元和处理流程进行分离。并提供给用户一个更好的开发模式:更为可视化。同 时,将流程独立出来也带来了更好的管理能力。

在更多的应用模式中,数据流实际上是更本质的东西,控制流的最终目的是处理数据。而且数据的概念在各个层面上获得扩充,数据库的数据、XML报文,甚至一些控制数据,本身都可以作为数据流的对象。数据流模式与MDA等最新理验是一脉相承的。

个人认为,后续的开发框架、开发工具都会围绕数据流、控制流的概念来做文章,提高软件的开发效率:
  1. 将控制流与处理组件进行隔离,把控制流作为一个独立的组件
  2. 提供可视化的设计环境,设计或者阅读一个工作流。
  3. 集成数据流的处理,使用XML以及类型化的XML来表示数据以及与控制流的交换。在控制流中结合数据流将提供最大的可维护性。
一些想法是:
  1. 定义一个控制流的语言,具有更为良好的数据表示(便于可视化设计),可以使用XML的形式,但基于传统的语法制导的形式也未尝不可。
  2. 提供较强的数据表达能力。对XML而言,就应当支持schema的使用。在流程中,可以使用XPATH类似的语言来读写数据。在这种模式下,通过全局/局部的数据来作为数据总线。当然数据流也支持一种更为局部的数据:流动数据。这些数据仅在两个组件之间传递,而从不共享。
  3. 与笔者以前构想的ETL工具相似,XML建模,以Model为基础,再结合GUI和开发工具的辅助。

0 Comments:

张贴评论

<< Home