Windows Workflow Foundation 基本概念[转]
随着现在各种平台、中间件的出现,应用软件,越来越像组装汽车一样的行业。我们接触到的虽然还是那些,但是重点将放在如何处理客户的业务流程(早已经不是花费心思去处理怎么能显示一个漂亮的按钮那种基础性的工作了),这就是应用工作流的价值所在。
第一次认识这个WWF,还是在去年9月份,记得还写了点东西。在此之前,我用过JJX的OSWorkflow for .net。市面上还有K2等其他工作流。如果想了解更多内容,建议去看看BEPL了。
现在的这个WWF还是beta版。但是设计思路和概念应该不会有很大的变化的。
我们先看看WWF的结构(不怎么会画图)
1:Workflow Model层
Sequential ; StateMachine; Policy;Customer Activities(自己开发的)
Activity and Rule Authoring APIs
2:Runtime层
Workflow Execution :Scheduler; Rules ;Tracking Infrastructure
Workflow Lifecycle Management: StateManagement ; Activation
3:Hosting层
Runtime Services:Persistence;Communication;Timer;Tracking;Transactions;Threading
Custom SWindows Workflow Foundation 基本概念[转]ervices
下边就是HostProcess了。
我们一个一个看。
1:Workflow Model 层:
Sequencial Workflow Model:顺序执行的工作流。其实是一种小范围上,可以自己驱动(Self Driven)的工作流。 比方说,就是1,2,然后执行4,失败执行5,...这种执行在这种范围内不需要外部事件的驱动,自己就可以完成。
StateMachine workflow Model:状态机工作流。这种工作流,是一种事件驱动(Event Driven)的工作流。他的流转靠外部事件的驱动,而不是局部内特定可预测的流程。比方说,如果有人触发事件1,然后进入状态2,在2中,如果有人触发事件3,然后进入下一个流程....
看到他们的区别了么?理解这个很重要。
2:Runtime层:
Execution :执行
StateManagement :处理Persit的状态等。
Scheduler:定时处理的任务
Rules :规则和条件。 有个复杂的RuleSet,需要专门介绍(Winsows Workflow Foundation中的RuleEngine的学习笔记 )。
3:Hosting层:
Persistence用于存储上下文。 因为工作流可能会运行很长时间,或者隔很长时间才运行下一次,所以当前的上下文就得保存下来,数据库,xml文件等等。默认有个SqlServer的数据库Provider可用(曾经尝试着写一个MySql的Service,不过资料不多)。
Timer:定时的任务。 默认有个SqlServer的数据库Provider可用。
Communication:Wrokflow和Host的交流。可以使用组件,或者WebSerice等。
关于动作:Acitity。这是工作流执行任务的核心。
在OSWorkflow里面,他们管这种动作叫 Action。这里(WWF),我们给这种处理叫Acitity。
Actity分很多类型,下次再详细介绍他们的分类和意义。
关于设计:
WWF的设计器可视化做的不错,OSWorkflow就不怎么样了,那个工具用着不爽,手工写XML太累人,还容易出错。
顺便说一下,据说Office12支持WWF。
这次先就写这么多:结构,层次,流程分类,处理,设计器。