The current mapper was an award winning tool when it was released. But lately we have been hearing from our customers that although mapper is great for simple maps, they are finding it increasingly difficult to develop and maintain maps with the BizTalk Mapper. The problem is that when mapper was developed schemas used to be small and mappings used to be simple. With the increasing complexity of integration challenges being solved using BizTalk, the size of the messages/schemas and the complexity of maps has been increasing rapidly.
The above map is an example of a complex map where user faces many challenges. Both source and target schemas have hundreds of nodes making it difficult for users to identify nodes to map. Even after mapping user faces challenges in trying to follow the relationships end to end as the huge number of links in the map reduces it to a jumble of black lines. Understanding and updating this map becomes a time consuming process.
Improving usability of the mapper was a key focus area to enhance developer productivity for BizTalk Server 2010. For solving the challenge of making maps easier to understand while maintaining the immense flexibility provided by BizTalk Mapper, we collaborated with Microsoft Research and worked with highly respected researchers like George Robertson and Phil Bernstein. Our focus was to bring simplicity in both creation and maintenance of maps.
One of the problems in big maps was the amount of background noise that distracted user from task at hand. BizTalk Mapper solves the problem by first hiding and/or dimming out the links that are not relevant to the page area of the map you are currently viewing. The links where both ends are not currently in view are now hidden. Even the links where only one end is currently in view are dimmed out by using a thinner dashed line types. When you select any schema node, link or a functoid in the map, BizTalk Mapper now activates highlight propagation. In highlight propagation Mapper brings selected item in prominence along with all the relationships associated with it. This in turn allows you to focus on the selected object and its relationships while reducing all the background noise. If the relationships are not in the current view, Mapper automatically scrolls the mapping grid surface to bring the selected relationship in view. This drastically reduces the amount of scrolling you had to do previously, to view end-to-end relationships. Apart from this, during design time you can now document the mapping logic by providing comments for the functoids. This can be used later for understanding the usage of a functoid by hovering over the functoid shape on the grid surface. The picture below illustrates how you can quickly understand the end to end relationship by using commenting functionality along with highlight propagation described above.
For the initial map creation, we targeted on making it easier for you to identify elements to map. When you have big schemas and are looking to have direct links from the source schema to the destination schema, one of the biggest issues is to find the relevant nodes in the schemas. Now in BizTalk Mapper if you select any element in the source or destination schema and invoke "Indicative Matching" mapper, it will suggest you the possible matches in the other schema. These matches are generated based on a complex algorithm, which was developed in collaboration with Microsoft Research. This algorithm looks at various parameters like how words are shortened by dropping alphabets, relative position in the schema tree, etc. to generate possible matches. We have also made it easier to discover AutoLink functionality. Now when you link two records, we display a context menu where you can choose the type of link you require. Mapper also provides messages on the status bar when an attempt is made to create invalid link.
For a multipage map, it is tough to figure out where a certain schema node is being used. Mapper already indicates that a particular schema node is linked in another page by showing a link icon in the schema tree. But if you have same schema node linked in multiple pages, it is difficult to find all the pages in which the node is being used. To solve this problem mapper will now also show indication on the page tabs below mapper grid surface to indicate that the selected schema node is linked.
The map development experience has also been greatly enhanced by consolidating all the functoid configuration activities into a single dialog. This dialog will provide tabs for various configuration tasks like input configuration, script configuration, table looping configuration etc. The input configuration also has been enhanced to make inputs easier to configure and understand. The mapper will give you error indication about the inputs in the configuration dialog and a visual cue (just like IntelliSense) with error information on the mapper grid. For scripting functoid, you can set your favorite scripting language as default and all the new scripting functoid will be automatically offer you that as the first choice. You can also import scripts from existing files on disk.
The new incremental search will help you find the relevant object quickly. You can not only search through the schema nodes, but also through functoids. You can also select schemas and which properties of functoids you would like to search using the search options dropdown. Mapper displays the number of search matches and their distribution in the status bar. All the matches in the schema trees are highlighted. The matching functoids in the current view are highlighted. If there are matching functoids that are hidden, mapper will indicate that by showing a glowing directional arrows at the edges towards which you need to scroll towards to uncover the results. If there are results on other pages, mapper will indicate that by highlighting those page tabs.
Another feature which makes it easy to understand a map quickly is "Relevance View". As a map developer you might be interested only in nodes that are actually part of the map, hiding the other nodes makes it easier for you to understand the full map better. You can turn on this feature on either the source or destination schema using toolbar buttons. This makes it easier for you to focus on only the relevant schema nodes when looking at the map without getting distracted with unused nodes. When the unused nodes are hidden, they are still easily accessible through tooltips. You can also expand a collapsed node to override the default collapsing of all non-relevant nodes.
Making design time experience much better is the support for cut/copy /paste within and across maps. This should help you reuse repeated logic or segments common across maps. Undo and redo adds to the goodness by making development by trial and error easier. Apart from these zooming and panning in the map is much easier, making moving around the map a breeze.
These are only some of the enhancements in the BizTalk Mapper. Our usability tests have shown that these enhancements in the BizTalk Mapper have increased developer productivity in creating and maintaining complex maps. We now want to hear from you! How much productivity improvements have you observed while using BizTalk Server 2010's Mapper.
Program Manager, BizTalk Server Team