簡體   English   中英

與客戶端端點對話的Workflow Service自定義跟蹤參與者?

[英]Workflow Service custom tracking participant that talks to a client-side endpoint(s)?

我正處於工作流程服務和WPF的調查階段。

到目前為止,讓State Machine WF Service托管在IIS中以及一個或多個WPF客戶端與WF Service進行通信聽起來是合理的選擇。

但是,盡管經過數天的閱讀和研究,對我來說仍不清楚什么是從WPF應用程序跟蹤狀態之間轉移的最佳策略。

跟蹤參與者的樣本很多,但其中大多數是基於“一個流程”場景的。

因此,我正在考慮以下結構。

  1. 任何客戶端調用以注冊其客戶端端點的服務器端WCF操作
  2. 一個定制的跟蹤參與者,它會遍歷所有已注冊的客戶端端點,並通過其Track()方法發送TrackingRecord。

這種方法的優勢在於,它可以實時更新狀態,而無需像ETW這樣的額外層。 另一個優點是它允許將邏輯(或模型層)與表示層解耦。

任何人都可以對以上結構發表意見嗎? 我也歡迎實現目標的任何建議。


[編輯]為了使我的想法更加詳細和清楚,以下步驟是一種典型用法。

1)(WPF客戶端)包含並打開一個WCF端點以接收TrackRecords。

2)(WF服務)打開WCF操作(或帶有接收消息的簡單WF實例),該操作將客戶端地址注冊到內部存儲中。

3)(WF服務)創建並添加了一個自定義跟蹤參與者,該參與者會將TrackingRecord發送到已注冊客戶端的端點。

4)(客戶端)連接到上述服務,並分發在步驟1中提到的客戶端端點,因此接收TrackingRecords。


[編輯2]

簡單來說,我的目標是

1)通過TrackingParticipant在WF服務(IIS)+ WPF或任何類型的客戶端應用上跟蹤StateMachine狀態的最有效方法。

2)如果我的建議可以改善

同時,我已經實施了該程序,到目前為止效果很好。 我還在客戶端添加了MvvM Light框架的消息傳遞功能,以便它將接收到的消息輕松傳播到模型。

有一種現成的機制可以包裝您建議的許多功能(如果我正確理解了您的需求)。 如果您需要利用WCF服務進行雙向通信(即,將數據PollingDuplex送到已連接的客戶端),建議使用PollingDuplex綁定。

我已經使用PollingDuplex與各種Silverlight客戶端過去交換數據,我已經讀到這樣的文章這樣一個描述產生在WPF空間相同的行為的步驟。

這種方法將使您顯然正在考慮手動執行的許多終結點注冊和跟蹤邏輯自動化。

我希望這有幫助。

您可以看一下SignalR,而不是試圖強迫WCF成為發布/訂閱平台,這不是它的優勢。 我的博客上有一個示例,其中包含可視跟蹤示例,其中跟蹤參與者從跟蹤應用程序中分離出來,因此這不是一個過程。 該博客還鏈接到另外兩個完成類似操作的博客,但所有博客均使用更適合此類事件的消息傳遞體系結構。

http://panmanphil.wordpress.com/2012/11/05/slides-and-sample-from-the-chippewa-valley-code-camp/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM