Wednesday, 10 October 2007 7:02 PM
DanToomey
BizTalk - A Case Study
My first exposure to BizTalk happened when I was tasked to
design a cross-agency messaging solution for a government department several
years ago. The task seemed simple enough at first: we needed to accept data
packages as XML messages delivered from an external agency via Web Services,
and then load them into our backend Oracle system.
Sounds like a job for a simple Web Service, MSMQ and a
couple of stored procedures, right? That's what I thought initially. Then came
all the ancillary requirements, and suddenly it wasn't so simple:
- The
Oracle system wasn't a 24/7 system (it went down every night for cold
backups and batch processing), but the messages came constantly, even
overnight.
- We
couldn't guarantee a size limit on the messages, and MSMQ doesn't do so
well with message > 4MB in size.
- Then
there was the asynchronous response message, which had to be correlated
with the original message, and handled differently depending on whether it
was successfully loaded or not.
- Finally,
the business wanted some major aspects of the solution (such as down
times, etc) to be configurable.
Just as I was starting to panic at the prospect of using my
relatively green .NET skills to write thousands of lines of code, along came
Mick Badran saying, "Why Dan, we can do all that in BizTalk Server 2004!" A
day and a half later, Mick had setup a working prototype for us! Later on, Bill
Chesnut helped me put in the finishing touches, and now the system is still
running today, supporting multiple applications within a critical interface.
Moreover, the solution has provided an opportunity to
streamline and consolidate a plethora of existing disparate interfaces using
multiple technologies such as FTP, flat files, etc. Many of these interfaces
utilise C++, ProC or VB6 code that can't be easily maintained by the current
developers' skill sets, and they offer little or no tracking and/or error
handling capability.
Among the many BizTalk features that were used:
orchestration logic, schema maps, rules engine, message correlation, atomic
& long running transactions, exception handling, custom .NET class
invocation, and FILE, SQL, SOAP and SQL adapters.
Once I saw what BizTalk was capable of as an integration
provider and business process manager, I was hooked! (and that was long before I ever saw the sleek new admin console in BTS 2006, or even dreamed of the capabilities you get OTB in the latest R2 release!)