Microsoft Integration Platforms Mappers

Following Microsoft’s recent preview release of the long-awaited Azure Logic visual data mapper, this is a look back on visual mappers in Microsoft real-time integration platforms: BizTalk Server, the deprecated BizTalk Services, and Azure Logic Apps.

Azure Logic Apps Standard Data Mapper – Visual Studio Code

Visual Data Mappers

It is typical in integration solutions to integrate with disparate systems which come with different message structures and semantics. Data mapping is one the roles of the integration platform to handle the required transformation and translation tasks between these messages.

Languages such as XSL, Liquid Template, or even generic programming languages could perhaps handle these mapping tasks, however, visual data mappers can simplify these tasks especially when dealing with large schemas, convoluted schemas, or both.

On the other hand, GUI mappers can drastically improve the mapping experience which in turn can contribute in increasing the productivity for developing and maintaining them.

Expressiveness, Extensibility, and Intuitiveness are key aspects that play a role in the success of the visual GUI mappers.

Expressiveness

Painters use color palettes with just enough colors which can be artistically combined to create limitless paintings.

In the same sense, a visual mapper is the integration developers’ palette which will help them articulate a wide range of mapping tasks using a concise set of mapping components.

Expressiveness in visual mappers can be attributed to having the right level of abstraction and abundance of the mapping components as well as their possible interactions.

An example of the interaction between mapping components is the chaining of functoids, BizTalk’s helper functions, as shown in the following BizTalk Server mapper (BTM file).

In the highlighted part, the left functoid evaluates the source field for a specific condition and it feeds the result to the next functoid which conditionally maps the final value to a destination field.

BizTalk Server Mapper – Visual Studio

Another example of expressive components interactions could be shown in the mapper of BizTalk Services, which was part of Microsoft’s integration vision years ago and was deprecated in 2018.

Its mapper introduced a nesting structure between some of its components which greatly simplified the iteration expression compared to BizTalk Server counterpart, which in turn made it more expressive, as shown in the following BizTalk Services transform file (TRFM file).

BizTalk Services Mapper – Visual Studio
Screenshot Credit: Bharathy, K., & Fancey, J. (2014). Getting started with BizTalk services. Packt Publishing.
Extensibility

Regardless of how much a visual mapper is expressive, the level of abstraction introduced by the mapper GUI will ultimately take away some of its expressiveness power.

Visual mappers will start to show their limits under certain complex mapping scenarios which could prove to be either very difficult, or impossible to implement in the GUI. This is a typical trade-off when abstracting away from code, the ultimately expressive palette, as you start losing the fine-grained control.

Allowing code snippets to be strategically included in certain areas in the map through extension points in the visual mapper can alleviate some of its limitations and it will boost its expressiveness .

User Experience

In addition to the mapper powerful capabilities, its usability is another aspect that is critical to its success. A great user experience will reflect in the acceleration of the learning curve and in the adoption of the visual mapper.

The user experience is a broad topic which can include descriptive icons, UI components behavior, familiar keyboard and mouse gestures, just to name a few. Generally, it can boil down to simplicity, intuitiveness, and predictability of the mapper UI components.

Finding the balance between having an expressive mappers while maintaining a great user experience is more of an art than science. Innovation plays an integral part in shaping up the user experience, while research and end-user feedback will help in refining it.