Welcome to MSDN Blogs Sign in | Join | Help

Minty Fresh

BizTalk, coding, observations, and whatever else crosses my path.
Anti-Pattern: Everything but the Kitchen Sink Map

Name:

Everything but the Kitchen-Sink Map

Description:

Given a complex process with many complex rules, everything (business logic, related and unrelated procedures, etc) is shoved into the map.

Symptoms:

Symptoms include the following:

·         Map contains an overwhelming number of “scriptoids” (scripting functoid) performing custom business logic.

·         Map relies on custom functoids or .NET components to perform custom business logic.

·         Map is difficult to debug because of excessive complexity.

·         Map is difficult to maintain; when a rule changes, one or more custom scripts or code must be modified, tested and redeployed.

·         Business rules are difficult or impossible to deduce by looking at the map.

·         Business logic is sprayed across the BizTalk Server solution, from maps to orchestrations to the Business Rules Engine to external components and systems.

·         Encryption, data modification, and other value-added transforms appear in the map.

Pain:

This anti-pattern produces pain in the following areas:

·         Maintenance

·         Performance

·         Enhancement

·         Debugging

·         Monitoring

Cure:

There are many potential cures you can explore:

·         Business Logic

o   Use the BizTalk Business Rules Engine (BRE). This will increase the flexibility of your solution, ease some aspects of maintenance (maps, etc) at the expense of adding a dependency to the BRE, and force the business team to succinctly define a vocabulary and ruleset.

o   Call custom components containing business logic from an orchestration. For example, if you have a component that uses a complex algorithm to assign a ranking to a customer, call it from an orchestration (or custom pipeline component) and not from within a map.

o   Concentrate business logic in Orchestrations, the BRE and external LOB systems. For example, if your solution is processing 837 Professional claims, a combination of BRE and Orchestration logic may filter based on primary diagnosis and geographic region but a back-end adjudication system will handle most health claim rules.

o   Don’t forget about BAM. By carefully placing logic in appropriate places, you may enhance your ability to track key data using BAM.

·         Value-Added Transformations

o   Can you migrate some of the transformations into a custom pipeline? For example, encrypting certain fields in a message is better done in a custom pipeline component; doing so may improve performance and make maintenance and debugging tasks easier.

o   If you commonly apply the same pattern of 4 or more functoids against many elements, consider combing them into a custom functoid. This simplifies reuse, makes it easier to modify (change the custom functoid instead of ever instance of the transform), and may provide a performance benefit.

·         Other

o   Locate business logic and other procedures as far downstream in the business process as possible. By deferring potentially complex procedures, you may be able to avoid them.

o   Break large maps into smaller maps and run them serially in an orchestration. It may be better to trade a little performance for easier editing and debugging.

o   Develop a coherent plan for business logic based on business requirements, solution architecture, and performance goals. Make sure the plan is followed through sound process.

Comments:

BizTalk maps are great because they are so flexible. This also makes them dangerous because all manner of logic can be tossed in on a whim. Before adding more logic to a map, reconsider – is it better placed somewhere else?

Published Thursday, November 16, 2006 9:23 AM by ebattalio

Comments

# re: Anti-Pattern: Everything but the Kitchen Sink Map @ Thursday, December 14, 2006 5:33 AM

Ah yes, have seen this one before! When confronted with an 'everything but the kitchen sink' map I usually reach for Steve Hart's map documenter tool to try and help me come to grips with how the map works.

http://www.hartsteve.com/2006/02/20/biztalk-map-documenter

keithknight

Anonymous comments are disabled
Page view tracker