wwf工作流和自开发工作流引擎的比较
写了一点目前工作流开发的方式比较,欢迎大家拍砖,提意见。
在.NET领域,目前市场上工作流的趋势大致有两个:一个是自开发方式,即自己开发流程引擎和流程平台,二是WWF方式,即使用微软的WWF。
对微软的WWF的情况了解如下:
1、WWF是微软开发出的一套底层工作流引擎,它是比较底层的。开发流程必须对其机制比较清楚,除了编写业务代码外,还要编写驱动流程的代码。灵活性比较差,如果要想达到灵活配置、开发简单的程度,必须在此基础上二次开发,做一套基于WWF的工作流平台,目前K2已经作了一套这样的平台,但k2的产品我见过,灵活性还是比较差,最多能实现流程的条件流转,对会签这类处理还需要编写代码,更不用说复杂的流转了.
2、Sharepoint2007内嵌的工作流也是基于wwf的,它只能做顺序工作流,也就是像发邮件一样来处理工作流。要做复杂的状态机流程需要借助visual studio2005,由后者设计工作流程并作状态处理,供sharepoint调用。如果企业流程比较多,流程变化频繁,这种方式也不灵活。
3、要使用WWF开发流程,不可缺少的开发工具有visual studio 2005,如果做门户还需要sharepoint 2007等一系列捆绑软件,微软的技术更新比较快,而这几门技术都是新技术,对程序员的培养成本比较高,而且目前同时精通这两个技术的程序员并不多。
对自开发流程引擎和流程平台的了解如下:
1、灵活度高,全部从基础实现工作流的功能,设计的时候完全考虑到中国企业的特点,可以实现复杂的流程流转。流程分支方向改变时只需通过建模工作做配置即可,不需要修改代码。比较有名的自开发流程平台是东兰的liveflow,完全做到了零代码,灵活配置处理的程度。
2、自开发方式和WWF方式工作量相当,只不过WWF还要学习WWF机制。不管采用那个方式,都需要自己开发一个可以配置流程的建模工具和一套简单开发的工作平台。
3、自开发工作流平台是一件一劳永逸的事情,开发时投入比较大(但总比使用wwf二次开发投入要小),对程序员的要求比较高,一旦完成,对使用该平台的程序员要求比较低只需会做网页,会使用配置工具即可。但自开发带来的灵活性是无法比的。
综合二者比较结果如下:
1、二者开发难度和工作量相当的情况下,使用WWF开发工作流成本比较大,也会加大客户的成本。
2、自开发方式可以达到很高的灵活度,可以适合中国特色的企业需求;WWF方式对复杂的流转要通过写代码实现。
3、自开发方式对微软依赖小,只需使用visual studio2005就可以,程序员不需要掌握太多的技术,工作流可以作为公司的核心技术,提高公司的竞争力,流程引擎可以单独提炼出来,可以内嵌到任何已有系统中。
以上是我个人的理解,难免有不准确的地方,希望大家能交流指正。