导航

Workflow Foundation 概述(一)

Posted on 2011-10-08 15:35  雨夜孤鹤  阅读(376)  评论(0编辑  收藏  举报

本文从一个较高角度概述 sharePoint workflow。 关于workflow 详细内容会在后面几篇文章讲到。

要更好的理解 sharePoint workflow ,就要先理解 workflow。在我看来,windows workflow 是按照指定的业务逻辑用来安排统筹设定一系列活动的方式。说白了,是一种业务逻辑的程序实现方式。像windows中很多架构一样,workflow 的各个功能的实现也是基于一个叫做 Windows Workflow Foundation  的框架,这个框架负责保存业务信息,分配管理资源等。现在我们就通过理解这个框架来理解workflow。

首先介绍一下 windows workflow foundation 对资源的管理。让我们来做一个比喻:假设一个向下面的程序在进程中运行

if(input value1 == 1)
{
}

else{
}

if(input value2 == 2)
{
}

// wait for input value

else{
}

那么,当用户第一次输入 1 的时候,程序会向下进行等待第二次输入。直到接受到第二次输入后继续向下运行。但是,如果等待输入的时间过长,比如说1天2天,那该这么办呢。大家知道内存中运行一个进程是很费资源的,所以这段时间就应该先停掉这个进程。直到接受到第二次输入再重启进程。细想起来,这样做虽然节省资源,但实现起来就要相对复杂。比如需要一个常驻在内存中的变量来标识是第几次接受输入等。所以,我们就会想,如果有人替我们来控制资源卸载加载的控制多好,对了,这就是workflow foundation所做的。他负责保存我们之前提到的标识变量,负责根据不同的请求启动进程,卸载进程。

其次,介绍一下 workflow foundation 已经封装好的active执行模式带来的便利。

还是举例来说,这次我们举个生动的例子:假设有兄弟2人想做缆车从山顶到山下,可是缆车一次只能做一个人。怎么办呢?方法1,兄弟俩一个一个下。。。(太慢了)方法2,再做一个缆车,然后2人一起下来,为了环保。。还要清理做缆车留下的废料(好麻烦)。如果这时候突然出现一个人,对他们说“兄弟。。,我已经有2个可以同时下山上山的缆车了,不管你往里放什么,两个车都可以直接直接给你带下去”那该多好,不错,这个人就是 workflow foundation。

相信大家也能看明白了 ,兄弟2个就是2个功能,而所说的做好的并行缆车就是 workflow foundation 已经封装好功能执行框架。

再次,workflow foundation 支持 activity 的重用,自定义开发等。

好,现在我们来看看 workflow foundation 是怎样运行的。wf 是一些class,所以自然需要一个载体。