<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Building a Pub/Sub Message Bus with WCF and MSMQ</title><link>http://blogs.msdn.com/tomholl/archive/2008/05/17/building-a-pub-sub-message-bus-with-wcf-and-msmq.aspx</link><description>In recent years there has been a lot of talk about event-driven architecture as a technique to build more scalable and maintainable systems. I've found this to be a very interesting pattern that makes sense in a number of scenarios, but it's never been</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: Building a Pub/Sub Message Bus with WCF and MSMQ</title><link>http://blogs.msdn.com/tomholl/archive/2008/05/17/building-a-pub-sub-message-bus-with-wcf-and-msmq.aspx#8517194</link><pubDate>Sat, 17 May 2008 14:50:28 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8517194</guid><dc:creator>Udi Dahan - The Software Simplist</dc:creator><description>&lt;p&gt;Tom,&lt;/p&gt;
&lt;p&gt;Great post. Very thorough. I was curious if you were using the same kind of API's for regular inter-service communication (one way over MSMQ).&lt;/p&gt;
&lt;p&gt;There's an open source project (mine, I admit it) that provides a framework for the things you described above.&lt;/p&gt;
&lt;p&gt;It's called nServiceBus.&lt;/p&gt;
&lt;p&gt;It supports subscribers joining and leaving dynamically without any changes to the publisher (no config changes either), and has a bunch of other functionality as well.&lt;/p&gt;
&lt;p&gt;I'd be happy to hear any feedback you might have given the experiences you've outlined in your post.&lt;/p&gt;
&lt;p&gt;The site is &amp;lt;a href=&amp;quot;&lt;a rel="nofollow" target="_new" href="http://www.nServiceBus.com&amp;quot;&amp;gt;www.nServiceBus.com&amp;lt;/a&amp;gt;"&gt;http://www.nServiceBus.com&amp;quot;&amp;gt;www.nServiceBus.com&amp;lt;/a&amp;gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Thanks.&lt;/p&gt;
</description></item><item><title>"BizTalk" without BizTalk</title><link>http://blogs.msdn.com/tomholl/archive/2008/05/17/building-a-pub-sub-message-bus-with-wcf-and-msmq.aspx#8517937</link><pubDate>Sun, 18 May 2008 08:10:45 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8517937</guid><dc:creator>Adlai Maschiach</dc:creator><description>&lt;p&gt;&amp;amp;quot;BizTalk&amp;amp;quot; without BizTalk Ok , with this kind of opening Title you would have a high expectations&lt;/p&gt;
</description></item><item><title>re: Building a Pub/Sub Message Bus with WCF and MSMQ</title><link>http://blogs.msdn.com/tomholl/archive/2008/05/17/building-a-pub-sub-message-bus-with-wcf-and-msmq.aspx#8518082</link><pubDate>Sun, 18 May 2008 11:52:46 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8518082</guid><dc:creator>tomholl</dc:creator><description>&lt;p&gt;Hi Udi -&lt;/p&gt;
&lt;p&gt;Thanks for sending the link - I'll take a look at nServiceBus - looks very interesting from a quick glance.&lt;/p&gt;
&lt;p&gt;The pub/sub framework I worked on a few years ago actually included dynamic subscription management. However for both that system and my current project I believe this feature is overkill - new subscribers are only going to appear after careful consideration and testing, and when this happens it's not at all taxing to update a couple of config files. That said I realise some environments are more dynamic, so dynamic subscription management does have its place.&lt;/p&gt;
&lt;p&gt;On my current project we're using the MSMQ pub/sub for some calls, and synchronous calls (currently using HTTP, but likely to be TCP by the time we deploy) for others. The key consideration is whether the service's response needs to be relayed to the end user immediately or not - we're trying to make as much processing asynchronous as possible but in many cases we found that it just isn't practical.&lt;/p&gt;
&lt;p&gt;Tom&lt;/p&gt;
</description></item><item><title>re: Building a Pub/Sub Message Bus with WCF and MSMQ</title><link>http://blogs.msdn.com/tomholl/archive/2008/05/17/building-a-pub-sub-message-bus-with-wcf-and-msmq.aspx#8518451</link><pubDate>Sun, 18 May 2008 23:14:29 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8518451</guid><dc:creator>Udi Dahan</dc:creator><description>&lt;p&gt;Tom,&lt;/p&gt;
&lt;p&gt;I guess my question is why you'd want a different programming model for handling a notification arriving and for handling a regular command message? I mean, a message arrives, fire off a message handler.&lt;/p&gt;
&lt;p&gt;The issue of immediacy seems to be more about how fast you respond, in other words, keeping latency low but under a high throughput. It has been my experience that that is easier to do using a one-way-only messaging model (at least, server-side).&lt;/p&gt;
&lt;p&gt;One last thing that I've found that helps move the practical side of pub/sub forward is caching. That way, most regular request/response semantics are replaced with local cache access while that cache is kept up to date by notifications.&lt;/p&gt;
&lt;p&gt;Your thoughts?&lt;/p&gt;
</description></item><item><title>re: Building a Pub/Sub Message Bus with WCF and MSMQ</title><link>http://blogs.msdn.com/tomholl/archive/2008/05/17/building-a-pub-sub-message-bus-with-wcf-and-msmq.aspx#8518813</link><pubDate>Mon, 19 May 2008 11:05:18 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8518813</guid><dc:creator>tomholl</dc:creator><description>&lt;p&gt;Hi Udi -&lt;/p&gt;
&lt;p&gt;On the server side, we're not using any custom APIs - it's just a standard WCF service interface so the programming model is no different for &amp;quot;message bus&amp;quot; services or synchronous services.&lt;/p&gt;
&lt;p&gt;I'm not sure I understand how you're using one-way services across the board. In situations where the client requires an immediate response (say, to get details of a particular order to show on the UI), synchronous processing seems way simpler. While you can always pair one-way messages into a duplex communication, this creates the need for live endpoints and message correlation on the client side. Am I missing something, or are you talking about a different scenario?&lt;/p&gt;
&lt;p&gt;Tom&lt;/p&gt;
</description></item><item><title>New and Notable 243</title><link>http://blogs.msdn.com/tomholl/archive/2008/05/17/building-a-pub-sub-message-bus-with-wcf-and-msmq.aspx#8518972</link><pubDate>Mon, 19 May 2008 15:13:05 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8518972</guid><dc:creator>Sam Gentile</dc:creator><description>&lt;p&gt;P&amp;amp;amp;P/Design Patterns I have been in a customer situation where I have been using a combination of&lt;/p&gt;
</description></item><item><title>re: Building a Pub/Sub Message Bus with WCF and MSMQ</title><link>http://blogs.msdn.com/tomholl/archive/2008/05/17/building-a-pub-sub-message-bus-with-wcf-and-msmq.aspx#8525008</link><pubDate>Wed, 21 May 2008 01:32:53 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8525008</guid><dc:creator>Tom</dc:creator><description>&lt;p&gt;Very interesting. There is another interesting pub/sub implementation on http:/www.distributethis.com that is also WCF based.&lt;/p&gt;
</description></item><item><title>基于WCF和MSMQ构建发布/订阅消息总线（Pub/Sub Message Bus）</title><link>http://blogs.msdn.com/tomholl/archive/2008/05/17/building-a-pub-sub-message-bus-with-wcf-and-msmq.aspx#8596673</link><pubDate>Sat, 14 Jun 2008 12:35:08 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8596673</guid><dc:creator>EntLib</dc:creator><description>&lt;p&gt;本文是翻译Tom Hollander先生的blog文章《Building a Pub/Sub Message Bus with WCF and MSMQ》，对英文blog文章感兴趣的朋友，可以直接访问文章下面的链接。-译者：EntLib.com开源论坛小组。&lt;/p&gt;
</description></item><item><title>基于WCF和MSMQ构建发布/订阅消息总线（Pub/Sub Message Bus）</title><link>http://blogs.msdn.com/tomholl/archive/2008/05/17/building-a-pub-sub-message-bus-with-wcf-and-msmq.aspx#8596768</link><pubDate>Sat, 14 Jun 2008 13:09:23 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8596768</guid><dc:creator>cnblogs.com</dc:creator><description>&lt;p&gt;基于 WCF 和 MSMQ 构建发布 / 订阅消息总线（ Pub/Sub Message Bus ） 本文是翻译Tom Hollander先生的blog文章《Building a Pub/Sub Message&lt;/p&gt;
</description></item><item><title>re: Building a Pub/Sub Message Bus with WCF and MSMQ</title><link>http://blogs.msdn.com/tomholl/archive/2008/05/17/building-a-pub-sub-message-bus-with-wcf-and-msmq.aspx#8596821</link><pubDate>Sat, 14 Jun 2008 13:25:45 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8596821</guid><dc:creator>EntLib.com</dc:creator><description>&lt;p&gt;If you want to get a Chinese version of this post, please access the following link.&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://forum.entlib.com/Default.aspx?g=posts&amp;amp;t=57"&gt;http://forum.entlib.com/Default.aspx?g=posts&amp;amp;t=57&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;***&lt;/p&gt;
&lt;p&gt;如果您想看看这篇post的中文版本，请您访问如下地址（翻译）：&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://forum.entlib.com/Default.aspx?g=posts&amp;amp;t=57"&gt;http://forum.entlib.com/Default.aspx?g=posts&amp;amp;t=57&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>re: Building a Pub/Sub Message Bus with WCF and MSMQ</title><link>http://blogs.msdn.com/tomholl/archive/2008/05/17/building-a-pub-sub-message-bus-with-wcf-and-msmq.aspx#8599632</link><pubDate>Sun, 15 Jun 2008 09:02:14 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8599632</guid><dc:creator>Miko Lef</dc:creator><description>&lt;p&gt;This is a well written article, clear and informative.&lt;/p&gt;
&lt;p&gt;Today there many Services that are being deployed over the internet.&lt;/p&gt;
&lt;p&gt;The new Age of services is in shape of &amp;quot;Software as a service&amp;quot;.&lt;/p&gt;
&lt;p&gt;In the Message Queue arena you can find Amazon Web Service or OnlineMQ.com.&lt;/p&gt;
&lt;p&gt;In the integration arena you can find CapeClear....and much more.&lt;/p&gt;
</description></item><item><title>re: Building a Pub/Sub Message Bus with WCF and MSMQ</title><link>http://blogs.msdn.com/tomholl/archive/2008/05/17/building-a-pub-sub-message-bus-with-wcf-and-msmq.aspx#8648285</link><pubDate>Tue, 24 Jun 2008 21:17:13 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8648285</guid><dc:creator>Christian Weyer</dc:creator><description>&lt;p&gt;@Tom, regarding http:/www.distributethis.com&lt;/p&gt;
&lt;p&gt;Where exactly is that pub/sub implementation? I could not find it on the web page - am I blind?&lt;/p&gt;
&lt;p&gt;Thanks.&lt;/p&gt;
</description></item><item><title>MSMQ, WCF and IIS: Getting them to play nice (Part 1)</title><link>http://blogs.msdn.com/tomholl/archive/2008/05/17/building-a-pub-sub-message-bus-with-wcf-and-msmq.aspx#8723185</link><pubDate>Sat, 12 Jul 2008 11:31:44 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8723185</guid><dc:creator>Tom Hollander's blog</dc:creator><description>&lt;p&gt;A few weeks ago I posted an article describing how my current team built a publish/subscribe message&lt;/p&gt;
</description></item><item><title>MSMQ, WCF and IIS: Getting them to play nice (Part 1)</title><link>http://blogs.msdn.com/tomholl/archive/2008/05/17/building-a-pub-sub-message-bus-with-wcf-and-msmq.aspx#8723770</link><pubDate>Sat, 12 Jul 2008 14:06:53 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8723770</guid><dc:creator>Readed By Wrocław NUG members</dc:creator><description>&lt;p&gt;A few weeks ago I posted an article describing how my current team built a publish/subscribe message&lt;/p&gt;
</description></item><item><title>New and Notable 251</title><link>http://blogs.msdn.com/tomholl/archive/2008/05/17/building-a-pub-sub-message-bus-with-wcf-and-msmq.aspx#8724395</link><pubDate>Sat, 12 Jul 2008 18:49:36 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8724395</guid><dc:creator>Sam Gentile  The World According to MSCOREE</dc:creator><description>&lt;p&gt;.NET/C#/Functional Programming The very useful CR_Documentor 2.0 has been released with Sandcastle Preview&lt;/p&gt;
</description></item><item><title>MSMQ, WCF and IIS: Getting them to play nice (Part 1)[转]</title><link>http://blogs.msdn.com/tomholl/archive/2008/05/17/building-a-pub-sub-message-bus-with-wcf-and-msmq.aspx#8967943</link><pubDate>Sun, 28 Sep 2008 11:57:33 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8967943</guid><dc:creator>一想天开</dc:creator><description>&lt;p&gt;AfewweeksagoIpostedanarticledescribinghowmycurrentteambuiltapublish/subscribemessage...&lt;/p&gt;
</description></item><item><title>New and Notable 251</title><link>http://blogs.msdn.com/tomholl/archive/2008/05/17/building-a-pub-sub-message-bus-with-wcf-and-msmq.aspx#9166271</link><pubDate>Wed, 03 Dec 2008 00:30:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9166271</guid><dc:creator>Sam Gentile's Blog</dc:creator><description>&lt;p&gt;.NET/C#/Functional Programming The very useful CR_Documentor 2.0 has been released with Sandcastle Preview and is now open source code Mathew has a boatload of links, resources, slide deck and code in Aspects of Functional Programming in C# Presentation&lt;/p&gt;
</description></item></channel></rss>