<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>- Orchestrations</title>
        <link>http://geekswithblogs.net/LeonidGaneline/category/5982.aspx</link>
        <description>- Orchestrations</description>
        <language>en-US</language>
        <copyright>Leonid Ganeline</copyright>
        <managingEditor>leo.gan.57@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>BizTalk: xpath: How to work with empty and Null elements in Orchestration</title>
            <link>http://geekswithblogs.net/LeonidGaneline/archive/2009/11/17/biztalk-xpath-how-to-work-with-empty-and-null-elements.aspx</link>
            <description>&lt;div&gt;The problem is with three Empty-Null cases.&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;Is it possible to separate all these cases in Expression shapes of the Orchestration?&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;For example, we have the record with &amp;lt;name&amp;gt; element, in such flawors:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;p&gt; &lt;font color="#3333ff"&gt;case: "NonEmpty"&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;ns0:People&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;br /&gt;
    &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;ns0:Name&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;Name_0&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;ns0:Name&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;br /&gt;
    &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;ns0:IsDependent&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;IsDependent_0&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;ns0:IsDependent&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;br /&gt;
&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;..&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#3333ff"&gt;case: "Empty"&lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt; &amp;lt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;ns0:People&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;br /&gt;
    &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;ns0:Name&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;ns0:Name&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;br /&gt;
    &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;ns0:IsDependent&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" size="2"&gt;IsDependent_0&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;ns0:IsDependent&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;br /&gt;
&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;..&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;case: "OneTag"&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;ns0:People&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;br /&gt;
    &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;ns0:Name/&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&lt;br /&gt;
    &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;ns0:IsDependent&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" size="2"&gt;IsDependent_0&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;ns0:IsDependent&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;br /&gt;
&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;..&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;case: "Null"&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;ns0:People&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;br /&gt;
   &lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;!-- NO NODE: &lt;/font&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;&lt;font color="#008000" size="2"&gt;&amp;lt;ns0:Name&amp;gt;Name_0&amp;lt;/ns0:Name&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;--&amp;gt;&lt;br /&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;    &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;ns0:IsDependent&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" size="2"&gt;IsDependent_0&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;ns0:IsDependent&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;br /&gt;
&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;..&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;strong&gt;Is it possible to separate all these cases in Expression shapes of the Orchestration?&lt;br /&gt;
&lt;/strong&gt;&lt;/div&gt;
&lt;p&gt;There is no information into the MSDN about this [&lt;em&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa561906(BTS.10).aspx"&gt;http://msdn.microsoft.com/en-us/library/aa561906(BTS.10).aspx&lt;/a&gt;&lt;/em&gt;]&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;I tried to use the xpath() function in two variants, one with "string(xpath_expression)" second with "xpath_expression"&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;div&gt;&lt;font color="#000000"&gt;Expression Shape:&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font color="#000000"&gt;[&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color: #808080"&gt;System.Diagnostics.Trace.WriteLine("== with string() ====================================================================");&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color: #808080"&gt;var_xpathString = "&lt;font color="#cc0000"&gt;string(&lt;/font&gt;/*[local-name()='Root' and namespace-uri()='http://MapTest.IncPerson']/*[local-name()='People' and namespace-uri()='http://MapTest.IncPerson']/*[local-name()='Name' and namespace-uri()='http://MapTest.IncPerson']&lt;font color="#cc0000"&gt;)&lt;/font&gt;";&lt;/span&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;span style="color: #808080"&gt;System.Diagnostics.Trace.WriteLine("[" + System.Convert.ToString(xpath (msg_SourceRoot, &lt;span style="color: #808080"&gt;var_xpathString&lt;/span&gt;)) + "]");&lt;br /&gt;
&lt;br /&gt;
if ( xpath (msg_SourceRoot, &lt;span style="color: #808080"&gt;var_xpathString&lt;/span&gt;) == null) &lt;br /&gt;
    { System.Diagnostics.Trace.WriteLine("Name == null"); }&lt;/span&gt;&lt;span style="color: #808080"&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color: #808080"&gt;else if ( xpath (msg_SourceRoot, &lt;span style="color: #808080"&gt;var_xpathString&lt;/span&gt;) == "") &lt;br /&gt;
    { System.Diagnostics.Trace.WriteLine("Name == Empty");}&lt;br /&gt;
&lt;/span&gt;
&lt;div&gt;&lt;span style="color: #808080"&gt;else&lt;br /&gt;
    { System.Diagnostics.Trace.WriteLine("Name != null &amp;amp;&amp;amp; Name != Empty"); }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color: #808080"&gt;&lt;br /&gt;
System.Diagnostics.Trace.WriteLine("-- no string() --------------------------------------------------------------------");&lt;br /&gt;
&lt;/span&gt;&lt;span style="color: #808080"&gt;&lt;span style="color: #808080"&gt;var_xpathString = "/*[local-name()='Root' and namespace-uri()='http://MapTest.IncPerson']/*[local-name()='People' and namespace-uri()='http://MapTest.IncPerson']/*[local-name()='Name' and namespace-uri()='http://MapTest.IncPerson']";&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
System.Diagnostics.Trace.WriteLine("[" + System.Convert.ToString(xpath (msg_SourceRoot, &lt;span style="color: #808080"&gt;&lt;span style="color: #808080"&gt;var_xpathString&lt;/span&gt;&lt;/span&gt;)) + "]");&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color: #808080"&gt;&lt;br /&gt;
if ( xpath (msg_SourceRoot, &lt;span style="color: #808080"&gt;&lt;span style="color: #808080"&gt;var_xpathString&lt;/span&gt;&lt;/span&gt;) == null) &lt;br /&gt;
    { System.Diagnostics.Trace.WriteLine("Name == null"); }&lt;br /&gt;
&lt;/span&gt;
&lt;div&gt;&lt;span style="color: #808080"&gt;else if ( xpath (msg_SourceRoot, &lt;span style="color: #808080"&gt;&lt;span style="color: #808080"&gt;var_xpathString&lt;/span&gt;&lt;/span&gt;) == "") &lt;br /&gt;
    { System.Diagnostics.Trace.WriteLine("Name == Empty"); }&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color: #808080"&gt;else&lt;br /&gt;
    { System.Diagnostics.Trace.WriteLine("Name != null &amp;amp;&amp;amp; Name != Empty");}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;font color="#000000"&gt;&lt;span id="1258502831973E" style="display: none"&gt; &lt;/span&gt;]&lt;/font&gt;&lt;/div&gt;
&lt;p&gt;I.e. the "string(xpath_expression)" expression is used in the firs section, the"xpath_expression" is used  in the second.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Result is:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#cc9933"&gt;"NonEmpty" ==&lt;font color="#808080"&gt; with string() &lt;/font&gt;==================================================================== &lt;br /&gt;
[Name_0] &lt;br /&gt;
Name != null &amp;amp;&amp;amp; Name != Empty &lt;br /&gt;
--&lt;font color="#808080"&gt; no string() &lt;/font&gt;-------------------------------------------------------------------- &lt;br /&gt;
[Microsoft.XLANGs.Core.Part+ArrayBasedXmlNodeList] &lt;br /&gt;
Name != null &amp;amp;&amp;amp; Name != Empty &lt;br /&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#cc9933"&gt;"Empty"==&lt;font color="#808080"&gt; with string() &lt;/font&gt;==================================================================== &lt;br /&gt;
[] &lt;br /&gt;
Name == Empty &lt;br /&gt;
--&lt;font color="#808080"&gt; no string() &lt;/font&gt;-------------------------------------------------------------------- &lt;br /&gt;
[Microsoft.XLANGs.Core.Part+ArrayBasedXmlNodeList] &lt;br /&gt;
Name != null &amp;amp;&amp;amp; Name != Empty &lt;br /&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#cc9933"&gt;"OneTag"==&lt;font color="#808080"&gt; with string() &lt;/font&gt;==================================================================== &lt;br /&gt;
[] &lt;br /&gt;
Name == Empty &lt;br /&gt;
--&lt;font color="#808080"&gt; no string() &lt;/font&gt;-------------------------------------------------------------------- &lt;br /&gt;
[Microsoft.XLANGs.Core.Part+ArrayBasedXmlNodeList] &lt;br /&gt;
Name != null &amp;amp;&amp;amp; Name != Empty &lt;br /&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#cc9933"&gt;"Null"==&lt;font color="#808080"&gt; with string() &lt;/font&gt;==================================================================== &lt;br /&gt;
[] &lt;br /&gt;
Name == Empty &lt;br /&gt;
--&lt;font color="#808080"&gt; no string() &lt;/font&gt;-------------------------------------------------------------------- &lt;br /&gt;
[] &lt;br /&gt;
Name == null &lt;/font&gt;&lt;/p&gt;
&lt;div&gt;&lt;strong&gt;&lt;font size="2" face="Arial"&gt;&lt;font size="2" face="Arial"&gt;Conclusion:&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;font size="2" face="Arial"&gt;&lt;font size="2" face="Arial"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size="2" face="Arial"&gt;&lt;font size="2" face="Arial"&gt;* I cannot separate the cases "Empty" and "OneTag"&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;* I can separate the cases "Empty and "Null" with "xpath_expression", not with "string(xpath_expression)" expression&lt;br /&gt;
* "Null" case does not throw an exception.&lt;br /&gt;
* xpath expression inside string() works fine to get all three cases ("Empty", "OneTag", "Null") under one "if" statement. And here it returns only "" (Empty string).&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136371"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136371" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/LeonidGaneline/aggbug/136371.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Leonid Ganeline</dc:creator>
            <guid>http://geekswithblogs.net/LeonidGaneline/archive/2009/11/17/biztalk-xpath-how-to-work-with-empty-and-null-elements.aspx</guid>
            <pubDate>Tue, 17 Nov 2009 23:55:12 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/LeonidGaneline/comments/136371.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/LeonidGaneline/archive/2009/11/17/biztalk-xpath-how-to-work-with-empty-and-null-elements.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/LeonidGaneline/comments/commentRss/136371.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/LeonidGaneline/services/trackbacks/136371.aspx</trackback:ping>
        </item>
        <item>
            <title>BizTalk: Naming convention for the BizTalk solutions</title>
            <link>http://geekswithblogs.net/LeonidGaneline/archive/2009/07/31/biztalk-naming-convention-for-the-biztalk-solutions.aspx</link>
            <description>&lt;div&gt;
