Orchestration vs. BAM Tracking

by Dan Rosanova 28. April 2009 02:10

I've spent a lot of time lately designing stateless services and the schemas to enable them to be both stateless and extensible (which will be another post), but in doing so I began to realize that very often people embrace BizTalk Orchestration as the closest analogy to Business Process and tend to over leverage it in an attempt to unify and track their business processes. There certainly are times when an Orchestration is a business process, but often business processes will span multiple Orchestrations. Fortunately BAM and the TPE allow for this.

So what's wrong with just making really large, long running Orchestrations anyway? I strongly believe that the less in flight instances of Orchestrations you have in your BizTalk servers the better. It's not that the product can't do it (scalability isn't really a big issue here when done right) or that it's that difficult to make the product do it well; side by side deployment of Orchestrations is simple in BizTalk and schema and artifact versioning strategies (yet another post) are widely established / embraced. It is really back to the idea of the business process as a whole and its constituent parts as stages. Again I am reminded of good programming practices: in general simple is good. If a method has too many lines of code it is difficult to understand and maintain, breaking it into smaller chunks is probably a good idea once this happens. This also promotes reuse.

The same is true of Orchestration, only more so because the administrative aspects of Orchestration are more pronounced and visible. The Orchestration designer is a great tool and the HAT view of Orchestration is very useful for both tracking and debugging, but it is easy to get carried away. A good all around architectural principal is that you should not have to change your solution architecture simply to support features that aren't a core part of the solution itself. Build processes and tracking often fall into this category. If your build process causes you to change your solution perhaps it is not your solution that needs changing, but your build process. The same is true of tracking.

This ultimately calls for Business Activity Monitoring, which I having been working with more and more lately. I think BAM really is the analogy that best represents the business process that project sponsors understand and want to see. I personally am a big fan of the Orchestration Designer for Business Analysts for use in creating tracking definitions. This can serve not just as a lunch point for BAM, but for the solution that you are creating. This tool is allows business users to define the data and milestones that are important to them. The output, an XML file, can then be imported into Excel for completing the definition and defining views. Once I show businesses what BAM offers them (especially when they learn no custom database code or structures must be written to support it) they want to use it for everything. This isn't a bad idea, it scales really well and is probably better than most of us would be given the time to develop ourselves. Jesus Rodriguez wrote a great BAM article recently for MSDN here.

Importantly BAM was not as robust in previous versions of BizTalk so the 2006 releases really took this a lot further. The greatest advance was undoubtedly implementing multiple continuations in Tracking Profiles. I think this contributes largely to the use of Orchestration as the primary business process analogy. Allowing multiple continuations really allows the visibility business want in a much more elegant solution than large Orchestrations, which were really the only way to accomplish this in the past.

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

General | Orchestration

Packaged MSI Viewer beta released

by Dan Rosanova 20. April 2009 06:10

I'm a big fan of MSI installation and I think BizTalk does a better job than any other product in leveraging MSI deployment. There are many reasons why I like MSI installation, but the number one has to be the ability to hand off from Development to Operations (and possibly through Test in-between).

 

Separating Development from Operations teams is critical for enterprise systems and is something BizTalk does well; if you let it. In an effort to facilitate such clean handoffs I always package bindings in my MSIs to enable the installation onto a variety of environments. Generally I create Developer, Integration, Test, and Production bindings. This has worked well for me for years.

 

Recently I did see one downside and that was that an Administrator may want to know more about those bindings without installing the MSI anywhere. To enable this I created an XSLT to view bindings files and added a step to my build process to create the transformed bindings view. I then either packaged these into the MSIs as file or left them in the same directory as the MSI itself. This was a bit clunky, but the Operations teams from my customers liked it.

 

Recently I was reading this BizTalk post and saw Randal van Splunteren's post about extracting MSI contents. I had been thinking about creating a BizTalk MSI Viewer for some time and this showed me how easy it was to do. Randal had figured out the undocumented API which made this really quite simple. This first version unpacks the MSI and displays the bindings files, then transforms them via an XSLT in the install directory of the application (if you would like to change it). I've already got a long list of features to add any may end up opening the project up in the future.

 

I've posted the first beta of BizTalk Msi Viewer for feedback here.

Currently rated 4.3 by 3 people

  • Currently 4.333333/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Powered by BlogEngine.NET 1.4.5.0
Theme by Mads Kristensen