代码改变世界

Windows Workflow Foundation学习笔记(一)

2006-07-19 14:22  温森特  阅读(3611)  评论(4编辑  收藏  举报

Windows Workflow Foundation学习笔记(一)

    最近读了些文章,发现学习、研究Windows Workflow Foundation的人越来越多,公司指派我对wwf也进行研究,新建的blog没有什么可写的,就把自己学习的WWF的笔记给大家分享一下,大家互相学习,也可以丰富一下我的blog,呵呵。

    WWF作为
WinFX API的支柱之一,提供给开发者一个普通框架-在其上开发过程驱动的和以工作流为中心的工作流程序。
    
    一、什么是工作流,工作流做什么用呢?
    一个工作流本质是一种方法-用来归档包含在完成一个单元的工作中的活动。典型地,在处理过程中,工作""流过一项或更多活动。这些活动可以通过机器或人工来实现,并且有可能象在一个互联网应用程序定义页面顺序一样得简单,也有可能象管理必须为任何数目的人都要看到、更改并同意的文件或产品一样得复杂。

    二、WWF是什么呢?它的整体框架?
    WWF说到底也是一个程序,只不过它是一个专门控制工作流的程序,它为开发工作流提供了框架、模型、以及工作流的工作引擎(即WorkflowRuntime),让开发人员快速的建立工作流。
    
    WWF框架:(我贴了2次图都不行,干脆就不贴图了,凑合看吧)

    1、Activities(活动)
        工作流的组成部分,一个工作流由若干个activity组成,每个activity都包含特定的功能,去完成一件工作。
    2、Serivices(服务)
        当一个工作流实例运行时,可以伴随运行许多个Serivices,这些Services都是采用可插式调用的,即这些Serivices是为了满足不同的工作流的运行实例的需求,伴随实例而运行的。如:在一个工作流的运行实例中,我们可以同时加载与宿主程序通信的Service,监听和跟踪工作流实例运行的Service等等。
    3、WWF与宿主程序的通信和关系。
    宿主程序能够与工作流通讯交换数据通过通信Service服务,同时,宿主程序也可以与WWF中一些特殊的Activiy活动通过定义一些接口,采用事件传递参数的形式进行通信,交换数据。
    4、WWF持久化(“钝化”)
    WWF工作流程序可以长时间的运行,而且当WWF运行时所在的计算机重新启动后,这些实例仍然可以正常准确的运行,是由WWF的“钝化”机制来实现的。在WWF内部包含了一个非常有用的Service服务,用来把这些运行的数据保存到SQlServer中。
    5、WWF跟踪
    WWF中在工作流运行的同时,能够监视工作流的操作,而其这些操作可记录在数据库中或文件里。
    6、WWF序列化
    WWF的activity活动是可以被序列化的,通过序列化可将自定义的Activity的自定义样式进行保存。
    7、WWF动态更新
    WWF工作流允许工作流在运行的状态中,动态的更新工作的状态,或动态的控制工作流的流向,更改预期的流程。