Geeks With Blogs

Charles Young

In a recent blog entitled "Did BizTalk get more complicated with 2004", my boss, Andy James (who has just moved his blog to GeeksWithBlogs), wrote that "the fine new orchestration engine and toolset [in BizTalk 2004] is now no longer A RAD business process development tool".   Now, I know the background to his comments, and I know that this statement is in part because of recent experiences in a piece of development in which I had no small involvement.   I would say that BizTalk 2004 is sophisticated, somewhat complex in places, and enforces a steep learning curve.   But I think he is not altogether correct (please don't fire me Andy...please) when he says that orchestration tools do not support RAD. 

Now, it is true that when you first take BizTalk out for a spin, you are likely to make a ton (sorry, 'tonne' - this is Europe, after all) of subtle mistakes which really slow down your progress and result in over-complex orchestrations.   You need to understand the woefully under-documented intricacies of message instantiation and assignment, the best use of schemas and the subtleties of using multi-part messages, .NET classes, etc.  Although not as critical as in Pipeline component creation, a failure to adequately partition your code into separate assemblies (splitting schemas off from orchestrations) can get in the way of rapid development.   It is also true that the build-deploy-bind-enlist-start-test-debug-stop-unenlist-undeploy-change-die-of-boredom-and-old-age cycle is far from RAD-like and in serious need of attention in the next version (please, please take note, Microsoft).   Also, the fact that orchestrations must currently be hosted outside of Visual Studio, and cannot therefore be run and debugged from within the IDE, slows down the speed of development.

However, the secret to RAD orchestration is to get organised.   A bit or organisation, coupled with a reasonable grasp of what is going on, works wonders.   And if you can do the work as a team effort, then this is so much better.   In another (subsequent) piece of development work with BizTalk 2004, I spent three days with a major company doing a proof of concept.  Our mission was to create two orchestrations, neither of which was particularly complex, but both of which where substantial enough to merit the use of orchestration and to present some real-world challenges.   It took us just over two rather stressful days to create the first (smaller) orchestration.   The slow-down was primarily due to a) technical problems getting a third-party adapter to talk to the back-end database system and b) the client's learning curve in understanding how to translate their manual business processes into an automatable form.   We eventually solved the technical problems with help from the vendor (thanks, Ian), and built the first orchestration, leaving us to start the second larger orchestration at about 10:30 am on the third and final day.   We needed to be up and running for a demonstration by 4:00 pm.   A small team was set up initially to come up with an activity diagram.   Having learned quickly from their experience of the first orchestration, they were able to use their domain experience to put together a complete and watertight process flow within a very short time.   I refined this into a detailed paper design for the orchestration, while someone else got on with writing some stored procedures.   A third person was involved in configuring the third-party adapter to call those stored procedures (now a trivial exercise thanks to what we had learned) and generate some schemas and message ports (a very nice feature of the particular adapter).   Then yours truly was left with the simplest task of all - drag some shapes onto the orchestration designer, write a few expressions and message assignments, sprinkle in a bit of exception handling, configure a few orchestration ports and voila.   We made the deadline.   We even had time to create a simple UI to submit messages.  A little experience, teamwork and organisation mean it is possible to generate BizTalk 2004 solutions very fast indeed.

In classic VB-style, RAD is often associated with the fast build-test-debug-change cycle enabled through the visual designer (and, of course, the edit-continue features of good old VB and the forthcoming 'Whidbey' release of VS).  You don't have this luxury with BizTalk orchestrations, so instead, you need to get organised.  If you prepare properly, you can really speed up orchestration design by taking a very rigorous and precise approach.   In the work described above, thanks to the defined process design, I was able to sketch out the shapes and process flow in the Visual Studio designer in a full and comprehensive manner, including expression, decision, message assignment and other shapes, and also groups, scopes and exception handling.  I could also concentrate on applying rigorous naming conventions.   The point here is that with adequate design and preparation (and, perhaps, a little prior experience), you can create an entire sophisticated orchestration and get it into a fairly complete stage before you ever need to start the slow and arduous process of testing and debugging.  

I admit that the end result of our development was not polished - for production-quality code, we would have needed more time for development, and, of course, significantly more time for proper testing.   However, on only our second orchestration, the team worked like a well-oiled machine, producing a working orchestration of a real-life business process with three separate back-end system interactions and associated decision making, human interaction via email notifications, etc. in just a few hours.   The toolset certainly presents some challenges to RAD development, but these can be overcome.

Posted on Thursday, April 15, 2004 10:47 AM BizTalk Server 2004/2006 | Back to top

Comments on this post: Is Orchestration RAD?

# re: Is Orchestration RAD?
Requesting Gravatar...
Hi there,

Just read your item on Biztalk 2004.

I am currently in the move from VB6 to VB.NET and have also been asked to take a look at BIZTALK.

Do you have any recommended reading as there seems to be so little beginners documentation for BT2004, and to be honest I'm not finding iot that intuitive.

Thanks in advance.

Left by Ian Pethick on Apr 19, 2004 5:45 AM

# re: Is Orchestration RAD?
Requesting Gravatar...
The documentation for BizTalk 2004 is currently soemthing of of a disaster. If possible, try to get hold of a beta of BizTalk - preferably the 'Slingshot' build. Although the help file that came with it was only half written, it had significantly more info in it than the release help documentation, and I find myself referring to it all the time. Microsoft are releasing additional documentation on a quarterly basis, and we have just had an update at the beginning of April. There are also a growing number of whitepapers on the MS site. Perhaps the best source of info for people new to BTS2K4, though, are the web casts - you can view these via These are being added to regualarly.

As far as books are concerned, Scott Woodgate, Stephen Mohr and Brian Loesgen are collaborating an a Microsoft development book which is not yet available. I'd keep checking Amazon. I don't know of any other books, but I'm sure more will begin to arrive soon. Also, it's wise to keep monitoring the growing community of BTS bloggers. Newgroups may also be of some use.
Left by Charles Young on Apr 19, 2004 12:02 PM

# re: Is Orchestration RAD?
Requesting Gravatar...
Don't forget Scott Woodgate's (God father of BizTalk) book.

And no I'm not going to fire you Charles!
Left by Andy James on Apr 21, 2004 11:12 AM

# re: Is Orchestration RAD?
Requesting Gravatar...
I prefer regular programming in Visual Studio in C# or C++, where I have better control of names, definitions, etc. It is a myth to think that 'programming' is hard, and 'smart tools' are easy. Modern programming environment, like Visual Studio, makes programming far more efficient than in the old days. But with BizTalk you are back to square one. You have to go deep into every setting/detail to make sure names and spellings are correct. It is very time consuming and error-prone. Sometimes I have to do a 'grep' on all the files in the project to check the spellings. I would like to have a browsing tool for all definitions and references. On the other hand, I love BizTalk the more I know about it ...
Left by Nils Thorell on Sep 13, 2005 9:25 AM

# re: Is Orchestration RAD?
Requesting Gravatar...
hi dad xx
Left by leah on Nov 17, 2005 10:53 AM

# re: Is Orchestration RAD?
Requesting Gravatar...
Hi Leah.

You're nine months old. So who is your 'agent'? Whoever it is, you've certainly got us scratching our heads. It's not your sisters or brother. It's not your auntie. Spookie.
Left by Dad on Nov 18, 2005 5:00 AM

Your comment:
 (will show your gravatar)

Copyright © Charles Young | Powered by: