Geeks With Blogs

News

CloudCasts Blog Webcasts in the Cloud

BizTalk Server - Modular Deployment

I’ve read a few articles and help topics on deploying BizTalk applications to a test, or production environment, and they pretty much seem to go along the same lines.

“Use separate BizTalk projects for your orchestrations, maps, schemas and pipelines. Use separate BizTalk hosts to host your orchestrations and receive locations.”

I found that this was fine for small projects, consisting of a couple of orchestrations, and a few maps and schemas, but when a project gets larger, it seems to have some limitations.

  • If all the orchestrations in a BizTalk hub are placed in the same BizTalk assembly, then this assembly will need to be redeployed when any modifications are made to any of the orchestrations in the hub. 
  • When adding a new business process to the hub, all the projects will be affected, so it’s likely that they will all need to be redeployed.
  • A modification to a schema will require the maps, and orchestrations to be recompiled, this again requires the redeployment of the hub.

In larger projects, you may be using a staged delivery lifecycle, where you deliver the business processes in the hub at different times in the project lifecycle. You may also be assigning different teams or developers to different business processes. This is likely to mean that there will be a number of deployments to the test and production environments. With the traditional model of project structure, the business processes running on the hub will be affected with every deployment.

Using Modular Deployment

Modular deployment divides a large project into smaller modules, each comprising of a set of one or more closely related business processes. Each of these modules is independent of the other modules, and can be developed and deployed as a single unit. Within each module, the solution artifacts can be distributed into separate projects, as in the classic best practices structure.

 

The diagram shows an example of how to organise a large project using modular deployment.

  • The BizTalk Utilities project contains any .net class libraries that the business processes in the hub will utilise.
  • The Common Schemas project contains schemas that will be used by all business processes.
  • The Order Processing module contains the business processes related to order processing.
  • The Invoice Processing module contains the business processes related to invoice processing.
  • Both of the modules are structured using separate projects for orchestrations, schemas, maps etc.
  • The Payment Processing module is to be deployed at a later date, this can be done without affecting any of the other business processes.


Modular development works great for organizing a larger development team. A developer can focus on a specific business process, without affecting other developers working on different processes. A solution file is created for each module allowing them to be developed, compiled and deployed separately, this speeds up the build/deploy/test cycle on larger projects. There should always be a solution containing all the projects in the application, so that a master build process can be implemented.


Creating Hosts and Host Instances

When an application is deployed or updated, it’s often required to restart the BizTalk host instance that the application runs in, to ensure the DLLs are reloaded correctly. If all the orchestrations in the hub were running in the same host instance, this would interrupt the processing of all the business processes.

If a separate host is created for each module, that host instance can be restarted without affecting any other business processes. There is also an option for finer configuration of host instances, to allow high priority business processes to run across multiple servers, and limiting lower priority heavy batch processes to fewer servers. This will ensure that there are always resources available for the higher priority operations.

Limitations of Modular Deployment

The example above makes the assumption that the processes in each module are independent of each other. It may be the case that the order processing module is dependant on the invoice processing module. This will mean that it’s not possible to undeploy the invoice processing module without affecting order processing. It will, however be possible to redeploy order processing, leaving invoice processing unaffected.

Conclusion

Getting the deployment pattern right at the beginning of a project will make for much easier deployment and maintenance of the hub when it gets to production. There’s no set deployment pattern that can be applied successfully to all BizTalk projects. It’s worth taking some time to check out the most suitable project structure.


 

Posted on Wednesday, December 29, 2004 1:59 PM | Back to top


Comments on this post: BizTalk Server - Modular Deployment

# re: BizTalk Server - Modular Deployment
Requesting Gravatar...
Excellent article! A Must Read for all of us!
Left by Jeff Lynch on Jan 28, 2005 3:05 AM

# BizTalk Server 2004 - Hosts & Host Instances
Requesting Gravatar...
If you’ve been following my posts for the past few months, you know that I’m a big fan of Alan Smith’s...
Left by A BizTalk Enthusiast on Feb 22, 2005 8:42 PM

# re: BizTalk Server - Modular Deployment
Requesting Gravatar...
I found this page today and am really wondering what the daigram looks like. sadly enough it doesn't show anymore. Does anyone still have it?
Left by A starting BizTalk programmer on Mar 12, 2008 9:44 AM

# re: BizTalk Server - Modular Deployment
Requesting Gravatar...
diagram image is missing. But article is still usefull. it gived me some idea. Thanks.
Left by minikperi on Mar 26, 2008 9:34 PM

# re: BizTalk Server - Modular Deployment
Requesting Gravatar...
Excellent article, a must read.

I have a one question to all, i have to give training on BIZTALK to my colleagues and i am studying for the same as even i would be doing BIZTALK for the first time in my life. I have done fair bit of it in understading the architecture and the flow. Now in the second day agenda we plan to give them indepth of BIZTALK, what would be the best approach giving them indepth of patterns which in turn would cover everything or giving them the walkthrough of the scenarios and go ahead.....

Your comments would be valuable....
Left by Bugs on Nov 11, 2008 1:52 PM

# re: BizTalk Server - Modular Deployment
Requesting Gravatar...
Thanks a lot for this article, very simplistic for a beginner like me to understand....
Left by Bugs on Nov 11, 2008 1:56 PM

# re: BizTalk Server - Modular Deployment
Requesting Gravatar...
Great starter article for new BizTalk developers
Left by Ryan Jarrett on Jul 15, 2009 8:45 AM

Your comment:
 (will show your gravatar)


Copyright © Alan Smith | Powered by: GeeksWithBlogs.net