<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: What kind of integration patters do you implement in BizTalk?</title>
	<atom:link href="http://www.richardhallgren.com/what-kind-of-integration-patters-do-you-implement-in-biztalk/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.richardhallgren.com/what-kind-of-integration-patters-do-you-implement-in-biztalk/</link>
	<description>.NET, BizTalk and integration focused scribbles</description>
	<lastBuildDate>Tue, 01 Jun 2010 22:09:55 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Ashish</title>
		<link>http://www.richardhallgren.com/what-kind-of-integration-patters-do-you-implement-in-biztalk/comment-page-1/#comment-492</link>
		<dc:creator>Ashish</dc:creator>
		<pubDate>Fri, 26 Mar 2010 13:04:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.richardhallgren.com/what-kind-of-integration-patters-do-you-implement-in-biztalk/#comment-492</guid>
		<description>Patrick - this looks really interesting! I have seen something similar in Oracle&#039;s Application Integration Architecture (AIA). They have application business connector services (ABCS) - requestor abcs converting source format to EBO (common format) and provider abcs converting EBO to external system format. And there&#039;s an enterprise bunisness service (EBS) in between that receives the message from req ABCS and routes it to appropriate prov ABCS.
You can check AIA architecture at oracle&#039;s website.</description>
		<content:encoded><![CDATA[<p>Patrick &#8211; this looks really interesting! I have seen something similar in Oracle&#8217;s Application Integration Architecture (AIA). They have application business connector services (ABCS) &#8211; requestor abcs converting source format to EBO (common format) and provider abcs converting EBO to external system format. And there&#8217;s an enterprise bunisness service (EBS) in between that receives the message from req ABCS and routes it to appropriate prov ABCS.<br />
You can check AIA architecture at oracle&#8217;s website.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jari Myllylä</title>
		<link>http://www.richardhallgren.com/what-kind-of-integration-patters-do-you-implement-in-biztalk/comment-page-1/#comment-439</link>
		<dc:creator>Jari Myllylä</dc:creator>
		<pubDate>Wed, 10 Mar 2010 12:07:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.richardhallgren.com/what-kind-of-integration-patters-do-you-implement-in-biztalk/#comment-439</guid>
		<description>We have had a few different approaches to routing:

- Content based routing by using parties and role links. In some cases the recipient is specified by for example vendor-ID, so that has been used as a key to create the correct party. This doesn&#039;t necessarily require any specific envelope-structures for holding the context properties. Also new recipients can be added very easily, specially if common business document structures are used. Also quite simple to implement, when the business case itself is not very complicated.

- Parametrized routing, the parameters for the recipient is stored in parameters, and could be based on several rules on how to act. This uses Orchestrations to call the routing rules from the storage. This can also hold some business logic, for example certain set of messages go to one recipient, and another set for another through the same processing.

- Loose coupled Routing, where each party publishes it&#039;s message to messagebox with envelope that contains the identification of the data inside of it and the business process. The recipients then subscribe with this information. This supports both many-to-one and one-to-many-cases, but only with asynchronic messaging as it is implemented currently. Same thing could be done to some degree with port groups, but those are not an option when more complicated logic is required, and the receiving systems work very differently. The recipient orchestration can&#039;t change source on the fly though, so routing based on a rule set is more appropriate on some occasions. 

- Similar approach as with Patrick: Separate layers for each of the systems, that handles the system-wise processing logic and structures, and separate functions for routing (with a routing rule storage). Subscription is made based on the recipient system claimed by the routing function. This can adapt very well for changing environment when there are several backend systems, that work in a different way based on the message-type, and new client systems are implemented in a regular manner. The downside of this is the need for orchestrations, and therefore this is not the best solution performance-wise.
 
I agree with Patrick with the use of the Biztalk Properties. In most cases there will be separate people running the environment, so it is easier to transfer the solution to production when there is no hidden logic, and the message itself carries the relevant information with it.</description>
		<content:encoded><![CDATA[<p>We have had a few different approaches to routing:</p>
<p>- Content based routing by using parties and role links. In some cases the recipient is specified by for example vendor-ID, so that has been used as a key to create the correct party. This doesn&#8217;t necessarily require any specific envelope-structures for holding the context properties. Also new recipients can be added very easily, specially if common business document structures are used. Also quite simple to implement, when the business case itself is not very complicated.</p>
<p>- Parametrized routing, the parameters for the recipient is stored in parameters, and could be based on several rules on how to act. This uses Orchestrations to call the routing rules from the storage. This can also hold some business logic, for example certain set of messages go to one recipient, and another set for another through the same processing.</p>
<p>- Loose coupled Routing, where each party publishes it&#8217;s message to messagebox with envelope that contains the identification of the data inside of it and the business process. The recipients then subscribe with this information. This supports both many-to-one and one-to-many-cases, but only with asynchronic messaging as it is implemented currently. Same thing could be done to some degree with port groups, but those are not an option when more complicated logic is required, and the receiving systems work very differently. The recipient orchestration can&#8217;t change source on the fly though, so routing based on a rule set is more appropriate on some occasions. </p>
<p>- Similar approach as with Patrick: Separate layers for each of the systems, that handles the system-wise processing logic and structures, and separate functions for routing (with a routing rule storage). Subscription is made based on the recipient system claimed by the routing function. This can adapt very well for changing environment when there are several backend systems, that work in a different way based on the message-type, and new client systems are implemented in a regular manner. The downside of this is the need for orchestrations, and therefore this is not the best solution performance-wise.</p>
<p>I agree with Patrick with the use of the Biztalk Properties. In most cases there will be separate people running the environment, so it is easier to transfer the solution to production when there is no hidden logic, and the message itself carries the relevant information with it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: patrick wellink</title>
		<link>http://www.richardhallgren.com/what-kind-of-integration-patters-do-you-implement-in-biztalk/comment-page-1/#comment-424</link>
		<dc:creator>patrick wellink</dc:creator>
		<pubDate>Mon, 11 Jan 2010 15:23:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.richardhallgren.com/what-kind-of-integration-patters-do-you-implement-in-biztalk/#comment-424</guid>
		<description>No we don&#039;t have filters on send ports. The SIS orchestration is bound to a port. 

The business Service posts messages to the messagebox, The SIS gets the message from the messagebox and post it to the endpoint. Then the SIS will post a response back to the messagebox, The Business Service is still listening for this response. After the BS has received the Response back it will inform the caller.

So the SIS is subscribed to specific messages (typed) and some predefined context properties.

And the BS does some correlation. 

But we don&#039;t have to worry about those, we have a software factory set up that generates all those things, so indeed there is a lot of routing going on, but you don&#039;t have to worry as a programmer.

Furtermore.. the routing proeprties are always the same. We have a custom envelope with th e following  fields.

SourceService
DestinationService
DestinationOperation
ConversationID

So we don&#039;t use all those obscure BizTalk properties (exept from messagetype) but everything is done in understandable properties, where is it coming from and where should it go to....</description>
		<content:encoded><![CDATA[<p>No we don&#8217;t have filters on send ports. The SIS orchestration is bound to a port. </p>
<p>The business Service posts messages to the messagebox, The SIS gets the message from the messagebox and post it to the endpoint. Then the SIS will post a response back to the messagebox, The Business Service is still listening for this response. After the BS has received the Response back it will inform the caller.</p>
<p>So the SIS is subscribed to specific messages (typed) and some predefined context properties.</p>
<p>And the BS does some correlation. </p>
<p>But we don&#8217;t have to worry about those, we have a software factory set up that generates all those things, so indeed there is a lot of routing going on, but you don&#8217;t have to worry as a programmer.</p>
<p>Furtermore.. the routing proeprties are always the same. We have a custom envelope with th e following  fields.</p>
<p>SourceService<br />
DestinationService<br />
DestinationOperation<br />
ConversationID</p>
<p>So we don&#8217;t use all those obscure BizTalk properties (exept from messagetype) but everything is done in understandable properties, where is it coming from and where should it go to&#8230;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Richard</title>
		<link>http://www.richardhallgren.com/what-kind-of-integration-patters-do-you-implement-in-biztalk/comment-page-1/#comment-398</link>
		<dc:creator>Richard</dc:creator>
		<pubDate>Thu, 12 Nov 2009 13:11:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.richardhallgren.com/what-kind-of-integration-patters-do-you-implement-in-biztalk/#comment-398</guid>
		<description>@Patric: That sounds like a interesting hybrid! How is it working for you? 

I guess the only thing one the downside is that you still will have a lot of routing information in the form of filters spread a round on different send ports - right?</description>
		<content:encoded><![CDATA[<p>@Patric: That sounds like a interesting hybrid! How is it working for you? </p>
<p>I guess the only thing one the downside is that you still will have a lot of routing information in the form of filters spread a round on different send ports &#8211; right?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Patrick Wellink</title>
		<link>http://www.richardhallgren.com/what-kind-of-integration-patters-do-you-implement-in-biztalk/comment-page-1/#comment-397</link>
		<dc:creator>Patrick Wellink</dc:creator>
		<pubDate>Wed, 11 Nov 2009 14:32:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.richardhallgren.com/what-kind-of-integration-patters-do-you-implement-in-biztalk/#comment-397</guid>
		<description>Well how about Broker Based ESB ?

I will explain..

We have three kinds of services

1. RIS ( Rreceiving Integration Service) takes care of mapping from external systems to CDM)
2. BS (Business Service) Is a Callable orchestration that exposes the CDM on the bus.
3. SIS ( Sending Integration Service ) takes care of Mapping CDM to External Systems

Then we can have Several systems delivering invoices and each can have their own format.
For each system we create a RIS that takes care of transformation to the CDM. Then we simply call the BS.

The BS will do some validation (remember it was a callable orchestration called by the RIS) and if everything is fine it will post the message to the messagebox

A SIS is listening on the messagebox and will deliver the message to the endpoint.

For sure you will have to standardise on a default Routing Slip ( Read context property schema )

But by doing it this way you get all the benefits of Broker Based Integration with the versioning problem solved. ( A RIS calls a specific version of a BS)</description>
		<content:encoded><![CDATA[<p>Well how about Broker Based ESB ?</p>
<p>I will explain..</p>
<p>We have three kinds of services</p>
<p>1. RIS ( Rreceiving Integration Service) takes care of mapping from external systems to CDM)<br />
2. BS (Business Service) Is a Callable orchestration that exposes the CDM on the bus.<br />
3. SIS ( Sending Integration Service ) takes care of Mapping CDM to External Systems</p>
<p>Then we can have Several systems delivering invoices and each can have their own format.<br />
For each system we create a RIS that takes care of transformation to the CDM. Then we simply call the BS.</p>
<p>The BS will do some validation (remember it was a callable orchestration called by the RIS) and if everything is fine it will post the message to the messagebox</p>
<p>A SIS is listening on the messagebox and will deliver the message to the endpoint.</p>
<p>For sure you will have to standardise on a default Routing Slip ( Read context property schema )</p>
<p>But by doing it this way you get all the benefits of Broker Based Integration with the versioning problem solved. ( A RIS calls a specific version of a BS)</p>
]]></content:encoded>
	</item>
</channel>
</rss>
