<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Business Process Integration</title>
	<atom:link href="http://www.businessprocessintegration.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.businessprocessintegration.net</link>
	<description>All that matters is integration (with BizTalk Server ;-)</description>
	<lastBuildDate>Thu, 24 Jun 2010 17:47:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>BizTalk Server and HL7 Accelerator developers training</title>
		<link>http://www.businessprocessintegration.net/2010/06/biztalk-server-and-hl7-accelerator-developers-training/</link>
		<comments>http://www.businessprocessintegration.net/2010/06/biztalk-server-and-hl7-accelerator-developers-training/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 17:47:00 +0000</pubDate>
		<dc:creator>Gerben van Ophuizen</dc:creator>
				<category><![CDATA[BPI]]></category>
		<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[HL7]]></category>

		<guid isPermaLink="false">http://www.businessprocessintegration.net/2010/06/biztalk-server-and-hl7-accelerator-developers-training/</guid>
		<description><![CDATA[Next week I’m going to give a BizTalk Server developers training in combination with the HL7 Accelerator. The audience consists of Cloverleaf developers and administrators. The training will be customized for the hospital and I’m really looking forward to these days!
]]></description>
			<content:encoded><![CDATA[<p>Next week I’m going to give a BizTalk Server developers training in combination with the HL7 Accelerator. The audience consists of Cloverleaf developers and administrators. The training will be customized for the hospital and I’m really looking forward to these days!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.businessprocessintegration.net/2010/06/biztalk-server-and-hl7-accelerator-developers-training/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Unit testing script/C#-code in a SSIS package</title>
		<link>http://www.businessprocessintegration.net/2010/06/unit-testing-scriptc-code-in-a-ssis-package/</link>
		<comments>http://www.businessprocessintegration.net/2010/06/unit-testing-scriptc-code-in-a-ssis-package/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 17:30:00 +0000</pubDate>
		<dc:creator>Gerben van Ophuizen</dc:creator>
				<category><![CDATA[BPI]]></category>
		<category><![CDATA[SSIS]]></category>
		<category><![CDATA[Test]]></category>

		<guid isPermaLink="false">http://www.businessprocessintegration.net/2010/06/unit-testing-scriptc-code-in-a-ssis-package/</guid>
		<description><![CDATA[In SQL Server SSIS you can use the Script Task to add your custom code (for eg. in C#).
 
SSIS makes it very easily to debug your package, and also debug your custom source code. It is only a pity that you can’t unit test your own script code. I searched on the internet, but [...]]]></description>
			<content:encoded><![CDATA[<p>In SQL Server SSIS you can use the Script Task to add your custom code (for eg. in C#).</p>
<p><a href="http://www.businessprocessintegration.net/wp-content/uploads/2010/06/image.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.businessprocessintegration.net/wp-content/uploads/2010/06/image_thumb.png" width="112" height="65" /></a> </p>
<p>SSIS makes it very easily to debug your package, and also debug your custom source code. It is only a pity that you can’t unit test your own script code. I searched on the internet, but I found only how to test your SSIS (DTS) package via unit testing. I dived into this and created a generic approach for unit testing .Net code from a SSIS package.</p>
<p>First I researched what happens with the source code and how this will be executed runtime. The source code is stored in the package (mypackage.dtsx). Each Script Task will lead to a new project and also a new namespace. The namespace looks something like: ‘ST_1234567890abcdef01234567890abcde.csproj’. With this knowledge you can find your source code in the package, but better; also the binary, the .dll, the compiled code. Each time you change your source code, SSIS will compile the code and put the dll as Base64 string in the SSIS package. This looks like:</p>
<blockquote><p>}]]&gt;&lt;/ProjectItem&gt;&lt;BinaryItem Name=&quot;\bin\release\st_1234567890abcdef01234567890abcde.csproj.dll&quot;&gt;TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA      <br />AAAAgAAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1v       <br />ZGUuDQ0KJAAAAAAAAABQRQAATAEDAP5jD0wAAAAAAAAAAOAAAiELAQgAAD4AAAAIAAAAAAAAHlwA…</p>
</blockquote>
<p>With this knowledge, we can read the package, access the Base64 string with namespace as search item (lowercase). This Base64 string can be stored as dll on your file system. It is possible to reference this dll in a unit test project. But the problem is that the signature of the dll will change when you change your package. A better approach is to load the dll into memory and use the properties and methods using reflection. Here are some code snippets:</p>
<p>Load package:</p>
<blockquote><p>XmlDocument package = new XmlDocument();      <br />try       <br />{       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; package.Load(pathAndFileToYourDtsPackage);       <br />}       <br />catch (Exception ex)       <br />{       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; throw new Exception(&quot;your message&quot;);       <br />}</p>
</blockquote>
<p>Access the Base64 string</p>
<blockquote><p>string xPathToBinary = @&quot;//BinaryItem[@Name='\bin\release\&quot; + namespaceClass.ToLower() + &quot;.dll']&quot;;      <br />XmlNode element = package.SelectSingleNode(xPathToBinary);</p>
</blockquote>
<p>Save your dll</p>
<blockquote><p>using (FileStream fs = File.Create(yourDllFileName))      <br />{       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; byte[] buffer = Convert.FromBase64String(element.InnerText);       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; fs.Write(buffer, 0, buffer.Length);       <br />}</p>
</blockquote>
<p>Now you can use reflection to load your dll, instantiate the class and access methods and properties. Here are some code snippets:</p>
<blockquote><p>_assembly = Assembly.LoadFile(_dllFileName);</p>
<p>string typeName = namespaceClass + &quot;.&quot; + className;      <br />_classType = _assembly.GetType(typeName);</p>
<p>_classInstance = _assembly.CreateInstance(_classType.FullName, false, BindingFlags.CreateInstance, null, yourConstructorParameters, System.Globalization.CultureInfo.InvariantCulture, null);</p>
</blockquote>
<p>Now you can use methods like GetMethod, InvokeMember and GetProperty to access your methods and properties.</p>
<p>You can write your unit tests in a separate test project, and use above methodology to unit test your Task Scripts. For now I only see one disadvantage: you work with ‘late binding’, so you don’t have access to your methods and properties straight away. But when everything is in place and ‘green’, then it doesn’t matter anymore <img src='http://www.businessprocessintegration.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  (my opinion).</p>
<p>&#160;</p>
<p>Do you think there are other possibilities? Other approach so you can use early binding? Please let me know!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.businessprocessintegration.net/2010/06/unit-testing-scriptc-code-in-a-ssis-package/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Reference: Large Message Transfer with WCF-Adapters Part 1</title>
		<link>http://www.businessprocessintegration.net/2010/05/reference-large-message-transfer-with-wcf-adapters-part-1/</link>
		<comments>http://www.businessprocessintegration.net/2010/05/reference-large-message-transfer-with-wcf-adapters-part-1/#comments</comments>
		<pubDate>Tue, 18 May 2010 05:31:29 +0000</pubDate>
		<dc:creator>Gerben van Ophuizen</dc:creator>
				<category><![CDATA[BPI]]></category>
		<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[WCF]]></category>

		<guid isPermaLink="false">http://www.businessprocessintegration.net/2010/05/reference-large-message-transfer-with-wcf-adapters-part-1/</guid>
		<description><![CDATA[Paolo Salvatori wrote a great article on streaming and buffering messages within BizTalk. He also provides a demo to give some statistics on the performance. A long article, but a must read.
]]></description>
			<content:encoded><![CDATA[<p>Paolo Salvatori wrote a great article on streaming and buffering messages within BizTalk. He also provides a demo to give some statistics on the performance. <a href="http://blogs.msdn.com/paolos/archive/2010/05/17/large-message-transfer-with-wcf-adapters-part-1.aspx" target="_blank">A long article, but a must read</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.businessprocessintegration.net/2010/05/reference-large-message-transfer-with-wcf-adapters-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BizTalk Server ESB Toolkit and HL7 Accelerator</title>
		<link>http://www.businessprocessintegration.net/2010/05/biztalk-server-esb-toolkit-and-hl7-accelerator/</link>
		<comments>http://www.businessprocessintegration.net/2010/05/biztalk-server-esb-toolkit-and-hl7-accelerator/#comments</comments>
		<pubDate>Wed, 12 May 2010 12:00:00 +0000</pubDate>
		<dc:creator>Gerben van Ophuizen</dc:creator>
				<category><![CDATA[BPI]]></category>
		<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[ESB]]></category>
		<category><![CDATA[Healthcare]]></category>
		<category><![CDATA[HL7]]></category>

		<guid isPermaLink="false">http://www.businessprocessintegration.net/2010/05/biztalk-server-esb-toolkit-and-hl7-accelerator/</guid>
		<description><![CDATA[Last year (September-October 2010) I blogged a lot about the ESB Toolkit in conjunction with the HL7 Accelerator. I also asked myself the question: Can the Healthcare take benefits of an ESB?. I then gave the answer: “yes it can”. And I’m still supporting this, but not in conjunction with the ESB Toolkit. I have [...]]]></description>
			<content:encoded><![CDATA[<p>Last year (September-October 2010) I blogged a lot about the ESB Toolkit in conjunction with the HL7 Accelerator. I also asked myself the question: <a href="http://www.businessprocessintegration.net/2009/09/can-the-healthcare-take-benefits-of-an-esb/" target="_blank">Can the Healthcare take benefits of an ESB?</a>. I then gave the answer: “yes it can”. And I’m still supporting this, but not in conjunction with the ESB Toolkit. I have several reasons for this:</p>
<ol>
<li>The MLLP adapter (part of the HL7 Accelerator) is a static adapter. You can use it in combination with the ESB Toolkit, but then you still have to define all physical ports. See an <a href="http://www.businessprocessintegration.net/2009/09/how-to-dynamically-route-a-message-in-the-esb-to-a-static-port/" target="_blank">earlier blog</a> from me how to solve this.</li>
<li>All (I think) hospital systems are working with ACK’s and NACK’s (some institutions ignore these). There are institutions who wants the ACK (or NACK) send be back by the receiving system to the sending system. The HL7 Accelerator (and thus BizTalk) is taking over this responsibility and sends the ACK to the sending system, before the receiving system receives its message (in my opinion: that is why you use a middleware product like BizTalk). In conjunction with the ESB Toolkit this is hard to implement, because the HL7 Accelerator components (Pipeline) are “living their own life” (you have some control, but not to use with the ESB Toolkit. See also some earlier posts of me).</li>
<li>I think the most important reason not to use the ESB Toolkit, is that the most systems used in an hospital are not service oriented aware. These systems are specific to a therapy or division, and holds most of the time all information in their storage, and only share information via HL7 because of the patient information or orders/invoices. This sounds like a “no” on my own question and a Hub and Spoke makes then more sense, but it is still possible to point to some services, like the patient administration (new patient, or updated information) or give an order to multiple systems, etc. So you probably have a combination of those two. Does that matter? I don’t think so, because you still have BizTalk Server as your integration tool and the HL7 Accelerator for connecting all systems.</li>
<li>Note: I’m still fan of using a canonical data model within BizTalk Server, also within the Healthcare. All systems will map to and from this data model. It will cost you some extra mappings and a small performance penalty, but at the end you can loosely couple all systems.</li>
</ol>
<p>Please let me know what your experiences are with the ESB Toolkit in conjunction with the HL7 Accelerator.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.businessprocessintegration.net/2010/05/biztalk-server-esb-toolkit-and-hl7-accelerator/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Why using BizTalk Server in the Healthcare?</title>
		<link>http://www.businessprocessintegration.net/2010/05/why-using-biztalk-server-in-the-healthcare/</link>
		<comments>http://www.businessprocessintegration.net/2010/05/why-using-biztalk-server-in-the-healthcare/#comments</comments>
		<pubDate>Tue, 11 May 2010 08:47:00 +0000</pubDate>
		<dc:creator>Gerben van Ophuizen</dc:creator>
				<category><![CDATA[BPI]]></category>
		<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[Healthcare]]></category>
		<category><![CDATA[HL7]]></category>

		<guid isPermaLink="false">http://www.businessprocessintegration.net/2010/05/why-using-biztalk-server-in-the-healthcare/</guid>
		<description><![CDATA[I’m not going to give you the standard reasons why you should use BizTalk Server, but I will point to the reasons from the clients I worked with. I put the list in order, from which I think is the most important reason till the least important reason. Note: because Cloverleaf is one of the [...]]]></description>
			<content:encoded><![CDATA[<p>I’m not going to give you the standard reasons why you should use BizTalk Server, but I will point to the reasons from the clients I worked with. I put the list in order, from which I think is the most important reason till the least important reason. Note: because Cloverleaf is one of the widest spread integration products in the Healthcare, I can’t neglect to compare with this product.</p>
<ol>
<li>In comparison to other products, Microsoft BizTalk Server has a positive Return Of Investment and one of the lowest (if not the lowest) Total Cost of Ownership (wow, that sounds like sales, but it is true <img src='http://www.businessprocessintegration.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ) </li>
<li>With BizTalk Server you don’t have to deal with Vendor lock-in. BizTalk Server is not open source, but there is a large community and a lot of vendors who can deliver BizTalk Server expertise. (HL7 knowledge can still be a problem) </li>
<li>BizTalk Server is not a black-box. Because of the documentation from Microsoft, bloggers, and other communities; BizTalk Server is very open. </li>
<li>Keep old systems up and running. BizTalk Server is very flexible. BizTalk Server 2009 and BizTalk Server 2010 (and older versions) are delivered with the HL7 Accelerator. See my <a href="http://www.businessprocessintegration.net/wp-content/uploads/2009/10/BizTalk-Accelerator-for-HL7-Gerben-van-Ophuizen-EN-200912.pdf" target="_blank">presentation</a> or <a href="http://www.businessprocessintegration.net/wp-content/uploads/2009/10/SRM-BizTalk-Accelerators-Gerben-van-Ophuizen.pdf" target="_blank">article</a> (Dutch) for the benefits.
<ul>
<li>One disadvantage: HL7 v2.6 and v3.0 are not supported (yet), but
<ul>
<li>2.5 is at the moment the de facto standard, so that shouldn’t be a problem and </li>
<li>HL7 v3.0 is XML based and BizTalk Server is all about XML, so that also shouldn’t be a problem (just download the schemas from the HL7 organization site) </li>
</ul>
</li>
</ul>
</li>
<li>BizTalk Server has more possibilities to work with the messages in a flexible way (like translation, use custom code, enrich data via databases). </li>
<li>BizTalk Server also support other transports then only MLLP.
<ul>
<li>When you want to connect to a governance site which support SOAP, then with BizTalk Server a connection is easily established (eg. in the Netherlands: SBV-Z, Nictiz, etc). </li>
</ul>
</li>
<li>“Use Microsoft products, unless …” (heard twice, so there must be a truth in there <img src='http://www.businessprocessintegration.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ) There are healthcare institutions who shift up to Microsoft platform and therefore wants to use BizTalk Server (note: this is also the case for other platforms like SAP or Oracle). </li>
</ol>
<p>This is the list I’m aware of (in respect to the Healthcare). Do you think I’m missing something? Or do you have another opinion? Please let me know.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.businessprocessintegration.net/2010/05/why-using-biztalk-server-in-the-healthcare/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Pipeline and changed Pipeline component issue</title>
		<link>http://www.businessprocessintegration.net/2010/04/pipeline-and-changed-pipeline-component-issue/</link>
		<comments>http://www.businessprocessintegration.net/2010/04/pipeline-and-changed-pipeline-component-issue/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 17:50:00 +0000</pubDate>
		<dc:creator>Gerben van Ophuizen</dc:creator>
				<category><![CDATA[BPI]]></category>
		<category><![CDATA[BizTalk]]></category>

		<guid isPermaLink="false">http://www.businessprocessintegration.net/2010/04/pipeline-and-changed-pipeline-component-issue/</guid>
		<description><![CDATA[I created a pipeline component and used this in a pipeline. I deployed the component and pipeline, and it worked fine. But I had to add another property. In the designer I can see my new property, but when I deployed it, the properties and default settings from my pipeline were removed. I removed everything [...]]]></description>
			<content:encoded><![CDATA[<p>I created a pipeline component and used this in a pipeline. I deployed the component and pipeline, and it worked fine. But I had to add another property. In the designer I can see my new property, but when I deployed it, the properties and default settings from my pipeline were removed. I removed everything manually from my BizTalk machine, but that didn’t do the job. At the end I looked into the XML variant of the BTP file and my new property and default values weren’t there. That is odd. <strong>Did you ever run into this problem?</strong> I changed the XML variant manually and my problem was solved.</p>
<p><a href="http://www.businessprocessintegration.net/wp-content/uploads/2010/04/image2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.businessprocessintegration.net/wp-content/uploads/2010/04/image_thumb2.png" width="370" height="214" /></a> </p>
</p>
<p><a href="http://www.businessprocessintegration.net/wp-content/uploads/2010/04/image1.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.businessprocessintegration.net/wp-content/uploads/2010/04/image_thumb1.png" width="244" height="214" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.businessprocessintegration.net/2010/04/pipeline-and-changed-pipeline-component-issue/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BizTalk Software Factory 2.1 released</title>
		<link>http://www.businessprocessintegration.net/2010/04/biztalk-software-factory-2-1-released/</link>
		<comments>http://www.businessprocessintegration.net/2010/04/biztalk-software-factory-2-1-released/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 12:59:19 +0000</pubDate>
		<dc:creator>Gerben van Ophuizen</dc:creator>
				<category><![CDATA[BPI]]></category>

		<guid isPermaLink="false">http://www.businessprocessintegration.net/?p=302</guid>
		<description><![CDATA[Jean Paul released a new version of the BizTalk Software Factory: v2.1 for BizTalk Server 2009, and v1.7 for BizTalk Server 2006 (R2). The BizTalk Software Factory also includes the BizTalk Deployment Framework (5.0 beta with MSBuild support). Next week I&#8217;m going to use the BSF and BDF in a HL7 project. You can find [...]]]></description>
			<content:encoded><![CDATA[<p>Jean Paul released a new version of the BizTalk Software Factory: v2.1 for BizTalk Server 2009, and v1.7 for BizTalk Server 2006 (R2). The BizTalk Software Factory also includes the BizTalk Deployment Framework (5.0 beta with MSBuild support). Next week I&#8217;m going to use the BSF and BDF in a HL7 project. You can find everything on the BizTalk Software Factory here: <a href="http://bsf.codeplex.com/">http://bsf.codeplex.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.businessprocessintegration.net/2010/04/biztalk-software-factory-2-1-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BizTalk ESB Toolkit Architecture Poster</title>
		<link>http://www.businessprocessintegration.net/2010/03/biztalk-esb-toolkit-architecture-poster/</link>
		<comments>http://www.businessprocessintegration.net/2010/03/biztalk-esb-toolkit-architecture-poster/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 06:53:50 +0000</pubDate>
		<dc:creator>Gerben van Ophuizen</dc:creator>
				<category><![CDATA[BPI]]></category>
		<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[ESB]]></category>

		<guid isPermaLink="false">http://www.businessprocessintegration.net/2010/03/biztalk-esb-toolkit-architecture-poster/</guid>
		<description><![CDATA[Brian Loesgen blogged about a new BizTalk poster: BizTalk ESB Toolkit Architecture Poster. See here. Or go directly to the Microsoft site. 
]]></description>
			<content:encoded><![CDATA[<p>Brian Loesgen blogged about a new BizTalk poster: BizTalk ESB Toolkit Architecture Poster. See <a href="http://www.brianloesgen.com/blog/2010/3/25/esb-toolkit-20-architecture-poster-available.html" target="_blank">here</a>. Or go directly to the <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=844322c2-7a14-4e81-8558-c7941273dd5d" target="_blank">Microsoft site</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.businessprocessintegration.net/2010/03/biztalk-esb-toolkit-architecture-poster/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Advanced correlation</title>
		<link>http://www.businessprocessintegration.net/2010/03/advanced-correlation/</link>
		<comments>http://www.businessprocessintegration.net/2010/03/advanced-correlation/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 12:37:51 +0000</pubDate>
		<dc:creator>Gerben van Ophuizen</dc:creator>
				<category><![CDATA[BPI]]></category>
		<category><![CDATA[BizTalk]]></category>

		<guid isPermaLink="false">http://www.businessprocessintegration.net/2010/03/advanced-correlation/</guid>
		<description><![CDATA[For a client I described an architecture where a validation process should be used for several parties. I want to make a generic process, because all the processes look the same, with only some differences on transport, ack/nack after validation, schemas and mappings. The main processes would be: Validation and Processing, where Validation will do [...]]]></description>
			<content:encoded><![CDATA[<p>For a client I described an architecture where a validation process should be used for several parties. I want to make a generic process, because all the processes look the same, with only some differences on transport, ack/nack after validation, schemas and mappings. The main processes would be: Validation and Processing, where Validation will do the validation on the message (against schema, party resolution, duplicate check) and Processing will do the mapping (and validation) and sending the message to the receiving system. This all will be configurable. Because I want to use a generic process and the client has to deal with One-Way and Two-Way receive ports, I had to figure something out for myself and the developers: how can the Validating and Processing process (orchestrations) stay generic, without copying it to a new Orchestration with the same functionality? The answer to this is: use a helper Orchestration for Request-Response support and correlation for routing messages to the Orchestrations and back to the MessageBox. The demo contains a basic helper Orchestration for the Request-Response mechanism and an Orchestration which does some validation. This Validation Orchestration is very basic and only for showing how to use Correlation and send back to the calling Orchestration.</p>
<p>Next steps take place:</p>
<ul>
<li>Receive message from any transport and use a custom pipeline component for promoting some context properties for routing to the right process (adding a routing slip). </li>
<li>Depending on the promoted property the next Orchestration will be started:
<ul>
<li>ReqRespOrch – Helping Orchestration for Request-Response pattern
<ul>
<li>Promote context property with value of Validating Process </li>
<li>Send message back to the MessageBox with initializing a correlation set </li>
<li>Wait for a while for a response (listen) with the same correlation token (because I used XmlDocument in the whole process, I had to create a specific response else the Orchestration would trigger itself straight away. This response can hold for example another Xml. Not detailed here). </li>
<li>Send the response back </li>
</ul>
</li>
<li>ValidateMessage – Orchestration for validating a message. Can be started by ResRespOrch (properties set over there) or by the OneWay port (properties set over there)
<ul>
<li>Use XmlValidator for validating a message. In this demo I hardcoded the schema to validate against. </li>
<li>Promote the right context properties. Depending on the kind of Receive Port (OneWay or TwoWay), the BTS.Operation is copied from the incoming message to the outgoing message (Ack in this demo). Also promote the correlation token from the incoming message and update the routing property. </li>
<li>Send Message back to MessageBox </li>
</ul>
</li>
</ul>
</li>
<li>Depending on the context properties (and with that: correlation) the message will be send back to ReqRespOrch or to a send port which has the right subscription on the context properties. </li>
</ul>
<p>Techniques used in this Demo:</p>
<ul>
<li>Promoting custom context properties in a custom pipeline component </li>
<li>Using correlation for returning the process back to the Orchestration </li>
<li>Promote context properties within an Orchestration (use initializing correlation set on send port, you don’t have to follow this correlation set) </li>
<li>Use generic documents (XmlDocument) </li>
<li>Use filtering for routing messages through your BizTalk environment </li>
<li>Use XmlValidator for validating messages in an Orchestration, so you have full control on the outcome of that </li>
<li>Use BizTalk Deployment Framework and BizTalk Software Factory (<a href="http://bsf.codeplex.com">http://bsf.codeplex.com</a>) </li>
</ul>
<p>This demo is very basal, but has all ingredients for a generic solution. The only thing not used here is use of configuration in Single Sign-On. I also didn’t put effort in the WebService, so this receives an ‘any’ message. And of course because this is a demo I didn&#8217;t use standards and naming conventions.</p>
<p>Note: because the client is using BizTalk Server 2006 (not R2) I had some limitations for myself. This solution will also working in newer versions for BizTalk Server.</p>
<p>You can download the demo <a href="http://www.businessprocessintegration.net/wp-content/uploads/2009/10/Correlation-demo.zip" target="_blank">here</a>. Feel free to use or copy what ever you need. If you have any questions or remarks then don’t hesitate to contact me. Also when you think the above solution could work in a different way. And yes: you don’t get any warranty <img src='http://www.businessprocessintegration.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Cheers…</p>
]]></content:encoded>
			<wfw:commentRss>http://www.businessprocessintegration.net/2010/03/advanced-correlation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reference: Reasons for moving from BizTalk Server 2006 to BizTalk Server 2009 R2</title>
		<link>http://www.businessprocessintegration.net/2010/03/reference-reasons-for-moving-from-biztalk-server-2006-to-biztalk-server-2009-r2/</link>
		<comments>http://www.businessprocessintegration.net/2010/03/reference-reasons-for-moving-from-biztalk-server-2006-to-biztalk-server-2009-r2/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 06:51:00 +0000</pubDate>
		<dc:creator>Gerben van Ophuizen</dc:creator>
				<category><![CDATA[BPI]]></category>
		<category><![CDATA[BizTalk]]></category>

		<guid isPermaLink="false">http://www.businessprocessintegration.net/2010/03/reference-reasons-for-moving-from-biztalk-server-2006-to-biztalk-server-2009-r2/</guid>
		<description><![CDATA[At the moment I’m working with a customer who also is using BizTalk Server 2006. This post blogs about why moving to BizTalk Server 2009 R2. Not all the reasons apply to the customer I’m working with, but a lot does: like pricing, WCF, also ESB, easy usage of BAM (2009 will also suit), but [...]]]></description>
			<content:encoded><![CDATA[<p>At the moment I’m working with a customer who also is using BizTalk Server 2006. <a href="http://blogs.digitaldeposit.net/SARAVANA/post/2010/03/04/Reasons-for-moving-from-BizTalk-Server-2006-to-BizTalk-Server-2009-R2.aspx" target="_blank">This post</a> blogs about why moving to BizTalk Server 2009 R2. Not all the reasons apply to the customer I’m working with, but a lot does: like pricing, WCF, also ESB, easy usage of BAM (2009 will also suit), but most important: end-of-life mainstream support. Another reason not mentioned is implementing a new architecture. When your organization is at the start of implementing a new architecture, why not use the latest technology? (as an answer on my own question: pricing <img src='http://www.businessprocessintegration.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  / business case). What also a problem can be to migrate: all old interfaces must be migrated to a new environment, build, tested and deployed, without interfering the ongoing business. So all interfaces must work as they did before. Another good reason for developers is that they can work with the latest technology, so that they don’t stay in an old environment and are triggered to renew and keep in touch with new development.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.businessprocessintegration.net/2010/03/reference-reasons-for-moving-from-biztalk-server-2006-to-biztalk-server-2009-r2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
