I received my Architects Journal this week (issue #8) and I read an interesting article entitled “Data Replication as an Enterprise SOA Anti-pattern”.  (If you don’t already subscribe to the journal, I’d recommend it it’s a free quarterly publication focused on architectural issues and it is available here


The article spends time looking how it can quite often be a costly (and therefore a mistake) to implement a data replication anti-pattern within an enterprise and it also spends a bit of time looking at cases where it does make sense to use this anti-pattern.


While I was reading this, my mind immediately turned towards BizTalk (of course!) and I  recognized two great BizTalk discussions that could be spawned from the ideas discussed in the article.


The first thing I thought about was how BizTalk is perfectly suited to handle both of these architectures. No matter which architecture you need to adopt, BizTalk makes it quick and easy to do.


The data replication anti-pattern calls for data to be synchronized from a master database out to child databases that power your other line of business applications. (I’m not going to get into the debate of whether or not this is a good architectural choice, that argument has already been covered in the article! J) Let’s just go with the assumption that you’ve done your homework and you know that for your situation, data replication is right for you. BizTalk and its data adapters will allow you to setup and implement this architecture quickly and at a very low cost.  The following image outlines this solution.



In this architecture, BizTalk uses its SQL adapter to pull updated records from the master database in near real-time and then pushes them out to a set of other database and applications through other adapters. The internal BizTalk engine could even perform some data transformations and manipulation along the way if we needed.  All in all, it is a very simple architecture to implement using the BizTalk.


Now let’s step back and say that instead of data replication, you decided to adopt a Services Oriented Architecture instead. BizTalk’s SQL adapter, SOAP Adapter and Web Services Wizard make this a very easy solution to implement as well.



So that’s great, but those were fairly simple architectures. What really becomes interesting is when we stop and realize that in the real world, we can’t always make architectural decisions in a bubble. We almost never get a one size fits all solution and we often find that we need many different solutions working together to meet all of our requirements. You might very likely find that what you really require is a hybrid solution, where some of your applications use data replication and some you applications leverage your SOA strategy. BizTalk can again be leveraged to power this hybrid architecture.


 



Stop and think about this for a second. In the past, developers often had to design, build, deploy and maintain projects that used multiple different technologies in order to support all of an organization’s integration requirements. With BizTalk you don’t have to do this! You’ve got one product that can leverage centrally to meet multiple integration requirements!


It is this extensive nature that I believe is the most valuable aspect of BizTalk when compared to so many of the other integration products available. BizTalk is not a point solution. It truly is a platform that can be used to deploy the solution(s) that you need. Many other integration products extol the virtues of a single architecture. I believe that these products fairly to give you the power to determine the solution that you need. They just don’t offer you the flexibility to be able to implement the solution that is best suited for you. It is your architects and developers (the people that can truly understand your business and your business needs) that should be deciding on architecture that you deploy, not your integration product.


That last thought leads nicely into second topic that came to mind while I was reading this article. BizTalk really is the Swiss army knife of the integration world. It gives you a ton of tools that you can use in many different ways to implement many different integration solutions.  While that gives you the advantage of being able to implement the solution that you need, it can lead to problems if you don’t have the experienced and knowledgeable people implementing those solutions for you.  The article in the journal referred to data-replication as an anti-pattern.  An anti-pattern basically refers to a solution that appears to have benefits, but will ultimately generate negative consequences if followed.  The danger with BizTalk is that it is often just as easy to implement an anti-pattern as it is to implement a quality pattern. It allows you to power a wide range of architectures and implement many different patterns, but it can’t tell you which one will be best suited for your requirements. An inexperienced architect can use the various elements of BizTalk to create a solution that performs poorly, is difficult to maintain and is ultimate doomed to fail. An experienced architect and knowledgeable BizTalk developer can create a great solution that is highly available, easily scalable, performs incredibly fast, is reliably and is easy to maintain.


Ultimately, BizTalk is a very extensive platform that is going to give you the widest range of options possible when you are laying out your integration solutions. However it relies on your architects and developers to make sure that those solutions are great ones. BizTalk really is a tool that believes in the people “People Ready Process”! (If you haven’t heard about People Ready processes and how we believe that your employees are you companies most important asset, then check out this – The People Ready Business


Cheers and keep on BizTalking