了解了.Net Framework 3.0中的WF,大家一定都知道了System workflow和Human workflow这两个概念。从名字上就看的出来,System workflow指的是把应用系统按一定的规则连接起来的工作流,没有人参与流程的流转,而Human workflow指的就是有人参与的工作流,例如审批报销单的流程。
从这两种场景中我们很容易分析出两者的区别:1 一个有人参与而另一个没有;2 Human workflow是有人参与的工作流,而人的行为是不可以预期的,有可能领导同意了报销单可以报销,也有可能领导由于报销金额过大不同意报销,所以流程流转的方向不是固定的是可变的,而System workflow中没有人参与,应用系统间数据交互的方式是固定的,所以流程流转方向也是固定的;3 数据格式也有区别,这还是由于人的原因,人可能会说一大段话或输入一段文本交给工作流引擎分析,而应用系统间交互的数据可没有这么乱,都是格式化的数据,如某个类的实例,很好分析。
说完了System workflow和Human workflow的概念和区别,我们在说说和这二者相关的事情。其实大家可能对System workflow这个名字感到挺陌生的,但说到EAI和B2B大家可能就耳熟能详了。其实System workflow就是指的EAI和B2B这两种场景。Microsoft有款著名的产品:Biztalk 就是用来实现EAI和B2B这两种场景的。对于Human workflow这种场景Microsoft还没有成熟的产品来实现这种需求,目前只是在Biztalk中加入了HWS服务来满足这样的需求,但由于HWS性能还不够好,使用起来也不容易,应用的案例较少。不过这对于其他厂商倒是个好机会,可以在微软还没有涉足的领域使自己得到长足的发展,如K2就是全球性工作流解决方案的提供商,K2有很多成熟的案例和客户。
回过头来再说微软给WF的定位,WF将成为微软平台上所有工作流应用(微软产品和第三方产品)的开发引擎。也就是说以后微软的所有产品,包括Biztalk,2007 Office等产品,其中只要用到工作流功能,其工作流引擎必然是WF,第三方的产品也是这样,微软已经提供了工作流引擎开发框架,只要愿意很容易在其上实现自己的工作流功能。 现在Biztalk最新版本2006已经是采用WF做为工作流引擎,但该版本中还没有提供对于Human workflow这种场景的强力支持,据说Biztalk 2008将提供对这种场景的支持,所以K2不能高枕无忧了。
呵呵,今天罗索了这么多System workflow和Human workflow的事情,快成为唐僧了,不说了,休息......