<?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>David Hurtado's Integration Traces</title><link>http://blogs.msdn.com/dhtoran/default.aspx</link><description>Yet another blog about BizTalk, Architecture, and some fuzzy acronyms such as EAI, SOA, ESB, EDA, CEP, MSFLA, etc. </description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Introduction to xRM. One Platform. Many Applications</title><link>http://blogs.msdn.com/dhtoran/archive/2009/07/16/introduction-to-xrm-one-platform-many-applications.aspx</link><pubDate>Thu, 16 Jul 2009 12:14:59 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9835340</guid><dc:creator>dhtoran</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/dhtoran/comments/9835340.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dhtoran/commentrss.aspx?PostID=9835340</wfw:commentRss><description>&lt;p&gt;Although xRM is not directly related to me, my job and my area of expertise, I really like this video and the idea behind it.&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;  &lt;p&gt;   &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:0c507c14-e0ee-4496-a96e-43643f949704" class="wlWriterEditableSmartContent"&gt;&lt;div id="88006e7c-4c86-45fc-8eb6-14c9746fa219" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=Yru5CkANOKA&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" target="_new"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/dhtoran/WindowsLiveWriter/IntroductiontoxRM.OnePl.ManyApplications_9E2E/videof5fa2f1d6b84.jpg" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('88006e7c-4c86-45fc-8eb6-14c9746fa219'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/Yru5CkANOKA&amp;amp;hl=en&amp;amp;fs=1&amp;amp;&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/Yru5CkANOKA&amp;amp;hl=en&amp;amp;fs=1&amp;amp;&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9835340" width="1" height="1"&gt;</description></item><item><title>Bumptop and User Experience: Creating new problems and solving them</title><link>http://blogs.msdn.com/dhtoran/archive/2009/06/15/bumptop-and-user-experience-creating-new-problems-and-solving-them.aspx</link><pubDate>Mon, 15 Jun 2009 17:27:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9753380</guid><dc:creator>dhtoran</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/dhtoran/comments/9753380.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dhtoran/commentrss.aspx?PostID=9753380</wfw:commentRss><description>&lt;p&gt;This post has nothing to do with BizTalk or EAI/SOA/etc, but it’s interesting, so here it goes!&lt;/p&gt;  &lt;p&gt;I’ve a thread with some colleagues about User Experience (something I see myself as an enthusiast). Somebody shared a &lt;a href="http://www.youtube.com/watch?v=oUVpSY4eBCc&amp;amp;NR=1"&gt;video&lt;/a&gt; about &lt;a href="http://bumptop.com/"&gt;Bumptop&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dhtoran/WindowsLiveWriter/BumptopandUserExperienceCreatingnewprobl_E14F/clip_image001_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://blogs.msdn.com/blogfiles/dhtoran/WindowsLiveWriter/BumptopandUserExperienceCreatingnewprobl_E14F/clip_image001_thumb.jpg" width="419" height="256" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;As the YouTube description states, &lt;em&gt;“BumpTop is a fun, intuitive 3D desktop that keeps you &lt;strong&gt;organized &lt;/strong&gt;and makes you more productive. Like a real desk, but better”.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Well, my point of view is quite different. The above picture shows all but &lt;em&gt;&lt;strong&gt;organization&lt;/strong&gt;&lt;/em&gt;. It’s a complete mess.&lt;/p&gt;  &lt;p&gt;In my opinion, Bumptop is a huge effort to recreate the realworld™ desktop inside a Windows desktop. It’s a huge effort, and a huge step backwards: it has all lots of problems inherited from realworld™. In fact, in the picture abobe shows nothing but bad practices in tidiness. If only your mom saw this…&lt;/p&gt;  &lt;p&gt;Lets take a feature, taken from the video, that will make your mom happier: it allows the user to tidy things by applying a mouse gesture over an untidy area, so everything inside the gesture get automatically organized in a small and nice pile.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dhtoran/WindowsLiveWriter/BumptopandUserExperienceCreatingnewprobl_E14F/clip_image001%5B5%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image001[5]" border="0" alt="clip_image001[5]" src="http://blogs.msdn.com/blogfiles/dhtoran/WindowsLiveWriter/BumptopandUserExperienceCreatingnewprobl_E14F/clip_image001%5B5%5D_thumb.jpg" width="428" height="144" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Well, basically, &lt;strong&gt;this feature solves a problem that was created by Bumptop&lt;/strong&gt;, which sounds funny to me! You can’t have the initial mess without Bumptop.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Even&amp;#160; more funny is a &lt;em&gt;Media Love &lt;/em&gt;comment found in Bumptop home page. It states:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“Bumptop has become an indispensable tool for my company. Between stock imagery, fonts, plug-ins, or .pdfs, I am downloading anywhere between 12-25 files a day onto my desktop […]”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;¿downloading 12-25 files a day onto the desktop? Well, I really recommend this person to go and attend to some kind of training such as &lt;em&gt;“using a personal computer for dummies”&lt;/em&gt; or similar. I really can’t imagine a worse and less productive use of the desktop as a “download store”.&lt;/p&gt;  &lt;p&gt;Here goes the video:&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:b72d99d8-8052-4c31-9809-d7fb2b4c01d6" class="wlWriterEditableSmartContent"&gt;&lt;div id="06e71091-ccd1-4ff6-9547-69c636b794f3" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=eqcmPJ-oVL0" target="_new"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/dhtoran/WindowsLiveWriter/BumptopandUserExperienceCreatingnewprobl_E14F/video381bbc4ae6ea.jpg" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('06e71091-ccd1-4ff6-9547-69c636b794f3'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/eqcmPJ-oVL0&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/eqcmPJ-oVL0&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Also fun that some interesting features of Bumptop, shown in the video, has nothing to do with 3D or realworld™ metaphors, they are just some very clever use of drag and drop and file handlers.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9753380" width="1" height="1"&gt;</description></item><item><title>Book review: SOA Patterns with BizTalk Server 2009 (II) – WCF Primer</title><link>http://blogs.msdn.com/dhtoran/archive/2009/06/09/book-review-soa-patterns-with-biztalk-server-2009-ii-wcf-primer.aspx</link><pubDate>Tue, 09 Jun 2009 15:39:32 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9715913</guid><dc:creator>dhtoran</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/dhtoran/comments/9715913.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dhtoran/commentrss.aspx?PostID=9715913</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dhtoran/WindowsLiveWriter/BookreviewSOAPatternswithBizTalkServer20_CBFE/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/dhtoran/WindowsLiveWriter/BookreviewSOAPatternswithBizTalkServer20_CBFE/image_thumb_1.png" width="416" height="90" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This is a part of small posts reviewing the book &lt;a href="http://www.packtpub.com/soa-patterns-with-biztalk-server-2009/book"&gt;‘SOA Patterns with BizTalk Server 2009’&lt;/a&gt;, by &lt;a href="http://seroter.wordpress.com/"&gt;Richard Seroter&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Chapter II – an WCF Primer&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The second chapter has been a little surprise for me: it is a WCF primer and has nothing to do with BizTalk Server. Why?&lt;/p&gt;  &lt;p&gt;There are two reasons for writing a WCF primer when dealing with BizTalk Server: the first one is that WCF is not a “&lt;em&gt;technology replacement for ASMX web services&lt;/em&gt;”, as a lot people see it. WCF is a communications subsystem. A full communications subsystem that most of future .NET developments will be based upon.&lt;/p&gt;  &lt;p&gt;The second reason is that the new BizTalk WCF Adapter + replaces most of the old adapters found in common scenarios. WCF plays a very important role in BizTalk Server.&lt;/p&gt;  &lt;p&gt;So, back to the Seroter’s book, how’s the WCF primer like?&lt;/p&gt;  &lt;p&gt;It’s basically a very deep and detailed document about WCF. The chapter succeed in isolate the concepts of contracts, service implementations, bindings and service hosting. It also includes a detailed end-to-end sample including all the concepts. I’ll definitely recommend this chapter to anyone interested in learning WCF.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9715913" width="1" height="1"&gt;</description></item><item><title>ESB Toolkit 2.0 released</title><link>http://blogs.msdn.com/dhtoran/archive/2009/06/09/esb-toolkit-2-0-released.aspx</link><pubDate>Tue, 09 Jun 2009 09:30:12 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9713605</guid><dc:creator>dhtoran</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/dhtoran/comments/9713605.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dhtoran/commentrss.aspx?PostID=9713605</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dhtoran/WindowsLiveWriter/ESBToolkit2.0released_7790/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/dhtoran/WindowsLiveWriter/ESBToolkit2.0released_7790/image_thumb.png" width="286" height="116" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Good news that the &lt;strong&gt;BizTalk ESB Toolkit 2.0&lt;/strong&gt; (previously known as ESB Guidance 2.0) has been released for download.&lt;/p&gt;  &lt;p&gt;The download is no longer published on CodePlex. Now you can download it from the &lt;a href="http://msdn.microsoft.com/en-us/dd876606.aspx"&gt;BizTalk Developer Center&lt;/a&gt;. Changes in the name and the download links have a good reason: now it’s supported by Microsoft.&lt;/p&gt;  &lt;p&gt;Even if you are new to BizTalk or have no experience with Enterprise Service Bus pattern, it really worth to have a look at it.&lt;/p&gt;  &lt;p&gt;I’m gonna copy/paste some features from the ESB site:&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;Endpoint run-time discovery and virtualization &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;Loosely coupled service composition&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;Dynamic message transformation and translation&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;Dynamic routing&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;Centralized exception management&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;Quality of service&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;Protocol transformation&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;Extensibility&lt;/b&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9713605" width="1" height="1"&gt;</description></item><item><title>Book review: SOA Patterns with BizTalk Server 2009 (I) - Refresher</title><link>http://blogs.msdn.com/dhtoran/archive/2009/06/01/book-review-soa-patterns-with-biztalk-server-2009-i-refresher.aspx</link><pubDate>Mon, 01 Jun 2009 11:45:46 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9675736</guid><dc:creator>dhtoran</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/dhtoran/comments/9675736.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dhtoran/commentrss.aspx?PostID=9675736</wfw:commentRss><description>&lt;p&gt;This is a part of small posts reviewing the book &lt;a href="http://www.packtpub.com/soa-patterns-with-biztalk-server-2009/book"&gt;‘SOA Patterns with BizTalk Server 2009’&lt;/a&gt;, by &lt;a href="http://seroter.wordpress.com/"&gt;Richard Seroter&lt;/a&gt;. I think I’ll be posting chapter reviews and thoughts as I read them.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Preface and Chapter I – BizTalk Server refresher&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The chapter one, as one can imagine, is more or less a refresher about what BizTalk Server is and what can it perform. I was not going to post about it since it seems to be very basic: it just creates the context for the rest of the book.&lt;/p&gt;  &lt;p&gt;But as I was reading it yesterday and I was thinking an issue I had with one of my customers last week (talking about what BTS is and how to can it be used in different projects), I realized that introductions are more important when dealing with BizTalk Server. Why?&lt;/p&gt;  &lt;p&gt;Basically because BizTalk Server is a &lt;em&gt;thing&lt;/em&gt; that is difficult to explain. What is BizTalk Server? Is it a product or a platform? Is it an EAI, SOA or BPM? Or all&amp;#160; of them? Is it development environment?&lt;/p&gt;  &lt;p&gt;The first chapter changes my traditional order about explaining what BizTalk Server is. It starts explaining what problems does it solve first (EAI, B2B, BPM), and then goes forward explaining the BizTalk Server architecture. I think it’s a good idea starting about what can it &lt;em&gt;do &lt;/em&gt;prior to what &lt;em&gt;is &lt;/em&gt;it.&lt;/p&gt;  &lt;p&gt;At this point, I’ll extract a bright point in the definition from architecture section:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;[…] BizTalk Server at its core is an event-processing engine, based on a conventional publish-subscribe pattern […]&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;That’s the point. At its &lt;em&gt;core&lt;/em&gt;, it’s all about &lt;em&gt;publish and subscribe events&lt;/em&gt;. It cannot be stated clearer.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9675736" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dhtoran/archive/tags/Book/default.aspx">Book</category><category domain="http://blogs.msdn.com/dhtoran/archive/tags/BizTalk+Server/default.aspx">BizTalk Server</category></item><item><title>Cite: SOA, build or buy</title><link>http://blogs.msdn.com/dhtoran/archive/2009/05/22/cite-soa-build-or-buy.aspx</link><pubDate>Fri, 22 May 2009 15:25:22 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9635107</guid><dc:creator>dhtoran</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/dhtoran/comments/9635107.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dhtoran/commentrss.aspx?PostID=9635107</wfw:commentRss><description>&lt;blockquote&gt;   &lt;h3&gt;Repeat with me: SOA is something you do, not something you buy&lt;/h3&gt; &lt;/blockquote&gt;  &lt;p align="right"&gt;- David Linthicum&lt;/p&gt;  &lt;p align="right"&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This is a nice cite I’ve read at the preface of the book &lt;a href="http://blogs.msdn.com/dhtoran/archive/2009/05/21/new-book-and-free-chapter-soa-patterns-with-biztalk-server-2009.aspx"&gt;I was talking about yesterday&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Yes, it seems a cite said by &lt;a href="http://uncyclopedia.wikia.com/wiki/Captain_Obvious"&gt;Captain Obvious,&lt;/a&gt; but it’s still amazing how many vendors try to sell their products as “&lt;em&gt;SOA-out-of-the-box&lt;/em&gt;”.&lt;/p&gt;  &lt;p&gt;It’s a pity. With so much hype, many customers have a fuzzy idea of what SOA is, and some of them are convinced to buy it.&lt;/p&gt;  &lt;p&gt;But they can’t. Because SOA is something you do, not something you buy.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9635107" width="1" height="1"&gt;</description></item><item><title>New book and free chapter: SOA Patterns with BizTalk Server 2009</title><link>http://blogs.msdn.com/dhtoran/archive/2009/05/21/new-book-and-free-chapter-soa-patterns-with-biztalk-server-2009.aspx</link><pubDate>Thu, 21 May 2009 18:17:40 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9633873</guid><dc:creator>dhtoran</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/dhtoran/comments/9633873.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dhtoran/commentrss.aspx?PostID=9633873</wfw:commentRss><description>&lt;p&gt;I’ve just received for review from &lt;a href="http://www.packtpub.com"&gt;Packt Publishing&lt;/a&gt; the new book &lt;a href="http://www.packtpub.com/soa-patterns-with-biztalk-server-2009/book"&gt;&lt;em&gt;‘SOA Patterns with BizTalk Server’&lt;/em&gt;&lt;/a&gt; by &lt;a href="http://seroter.wordpress.com/"&gt;Richard Seroter&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;There’s also a free chapter from the book, &lt;em&gt;‘New SOA Capabilities in BizTalk Server 2009: WCF SQL Adapter’&lt;/em&gt; downloadable as .pdf from the &lt;a href="http://www.packtpub.com/soa-patterns-with-biztalk-server-2009/book"&gt;Packt book page&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Although I usually take this kind of books as reference guides more that a reading from start-to-end, I think I’m gonna read this one deeply and paying as much attention as I can, since I’m involved in a project that uses almost every single concept along the 12 chapters.&lt;/p&gt;  &lt;p&gt;So the full review will arrive. Meanwhile, take a look at the worthy &lt;a href="http://www.packtpub.com/soa-patterns-with-biztalk-server-2009/book#indetail"&gt;chapter index&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Also (this has nothing to do with the book content), I’m a nature photograph enthusiast, and the book has a nice macro photo in the portrait. Here it is:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dhtoran/WindowsLiveWriter/NewbookandfreechapterSOAPatternswithBizT_E672/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/dhtoran/WindowsLiveWriter/NewbookandfreechapterSOAPatternswithBizT_E672/image_thumb_1.png" width="394" height="510" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9633873" width="1" height="1"&gt;</description></item><item><title>Connecting systems – From Object Oriented to ESB for dummies</title><link>http://blogs.msdn.com/dhtoran/archive/2009/05/21/connecting-systems-from-object-oriented-to-esb-for-dummies.aspx</link><pubDate>Thu, 21 May 2009 14:41:21 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9633657</guid><dc:creator>dhtoran</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/dhtoran/comments/9633657.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dhtoran/commentrss.aspx?PostID=9633657</wfw:commentRss><description>&lt;p&gt;I’m working with a customer in a BizTalk Server 2009 + ESB solution for eAdmin. It’s a really nice project and I’m doing lot of different tasks here.&lt;/p&gt;  &lt;p&gt;One of these tasks involve to design and explain the whole solution to many different people at the customers’. I’ve found that some dudes that are new to service oriented architectures find it difficult to understand the concepts behind ESB. Well, maybe it’s me that I don’t explain well…&lt;/p&gt;  &lt;p&gt;Anyways, I’m doing a group of diagrams to explain the different ways and the evolution to connect different applications. Starting from object oriented and ending with an ESB. I know that OO does not map to “connect different applications”, but it serves as the starting point, the beginning of all.&lt;/p&gt;  &lt;p&gt;Here are the Visio diagrams. They need a deep explanation, I know, but I’m posting here just the pictures (click to enlarge)&lt;/p&gt;  &lt;p&gt;1. &lt;strong&gt;The basic OO world &lt;/strong&gt;with two applications, the client and the “server” (as it serves the logic):&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dhtoran/WindowsLiveWriter/ConnectingsystemsFromObjectOrientedtoESB_BA32/OO_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="OO" border="0" alt="OO" src="http://blogs.msdn.com/blogfiles/dhtoran/WindowsLiveWriter/ConnectingsystemsFromObjectOrientedtoESB_BA32/OO_thumb.png" width="420" height="330" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;2. &lt;strong&gt;The distributed object oriented&lt;/strong&gt;, that is just OO + web services. I’m really fascinated as nowadays still a lot of companies still sell this as “service oriented”:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dhtoran/WindowsLiveWriter/ConnectingsystemsFromObjectOrientedtoESB_BA32/DOO_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="DOO" border="0" alt="DOO" src="http://blogs.msdn.com/blogfiles/dhtoran/WindowsLiveWriter/ConnectingsystemsFromObjectOrientedtoESB_BA32/DOO_thumb.png" width="426" height="254" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;3. &lt;strong&gt;Service oriented&lt;/strong&gt;. Adding the concept of contract and service. Still have dependency on the server, aka the server must implement a service.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dhtoran/WindowsLiveWriter/ConnectingsystemsFromObjectOrientedtoESB_BA32/SO_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="SO" border="0" alt="SO" src="http://blogs.msdn.com/blogfiles/dhtoran/WindowsLiveWriter/ConnectingsystemsFromObjectOrientedtoESB_BA32/SO_thumb.png" width="432" height="207" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;4. &lt;strong&gt;Service Oriented with a broker&lt;/strong&gt;. It’s an EAI broker because I’m assuming a scenario where the server app cannot expose it’s logic as a service.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dhtoran/WindowsLiveWriter/ConnectingsystemsFromObjectOrientedtoESB_BA32/SOwEAI_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="SOwEAI" border="0" alt="SOwEAI" src="http://blogs.msdn.com/blogfiles/dhtoran/WindowsLiveWriter/ConnectingsystemsFromObjectOrientedtoESB_BA32/SOwEAI_thumb.png" width="430" height="144" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;5. &lt;strong&gt;Enterprise Servive Bus&lt;/strong&gt;. Extends the broker model and to a &lt;em&gt;fussy&lt;/em&gt; model. There’s not a lineal / hardwired process to communicate the client with the server, but a set of rules and capabilities that have the &lt;em&gt;intelligence&lt;/em&gt; to dynamically perform the communication flow. Ideally, we completely forget about the EAI stuff and we only speak services (so server app exposes a service again).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dhtoran/WindowsLiveWriter/ConnectingsystemsFromObjectOrientedtoESB_BA32/ESB_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="ESB" border="0" alt="ESB" src="http://blogs.msdn.com/blogfiles/dhtoran/WindowsLiveWriter/ConnectingsystemsFromObjectOrientedtoESB_BA32/ESB_thumb.png" width="437" height="121" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I’m playing with the idea of making a video, where the model starts at 1. and goes evolving to 5. with animations, and text and explanations fade in and out. I’ll finish this if time permits… I’m doing it with PowerPoint, which is not definitely the &lt;em&gt;“uber animation creation tool”&lt;/em&gt;, but it’s extremely easy work with :-)&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9633657" width="1" height="1"&gt;</description></item><item><title>New BizTalk HotRod Magazine – Issue 6 Q2 2009</title><link>http://blogs.msdn.com/dhtoran/archive/2009/04/22/new-biztalk-hotrod-magazine-issue-6-q2-2009.aspx</link><pubDate>Wed, 22 Apr 2009 10:12:16 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9561541</guid><dc:creator>dhtoran</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/dhtoran/comments/9561541.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dhtoran/commentrss.aspx?PostID=9561541</wfw:commentRss><description>&lt;p&gt;There’s a new issue published of the nice BizTalk HotRod Magazine. It contains some very nice articles written by clever people. And then there’s an article written by me :-)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I’m gonna copy/paste the index from &lt;a href="http://connectedthoughts.wordpress.com"&gt;Thiago’s blog, Connected Thoughts&lt;/a&gt;:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Writing Great BizTalk Applications &lt;/strong&gt;by Rajinder Singh&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;BizTalk Rule Engine, a practical application &lt;/strong&gt;by Alexander Krotov&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Development Challenges with XML over AS2 &lt;/strong&gt;by Suresh Kumar R &amp;amp; Sijo Jose T&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Batching Outbound Messages: Management of Multiple Batch Criteria per Party &lt;/strong&gt;by Bhola Meena&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Hierarchical naming convention for BizTalk Messaging artifacts&lt;/strong&gt; by David Hurtado Toran&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;To Be, Or Logical Not To Be: If-Then-Else in BizTalk Maps &lt;/strong&gt;by Chris Romp&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Enhancing the BizTalk Mapper: How to Wrap XSLT in Custom Functoids&lt;/strong&gt; by Richard T. Broida&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Muenchian Grouping and Sorting in XSLT &lt;/strong&gt;by Chris Romp&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Eliminate BizTalk Admin Problems with Terminator &lt;/strong&gt;by Larry Meadows&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Static Code Analysis for BizTalk Using BizTalkCop&lt;/strong&gt; &lt;strong&gt;– Avoiding Common Pitfalls &lt;/strong&gt;by Benny Mathew&lt;/p&gt;  &lt;p&gt;you can get the issue in the &lt;a href="http://www.biztalkhotrod.com/"&gt;BizTalk HotRod page&lt;/a&gt;. Here’s the &lt;a href="http://biztalkhotrod.com/Documents/BizTalk_HotRod_Issue6_Q2_2009.pdf"&gt;direct link&lt;/a&gt; to the pdf. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9561541" width="1" height="1"&gt;</description></item><item><title>Workflow still matters</title><link>http://blogs.msdn.com/dhtoran/archive/2008/02/26/workflow-still-matters.aspx</link><pubDate>Tue, 26 Feb 2008 15:07:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7902649</guid><dc:creator>dhtoran</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/dhtoran/comments/7902649.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dhtoran/commentrss.aspx?PostID=7902649</wfw:commentRss><description>&lt;p&gt;As &lt;a title="Workflow matters" href="http://blogs.msdn.com/dhtoran/archive/2005/07/21/441274.aspx"&gt;we said yesterday&lt;/a&gt;, workflow still matters, and I'm catching this stuff again in the Realworld(tm), trying to clear concepts and how-tos in these (not so) new componentes of .NET. Workflow Foundation is one of these, and I'll try to talk also about WCF, WPF/Silverlight, etc. from here and beyond.&lt;/p&gt;  &lt;p&gt;So I'll start with one simple but interesting question. Let's assume you need to develop some business logic in .NET...&lt;/p&gt;  &lt;p&gt;&lt;b&gt;...is there any reason for &lt;u&gt;not&lt;/u&gt; using Workflow Foundation?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Note that I'm not asking about doing all-or-nothing using WF. It's just a matter of searching for a reason for &lt;strong&gt;not&lt;/strong&gt; using it as a part of the solution.&lt;/p&gt;  &lt;p&gt;I'll try to look for the anwser for myself but, anyways, comments/discussions are welcome!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7902649" width="1" height="1"&gt;</description></item><item><title>Workflow matters</title><link>http://blogs.msdn.com/dhtoran/archive/2005/07/21/441274.aspx</link><pubDate>Thu, 21 Jul 2005 10:51:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:441274</guid><dc:creator>dhtoran</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/dhtoran/comments/441274.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dhtoran/commentrss.aspx?PostID=441274</wfw:commentRss><description>&lt;P&gt;David Chappell&amp;nbsp;&lt;A href="http://www.davidchappell.com/blog/2005/07/why-workflow-matters"&gt;blogs &lt;/A&gt;about it. From my point of view, technologies&amp;nbsp;such BTS Orchestration Engine are very interesting since they allows to:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Separate control flow from code that perform actions.
&lt;LI&gt;Draw control flow, instead of write&amp;nbsp;it. It's more important for things not easy to write in a conventional programming language (ie: parallel execution, long running transactions with state management, etc)&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=441274" width="1" height="1"&gt;</description></item><item><title>BizUnit 2.0 released</title><link>http://blogs.msdn.com/dhtoran/archive/2005/07/18/439868.aspx</link><pubDate>Mon, 18 Jul 2005 09:24:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:439868</guid><dc:creator>dhtoran</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/dhtoran/comments/439868.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dhtoran/commentrss.aspx?PostID=439868</wfw:commentRss><description>&lt;P&gt;Finally, &lt;A href="http://workspaces.gotdotnet.com/bizunit"&gt;BizUnit 2.0&lt;/A&gt; is here, one of my favorite BizTalk projects must-haves. These guys work hard, in the very right direction...&lt;/P&gt;
&lt;P&gt;I case you're not aware of what BizUnit is, it is a test framework fo BizTalk. &lt;a href="http://blogs.msdn.com/kevinsmi/archive/2005/07/17/439728.aspx"&gt;Read their blog &lt;/A&gt;for more info.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=439868" width="1" height="1"&gt;</description></item><item><title>Easy Promotion of Context Properties</title><link>http://blogs.msdn.com/dhtoran/archive/2005/07/07/436395.aspx</link><pubDate>Thu, 07 Jul 2005 11:43:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:436395</guid><dc:creator>dhtoran</dc:creator><slash:comments>18</slash:comments><comments>http://blogs.msdn.com/dhtoran/comments/436395.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dhtoran/commentrss.aspx?PostID=436395</wfw:commentRss><description>&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;Abstract&lt;/STRONG&gt;: I’ve been dealing with context properties, and I’ve discovered a couple of very useful tricks for promoting and routing.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#000080&gt;&lt;EM&gt;some definitions:&lt;/EM&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/STRONG&gt;As you’ll probably know, there are two types of properties in the context of a message: properties based on field values (&lt;EM&gt;MessageDataPropertyBase&lt;/EM&gt;) and properties not based on fields (&lt;EM&gt;MessageContextPropertyBased&lt;/EM&gt;). I’ll call the first ones &lt;EM&gt;Message Properties&lt;/EM&gt; and the other ones &lt;EM&gt;Context Properties&lt;/EM&gt;.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Message Properties&lt;/EM&gt; based on message fields are automatically written and promoted into message context by BizTalk.&lt;BR&gt;&lt;EM&gt;Context Properties&lt;/EM&gt; not based on message fields can be assigned inside an orchestration using the expression &lt;FONT color=#0000ff&gt;&lt;FONT face="Courier New"&gt;Message(Property) = “value”;&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;One of the most interesting stuff about &lt;EM&gt;Context Properties&lt;/EM&gt; is that are not tied to a concrete schema, so they can be used regardless the message type. A sample of a system context property is &lt;FONT face="Courier New"&gt;FILE.ReceivedFilename&lt;/FONT&gt;&lt;FONT face="Times New Roman"&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#000080&gt;&lt;EM&gt;the problem of promoting context properties:&lt;BR&gt;&lt;/EM&gt;&lt;/FONT&gt;&lt;/STRONG&gt;When you create a c&lt;EM&gt;ontext property&lt;/EM&gt;, not based on a message field, and you assign a value inside an orchestration, it is &lt;EM&gt;written&lt;/EM&gt;, but &lt;EM&gt;not promoted&lt;/EM&gt;. What does it means? it means that you cannot route the message based on this property.&lt;BR&gt;Some days ago I had the situation where needed exactly this: content based routing based on a custom context property that had a value calculated inside an orchestration.&lt;/P&gt;
&lt;P&gt;A common solution is to create a custom pipeline component that writes and promotes properties. &lt;A href="http://www.masteringbiztalk.com/blogs/jon/default.aspx"&gt;Jon Flanders&lt;/A&gt; has created a good generic component to do this: the &lt;A href="http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,25768f43-c0b6-4f9d-bb7e-636d52dcd7eb.aspx"&gt;ContextAdder Pipeline Component&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;&lt;FONT color=#000080&gt;the trick:&lt;BR&gt;&lt;/FONT&gt;&lt;/EM&gt;&lt;/STRONG&gt;In my case, the pipeline solution is not an option, since I’m routing between orchestrations via &lt;EM&gt;Direct Port Binding&lt;/EM&gt;. Also, coding a custom component to promote a property seems to complex for me…&lt;BR&gt;Somebody told me a good trick to promote context properties inside an orchestration, easy and direct:&lt;BR&gt;&lt;EM&gt;&lt;FONT color=#006400&gt;&lt;STRONG&gt;Create a CorrelationSet based on the property.&lt;/STRONG&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/EM&gt;Even if you are not going to use it, when you initialize a &lt;EM&gt;CorrelationSet&lt;/EM&gt;, the Orchestration engine makes the promotion of the properties involved, since correlation is just an special kind of routing.&lt;/P&gt;
&lt;P&gt;So now I have some dummy &lt;EM&gt;CorrelationSets&lt;/EM&gt;, that I call &lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&lt;EM&gt;&amp;lt;Property&amp;gt;&lt;/EM&gt;Promote_CorrelationSet&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;nice and easy! :-)&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=436395" width="1" height="1"&gt;</description></item><item><title>Fun with BAM and orchestration execution time</title><link>http://blogs.msdn.com/dhtoran/archive/2005/06/28/433244.aspx</link><pubDate>Tue, 28 Jun 2005 09:42:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:433244</guid><dc:creator>dhtoran</dc:creator><slash:comments>41</slash:comments><comments>http://blogs.msdn.com/dhtoran/comments/433244.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dhtoran/commentrss.aspx?PostID=433244</wfw:commentRss><description>&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;Abstract&lt;/STRONG&gt;: I’ve using BAM to measure execution time in some orchestrations. I cannot use HAT because I needed to do some calculations to rest waiting time of the external processes. It’s extremely easy. Things get funny when we needed to get more that one row per orchestration instance (because of loops which are there…)&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;Today I’ve doing this BAM at a customer’s. I’m going back home in a high velocity train, but it’s a long trip, so I think this post is going to get long… I’ll divide it in 2 parts:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;&lt;FONT color=#000080&gt;Part 1- The easy sample&lt;/FONT&gt;&lt;BR&gt;&lt;/EM&gt;&lt;/STRONG&gt;The scenario is quite simple: some orchestrations provide a synchronous web service façade for a legacy system. The logic for integration with lecagy includes files interchange, sockets comminications and some transformations from/to Xml and HL7 flat files.&lt;BR&gt;What we want: stress the solution and get detailed information about orchestration execution time. This execution measured time &lt;U&gt;should not &lt;/U&gt;include web service communications or file interchange with the legacy system, because the intention is to measure BizTalk performance, regardless of network bandwidth or external dependencies.&lt;/P&gt;
&lt;P&gt;Here is the sample:&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&lt;/P&gt;&lt;IMG alt="simple orchestration sample" src="http://davidhurtado.sts.winisp.net/BlogPictures/FunWithBAM.PNG"&gt; 
&lt;P&gt;In the simplified sample (actual processes are a little more complex :-), we must measure time between start (&lt;STRONG&gt;&lt;EM&gt;Receive 1&lt;/EM&gt;&lt;/STRONG&gt;) and &lt;STRONG&gt;&lt;EM&gt;Send 1&lt;/EM&gt;&lt;/STRONG&gt;, and time between &lt;STRONG&gt;&lt;EM&gt;Receive 2&lt;/EM&gt;&lt;/STRONG&gt; and last send back (&lt;STRONG&gt;&lt;EM&gt;Send 2&lt;/EM&gt;&lt;/STRONG&gt;). Time between Send 1 and Receive 2 must be taken away.&lt;/P&gt;
&lt;P&gt;All this information is in tracking database, and can be queried at a basic level with HAT. Probably it’s not very complex to query the tracking database to get these values. Since each shape has a start and end time, it’s just a question of making the right queries.&lt;BR&gt;Anyways, as I have only one working day to prepare the environment for the tests, I don’t have time to study the tracking DB internals. I’ve done the easy way: BAM milestones. It’s easy because there’s no need to know about BizTalk internals (tracking db design) and flexible because BAM definitions can be designed and deployed independently to the orchestration development.&lt;/P&gt;
&lt;P&gt;So, I’ll show how to do it in just 10 minutes (for the above sample):&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;1- Create BAM definition with the BAM Structures Mega Designer (aka the little Excel sheet :-). These definitions include 4 Activity Items, all of them as milestones. I’ll not use duration view items to catch intervals, instead I’ll do a Transact/SQL DATEDIFF later.&lt;BR&gt;&lt;EM&gt;Time estimated: 3 minutes&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;2- Export the BAM definition to an Xml file, and deploy it in the server with BAM Management Utility (bm.exe).&lt;BR&gt;Use the Tracking Profile Editor to assign each activity item to orchestration shapes.&lt;BR&gt;Don’t forget to assign an Activity Id, tipically an Id field takes from the message schema. &lt;BR&gt;Deploy the profiles to the server.&lt;BR&gt;&lt;EM&gt;Time estimated: 3 minutes&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;3- Only have 4 minutes left, so I’ll assume there is some test automation :-).&lt;BR&gt;Launch the tests (with NUnit in my case).&lt;BR&gt;Open &lt;EM&gt;SQL Server Query Analyzer&lt;/EM&gt;, connect to the DB server, switch to the &lt;EM&gt;BAMPrimaryImport&lt;/EM&gt; database and open the corresponding BAM view. There you can see the milestones catched.&lt;BR&gt;Now you can calculate execution times with basic date adds and rests. It you want to do it with SQL DATEDIFFs, execute something like this:&lt;BR&gt;&lt;FONT face="Courier New"&gt;SELECT [fields],&lt;BR&gt;DATEDIFF(ms, [Milestone1], [Milestone2]) As Segment1,&lt;BR&gt;DATEDIFF(ms, [Milestone3], [Milestone4]) As Segment2,&lt;BR&gt;(Segment1+Segment2) As TotalTime &lt;BR&gt;&lt;/FONT&gt;&lt;EM&gt;Time estimated: 5 minutes (ouch, 1 minute late!) &lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;well, actually the last part is not true… you cannot use &lt;EM&gt;Segment1 &lt;/EM&gt;and &lt;EM&gt;Segment2 &lt;/EM&gt;aliases in the last line, so you’ll need to repeat the DATEDIFF statements. I've included in this way to improve readability.&lt;BR&gt;Also, another nice way to do it is query the standard views with Excel and play with columns and formulas.&lt;/P&gt;
&lt;P&gt;Now we are ready to launch stress tests and query orchestration execution times easily. The stress tests will be launched via &lt;EM&gt;Application Center Test&lt;/EM&gt;, so we can control concurrent users, test timing, etc.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#000080&gt;&lt;EM&gt;Part 2- I have a Loop and BAM Activity items cannot be assigned&lt;/EM&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/STRONG&gt;The second orchestration has been more tricky. It’s a 1-to-many façade, so it has a loop to send many messages to the legacy systems. Something like:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://davidhurtado.sts.winisp.net/BlogPictures/FunWithBAM_Loop.PNG" atl="simple orchestration sample with loop"&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;The problem&lt;/EM&gt;: Activity items cannot be assigned to shapes inside the loop. Why? because each activity item is a row, and the &lt;EM&gt;Activity Id&lt;/EM&gt; is taken from a message field that is unique for the orchestration.&lt;BR&gt;&lt;EM&gt;The solution&lt;/EM&gt;: use the API to add new BAM rows for each loop iteration. The &lt;EM&gt;Activity Id&lt;/EM&gt; of each child-row will be the parent &lt;EM&gt;Activity Id&lt;/EM&gt; plus the counter of the loop, so they can be related easily in a query.&lt;BR&gt;The BAM API is very straightforward. One object, three methods: The &lt;EM&gt;EventStream&lt;/EM&gt; object is used to create a new activity (&lt;EM&gt;BeginActivity &lt;/EM&gt;method), update rows (&lt;EM&gt;UpdateActivity&lt;/EM&gt;) of close the activity (&lt;EM&gt;EndActivity&lt;/EM&gt;).&lt;BR&gt;You can use a &lt;EM&gt;DirectEventStream&lt;/EM&gt; object that writes the data in the &lt;EM&gt;BAMPrimaryImport&lt;/EM&gt; database directly. This can impact the performance because it’s synchronous.&lt;BR&gt;You can either use the &lt;EM&gt;BufferedEventStream&lt;/EM&gt; object that use a asynchronous store-and-forward. It does not guarantee that the event will be inserted in BAM immediately, but it does not affect caller performance.&lt;BR&gt;Here is the tricky thing: There is a property called &lt;EM&gt;ConnectionString&lt;/EM&gt; that points to the database. If you use the &lt;EM&gt;DirectEventStream&lt;/EM&gt;, &lt;EM&gt;ConnectionString&lt;/EM&gt; points to &lt;EM&gt;BAMPrimaryImport&lt;/EM&gt; database. &lt;STRONG&gt;But&lt;/STRONG&gt; if you use &lt;EM&gt;BufferedEventStream&lt;/EM&gt;, its &lt;EM&gt;ConnectionString&lt;/EM&gt; points to the &lt;EM&gt;MessageBox&lt;/EM&gt; database, because it’s used for store-and-forward.&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;My code between the orchestration and a helper component does more or less the following:&lt;BR&gt;For each loop iteration:&lt;BR&gt;-&amp;nbsp;Begin an new Activity, using [ActivityId].[LoopCounter]&lt;BR&gt;-&amp;nbsp;Update with a milestone before sending to legacy&lt;BR&gt;-&amp;nbsp;Update with a milestone after receiving from legacy&lt;BR&gt;-&amp;nbsp;Close the Activity&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;So, for each orchestration instance, I have in the BAM database:&lt;BR&gt;-&amp;nbsp;One row with&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Orchestration Activity Id&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Milestones for BeginOrch and EndOrch&lt;BR&gt;- Many “&lt;EM&gt;child&lt;/EM&gt;” rows (the loop) with&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Orchestration Activity Id + Counter&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Milestones for BeginSend and EndReceive&lt;/P&gt;The query to aggregate everything (courtesy of &lt;A href="http://blogs.clearscreen.com/ragc"&gt;eXtreme.net&lt;/A&gt;, because I don’t have quick Transact/SQL skills), return a single row with the calculated fields for &lt;EM&gt;TotalTime&lt;/EM&gt; and &lt;EM&gt;TotalTimeWithoutLegacyStuff&lt;/EM&gt;. It uses DATEDIFF for the differences, and SUBSTRING to relate different parent and child Activity IDs 
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=433244" width="1" height="1"&gt;</description></item><item><title>Calling A Receive Pipeline Inside an Orchestration in BizTalk 2006</title><link>http://blogs.msdn.com/dhtoran/archive/2005/06/17/430048.aspx</link><pubDate>Fri, 17 Jun 2005 02:35:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:430048</guid><dc:creator>dhtoran</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/dhtoran/comments/430048.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dhtoran/commentrss.aspx?PostID=430048</wfw:commentRss><description>&lt;P&gt;Impresive! from &lt;A href="http://geekswithblogs.net/sthomas/archive/2005/06/16/44023.aspx"&gt;Steve W Thomas&lt;/A&gt;:&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;EM&gt;For starter, why would you want to call a Receive Pipeline from within an Orchestration?&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;I had to struggle for a bit to come up with a good reason… I can find it useful in debatching Scenarios that require mapping prior to debatching or for debatching into smaller batches using a map.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;I could also find it useful when working with flat file.&lt;o:p&gt;&lt;/o:p&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;FONT color=#000000&gt;&lt;EM&gt;[...]&lt;/EM&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;EM&gt;&lt;SPAN&gt;Super Cool:&lt;/SPAN&gt;&lt;SPAN&gt; Supports receiving multiple messages returned from the pipeline and can use enumeration to process each message.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;more on &lt;A href="http://geekswithblogs.net/sthomas/archive/2005/06/16/44023.aspx"&gt;his blog&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=430048" width="1" height="1"&gt;</description></item></channel></rss>