繁体   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