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