&lt;div style="BORDER-BOTTOM: #4f81bd 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 4pt; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in"&gt;
&lt;div style="MARGIN: 0in 0in 15pt"&gt;&lt;a name="_Toc232937376"&gt;&lt;span style="FONT-SIZE: 20pt"&gt;&lt;font color="#17365d"&gt;Naming convention for the BizTalk solutions&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;Version 2.1, 2009-08-09&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 24pt 0in 0pt 0.3in"&gt;&lt;strong&gt;&lt;font size="6"&gt;&lt;font color="#e36c0a"&gt;&lt;span&gt;&lt;span&gt;&lt;font size="5"&gt;1&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="5"&gt;How to use this document&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;To accommodate this document for the specific solution:&lt;/font&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 37.8pt"&gt;&lt;span&gt;&lt;span&gt;&lt;font size="2"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt;Create the real names in Appendix or create a separate Dictionary document.  See Instructions in Appendix.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 37.8pt"&gt;&lt;span&gt;&lt;span&gt;&lt;font size="2"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt;Review the text, marked with &lt;strong&gt;[TBD] &lt;/strong&gt;flag, and change it for your case.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 24pt 0in 0pt 0.3in"&gt;&lt;strong&gt;&lt;font size="6"&gt;&lt;a name="_Toc232937380"&gt;&lt;span&gt;&lt;font color="#e36c0a"&gt;&lt;span&gt;&lt;span&gt;&lt;font size="5"&gt;2&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="5"&gt;General rules&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt" align="left"&gt;&lt;span&gt;&lt;font size="2"&gt;The “Naming guidelines for the .NET Framework types” [ &lt;/font&gt;&lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/xzf533w0(VS.71).aspx"&gt;&lt;span&gt;&lt;font size="2"&gt;http://msdn.microsoft.com/en-us/library/xzf533w0(VS.71).aspx&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;span&gt;&lt;font size="2"&gt; ] are used as a basis of this document. Also see the “Naming Convention” in Wikipedia [ &lt;/font&gt;&lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Identifier_naming_convention"&gt;&lt;span&gt;&lt;font size="2"&gt;http://en.wikipedia.org/wiki/Identifier_naming_convention&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;span&gt;&lt;font size="2"&gt; ]&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;span&gt;&lt;font size="2"&gt;Names should be short, sortable, readable, discoverable, and self-described.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;span&gt;&lt;font size="2"&gt;The main test for constructing name rule should be in questions:&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;font size="2"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt;In what kind of &lt;strong&gt;places&lt;/strong&gt; can I see this name?&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;font size="2"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt;How &lt;strong&gt;easily&lt;/strong&gt; can I work with the name in these places? &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt" align="left"&gt;&lt;span&gt;&lt;font size="2"&gt;“&lt;strong&gt;Work&lt;/strong&gt;” means to read, to find, and to understand sense without errors. Usually we work with names in lists. Think about these places like about namespaces in programming languages. &lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;span&gt;&lt;strong&gt;&lt;font size="2"&gt;Short names:&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0in" type="disc"&gt;
    &lt;li style="MARGIN: 0in 0in 10pt"&gt;&lt;span&gt;&lt;font size="2"&gt;Create as short as possible name. &lt;/font&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li style="MARGIN: 0in 0in 10pt"&gt;&lt;span&gt;&lt;font size="2"&gt;Use abbreviations only in restricted cases. See article the “Abbreviations&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="LINE-HEIGHT: 115%; COLOR: black; FONT-SIZE: 8pt"&gt;”&lt;/span&gt;&lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/141e06ef(VS.71).aspx"&gt;&lt;font size="2"&gt;&lt;span&gt;http://msdn.microsoft.com/en-us/library/141e06ef(VS.71).aspx&lt;/span&gt;&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;
    &lt;li style="MARGIN: 0in 0in 10pt"&gt;&lt;span&gt;&lt;font size="2"&gt;Use prefixes and suffixes only to differentiate names.&lt;/font&gt;&lt;/span&gt; &lt;/li&gt;
    &lt;li style="MARGIN: 0in 0in 10pt"&gt;&lt;span&gt;&lt;font size="2"&gt;If you see one word in several places of the full name, consider this as a bad signal. Try to redesign the terms used in the names.&lt;/font&gt;&lt;/span&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;span&gt;&lt;strong&gt;&lt;font size="2"&gt;Sortable:&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0in" type="disc"&gt;
    &lt;li style="MARGIN: 0in 0in 10pt"&gt;&lt;span&gt;&lt;font size="2"&gt;Create “sortable” name. That means using more generic/important part of the name in the leftmost position. For example, prefer the name Folder_20090515 than the name Folder_05_15_2009.&lt;/font&gt;&lt;/span&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;span&gt;&lt;strong&gt;&lt;font size="2"&gt;Readable:&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;span&gt;&lt;font size="2"&gt;See &lt;/font&gt;&lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Typography"&gt;&lt;font size="2"&gt;&lt;span&gt;http://en.wikipedia.org/wiki/Typography&lt;/span&gt;&lt;/font&gt;&lt;/a&gt;&lt;span&gt;&lt;font size="2"&gt;  &lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0in" type="disc"&gt;
    &lt;li style="MARGIN: 0in 0in 10pt"&gt;&lt;span&gt;&lt;font size="2"&gt;Use the name case compatible with the well-known practices in programming languages/protocols with respect to upper and lower cases. For instance, the XML namespaces (URL) should be in lower case format, but the other names should be in the Pascal format. See the “Capitalization Styles” article  [&lt;/font&gt;&lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/x2dbyw72(VS.71).aspx"&gt;&lt;font size="2"&gt;&lt;span&gt;http://msdn.microsoft.com/en-us/library/x2dbyw72(VS.71).aspx&lt;/span&gt;&lt;/font&gt;&lt;/a&gt;&lt;span&gt;&lt;font size="2"&gt; ]&lt;br /&gt;
    If the word with specific case is widely used in company, don’t force to change it to the Pascal format.&lt;/font&gt;&lt;/span&gt; &lt;/li&gt;
    &lt;li style="MARGIN: 0in 0in 10pt"&gt;&lt;span&gt;&lt;font size="2"&gt;Decorate infixes, prefixes or suffixes with lower case and with undrscore. For example: &lt;strong&gt;TicketBatch_type&lt;/strong&gt;, &lt;strong&gt;Source1 _and_Source2_to_Target, msg_MyRequest&lt;/strong&gt;.&lt;/font&gt;&lt;/span&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;span&gt;&lt;strong&gt;&lt;font size="2"&gt;Discoverable:&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0in" type="disc"&gt;
    &lt;li style="MARGIN: 0in 0in 10pt"&gt;&lt;span&gt;&lt;font size="2"&gt;The name should be discoverable. That means we easily should understand by the name of the artifact where we can find the artifacts or additional information about it. Names should link artifacts. Say, the schemas with XML namespace the &lt;strong&gt;http://domain.company.com/solution/project/2009-05-14&lt;/strong&gt; definitely should be in the project the &lt;strong&gt;Company.Domain.Solution.Project&lt;/strong&gt; and in assembly the &lt;strong&gt;Company.Domain.Solution.Project.dll&lt;/strong&gt;.&lt;/font&gt;&lt;/span&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;span&gt;&lt;strong&gt;&lt;font size="2"&gt;Self-described (Semantics):&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0in" type="disc"&gt;
    &lt;li style="MARGIN: 0in 0in 10pt"&gt;&lt;span&gt;&lt;font size="2"&gt;Create name form the “business point of view” not form the “developer point of view”, especially the name exposed outside solution.&lt;/font&gt;&lt;/span&gt; &lt;/li&gt;
    &lt;li style="MARGIN: 0in 0in 10pt"&gt;&lt;span&gt;&lt;font size="2"&gt;Don’t use generic terms in the names. Examples: Send, Receive, Service, Message, Transformation, Schema, Map, Orchestration, BizTalk. &lt;/font&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li style="MARGIN: 0in 0in 10pt"&gt;&lt;span&gt;&lt;font size="2"&gt;Place a frequently used term into the shared dictionary with comment about where do use it and do not use.&lt;/font&gt;&lt;/span&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;span&gt;&lt;a name="_Toc232937384"&gt;&lt;strong&gt;&lt;font size="2"&gt;Full, Short, and Composited names&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;font size="2"&gt;:&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0in" type="disc"&gt;
    &lt;li style="MARGIN: 0in 0in 10pt"&gt;&lt;span&gt;&lt;font size="2"&gt;Several artifacts have the &lt;strong&gt;full names&lt;/strong&gt; (composited names) and &lt;strong&gt;short names&lt;/strong&gt;. Usually we can easily understand what name we use in the specific context.&lt;/font&gt;&lt;/span&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;font size="2"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt;If we need to add one or more logical grouping into the name, use the &lt;strong&gt;composited names&lt;/strong&gt; created with words separated with dot. In specific contexts the separation symbol can be different, like underscore, dash or backslash. Each &amp;lt;…ShortName&amp;gt; can be a composite name. Composite names can be used for each part of the full names, as Company, Domain, Solution, and Project. For example, you can use name the&lt;strong&gt; Schemas.Niem&lt;/strong&gt; for the project short name.&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 24pt 0in 0pt 0.3in"&gt;&lt;strong&gt;&lt;font size="6"&gt;&lt;font color="#e36c0a"&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;font size="5"&gt;3&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="5"&gt;General names&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 10pt 0in 0pt 0.4in"&gt;&lt;strong&gt;&lt;font size="5"&gt;&lt;font color="#e36c0a"&gt;&lt;span&gt;&lt;font size="3"&gt;3.1&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;font size="3"&gt;Syntax&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;Company&amp;gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;Domain&amp;gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;Solution&amp;gt; =:&lt;br /&gt;
           &amp;lt;Company&amp;gt;.&amp;lt;Domain&amp;gt;.&amp;lt;SolutionShortName&amp;gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;Project&amp;gt; =:&lt;br /&gt;
           &amp;lt;Solution&amp;gt;.&amp;lt;ProjectShortName&amp;gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 10pt 0in 0pt 0.4in"&gt;&lt;strong&gt;&lt;font size="5"&gt;&lt;font color="#e36c0a"&gt;&lt;span&gt;&lt;span&gt;&lt;font size="3"&gt;3.2&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="3"&gt;Examples&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.25in"&gt;&lt;span&gt;&lt;span&gt;&lt;font size="2"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt;Solution name: short name – &lt;strong&gt;MySolution&lt;/strong&gt;, &lt;strong&gt; &lt;/strong&gt;full name - &lt;strong&gt;MyCompany.MyDomain.MySolution&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.25in"&gt;&lt;span&gt;&lt;span&gt;&lt;font size="2"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt;Project name: short composite name – &lt;strong&gt;Schemas.Niem&lt;/strong&gt;; full name - &lt;strong&gt;MyCompany.MyDomain.MySolution.Schemas.Niem&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 24pt 0in 0pt 0.3in" align="left"&gt;&lt;strong&gt;&lt;font size="6"&gt;&lt;font color="#e36c0a"&gt;&lt;span&gt;&lt;span&gt;&lt;font size="5"&gt;4&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="5"&gt;Names inside BizTalk Solutions&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 10pt 0in 0pt 0.4in"&gt;&lt;strong&gt;&lt;font size="5"&gt;&lt;a name="_Toc232937382"&gt;&lt;font color="#e36c0a"&gt;&lt;span&gt;&lt;font size="3"&gt;4.1&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="3"&gt;Solutions, BizTalk application&lt;/font&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt;&lt;font color="#e36c0a"&gt;s&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;We use term the &lt;strong&gt;solution&lt;/strong&gt; in the Visual Studio meaning, it is a name of the solution we see in the Solution Explorer window in the Visual Studio. Sometimes we mix &lt;strong&gt;solution&lt;/strong&gt; and &lt;strong&gt;project&lt;/strong&gt; terms but not in this document. &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;BizTalk application is named as solution.&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;Solution&amp;gt; =:&lt;br /&gt;
           &amp;lt;Company&amp;gt;.&amp;lt;Domain&amp;gt;.&amp;lt;SolutionShortName&amp;gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;ApplicationName&amp;gt; =: &amp;lt;Solution&amp;gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;For example, for the &lt;strong&gt;MySolution &lt;/strong&gt;solution use the &lt;strong&gt;MyCompany.MyDomain.MySolution &lt;/strong&gt;full name.&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 10pt 0in 0pt 0.4in"&gt;&lt;strong&gt;&lt;font size="5"&gt;&lt;a name="_Toc232937383"&gt;&lt;font color="#e36c0a"&gt;&lt;span&gt;&lt;font size="3"&gt;4.2&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="3"&gt;Projects&lt;/font&gt;&lt;/font&gt;&lt;/a&gt;&lt;span&gt;&lt;font color="#e36c0a" size="3"&gt;, Assemblies&lt;/font&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font color="#e36c0a"&gt;&lt;span&gt;, .NET namespaces&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;We use term the &lt;strong&gt;project&lt;/strong&gt; in the Visual Studio meaning, it is a name of the project we see in the Solution Explorer window in the Visual Studio.&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;Project&amp;gt; =:&lt;br /&gt;
            &amp;lt;Solution&amp;gt;.&amp;lt;ProjectShortName&amp;gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;AssemblyName&amp;gt;           =: &amp;lt;Project&amp;gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;Namespace&amp;gt;                =: &amp;lt;Project&amp;gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;For example, for the &lt;strong&gt;MyProject&lt;/strong&gt; project use the &lt;strong&gt;MyCompany.MyDomain.MySolution.MyProject&lt;/strong&gt; project full name, the &lt;strong&gt;MyCompany.MyDomain.MySolution.MyProject&lt;/strong&gt; assemblyname, and the &lt;strong&gt;MyCompany.MyDomain.MySolution.MyProject&lt;/strong&gt; namespace.&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;We should separate the .NET namespaces and the XML namespaces. They are different things and used in different places. For brevity we use term the &lt;strong&gt;namespace&lt;/strong&gt; exactly for the .NET namespace and always use the term the &lt;strong&gt;XML namespaces&lt;/strong&gt; for the XML namespaces.&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;Note: After creating a new project, copy the project name property to the project properties the “Assembly Name” and the “Default Namespace”. &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 10pt 0in 0pt 0.4in"&gt;&lt;strong&gt;&lt;font size="5"&gt;&lt;a name="_Toc232937387"&gt;&lt;font color="#e36c0a"&gt;&lt;span&gt;&lt;font size="3"&gt;4.3&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="3"&gt;Folders&lt;/font&gt;&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;Use the predefined folder structure on all development machines and, if it is possible, on the Test and Product servers. This eliminates the errors and deployment effort because several BizTalk artifacts use the absolute file paths in configuration.&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;SolutionsRootFolder&amp;gt; =: &lt;strong&gt;c:\Solutions&lt;/strong&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;SolutionFolder&amp;gt; =:&lt;br /&gt;
           &amp;lt;SolutionsRootFolder&amp;gt;&lt;strong&gt;\&lt;/strong&gt;&amp;lt;Solution&amp;gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;ProjectFolder&amp;gt; =:&lt;br /&gt;
           &amp;lt;SolutionFolder&amp;gt;&lt;strong&gt;\&lt;/strong&gt;&amp;lt;ProjectShortName&amp;gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt" align="left"&gt;&lt;font size="2"&gt;For example, the &lt;strong&gt;MyCompany.MyDomain.MySolution.MyProject&lt;/strong&gt; project is placed in the &lt;strong&gt;c:\Solutions\MyCompany.MyDomain.MySolution\MyProject&lt;/strong&gt; folder. &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 24pt 0in 0pt 0.3in"&gt;&lt;strong&gt;&lt;font size="6"&gt;&lt;a name="_Toc232937390"&gt;&lt;font color="#e36c0a"&gt;&lt;span&gt;&lt;font size="5"&gt;5&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="5"&gt;XML namespaces&lt;/font&gt;&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;Use very strict rules for the XML namespaces, because the XML documents expose the data interfaces to the outer world. The XML namespaces should follow the industry standards and the corporate standards. The exposed interfaces are immutable, why we should use versioning for XML namespaces. XML namespaces work as global unique identifiers for nodes of the XML documents.&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;We must use the URL or URN formats to XML namespaces. Feel free to use one of these standards. See the “&lt;/font&gt;&lt;a name="title"&gt;&lt;font size="2"&gt;Namespaces in XML 1.0 (Second Edition)&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;”&lt;/font&gt;&lt;a href="http://www.w3.org/TR/xml-names/"&gt;&lt;font size="2"&gt;http://www.w3.org/TR/xml-names/&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt; for more information.&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;[TBD: Here I use &lt;strong&gt;URL&lt;/strong&gt; format because it is widespread and users are more familiar with it. Note two confusing things about using URL as an XML namespace. First, the URLs are used as addresses. URL in XML namespace works mostly as a global unique identifier, not as an address. Second, reverse names order in URLs, for example, not the &lt;/font&gt;&lt;a href="http://com.company.domain/"&gt;&lt;span style="COLOR: windowtext; TEXT-DECORATION: none; text-underline: none"&gt;&lt;font size="2"&gt;http://com.company.domain&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;font size="2"&gt; but &lt;/font&gt;&lt;a href="http://domain.company.com/"&gt;&lt;span style="COLOR: windowtext; TEXT-DECORATION: none; text-underline: none"&gt;&lt;font size="2"&gt;http://domain.company.com&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;font size="2"&gt; .]&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;[TBD: Here I use the URL &lt;strong&gt;reverse&lt;/strong&gt; order for the XML namespaces. Not for the full name but for the “before-solution” part of the name, for the first part of the name before first backslash. If you don’t want to use XML namespaces that works as the web addresses, consider to use the XML namespaces in the generic, nonreversible, sortable order.]&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;Compose the URLs for the XML namespaces in the reversal order like &lt;strong&gt;http://domain.company.com/solution/schemas/2009-05-15 &lt;/strong&gt;and add the “&lt;strong&gt;com&lt;/strong&gt;” part of URL.&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;TargetNamespace&amp;gt; =:&lt;br /&gt;
&lt;strong&gt;           http://&lt;/strong&gt;&amp;lt;Domain&amp;gt;&lt;strong&gt;.&lt;/strong&gt;&amp;lt;Company&amp;gt;&lt;strong&gt;.com/&lt;/strong&gt;&amp;lt;SolutionShortName&amp;gt;&lt;strong&gt;/&lt;/strong&gt;&amp;lt;ProjectShortName&amp;gt;&lt;strong&gt;/&lt;/strong&gt;&amp;lt;Version&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;Version&amp;gt; =:&lt;br /&gt;
            &amp;lt;date&amp;gt; &lt;br /&gt;
           [in YYYY-MM-DD format]&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;[TBD We considered using two version formats. One format is like 1.0.0.1, the format used for the .NET assemblies. See &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/51ket42z.aspx"&gt;&lt;font size="2"&gt;http://msdn.microsoft.com/en-us/library/51ket42z.aspx&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt; . The second version format uses a date. Use the first one only if you can implement strict versioning rules, and in this case you can create/have some version approval procedure. We use here the date format.]&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 10pt 0in 0pt 0.4in"&gt;&lt;strong&gt;&lt;font size="5"&gt;&lt;a name="_Toc232937391"&gt;&lt;font color="#e36c0a"&gt;&lt;span&gt;&lt;font size="3"&gt;5.1&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="3"&gt;Additional Rules for XML namespaces&lt;/font&gt;&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0in" type="disc"&gt;
    &lt;li style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;Use the same XML namespace for all schemas in one project. Schemas in one project (with equal XML namespace) are differentiated by the root node names. Do not place the root node name inside the XML namespace.&lt;/font&gt; &lt;/li&gt;
    &lt;li style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;Use the project creating date for the first versions of all schemas inside project.&lt;/font&gt; &lt;/li&gt;
    &lt;li style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;Use the current date for the second and next versions.&lt;/font&gt; &lt;/li&gt;
    &lt;li style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;Create the new version only if the old one is published to production (test) environment. Do not create new versions inside development cycles.&lt;/font&gt; &lt;/li&gt;
    &lt;li style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;Use the YYYY-MM-DD date format to make the names “sortable”. Do not use MM/DD/YY format.&lt;/font&gt; &lt;/li&gt;
    &lt;li style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;URLs are case-sensitive (Yes, they are!) but do not use the upper case letters in XML namespaces.&lt;/font&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;For example, for the &lt;strong&gt;MyCompany.MyDomain.MySolution &lt;/strong&gt;solution and the&lt;strong&gt; MyProject&lt;/strong&gt; project the XML namespace should be the &lt;strong&gt;http://mydomain.mycompany.com/mysolution/myproject&lt;/strong&gt;/&lt;strong&gt;2009-05-15&lt;/strong&gt; for the first versions of all schemas, if this project was created in 2009-05-15.&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 24pt 0in 0pt 0.3in"&gt;&lt;strong&gt;&lt;font size="6"&gt;&lt;font color="#e36c0a"&gt;&lt;span&gt;&lt;font size="5"&gt;6&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="5"&gt;BizTalk artifacts&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 10pt 0in 0pt 0.4in"&gt;&lt;strong&gt;&lt;font size="5"&gt;&lt;font color="#e36c0a"&gt;&lt;span&gt;&lt;font size="3"&gt;6.1&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="3"&gt;Orchestrations, Schemas, Pipelines&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;Names of these artifacts appear together with BizTalk application name mostly everywhere. We don’t need to use composite names. Use simple names for the names.&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;Note: If you see one word in several places of the full name, consider this as a bad signal. Try to rethink the terms used in the names. I repeat this rule here, because exactly in the full names of orchestrations, schemas and pipelines you can frequently see the repetitive words.&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 10pt 0in 0pt 0.4in"&gt;&lt;strong&gt;&lt;font size="5"&gt;&lt;font color="#e36c0a"&gt;&lt;span&gt;&lt;font size="3"&gt;6.2&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="3"&gt;Maps&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;Map&amp;gt; =:&lt;br /&gt;
        &amp;lt;SourceSchema&amp;gt;_to_&amp;lt;DestinationSchema&amp;gt; [for one-to-one map]&lt;br /&gt;
       &amp;lt;SourceSchema1&amp;gt;_and_&amp;lt;SourceSchema2&amp;gt;_to_&amp;lt;DestinationSchema&amp;gt; [for two-to-one map]&lt;br /&gt;
           …&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;If it is possible do not change the schema names in the map name. If the map name is excessive long, cut the schema names, but use the same cut rule for all map names.&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 10pt 0in 0pt 0.4in"&gt;&lt;strong&gt;&lt;font size="5"&gt;&lt;font color="#e36c0a"&gt;&lt;span&gt;&lt;font size="3"&gt;6.3&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="3"&gt;Ports&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;Ports are the primary artifacts of the BizTalk solution. But in contrast to orchestrations they are used through the BizTalk application boundaries in many places, that is why, we have to use the composite names for the ports like for assemblies. &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;Port&amp;gt; =:&lt;br /&gt;
            &amp;lt;Solution&amp;gt;.&amp;lt;PortShortName&amp;gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;Do we need to separate one and two-way ports and send and receive ports, for example be “R_” or “SR_” prefixes? Do they mix up in lookups or in lists? No. And answer to the first question is “No”, do not use prefixes in the port names.&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;Do we have to use the transport/protocol qualifiers in the port names, like .FILE or .SOAP? No. One port could use several protocols. Moreover port is on the upper level architecture than transport. But for dynamic ports the transport name can be the main part of the port name.&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;Do we have to use message type in the port names, like .Request? No. One port could work with several message types. But frequently the message type can be used for the port name.&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;Try to understand the main purpose of the port and use it in the name. For example, link the port name with transport for dynamic port; or link the port name with the partner name, or with message type.&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt" align="left"&gt;&lt;font size="2"&gt;For example, &lt;strong&gt;MyCompany.MyDomain.MySolution.MyPartner&lt;/strong&gt;. &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 24pt 0in 0pt 0.3in"&gt;&lt;strong&gt;&lt;font size="6"&gt;&lt;a name="_Toc232937394"&gt;&lt;font color="#e36c0a"&gt;&lt;span&gt;&lt;font size="5"&gt;7&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="5"&gt;Orchestration Naming Conventions&lt;/font&gt;&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 10pt 0in 0pt 0.4in"&gt;&lt;strong&gt;&lt;font size="5"&gt;&lt;a name="_Toc232937397"&gt;&lt;font color="#e36c0a"&gt;&lt;span&gt;&lt;span&gt;&lt;font size="3"&gt;7.1&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="3"&gt;Orchestration artifacts&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;Use the prefixes to differentiate the artifacts in the XLang expressions. These artifacts are not usual .NET objects. They are used in different language context and sometime they use different language syntax. Prefixes really help to work with these artifacts.&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;MessageName&amp;gt; =: &lt;br /&gt;
&lt;strong&gt;           msg_&lt;/strong&gt; + &amp;lt;ShortMessageType&amp;gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;VariableName&amp;gt; =: &lt;br /&gt;
&lt;strong&gt;           var_&lt;/strong&gt; + &amp;lt;Name&amp;gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;CorrelationName&amp;gt; =: &lt;br /&gt;
&lt;strong&gt;           cor_&lt;/strong&gt; + &amp;lt;Name&amp;gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;OrchestrationParameter&amp;gt; =: &lt;br /&gt;
&lt;strong&gt;           par_&lt;/strong&gt; + &amp;lt;Name&amp;gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;RoleLink&amp;gt; =: &lt;br /&gt;
&lt;strong&gt;           roleLink_&lt;/strong&gt; + &amp;lt;Name&amp;gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 10pt 0in 0pt 0.4in"&gt;&lt;strong&gt;&lt;font size="5"&gt;&lt;font color="#e36c0a"&gt;&lt;span&gt;&lt;span&gt;&lt;font size="3"&gt;7.2&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="3"&gt;Orchestration artifact types&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;We can use one suffix the “&lt;strong&gt;_type&lt;/strong&gt;” for all different types because different types are seen only in the different lists and never mixed. For instance, we can never see the port types together with message types.&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;ArtifactType&amp;gt; =:&lt;br /&gt;
           &amp;lt;ArtifactName&amp;gt; + “&lt;strong&gt;_type&lt;/strong&gt;”&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 10pt 0in 0pt 0.4in"&gt;&lt;strong&gt;&lt;font size="5"&gt;&lt;a name="_Toc232937396"&gt;&lt;font color="#e36c0a"&gt;&lt;span&gt;&lt;span&gt;&lt;font size="3"&gt;7.3&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="3"&gt;Port Shapes&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;PortName&amp;gt; =: &lt;br /&gt;
           &amp;lt;prefix&amp;gt; + &amp;lt;Name&amp;gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;where&lt;/font&gt;&lt;/div&gt;
&lt;table style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-COLLAPSE: collapse; BORDER-TOP: medium none; BORDER-RIGHT: medium none" border="1" cellspacing="0" cellpadding="0"&gt;
    &lt;tbody&gt;
        &lt;tr style="PAGE-BREAK-INSIDE: avoid; HEIGHT: 48.55pt"&gt;
            &lt;td style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; PADDING-RIGHT: 5.4pt; HEIGHT: 48.55pt; BORDER-TOP: black 1pt solid; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" valign="top"&gt;
            &lt;div style="MARGIN: 0in 0in 10pt"&gt; &lt;/div&gt;
            &lt;/td&gt;
            &lt;td style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; PADDING-RIGHT: 5.4pt; HEIGHT: 48.55pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-TOP: black 1pt solid; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" valign="top"&gt;
            &lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;Send port&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; PADDING-RIGHT: 5.4pt; HEIGHT: 48.55pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-TOP: black 1pt solid; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" valign="top"&gt;
            &lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;Receive port&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 77.85pt; PADDING-RIGHT: 5.4pt; HEIGHT: 48.55pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-TOP: black 1pt solid; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" valign="top" width="130"&gt;
            &lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;Send-Receive &lt;br /&gt;
            (Solicit-Response) port &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 96.75pt; PADDING-RIGHT: 5.4pt; HEIGHT: 48.55pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-TOP: black 1pt solid; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" valign="top" width="161"&gt;
            &lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;Receive-Send &lt;br /&gt;
            (Request- Response) port&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="PAGE-BREAK-INSIDE: avoid"&gt;
            &lt;td style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-RIGHT: 5.4pt; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" valign="top"&gt;
            &lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;prefix&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-RIGHT: 5.4pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" valign="top"&gt;
            &lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;S_+&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-RIGHT: 5.4pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" valign="top"&gt;
            &lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;R_+&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #d4d0c8; PADDING-LEFT: 5.4pt; WIDTH: 77.85pt; PADDING-RIGHT: 5.4pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" valign="top" width="130"&gt;
            &lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;SR_+&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #d4d0c8; PADDING-LEFT: 5.4pt; WIDTH: 96.75pt; PADDING-RIGHT: 5.4pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in" valign="top" width="161"&gt;
            &lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;RS_+&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;For example, &lt;strong&gt;S_ OrderAck&lt;/strong&gt;.&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;Notes:&lt;/font&gt;&lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0in" type="disc"&gt;
    &lt;li style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;The Port shapes are the real names, the names of the .NET objects. We can’t use spaces inside. &lt;/font&gt;&lt;/li&gt;
    &lt;li style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;In the Orchestration view there are generic lists the “Ports” and the “Port types” that’s why we have to distinguish the ports with different Communication directions and pattern. &lt;/font&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="MARGIN: 10pt 0in 0pt 0.4in"&gt;&lt;strong&gt;&lt;font size="5"&gt;&lt;font color="#e36c0a"&gt;&lt;span&gt;&lt;span&gt;&lt;font size="3"&gt;7.4&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="3"&gt;Orchestration Workflow Shapes&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;strong&gt;&lt;span style="LINE-HEIGHT: 115%"&gt;&lt;font size="2"&gt;Problems with orchestration shapes:&lt;/font&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-SIZE: 8pt"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt;Shapes are too small to display long names (only 12-18 characters). &lt;/font&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-SIZE: 12pt"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt;&lt;span style="LINE-HEIGHT: 115%"&gt;We have to “hover mouse over” shape or click shape to show Properties window to "understand" this shape, to understand what message it is processed. &lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;strong&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Useful features:&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-SIZE: 12pt"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt;&lt;span style="LINE-HEIGHT: 115%"&gt;Feel free to use the same names for different shapes and use spaces inside the shape names. Shape names are not the “real programming names”. In reality they are the descriptions (excluding the Port shapes names); they are used only for description and for nothing more. &lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span&gt;&lt;font size="2"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt;&lt;strong&gt;&lt;span style="LINE-HEIGHT: 115%"&gt;Icons &lt;/span&gt;&lt;/strong&gt;on shapes&lt;span style="LINE-HEIGHT: 115%"&gt; give us the useful information. Do not repeat the “icon information” by words. For example, if we change a name of Construction shape from “Construct Input message” to “Input message” we get more clear definition because we have the Construct icon + name. &lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span&gt;&lt;font size="2"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%"&gt;&lt;font size="2"&gt;Shape names are used only in Orchestration Editor (excluding the Port shapes names). We don’t have to force any rules to make the “well-sorted” names (it's the main purpose of the prefixes). &lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;span&gt;&lt;font size="2"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%"&gt;&lt;font size="2"&gt;Use a Group shape to add description to a group of related workflow shapes. Group shape will display as much text as you want. Group shapes add a lot of documentation value to the orchestration. &lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 10pt 0in 0pt 0.5in"&gt;&lt;strong&gt;&lt;font size="4"&gt;&lt;font color="#4f81bd"&gt;&lt;span&gt;&lt;font size="2"&gt;7.4.1&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt; Rules for shapes&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;span style="LINE-HEIGHT: 115%"&gt;&lt;font size="2"&gt;Purpose of the orchestration and the most of the shapes is in processing the messages. We can unambiguously describe the messages by the message type. That is why in the most cases using the message type names gives us the main information about this message. That is why in the most cases using the message type names as the shape names gives us the main information about this shape, about message flow, about whole orchestration processing. Send shape with name "OrderAck" means ... exactly!&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Whenever it is possible use the MessageType of the processed message as a shape name.&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Do not repeat the type of shape icon by word.&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Do not repeat words from external shape name into the internal, nested shape name.&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Feel free to use spaces inside the shape names.&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Feel free to repeat the shape names.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 10pt 0in 0pt 0.5in"&gt;&lt;strong&gt;&lt;font size="4"&gt;&lt;font color="#4f81bd"&gt;&lt;span&gt;&lt;font size="2"&gt;7.4.2&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt; Rules for specific shapes&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;strong&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Construct&lt;/span&gt;&lt;/strong&gt;&lt;span style="FONT-SIZE: 10pt"&gt;, &lt;strong&gt;Receive,&lt;/strong&gt; and &lt;strong&gt;Send:&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="FONT-SIZE: 10pt"&gt;= name of the processed message without “msg_” prefix.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN-LEFT: 0.5in"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;For example, [&lt;strong&gt;OrderAck]&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN-LEFT: 0.5in"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Note: it’s easy to set and maintain this name: just copy part of it from Properties/Messages Constructed to Properties/Name. For example, from “msg_OrderAck” copy “OrderAck”&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;&lt;span style="LINE-HEIGHT: 115%"&gt; &lt;strong&gt;Transform&lt;/strong&gt;:&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;= “&lt;strong&gt;from &lt;/strong&gt;“ + name of the Source message &lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN-LEFT: 0.5in"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;For example, [&lt;strong&gt;from OrderAck&lt;/strong&gt;] &lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN-LEFT: 0.5in"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Note: it’s easy to set and maintain this name: just copy it (or part of it) from Properties/Input Messages to Properties/Name. For example: From “msg_OrderAck” copy “OrderAck”&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;strong&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Assignment&lt;/span&gt;&lt;/strong&gt;&lt;span style="FONT-SIZE: 10pt"&gt;:&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;No strict rules, only advice:&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Name it like the methods in classes. But cut a verb if it possible. Use “set” and “get” if it possible.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN-LEFT: 0.5in"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;For example, [&lt;strong&gt;set OrderAck&lt;/strong&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 24pt 0in 0pt 0.3in"&gt;&lt;strong&gt;&lt;font size="6"&gt;&lt;a name="_Toc232937388"&gt;&lt;font color="#e36c0a"&gt;&lt;span&gt;&lt;span&gt;&lt;font size="5"&gt;8&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="5"&gt;BizTalk artifact and project places&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;Consider this chapter as “out-of-scope”. I placed it here because we discussed the folder names here. The files placement is a separate and wealthy topic. Here are only main considerations.&lt;/font&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span&gt;&lt;span&gt;&lt;font size="2"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt;If the project is simple, place all files in one project. &lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span&gt;&lt;span&gt;&lt;font size="2"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt;If we want to use some files for references from other projects, place these files in separate project.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span&gt;&lt;span&gt;&lt;font size="2"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt;Place artifacts to different projects if these artifacts have different refactoring lifecycle. For example, the Niem standard schemas are never changed then place them to the separate project. The maps are changed more frequently than schemas and we could place schemas and maps to the separate projects. &lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;span&gt;&lt;span&gt;&lt;font size="2"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt;Don’t place the technology-specific schemas and maps away from the orchestration they used for. For example, for the SQL port we generate a (technology) schema and usually create the map to transform the original schema to this (technology) schema. Place these schema and map together with orchestration, not into the Schemas/Maps projects.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 10pt 0in 0pt 0.4in"&gt;&lt;strong&gt;&lt;font size="5"&gt;&lt;a name="_Toc232937389"&gt;&lt;font color="#e36c0a"&gt;&lt;span&gt;&lt;span&gt;&lt;font size="3"&gt;8.1&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="3"&gt;Project subfolders&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;In the BizTalk project folder add the subfolder the &lt;strong&gt;Tests&lt;/strong&gt;. Use it to the unit tests. Inside the Tests create subfolders: &lt;strong&gt;In&lt;/strong&gt;, &lt;strong&gt;Out&lt;/strong&gt;, &lt;strong&gt;TestMessages&lt;/strong&gt;.&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;For the BizTalk project with different artifact files you can add the solution folders the &lt;strong&gt;Schemas, Orchestrations,&lt;/strong&gt; and &lt;strong&gt;Maps&lt;/strong&gt; in case you have several schemas, orchestrations, and maps there.               &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 24pt 0in 0pt 0.3in"&gt;&lt;strong&gt;&lt;font size="6"&gt;&lt;font color="#e36c0a"&gt;&lt;span&gt;&lt;font size="5"&gt;9&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="5"&gt;Out of scope&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;Several BizTalk artifacts are out of scope this naming convention:&lt;/font&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span&gt;&lt;font size="2"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt;BRE artifacts: Rule sets, Vocabularies, etc.&lt;/font&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span&gt;&lt;font size="2"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt;BAM artifacts: Activities, Views, BAM Definitions, Tracking Profiles&lt;/font&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span&gt;&lt;font size="2"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt;Parties, Role links&lt;/font&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;span&gt;&lt;font size="2"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt;Itineraries from the ESB Toolkit 2.0. I think the ESB Toolkit is a part of BizTalk 2009, because it is delivered in binary format, supported by Microsoft, has a lot of tooling, including Itinerary Designer.&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;em&gt;&lt;font color="#4f81bd"&gt;See also&lt;/font&gt;&lt;/em&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in" align="left"&gt;&lt;span&gt;&lt;font size="2"&gt;1.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt;“Naming guidelines for the .NET Framework types” in MSDN [ &lt;a href="http://msdn.microsoft.com/en-us/library/xzf533w0(VS.71).aspx"&gt;http://msdn.microsoft.com/en-us/library/xzf533w0(VS.71).aspx&lt;/a&gt; ]&lt;/font&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in" align="left"&gt;&lt;span&gt;&lt;font size="2"&gt;2.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt;“Naming Convention” in Wikipedia [ &lt;a href="http://en.wikipedia.org/wiki/Identifier_naming_convention"&gt;http://en.wikipedia.org/wiki/Identifier_naming_convention&lt;/a&gt; ]&lt;/font&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in" align="left"&gt;&lt;span&gt;&lt;font size="2"&gt;3.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt;“Abbreviations&lt;/font&gt;&lt;span style="LINE-HEIGHT: 115%; COLOR: black; FONT-SIZE: 8pt"&gt;” &lt;/span&gt;&lt;font size="2"&gt;in MSDN&lt;/font&gt;&lt;span style="LINE-HEIGHT: 115%; COLOR: black; FONT-SIZE: 8pt"&gt; [&lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/141e06ef(VS.71).aspx"&gt;&lt;font size="2"&gt;http://msdn.microsoft.com/en-us/library/141e06ef(VS.71).aspx&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt; ]&lt;/font&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in" align="left"&gt;&lt;span&gt;&lt;font size="2"&gt;4.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt;“Readability” in Wikipedia [See &lt;/font&gt;&lt;a href="http://en.wikipedia.org/wiki/Typography"&gt;&lt;font size="2"&gt;http://en.wikipedia.org/wiki/Typography&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt; ]&lt;/font&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in" align="left"&gt;&lt;span&gt;&lt;font size="2"&gt;5.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt;“Capitalization Styles” in MSDN  [&lt;/font&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/x2dbyw72(VS.71).aspx"&gt;&lt;font size="2"&gt;http://msdn.microsoft.com/en-us/library/x2dbyw72(VS.71).aspx&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt; ]&lt;/font&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in" align="left"&gt;&lt;span&gt;&lt;font size="2"&gt;6.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt;“Assembly Versioning” in MSDN [ &lt;a href="http://msdn.microsoft.com/en-us/library/51ket42z.aspx"&gt;http://msdn.microsoft.com/en-us/library/51ket42z.aspx&lt;/a&gt; ]&lt;/font&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in" align="left"&gt;&lt;span&gt;&lt;font size="2"&gt;7.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt;“Namespaces in XML 1.0” [ &lt;/font&gt;&lt;a href="http://www.w3.org/TR/xml-names/"&gt;&lt;font size="2"&gt;http://www.w3.org/TR/xml-names/&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt; ]&lt;/font&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in" align="left"&gt;&lt;span&gt;&lt;font size="2"&gt;8.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt;URN in Wikipedia [ &lt;/font&gt;&lt;a href="http://en.wikipedia.org/wiki/Uniform_Resource_Name"&gt;&lt;font size="2"&gt;http://en.wikipedia.org/wiki/Uniform_Resource_Name&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt; ].&lt;/font&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in" align="left"&gt;&lt;span&gt;&lt;font size="2"&gt;9.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt;URL in Wikipedia [ &lt;/font&gt;&lt;a href="http://en.wikipedia.org/wiki/URL"&gt;&lt;font size="2"&gt;http://en.wikipedia.org/wiki/URL&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt; ].&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt; &lt;/div&gt;
&lt;span style="LINE-HEIGHT: 115%; FONT-SIZE: 10pt"&gt;&lt;br clear="all" /&gt;
&lt;/span&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt; &lt;/div&gt;
&lt;div style="BORDER-BOTTOM: #4f81bd 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 4pt; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in"&gt;
&lt;div style="MARGIN: 0in 0in 15pt"&gt;&lt;font color="#17365d" size="5"&gt;Appendix&lt;/font&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;em&gt;&lt;font color="#4f81bd"&gt;Syntax&lt;/font&gt;&lt;/em&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;Word&amp;gt; =: &lt;br /&gt;
           [A-Za-z1-0]* &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;CompositeWord&amp;gt; =:&lt;br /&gt;
           &amp;lt;Word&amp;gt;.&amp;lt;Word&amp;gt;[.&amp;lt;Word&amp;gt;]&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;ShortName&amp;gt; :=&lt;br /&gt;
           &amp;lt;Word&amp;gt;&lt;br /&gt;
           &amp;lt;CompositeWord&amp;gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt" align="left"&gt;&lt;font size="2"&gt;&amp;lt;{Any}ShortName&amp;gt; =: &amp;lt;ShortName&amp;gt;&lt;br /&gt;
           [replace {Any} with any term. For example, term Solution creates a &amp;lt;SolutionShortName&amp;gt; term]&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;Company&amp;gt; =: &amp;lt;ShortName&amp;gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;Domain&amp;gt; =: &amp;lt;ShortName&amp;gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;Solution&amp;gt; =:&lt;br /&gt;
           &amp;lt;Company&amp;gt;.&amp;lt;Domain&amp;gt;.&amp;lt;SolutionShortName&amp;gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;ApplicationName&amp;gt; =: &amp;lt;Solution&amp;gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;AssemblyName&amp;gt;  =: &amp;lt;Project&amp;gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;Namespace&amp;gt;  =: &amp;lt;Project&amp;gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;SolutionsRootFolder&amp;gt; =: &lt;strong&gt;c:\Solutions&lt;/strong&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;SolutionFolder&amp;gt; =:&lt;br /&gt;
           &amp;lt;SolutionsRootFolder&amp;gt;&lt;strong&gt;\&lt;/strong&gt;&amp;lt;Solution&amp;gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;Project&amp;gt; =:&lt;br /&gt;
            &amp;lt;Solution&amp;gt;.&amp;lt;ProjectShortName&amp;gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;ProjectFolder&amp;gt; =:&lt;br /&gt;
           &amp;lt;SolutionFolder&amp;gt;&lt;strong&gt;\&lt;/strong&gt;&amp;lt;ProjectShortName&amp;gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;TargetNamespace&amp;gt; =:&lt;br /&gt;
&lt;strong&gt;           http://&lt;/strong&gt;&amp;lt;Domain&amp;gt;&lt;strong&gt;.&lt;/strong&gt;&amp;lt;Company&amp;gt;&lt;strong&gt;.com/&lt;/strong&gt;&amp;lt;SolutionShortName&amp;gt;&lt;strong&gt;/&lt;/strong&gt;&amp;lt;ProjectShortName&amp;gt;&lt;strong&gt;/&lt;/strong&gt;&amp;lt;Version&amp;gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;Version&amp;gt; =:&lt;br /&gt;
           &amp;lt;date&amp;gt; &lt;br /&gt;
           [in YYYY-MM-DD format]&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;Port&amp;gt; =:&lt;br /&gt;
            &amp;lt;Solution&amp;gt;.&amp;lt;PortShortName&amp;gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 20pt 67.5pt"&gt;&lt;font size="2"&gt;&amp;lt;Map&amp;gt; =:&lt;br /&gt;
          &amp;lt;SourceSchemaShortName&amp;gt;_to_&amp;lt;DestinationSchemaShortName&amp;gt; [for one-to-one map]&lt;br /&gt;
           &amp;lt;SourceSchemaShortName1&amp;gt;_and_&amp;lt;SourceSchemaShortName2&amp;gt;_to_&amp;lt;DestinationSchemaShortName&amp;gt; [for two-to-one map]&lt;br /&gt;
…&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;em&gt;&lt;font color="#4f81bd"&gt;Instructions&lt;/font&gt;&lt;/em&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="2"&gt;Keep the names of some BizTalk artifacts in the lists, a list per solution. Create, at last, a list of the XML namespaces of all schemas. Keep them in one list; it forces developers to use naming convention, because inconsistencies in the names are visible inside these lists on the &lt;strong&gt;development&lt;/strong&gt; stage.&lt;/font&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span&gt;&lt;font size="2"&gt;1.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt;Create a new name in the list below.&lt;/font&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;span&gt;&lt;font size="2"&gt;2.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt;Copy it to the name property of the new BizTalk artifact.&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font color="#4f81bd"&gt;&lt;em&gt;XML namespace List&lt;/em&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;em&gt;&lt;font color="#4f81bd"&gt;Port List&lt;/font&gt;&lt;/em&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt; &lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133841"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133841" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/LeonidGaneline/aggbug/133841.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Leonid Ganeline</dc:creator>
            <guid>http://geekswithblogs.net/LeonidGaneline/archive/2009/07/31/biztalk-naming-convention-for-the-biztalk-solutions.aspx</guid>
            <pubDate>Fri, 31 Jul 2009 17:44:57 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/LeonidGaneline/comments/133841.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/LeonidGaneline/archive/2009/07/31/biztalk-naming-convention-for-the-biztalk-solutions.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/LeonidGaneline/comments/commentRss/133841.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/LeonidGaneline/services/trackbacks/133841.aspx</trackback:ping>
        </item>
        <item>
            <title>BizTalk: Debugging the BizTalk applications with the direct test send ports</title>
            <link>http://geekswithblogs.net/LeonidGaneline/archive/2008/04/27/biztalk-debuging-the-biztalk-applications-with-the-direct-test-send.aspx</link>
            <description>&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;div&gt;&lt;em&gt;" ...I&lt;font face="Arial" size="2"&gt; have published an orchestration as a web service and consumed it from an aspx page. now, how do I see if I triggered the orchestration and how and where do I get the output (transformed message of the orchestration)? ...&lt;/font&gt;"&lt;/em&gt;&lt;/div&gt;
&lt;/blockquote&gt;
&lt;div&gt;&lt;span&gt;
&lt;div&gt;It is a very common question, how to debug the BizTalk applications. &lt;/div&gt;
&lt;div&gt;Have you ever tried to use the BizTalk Orchestration Debugger? So painful experience. Never see the BizTalk developer who is using it in real work.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div align="left"&gt;One simple decision is creating the &lt;strong&gt;direct test send ports&lt;/strong&gt;.  (&lt;a title="http://blogs.msdn.com/kevin_lam/archive/2006/07/07/659214.aspx" href="http://blogs.msdn.com/kevin_lam/archive/2006/07/07/659214.aspx"&gt;http://blogs.msdn.com/kevin_lam/archive/2006/07/07/659214.aspx&lt;/a&gt;, &lt;a title="http://geekswithblogs.net/LeonidGaneline/archive/2006/12/18/101541.aspx" href="http://geekswithblogs.net/LeonidGaneline/archive/2006/12/18/101541.aspx"&gt;http://geekswithblogs.net/LeonidGaneline/archive/2006/12/18/101541.aspx&lt;/a&gt;)&lt;/div&gt;
&lt;div align="left"&gt;Test port is a port with the filter expression (&lt;a title="http://msdn2.microsoft.com/en-us/library/aa578042.aspx" href="http://msdn2.microsoft.com/en-us/library/aa578042.aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa578042.aspx&lt;/a&gt;, &lt;a title="http://msdn2.microsoft.com/en-us/library/aa547903.aspx" href="http://msdn2.microsoft.com/en-us/library/aa547903.aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa547903.aspx&lt;/a&gt;). This expression creates the subscription to the message you interested in.&lt;/div&gt;
&lt;div align="left"&gt;All sent and received messages go through the MessageBox. When they pass MessageBox you can create additional subscription to these messages and intercept copies of these messages.&lt;/div&gt;
&lt;div align="left"&gt;The subscription can be to the message type or to the publisher parameters like Receive port name.&lt;/div&gt;
&lt;div align="left"&gt;This technique has great benefits:&lt;/div&gt;
&lt;ul&gt;
    &lt;li&gt;
    &lt;div align="left"&gt;&lt;strong&gt;The direct test send ports do not disturb the original message flow&lt;/strong&gt; (excluding the rare case when all main subscriptions to the debugged message have got unenlisted). &lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div align="left"&gt;They can be easily switch on/off.&lt;/div&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;div align="left"&gt;As a matter of fact I use two&lt;font size="2"&gt; methods on the regular basis. (The second one is the &lt;font size="2"&gt;old good Trace.WriteLine(..) with DebugView.exe as a receiver of the debug output.) &lt;/font&gt;That means I always create the orchestrations with the Expression shapes (for &lt;font size="2"&gt;Trace.WriteLine&lt;/font&gt;)) after all message receives/transformations, in the begin/end all branches, plus I create the test send ports for almost ALL messages.&lt;/font&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;font size="2"&gt;&lt;/font&gt; &lt;/div&gt;
&lt;div align="left"&gt;&lt;font size="2"&gt;Yes, for ALL output messages. &lt;/font&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;font size="2"&gt;It is easy and fast to create the test send ports in the binding file without using UI.&lt;/font&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;font size="2"&gt;And I always deploy these test ports to the production. It saved me a lot of time in deployment and maintain.&lt;/font&gt;&lt;/div&gt;
&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=121693"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=121693" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/LeonidGaneline/aggbug/121693.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Leonid Ganeline</dc:creator>
            <guid>http://geekswithblogs.net/LeonidGaneline/archive/2008/04/27/biztalk-debuging-the-biztalk-applications-with-the-direct-test-send.aspx</guid>
            <pubDate>Sun, 27 Apr 2008 22:54:27 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/LeonidGaneline/comments/121693.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/LeonidGaneline/archive/2008/04/27/biztalk-debuging-the-biztalk-applications-with-the-direct-test-send.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/LeonidGaneline/comments/commentRss/121693.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/LeonidGaneline/services/trackbacks/121693.aspx</trackback:ping>
        </item>
        <item>
            <title>BizTalk: Accumulating messages in MessageBox, Lifespan of the messages</title>
            <link>http://geekswithblogs.net/LeonidGaneline/archive/2007/11/14/116853.aspx</link>
            <description>&lt;div&gt;
&lt;div&gt;&lt;font size="2"&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;font size="2"&gt;I hit this problem when were creating the orchestration to periodically poll the outer service. The orchestration was with loop inside.&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size="2"&gt;The problem was I created the message inside this loop. And the instance of this message were not disposed after each cycle. The BizTalk does not have such functionality as explicit deleting the messages inside orchestration.&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size="2"&gt;The orchestration was created for running long time without restart. That means that this orchestration was collecting enormous amount those indisposed messages. And all those messages were inside the MessageBox, of course. It was wrong!&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size="2"&gt;&lt;/font&gt; &lt;/div&gt;
&lt;div&gt;&lt;font size="2"&gt;After long and very interesting investigation the issue was resolved.&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size="2"&gt;&lt;/font&gt; &lt;/div&gt;
&lt;div&gt;&lt;font size="2"&gt;The source of the problem was in the transactional scope where I created the indisposable message. This scope was inside the loop. The message was recreated on each cycle of the loop.&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size="2"&gt;It is interesting but &lt;strong&gt;a lifespan of the message recreated inside the transactional scope included in the loop and the message recreated outside the  transactional scope in the loop is different. The first one is disposed only after closing the orchestration instance. The second one is disposed after last using.&lt;/strong&gt; (I think so but could not find a hint in the BizTalk information sea.)&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size="2"&gt;&lt;/font&gt; &lt;/div&gt;
&lt;div&gt;&lt;font size="2"&gt;After discovering this the fix was simple. I moved the transaction scope outside of the loop.&lt;/font&gt;&lt;/div&gt;
&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=116853"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=116853" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/LeonidGaneline/aggbug/116853.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Leonid Ganeline</dc:creator>
            <guid>http://geekswithblogs.net/LeonidGaneline/archive/2007/11/14/116853.aspx</guid>
            <pubDate>Wed, 14 Nov 2007 21:15:09 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/LeonidGaneline/comments/116853.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/LeonidGaneline/archive/2007/11/14/116853.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/LeonidGaneline/comments/commentRss/116853.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/LeonidGaneline/services/trackbacks/116853.aspx</trackback:ping>
        </item>
        <item>
            <title>BizTalk: The Endpoint model depreciates the Physical and Logical Ports</title>
            <link>http://geekswithblogs.net/LeonidGaneline/archive/2007/09/27/115663.aspx</link>
            <description>&lt;div&gt;&lt;font face="Arial"&gt;&lt;font face="Arial"&gt;This is a 2nd article in the BizTalk Model serie (1st article is a "BizTalk messaging model"&lt;br /&gt;
&lt;a href="http://geekswithblogs.net/LeonidGaneline/archive/2006/12/18/101541.aspx"&gt;http://geekswithblogs.net/LeonidGaneline/archive/2006/12/18/101541.aspx&lt;/a&gt;)&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="Arial"&gt;&lt;hr /&gt;
&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="Arial"&gt;One of the difficult part of BizTalk to understanding is a Port. Particularly I mean, &lt;strong&gt;Physical Port&lt;/strong&gt; and &lt;strong&gt;Logical Port&lt;/strong&gt;.&lt;br /&gt;
 &lt;br /&gt;
Within BizTalk 2004 there are not such things as Physical Port and Logical Port. At first these terms started in several whitepapers, then they were "officially approved" in BizTalk 2006 documentation. Why the Port was divided to Physical and Logical one? &lt;br /&gt;
As we try to understand what is "the Port" mean, we have to separate different things under this name. We have one name but different meaning in different contexts. For example, we create Port as a Port shape in Orchestration but it is not a real Port, but something that links us with "real" Port. The "real", Physical Port works adapter and pipeline (or is it managing them? And this is a different story...) and exists as an independent artifact. By the way, looks like the "real" Port can create Instances (Or this is not a Port but some Messaging Agent? Or not a Port Instance but a Messaging Instance, isn't it? This is a different story as well...) &lt;br /&gt;
We might crate the Port into the Orchestration, it is a part of this Orchestration, isn't it? And we can create the Port independently with  the BizTalk Explorer and the Administration Console. And we can see the Port list in the BizTalk Explorer and the Administration Console. &lt;br /&gt;
In this way, trying to differentiate the things in the Orchestration Editor and in the BizTalk Explorer were created terms the Logical Port and Physical Port. Logical Port it is a "Port-shape", and Physical Port it is a "Full-featured, big" Port in the BizTalk Explorer. &lt;br /&gt;
What's the problem with this model?&lt;br /&gt;
 &lt;br /&gt;
The problem is in terms ambiguity.&lt;br /&gt;
 &lt;br /&gt;
Why both a Physical Port and a Logical Port were called the Ports? &lt;br /&gt;
Maybe because the BizTalk developers try to make the link between Physical Port and Logical Port as an implicit link. If it works well, we don't need two different terms, all right. But it doesn't work, the BizTalk experience is that the link between Physical Port and Logical Port usually is an explicit link. For example, the publisher/subscriber pattern forces us to separate these terms. &lt;br /&gt;
Sometimes hiding the internal mechanism is a way to decrease the model complexity. But in this case it was opposite. Endeavour to hide this mechanism is a way to create additional unnatural terms, to distort the real BizTalk architecture. &lt;br /&gt;
 &lt;br /&gt;
I will try to show how BizTalk architecture could be if I use slightly different term set. This model is more easy to me. It would be great to get your feedback on this model.&lt;br /&gt;
 &lt;br /&gt;
 &lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;
&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
&lt;strong&gt;BizTalk MessageBox&lt;/strong&gt;  (= BizTalk-bus):&lt;br /&gt;
This term is used without change. All messages first come to BizTalk MessageBox. Messages are published. Then messages are passed to subscriber. BizTalk MessageBox works as an Queue Server. &lt;br /&gt;
 &lt;br /&gt;
I'll change term the &lt;strong&gt;Port&lt;/strong&gt;.&lt;br /&gt;
Port is the entity linking BizTalk with outer world. Send Port sends information to the outer world. Receive Port receives information from the outer world.&lt;br /&gt;
I define the outer world as the different protocols and applications (or more precisely the APIs). &lt;br /&gt;
 &lt;br /&gt;
Now this is a new term, the &lt;strong&gt;Endpoint&lt;/strong&gt;. OK, this is not a new term :), we can find it in the SDK to describe the Adapter sample and several low-level things. But this term is carefully hidden by the BizTalk architects and documentation writers. &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;font face="Arial"&gt;There are two kind of the Endpoints: &lt;strong&gt;Endpoint-Publisher (EP)&lt;/strong&gt; and &lt;strong&gt;Endpoint-Subscriber (ES)&lt;/strong&gt;.&lt;br /&gt;
Ports and Orchestrations use the Endpoints to interact with MessageBox.&lt;br /&gt;
EP sends data to the MessageBox. EP sends all messages to the MessageBox, and it doesn't care of the consumers of the messages. If there are any at all. &lt;br /&gt;
It's the duty of the MessageBox to pass the data to the subscribers or suspend it.&lt;br /&gt;
ES receives the data from the MessageBox. It receives only subscribed data. A filter on the ES is created for this purpose. It takes responsibility of data passed from the MessageBox to the ES. &lt;br /&gt;
Endpoint always has only two sides.&lt;br /&gt;
One side is always linked with the MessageBox. The other is linked with a Port or an Orchestration.&lt;br /&gt;
Orchestration receives data from the MessageBox through the one kind of Endpoints (the ES) and sends data to the MessageBox through the second kind of Endpoints (the EP). The Orchestration has not any others links with the the Ports, the other Orchestrations, it only has links with the MessageBox through the Endpoints. &lt;br /&gt;
 &lt;br /&gt;
Now remember all those port-shape types in the Orchestration. How does it relate to this new model?&lt;br /&gt;
Say we create the Port shape in the Orchestration. &lt;br /&gt;
New Port: this creates an Endpoint: not Port at all;&lt;br /&gt;
New Configured port / Specify Later : the same; &lt;br /&gt;
New Configured port / Specify Now :  this creates an Endpoint, then a new Port with the Filter linking Endpoint of the new Port and Endpoint of this Orchestration. Here the BizTalk creators were tried to hide all this mechanism with Ports and Endpoints. And this is helpful in this case.) &lt;br /&gt;
New Configured port / Direct : this creates an Endpoint without Filter.&lt;br /&gt;
New Configured port / Direct / Routing between Ports... : creating an Endpoint and a Filter linking it with an Endpoint of the Port (Routing between this Orchestration and Port) &lt;br /&gt;
New Configured port / Direct/ Self Correlating : this creates an Endpoint and switch on the instance subscription mechanism.&lt;br /&gt;
New Configured port / Direct / To receive(send) message to(from) other Orchestration... : creating an Endpoint and a Filter linking it with the Endpoint of  other Orchestration (Routing between two Orchestration endpoints) &lt;br /&gt;
 &lt;br /&gt;
I'd say couple words about relationship of the old terms and new terms. &lt;br /&gt;
The old Port term is a secondary BizTalk artifact. From one side we can create the old port independently in the BizTalk Explorer. But the Orchestration Editor push us to look at the Port as an aftifact belonged to the Orchestration. And BTW, the port type could be saved only together with the Orchestration in assembly "belonged" to the Orchestration. &lt;br /&gt;
The old port is only the Port, the New Port is the combination of the Port and the Endpoint.&lt;br /&gt;
The old Orchestration can be coupled with Port, the new Orchestration does know nothing about Port. &lt;/font&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;font face="Arial"&gt;Now the Port is the first-level artifact, independent of the Orchestration. &lt;br /&gt;
Now the Port and the Orchestration are the terms on the same level, with the same importance.&lt;br /&gt;
 &lt;br /&gt;
&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;
&lt;/div&gt;
&lt;div&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;"Endpoint" model:&lt;/strong&gt;&lt;br /&gt;
The high-level artifacts: MessageBox, Ports, Orchestrations.&lt;br /&gt;
Endpoints: the high-level artifacts should be connected only through the Endpoints and MessageBox.&lt;br /&gt;
Port has only one Endpoint. Orchestration has one Endpoint or more.&lt;br /&gt;
One side of an Endpoint is always linked with the MessageBox. The other side is linked with a Port or an Orchestration. &lt;br /&gt;
Endpoint-Publisher transmits data TO the MessageBox.&lt;br /&gt;
Endpoint-Subscriber transmits data FROM the MessageBox.&lt;br /&gt;
&lt;/font&gt; &lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;
&lt;/div&gt;
&lt;div&gt;This is not a new model, it was implicitly used in many BizTalk articles.&lt;br /&gt;
Here I've tried to use this model explicitly.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;
&lt;/div&gt;
&lt;font size="2"&gt;
&lt;div&gt;&lt;font size="2"&gt;I'm just thinking how easier would be explanations in the Kevin Lam's blog (MSFT) about Ports with new terms (see "Demystifying Direct Bound Ports" &lt;a href="http://blogs.msdn.com/kevin_lam/archive/2006/04/18/578572.aspx"&gt;http://blogs.msdn.com/kevin_lam/archive/2006/04/18/578572.aspx&lt;/a&gt;).&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;...&lt;/div&gt;
&lt;/div&gt;
BTW Seems this model depreciates the "Direct port" term too.&lt;/font&gt;&lt;br /&gt;
 &lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=115663"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=115663" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/LeonidGaneline/aggbug/115663.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Leonid Ganeline</dc:creator>
            <guid>http://geekswithblogs.net/LeonidGaneline/archive/2007/09/27/115663.aspx</guid>
            <pubDate>Thu, 27 Sep 2007 21:25:13 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/LeonidGaneline/comments/115663.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/LeonidGaneline/archive/2007/09/27/115663.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/LeonidGaneline/comments/commentRss/115663.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/LeonidGaneline/services/trackbacks/115663.aspx</trackback:ping>
        </item>
        <item>
            <title>BizTalk "Get Last Message" pattern and orchestration</title>
            <link>http://geekswithblogs.net/LeonidGaneline/archive/2007/08/05/114426.aspx</link>
            <description>&lt;div&gt;There is a case:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;One part of the solution periodically publishes the data. This part is out of this article.&lt;/div&gt;
&lt;div&gt;There are two kind of subscribers. &lt;/div&gt;
&lt;div&gt;One kind of subscribers want to get the messages while they are published.&lt;/div&gt;
&lt;div&gt;Second kind of subscribers pool this messages randomly:&lt;/div&gt;
&lt;ul&gt;
    &lt;li&gt;undefined quantity of the subscribers request the undefined number times the LAST message in random interval. &lt;/li&gt;
    &lt;li&gt;they want to get the last input message only. &lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;The usual publish-subscribe pattern doesn't work, because &lt;/div&gt;
&lt;div&gt;
&lt;ol&gt;
    &lt;li&gt;the usual subscriber MUST receive ALL published messages. It cannot omit several and receive only others. (It can but it have to implement this logic by itself, it is not the case.) &lt;/li&gt;
    &lt;li&gt;After subscriber received the message, it cannot receive this message one more time. The message pops out of the query. &lt;/li&gt;
    &lt;li&gt; After one subscriber received the message, the other subscriber cannot receive the same message if it is not subscribed to the message. It is not a "random" , "one time", "randomly appeared/disappeared" subscribe&lt;wbr&gt;&lt;/wbr&gt;r. &lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;The question is: How can I do this in "BizTalk style"? &lt;/div&gt;
&lt;/div&gt;
&lt;div&gt; &lt;hr /&gt;
&lt;/div&gt;
&lt;div&gt;The orchestration implements this "&lt;strong&gt;Get Last Message&lt;/strong&gt;" pattern.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;img alt="&amp;quot;Get Last Message&amp;quot; orchestaration" src="http://images27.fotki.com/v990/photos/3/31551/3238343/RandomPoll_Orchestration-vi.gif?1186031901" /&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;The orchestration has three parts.&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;One&lt;/strong&gt; is for controlling this orchestration. It starts and stops the orchestration by the Control messages (Control START and Control STOP). That's all.&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;The second part&lt;/strong&gt; is a part of the pattern. It receive all input messages (Trips_Canonical) in the Unifies Sequential convoy. Usually in the samples there are two receive shapes, one before and one inside the loop. I use the receive for the control message as an activate receive, it helps me to simplify the orchestration. &lt;/div&gt;
&lt;div&gt;&lt;strong&gt;The third part&lt;/strong&gt; is a part of the pattern too. It is compounded from the receive shape which requests the last message (Get Last Request message), and the send shape, which send this last message. The last message is the same as the input message, the only difference is in the value of the "ProcessName" element. &lt;/div&gt;
&lt;div&gt;This sample is used in the content routed scenario that's why there are several interesting points.&lt;/div&gt;
&lt;ul&gt;
    &lt;li&gt;all messages have one first level node, right under root node with name "ProcessName". This node holds the name of the message publisher. This helps route the messages with the same message type to different routes. For example, the input Trip_Canonical messages and the output Trip_Canonical have different values of this node, and this is the only difference. &lt;/li&gt;
    &lt;li&gt;the messages correlated by this "ProcessName" node (the cor_ApplicationName Correlation set). &lt;br /&gt;
    &lt;br /&gt;
    &lt;img alt="Orchestration View window" align="middle" src="http://images114.fotki.com/v970/photos/3/31551/3238343/domPoll_OrchestrationArtifacts-vi.gif?" /&gt; &lt;/li&gt;
    &lt;li&gt;I use the Decide shape to avoid to send the requested last message if I have nothing to send. But to get this project built I have to create the "foo" message. &lt;/li&gt;
    &lt;li&gt;I gather all receives under one direct port. This is an Ordered delivery=True port.&lt;br /&gt;
    &lt;img alt="Direct port properties" src="http://images25.fotki.com/v952/photos/3/31551/3238343/RandomPoll_PortProperties-vi.gif?" /&gt;&lt;br /&gt;
    Maybe it worth to include the send port under this port too. &lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;
&lt;/div&gt;
&lt;div&gt;There are the Control messages:&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;START:&lt;/div&gt;
&lt;div&gt;&lt;img alt="Control START message" src="http://images25.fotki.com/v945/photos/3/31551/3238343/RandomPoll_Control_START_xml-vi.gif?" /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br clear="all" /&gt;
STOP:&lt;/div&gt;
&lt;div&gt;&lt;img alt="STOP Control message" src="http://images114.fotki.com/v970/photos/3/31551/3238343/RandomPoll_Control_STOP_xml-vi.gif?1186031896" /&gt;&lt;/div&gt;
&lt;div&gt;Input message the "Trips_Canonical":&lt;/div&gt;
&lt;div&gt;&lt;img alt="" src="http://images25.fotki.com/v951/photos/3/31551/3238343/RandomPoll_Trip_Canonical_xml-vi.gif?1186031907" /&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;Get Last Request message:&lt;/div&gt;
&lt;div&gt;&lt;img alt="Last Request message" src="http://images26.fotki.com/v942/photos/3/31551/3238343/rip_Canonical_Last_Request_xml-vi.gif?1186031910" /&gt;&lt;/div&gt;
&lt;div&gt;Last message:&lt;/div&gt;
&lt;div&gt;&lt;img alt="Last message" src="http://images26.fotki.com/v960/photos/3/31551/3238343/Poll_Trip_Canonical_Last_xmlvi-vi.gif?1186366133" /&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114426"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114426" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/LeonidGaneline/aggbug/114426.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Leonid Ganeline</dc:creator>
            <guid>http://geekswithblogs.net/LeonidGaneline/archive/2007/08/05/114426.aspx</guid>
            <pubDate>Mon, 06 Aug 2007 01:44:15 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/LeonidGaneline/comments/114426.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/LeonidGaneline/archive/2007/08/05/114426.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/LeonidGaneline/comments/commentRss/114426.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/LeonidGaneline/services/trackbacks/114426.aspx</trackback:ping>
        </item>
        <item>
            <title>BizTalk: Architectural Tips: Monitoring orchestration</title>
            <link>http://geekswithblogs.net/LeonidGaneline/archive/2007/02/15/106420.aspx</link>
            <description>&lt;DIV&gt;&lt;STRONG&gt;Note:&lt;/STRONG&gt; this orchestration is used for learning purpose. To monitoring in the real life we'd rather use the BAM and BAS. I can see this orchestration in the real environment only as a "lightweight" tool when using an additional technology (BAM/BAS) is not worth the time.&lt;BR&gt;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;HR&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Description:&lt;BR&gt;&lt;/STRONG&gt;This is a singleton orchestration for monitoring other BizTalk applications.&lt;BR&gt;It can start/stop by the special "start/stop" message or whatever you want. It can work infinitely or on per day basis, or whatever you want.&lt;BR&gt;It has a direct subscription to the monitoring activity, for example, to some message type, or to the the port name, or some parameters inside the messages.&lt;BR&gt;It can create the log of this activity in a log file or collect this information to create the summary reports.&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR clear=all&gt;
&lt;HR&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Implementation details of this sample:&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /&gt;&lt;v:shapetype id=_x0000_t75 coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"&gt;&amp;nbsp;&lt;v:stroke joinstyle="miter"&gt;&lt;/v:stroke&gt;&lt;v:formulas&gt;&lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 1 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum 0 0 @1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @2 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 0 1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @6 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @8 21600 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @10 21600 0"&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"&gt;&lt;/v:path&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:lock v:ext="edit" aspectratio="t"&gt;&lt;/o:lock&gt;&lt;/v:shapetype&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;v:shapetype id=_x0000_t75 coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"&gt;&lt;IMG src="http://images22.fotki.com/v518/photos/3/31551/3238343/Orchestration_Monitor-vi.gif?1171685742"&gt;&lt;/v:shapetype&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;UL&gt;
&lt;LI&gt;An orchestration uses the sequential convoy to monitor the messages with specific "EDI document type" (it is an element of the all input messages). "Monitor" here means calculating of the message number. 
&lt;LI&gt;It has "per EDI document type" instance. The different orchestration instances are started for different types of monitored messages. 
&lt;LI&gt;The project references another project with monitored message (with schema of this message) 
&lt;LI&gt;The orchestration has one receive port. It has to had parameter the "Ordered Delivery" as "True". I use parameters the "Binging" as "Direct" and the "Partner Orchestration Port" as "MessageBox", this simplify the relationship with others applications. &lt;BR&gt;&lt;BR&gt;&lt;IMG src="http://images20.fotki.com/v384/photos/3/31551/3238343/PortProperties_Monitor-vi.gif?1171599706"&gt; &lt;BR&gt;
&lt;LI&gt;It uses one correlation set for two message types: for a monitored message and for a management message. The last one is used for output (trace) the current value of the monitored parameter and for stop the orchestration instance. &lt;BR&gt;&lt;BR&gt;&lt;IMG src="http://images21.fotki.com/v517/photos/3/31551/3238343/OrchestrationView_Monitor-vi.gif?1171599705 /&gt;&lt;/A&gt;" LI &lt;&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;DIV&gt;
&lt;HR&gt;
&lt;/DIV&gt;
&lt;DIV&gt;I can send you the project files by your request.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;I would appreciate your feedback.&lt;BR&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=106420"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=106420" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/LeonidGaneline/aggbug/106420.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Leonid Ganeline</dc:creator>
            <guid>http://geekswithblogs.net/LeonidGaneline/archive/2007/02/15/106420.aspx</guid>
            <pubDate>Thu, 15 Feb 2007 18:46:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/LeonidGaneline/comments/106420.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/LeonidGaneline/archive/2007/02/15/106420.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/LeonidGaneline/comments/commentRss/106420.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/LeonidGaneline/services/trackbacks/106420.aspx</trackback:ping>
        </item>
        <item>
            <title>BizTalk messaging model</title>
            <link>http://geekswithblogs.net/LeonidGaneline/archive/2006/12/18/101541.aspx</link>
            <description>&lt;div&gt;&lt;font face="Arial"&gt;&lt;font face="Arial"&gt;This is a 1st article in the BizTalk Model serie (2nd article is a "&lt;a id="_13ca2a3cface_HomePageDays_DaysList_ctl00_DayItem_DayList_ctl01_TitleUrl" title="Click To View Entry." href="http://geekswithblogs.net/LeonidGaneline/archive/2007/09/27/115663.aspx"&gt;BizTalk: The Endpoint model depreciates the Physical and Logical Ports&lt;/a&gt; " &lt;font face="Arial"&gt;&lt;a href="http://geekswithblogs.net/LeonidGaneline/archive/2007/09/27/115663.aspx"&gt;http://geekswithblogs.net/LeonidGaneline/archive/2007/09/27/115663.aspx&lt;/a&gt; &lt;/font&gt;)&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;
&lt;br /&gt;
When I’ve started to master the BizTalk I start to build the different models for what is going on inside the BizTalk with messages. With each new iteration it was a different model.&lt;br /&gt;
I’ve begun with the well-known model:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;img id="stretch_photo_id" alt="Old BTS Model" galleryimg="no" src="http://images20.fotki.com/v366/photos/3/31551/4399082/Old_BTS_Model-vi.gif?1166502711" /&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
Let’s name this model as a “&lt;strong&gt;Receiver-Sender model&lt;/strong&gt;”.&lt;br /&gt;
This model is about the Senders and Receivers of the Messages.&lt;br /&gt;
Looks like the Receive Locations are the Receivers, the Send Ports are the Senders, and the Orchestrations are the Senders and the Receivers simultaneously. Right?&lt;br /&gt;
Wrong. All objects are the Senders and Receivers. &lt;br /&gt;
The Receive Locations receive the messages from the “Outer word” and send them to the Message Box.&lt;br /&gt;
The Send Ports receive the messages from the Message Box and send them to the “Outer word”.&lt;br /&gt;
The Orchestrations receive the messages from the Message Box and send them to the Message Box.&lt;br /&gt;
The Message Box receives the messages from the Receive Locations or the Orchestrations and sends them to the Send Ports and the Orchestrations.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;There was a description of the Publisher-Subscriber model in the BizTalk Help. But the most of attention in the Help is to the Receiver-Sender model. &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;As I could understand, terms the Sender and Receiver confuse me.&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.2in"&gt;&lt;span lang="FR"&gt;&lt;font face="Times New Roman"&gt;To illustrate the ambiguity of Receive and Send the terms in the BizTalk context, I use the quotation from the book « Pro BizTalk 2006 » by George Dunphy and Ahmed Metwally, page 119:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.2in"&gt;&lt;span lang="FR"&gt;&lt;font face="Times New Roman"&gt;« ... The left side shows the &lt;strong style="mso-bidi-font-weight: normal"&gt;sender&lt;/strong&gt; configuration, which consists of a static one-way &lt;strong style="mso-bidi-font-weight: normal"&gt;send&lt;/strong&gt; port to &lt;strong style="mso-bidi-font-weight: normal"&gt;send&lt;/strong&gt; the business document or message and a static one-way &lt;strong style="mso-bidi-font-weight: normal"&gt;receive&lt;/strong&gt; port to &lt;strong style="mso-bidi-font-weight: normal"&gt;receive&lt;/strong&gt; BizTalk Framework 2.0 delivery receipts. The right side shows the &lt;strong style="mso-bidi-font-weight: normal"&gt;receiver&lt;/strong&gt; configuration, which contains a static one-way &lt;strong style="mso-bidi-font-weight: normal"&gt;receive&lt;/strong&gt; port to &lt;strong style="mso-bidi-font-weight: normal"&gt;receive&lt;/strong&gt; the message ir business document and a dynamic one-way &lt;strong style="mso-bidi-font-weight: normal"&gt;send&lt;/strong&gt; port that... » &lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;(I’ve highlighted the terms.)&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;
&lt;/div&gt;
&lt;div&gt;Ok. I have to say more about this ambiguity. Terms the Send and Receive means... the same. Are you &lt;strong&gt;send&lt;/strong&gt; the message? Yes. And simultaneously this operation means to &lt;strong&gt;receive&lt;/strong&gt;. This terms have meaning ONLY if they are used WITH source or target the operation. Do we &lt;strong&gt;send&lt;/strong&gt; message? It is no sense in this question. We &lt;strong&gt;send&lt;/strong&gt; message &lt;strong&gt;to target_object&lt;/strong&gt; or &lt;strong&gt;from source_object&lt;/strong&gt;. Do we &lt;strong&gt;receive&lt;/strong&gt; this message? No sense! We &lt;strong&gt;receive&lt;/strong&gt; it &lt;strong&gt;from source. &lt;/strong&gt;Etc.&lt;/div&gt;
&lt;div&gt;Subscribe and Publish the terms in BizTalk context always means "respectively the MessageBox". Terms Send and Receive do not have such context.&lt;/div&gt;
&lt;div&gt;I don't wont to reject Send and Receive the terms completely. But they must be used in pair with the source or target of the operation, absolutely. &lt;/div&gt;
&lt;div&gt;That's why in quotation above "the sender configuration" doesn't mean exactly what it should mean. In this context it would be better something like "the left configuration" because it was not SO confusing.&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
I’ve made some changes in the model:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;img id="stretch_photo_id" alt="New BTS Model" galleryimg="no" src="http://images14.fotki.com/v370/photos/3/31551/4399082/New_BTS_Model-vi.gif?1166502697" /&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Try to move Subscriber and Publisher the terms to the first place of the model.&lt;br /&gt;
This model is explicitly a “&lt;strong&gt;Message Box centered&lt;/strong&gt;”.&lt;br /&gt;
The Publishers move the messages to the Message Box.&lt;br /&gt;
The Subscribers move the messages from the Message Box.&lt;br /&gt;
All actions are across the Message Box.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;The Publishers move the messages with defined type (namespace + root_node) to the Message Box.&lt;br /&gt;
The Subscribers move from the Message Box the messages with parameters defined in the Filter expression.&lt;br /&gt;
In this case The Receive Locations and the Send Shapes are placed in the one group the Publishers, The Send Ports and the Receive Shapes are placed in the one group the Subscribers. It is how the wrong names could complicate the things.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;How does the Binding fit this model?&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;img id="stretch_photo_id" alt="New BTS Model Binding" galleryimg="no" src="http://images14.fotki.com/v371/photos/3/31551/4399082/New_BTS_Model_Binding-vi.gif?1166502690" /&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;I’ve got something like that.&lt;br /&gt;
&lt;strong&gt;The Binding = the Implicit Subscription&lt;/strong&gt;.&lt;br /&gt;
This Subscription for Binding is created under scene, when the Publishers ID is used as the Filter expression in the most cases. The link via binding is not required; it can be created by an explicit filter expression.&lt;br /&gt;
“Binding” the term is used for describing the direct link between an Orchestration and a Port. As I understand this term was created for simplifying the model by hiding the additional work with creating the most frequently used operation, transferring the messages from one point exactly to the second one. Binding creates the One-to-One link when the messages from one Publisher must come to the one Subscriber and only to this Subscriber. Binding make a step from “pure” Publisher-Subscriber model where the Publishers and the Subscribers do know nothing about each other and have not to know.&lt;br /&gt;
Binding makes the model more complicated. It simplifies this operation but not a model.&lt;br /&gt;
The pure model is accessible in the BizTalk by a Direct port.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;I’ve got the more generalized model:&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
 &lt;img id="stretch_photo_id" alt="New BTS Model OuterWorld" galleryimg="no" src="http://images14.fotki.com/v371/photos/3/31551/4399082/New_BTS_Model_OuterWorld-vi.gif?1166502708" /&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Here I’ve pictured Orchestration in two parts. Before that the Send and Receive Shapes were in one Orchestration, which is wrong. &lt;br /&gt;
I have made the sizes of the Shapes and Port/Locations equal. I had sense that the Orchestrations should not be bigger then Ports.&lt;br /&gt;
I’ve added “Outer World”, why not? :)&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;This is the Publisher-Subscriber model.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;strong&gt;Conclusions&lt;/strong&gt; are simple: &lt;/div&gt;
&lt;ul&gt;
    &lt;li&gt;The Receiver-Sender model complicates the things. Try do not use Receiver and Sender the terms for describing the message flow. Use Publisher and Subscriber the terms instead! &lt;/li&gt;
    &lt;li&gt;Binding should be learned on the second level of studying the BizTalk. It does not simplify the things if it is used to hide the Publisher-Subscriber model. Try to describe the message flow without Binding and things would be easy.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt; &lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=101541"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=101541" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/LeonidGaneline/aggbug/101541.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Leonid Ganeline</dc:creator>
            <guid>http://geekswithblogs.net/LeonidGaneline/archive/2006/12/18/101541.aspx</guid>
            <pubDate>Tue, 19 Dec 2006 03:38:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/LeonidGaneline/comments/101541.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/LeonidGaneline/archive/2006/12/18/101541.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/LeonidGaneline/comments/commentRss/101541.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/LeonidGaneline/services/trackbacks/101541.aspx</trackback:ping>
        </item>
        <item>
            <title>BizTalk: Service Instances: Orchestration and Messaging</title>
            <link>http://geekswithblogs.net/LeonidGaneline/archive/2006/05/18/78880.aspx</link>
            <description>&lt;div&gt;IMHO&lt;br /&gt;
There should be the term "Port Instance" or something else.&lt;br /&gt;
In HAT we can see Service Instances in two main classes: Orchestration and Messaging.&lt;br /&gt;
The first one is quite understandable.&lt;br /&gt;
But the second one is not described in BTS Help.&lt;br /&gt;
As I can imagine it is the part of the port which created in "per-message" basis like Orchestration.&lt;br /&gt;
Now "Messaging" is the term for it. But Messaging could be attached to anything in BizTalk, it is too wide term. &lt;br /&gt;
But I don't mind any term. Now we DON'T have ANY term.&lt;br /&gt;
Nowhere in Help we could find description of this "Instance part of Port", we could only guess.&lt;br /&gt;
Now this term is used on "BizTalk developer team" level.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;If it is not possible to hide it from BizTalk Users then BizTalk Users have to got this term, got to description of what's going on inside BizTalk with it.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;PS&lt;br /&gt;
I don't like term the "Port Instance" but it is not the point.&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=78880"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=78880" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/LeonidGaneline/aggbug/78880.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Leonid Ganeline</dc:creator>
            <guid>http://geekswithblogs.net/LeonidGaneline/archive/2006/05/18/78880.aspx</guid>
            <pubDate>Fri, 19 May 2006 04:25:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/LeonidGaneline/comments/78880.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/LeonidGaneline/archive/2006/05/18/78880.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/LeonidGaneline/comments/commentRss/78880.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/LeonidGaneline/services/trackbacks/78880.aspx</trackback:ping>
        </item>
        <item>
            <title>BizTalk: Orchestration: Relationship of Receive port shape and Receive shape, Send port shape and Send shape</title>
            <link>http://geekswithblogs.net/LeonidGaneline/archive/2006/02/17/69918.aspx</link>
            <description>&lt;p&gt;&lt;font size="4"&gt;BizTalk: Orchestration: Relationship of Receive port shape and Receive shape, Send port shape and Send shape&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;I don't know would it be useful for somebody...&lt;br /&gt;
I'm constantly trying to understand the rules for different BizTalk tools.&lt;br /&gt;
For example, BizTalk Orchestration Designer:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Can I receive one message with the same type from different Receive port to one Receive shape?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt; No.&lt;/p&gt;
&lt;p&gt; Pict.1 &lt;img alt="" src="http://images16.fotki.com/v283/photos/3/31551/3238343/ReceiveShape_PortShape_M1-vi.jpg?462201" /&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;em&gt;Can I receive the same message with the same type to several Receive shapes?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt; Yes.&lt;/p&gt;
&lt;p&gt; Pict.2 &lt;img alt="" src="http://images16.fotki.com/v278/photos/3/31551/3238343/ReceiveShape_PortShape_1M-vi.jpg?462227" /&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;em&gt;Can I send the same message to the different Send ports?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt; No.&lt;/p&gt;
&lt;p&gt; &lt;img alt="" src="http://images16.fotki.com/v280/photos/3/31551/3238343/SendShape_PortShape_1M-vi.jpg?462206" /&gt;&lt;/p&gt;
&lt;p&gt;Pict.3 &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;em&gt;Can I send the different messages with the same type to several Send ports? &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Yes.&lt;/p&gt;
&lt;p&gt; Pict.4 &lt;img alt="" src="http://images16.fotki.com/v280/photos/3/31551/3238343/SendShape_PortShape_M1-vi.jpg?462139" /&gt;&lt;/p&gt;
&lt;p&gt;Why there are these limits?&lt;/p&gt;
&lt;p&gt;Quite obvious (??): &lt;/p&gt;
&lt;p&gt;Inside Message Box the different messages with the same type transfered in the same manner. That's why for the messages with the same type permitted only one receive and one send endpoint. &lt;/p&gt;
&lt;p&gt;Rule: "&lt;strong&gt;Links for the messages with the same type are always gathered in one received/send point on the port panel&lt;/strong&gt;"&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Try to link different Ports with the same message type with different Reseive shapes:&lt;/p&gt;
&lt;font face="Arial" size="2"&gt;
&lt;p&gt;&lt;img alt="" src="http://images16.fotki.com/v280/photos/3/31551/3238343/OneMessageType_DifferentShapes-vi.jpg?462201" /&gt; &lt;/p&gt;
&lt;p&gt;Pict.5. &lt;/p&gt;
&lt;p&gt;We'v got an error #1: &lt;/p&gt;
&lt;p&gt;&lt;em&gt;...odx...: error X2214: you must specify at least one already-initialized correlation set for a non-activation receive that is on a non-selfcorrelating port&lt;br /&gt;
    : for example, mark the receive Activate property as True&lt;br /&gt;
    : or, mark the port Binding property as Direct and the Partner Orchestration Port as Self Correlating&lt;br /&gt;
    : or, check a correlation on the receive Following Correlation Sets property&lt;/em&gt; &lt;/p&gt;
&lt;p&gt;Good. &lt;/p&gt;
&lt;p&gt;If we've tried to mark (as recomended) the second Reseive shape with Activate property as True we got the different error #2: &lt;/p&gt;
&lt;p&gt;&lt;em&gt;...odx...: error X2071: an activatable receive must be the first executable statement in a service&lt;/em&gt; &lt;/p&gt;
&lt;p&gt;ok. The second error message did not “correlate“ with first one. Sure, the error message #1 is not about my stupid changes :) &lt;/p&gt;
&lt;p&gt;If I tried to mark the first Receive shape with “Initializing Correlation Sets“ and the second one with “Following  Correlation Sets“, (It's not so stupid) I've got the error #3: &lt;/p&gt;
&lt;p&gt;&lt;em&gt;...odx...: error X2259: in a sequential convoy receive the ports must be identical&lt;br /&gt;
    ...Accounting.odx(353,22): could be 'R_Schema1'&lt;br /&gt;
    ...Accounting.odx(357,13): or 'R_Schema1_2'&lt;/em&gt; &lt;/p&gt;
&lt;p&gt;Excelent! That's mean “my“ rule works! &lt;/p&gt;
&lt;p&gt;If you have comments, please, give me a feedback!&lt;br /&gt;
Regards,&lt;br /&gt;
&lt;/p&gt;
&lt;hr id="null" /&gt;
Leonid Ganeline&lt;br /&gt;
BizTalk Developer&lt;br /&gt;
&lt;/font&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=69918"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=69918" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/LeonidGaneline/aggbug/69918.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Leonid Ganeline</dc:creator>
            <guid>http://geekswithblogs.net/LeonidGaneline/archive/2006/02/17/69918.aspx</guid>
            <pubDate>Sat, 18 Feb 2006 03:56:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/LeonidGaneline/comments/69918.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/LeonidGaneline/archive/2006/02/17/69918.aspx#feedback</comments>
            <slash:comments>7</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/LeonidGaneline/comments/commentRss/69918.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/LeonidGaneline/services/trackbacks/69918.aspx</trackback:ping>
        </item>
    </channel>
</rss>