淺談WF 4.0 Beta1中的跟蹤機制
下面舉例說明,工作流在啟動或完成時,就會發出跟蹤記錄。跟蹤也可以提取與工作流變量相關聯的業務相關數據。
例如,如果工作流表示一個訂單處理系統,那么訂單ID就可以隨同跟蹤記錄一起被提取出來。一般來說,啟用了WF跟蹤能使整個工作流的診斷或業務分析變得輕松。對那些熟悉于WF 3.x中的跟蹤的朋友來說,跟蹤組件就等價于WF 3.x中的跟蹤服務。在WF 4.0中,WF跟蹤功能的性能得到了改善,并且簡化了其編程模型。下圖顯示了跟蹤基礎結構的高級架構圖:
跟蹤基礎結構的主要組件包括:
◆跟蹤記錄(Tracking Records):從工作流運行時發出。
◆跟蹤配置(Tracking Profile):用來篩選從工作流實例中發出的跟蹤記錄。
◆跟蹤參與者(Tracking Participants):用來訂閱跟蹤記錄。跟蹤參與者包括處理來自跟蹤記錄的負載的邏輯(例如,這個邏輯可能是將跟蹤記錄寫到文件中)。
工作流跟蹤基礎結構采用了觀察者模式。工作流實例是跟蹤記錄的發布者,而跟蹤記錄的訂閱者則注冊為工作流的擴展。這些訂閱了跟蹤記錄的擴展被就被稱為跟蹤參與者。跟蹤參與者作為擴展點,允許工作流開發人員來消費并處理跟蹤記錄。跟蹤基礎結構允許應用去篩選傳出的跟蹤記錄,然后參與者就可以訂閱記錄的子集了。篩選的應用機制是通過跟蹤配置。
通過檢測工作流運行時發出的跟蹤記錄來跟蹤工作流實例的執行過程。傳出的跟蹤記錄類型包括:
◆工作流實例跟蹤記錄:工作流實例記錄表述了工作流實例的生命周期。舉例來說,工作流會在啟動或完成時發出一條記錄。
◆活動跟蹤記錄:活動跟蹤記錄會在工作流活動執行時發出。這些記錄指示了工作流活動的狀態(也就是說,工作流被計劃執行、工作流完成、或者拋出錯誤)。
◆書簽(Bookmark)恢復跟蹤記錄:書簽恢復記錄跟蹤了所有成功恢復的書簽。
◆用戶跟蹤記錄:工作流創作者可以在自定義工作流活動中創建自定義跟蹤記錄,并在該活動中發出這些記錄。自定義跟蹤記錄在發出的同時還可以包含數據。
WF 4.0提供了一個開箱即用的基于跟蹤參與者的ETW (Event Tracing for Windows) 。ETW跟蹤參與者會將跟蹤記錄輸出到ETW會話中。此參與者是以工作流服務的形式,通過在配置文件中添加一個特定的跟蹤行為來配置的
啟用ETW跟蹤參與者后,就允許在事件查看器中查看跟蹤記錄。后續的文章中還會詳細介紹基于ETW的跟蹤參與者的使用方法。學習SDK sample for ETW based tracking 是熟悉使用基于ETW的跟蹤參與者的一個不錯的方法。
在將來的文章中,我們還會更加深入的討論WF跟蹤。這些文章將會包括跟蹤配置和跟蹤記錄、ETW跟蹤參與者、編寫自定義跟蹤參與者、變量提取和統一的跟蹤(Tracking)和追蹤(Tracing)。
【編輯推薦】