微软Workflow Foundation 高阶透视
什么是工作流?
工作流是一組同軟件或人交互的活動,以及活動間的聯系,可以像一個流程圖,也可以像一個狀態機。
[圖一,左邊是流程圖,右邊是狀態機]
?
什么是微軟Workflow Foundation?
微軟Workflow Foundation 是一組由基礎運行組件和開發工具組成的工作流開發平臺,它不是一個工作流產品。
Workflow Foundation 中的工作流模式
Workflow Foundation 中的工作流模式分為順序工作流和狀態機工作流兩種。
?
什么是順序工作流(Sequential Workflow)?
順序工作流的執行過程是一個連續的活動序列,它在完成一個活動之后會去執行下一個活動,它允許分支和循環以及接收外部事件,但是只向前執行。
?
什么是狀態機工作流(State Machine Workflow)?
一些業務過程在進行中呈現出不同的狀態,在Workflow Foundation中用狀態機來表示實際業務過程中的狀態。狀態機工作流由一組狀態組成,每個狀態可以接收一組事件,由事件來決定狀態之間的轉換,這樣就實現了工作流的執行過程。
?
Workflow Foundation 架構
基礎活動庫/自定義活動庫(Base Activity Library/Custom Activity Library)?
運行時引擎(Runtime Engine)?
運行時服務(Runtime Services)?
?
活動庫為工作流提供基本的元件,每個活動是相對獨立的可執行單元。
運行時引擎為工作流提供運行環境,管理工作流的生命周期。
運行時服務會在運行時引擎中加載,他們為工作流提供輔助的服務。
?
Workflow Foundation 中的運行時服務包括:
計劃服務(管理工作流的工作方式):DefaultWorkflowSchedulerService、ManualWorkflowSchedulerService。
批處理服務:DefaultWorkflowCommitWorkBatchService,SharedConnectionWorkflowCommitWorkService。
持久化服務(將工作流實例存儲在硬盤上):SqlWorkflowPresistenceService。
跟蹤服務:SqlTrackingService,SqlTrackingQuery。
以上服務均要通過運行時引擎(Workflow Runtime)加載。
?
Workflow 如何與外部交互?
組成Workflow的每一個Activity都可以接收外部事件,由Workflow接受的接口中的事件可將外部數據發送到工作流,工作流通過方法將數據發送給外部。
?
Workflow Foundation 如何支持分布式應用?
Workflow Foundation 內建支持基于Web Service 與 WCF 的分布式應用。在基礎活動庫中提供了通用的Web Service活動。
通過WebServiceInputActivity、WebServiceOutputActivity將工作流發布為Web服務。
通過InvokeWebServiceActivity調用Web服務。
?
Workflow Foundation 開發基本過程包括哪些?
1、分析業務流程,提取功能點并封裝成Activity,可以利用微軟的基礎Activity庫與自定義Activity組合。
基礎Activity實現通用操作,自定義Activity實現業務。
2、利用微軟提供的Workflow Designer 組織Activity 配置控制邏輯
3、找到Workflow與應用程序的交互點,通過定義接口使應用程序與Workflow建立協作關系,在應用程序中實現這些接口
4、根據業務需要為工作流配置運行時要啟用的服務,如持久化、計劃服務等。
?
Workflow Foundation 運行環境/開發環境
運行環境:
Windows Vista
Windows XP
Windows 2003
開發環境:
Visual Studio 2005+Visual Studio 2005 Extensions for .net 3.0( Workflow Foundation )
Visual Studio 2008
?
見微知著 — 從一小段代碼觀察Workflow Foundation
一段工作在Asp.net的全局代碼:
轉載于:https://www.cnblogs.com/JiangMingFeng/archive/2009/09/09/1563320.html
總結
以上是生活随笔為你收集整理的微软Workflow Foundation 高阶透视的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自己搭建的防火墙
- 下一篇: 通过APNIC获取各运营商IP网段