Windows Azure BizTalk Services is a cloud-based integration service that provides B2B and EAI capabilities for cloud and hybrid solutions.
The Windows Azure BizTalk Services are provided by Microsoft through the Windows Azure portal.
This blog post will focus on the differences between the Windows Azure BizTalk Services mapping tool and the BizTalk Server 2013 mapper.
The screenshot shows the interface of both mapping tools head to head. On the left hand side you see the BizTalk 2013 interface, on the right hand side you see the Windows Azure BizTalk Services mapping tool.
As you can see Microsoft did a pretty amazing job of bringing the same ‘design’ of BizTalk server into the Windows Azure BizTalk Services mapping tool. Of course the icons of the functions are slightly different, but generally the WABS mapper tool provides the same look and feel as the BizTalk mapper.
Both the BizTalk 2013 mapper and the Windows Azure BizTalk Services mapping tool are providing a wide range of functoids. The 2 tables below are giving a head to head comparison of different functoids supported in both applications.
As you notice, Windows Azure BizTalk services comes with a wide range of functoids as we know them from BizTalk 2013. The only difference is that some functoids are grouped in WABS. ex: Arithmetic Expression, Logical Expression,…
Below you can find a list of functoids that are available in WABS but are not ‘yet’ available in BizTalk 2013. Especially the DateTimeReformat and the GetContextProperty could be nice additions to the BizTalk mapper.
- Use this to reformat a date-time value. The input value is parsed using the specified input format string, and the output value is formatted using the specified output format string.
- Use this to access the value of a specified property from the property bag associated with the input data.
- List Operations
- There are a number of functoids to manage/create lists. You can create a list, add items, select unique groups, order, get specific items…
- MapEach Loop
- Use MapEach to loop over a repeating input. Each iteration will produce an instance of the target node.
- ForEach Loop
- Use ForEach to loop over a repeating input. Unlike MapEach this does not produce any target nodes. It can contain MapEach Loop(s) that will produce target nodes, to flatten source loops. It can also be used to add items to a list.
For testing your map Windows Azure BizTalk Services and BizTalk 2013 offer different options, below you can find them head to head. On the left hand side you see the Windows Azure BizTalk Services options, on the right hand side you see the BizTalk 2013 options.
All functionality that BizTalk offers is supported in Windows Azure BizTalk Services. The only thing that I’m missing in the Windows Azure BizTalk Services mapping tool is the ‘Generate Instance’ option, this allows you to quickly test your mapping with fictive data, rather than having to designate an input instance manually.
For extending the mapper Windows Azure BizTalk Services and BizTalk 2013 offer different options, below you can find them head to head. On the left hand side you see the Windows Azure BizTalk Services options, on the right hand side you see the BizTalk 2013 options.
The good thing about the Windows Azure BizTalk Services mapping tool is that we can specify our own custom XSLT. The original design of the Windows Azure BizTalk mapper did not include this function.
On the other hand, it currently looks impossible to provide a ‘Custom Extension XML’ (http://msdn.microsoft.com/en-us/library/aa547368.aspx). That means when a C# function is needed in our XSLT, we will need to call it through inline C#. At Codit, it’s a best practice NOT to use inline C#, because of known issues with Memory Leaks (http://support.microsoft.com/default.aspx?scid=kb%3bEN-US%3b316775).
Migrating maps from BizTalk to Windows Azure BizTalk Services
The Windows Azure BizTalk services SDK (link) comes with a tool (BTMMigrationTool.exe) that allows you to easily migrate your existing .btm (BizTalk map) files to .trfm (Transform) files.
This migration tool is a simple command line tool that takes 1 or 2 input parameters as shown below :
BtmToTrfmConvertor.exe <Full BTMFilePath> [optional]<OutputTrfm>
As an example of demonstrating the migration capabilities of the tool, I took a simple mapping and migrated it with the BTMMigrationTool.
You can see the result in the screenshots below. First one in the original .btm file of BizTalk. Second one is the.trfm generated by the BTMMigrationTool.
As you noticed in this blog, Microsoft did a nice job of bringing the same look and feel of BizTalk server into the Windows Azure BizTalk Services mapping tool. Most of the functionality the BizTalk mapper offers, is also supported in Windows Azure BizTalk Services.
The only major thing that is missing in my opinion is the option to provide a ‘Custom Extension XML’, with this option not available we are ‘forced’ to call inline C# functions in our XSLT.
But also BizTalk can learn from Windows Azure BizTalk Services, for example the ‘GetContextProperty’ functoid could be a nice addition to BizTalk.
If you have remarks or questions about this blog post, please do not hesitate to put them in the comments section.