Welcome to the BizTalk Flow Visualizer (Alpha)

This tool has been designed to help BizTalk developers and administrators visualize the flow of messages through their implementation of Microsoft's BizTalk Server.

As an integration platform BizTalk provides developers with a range of options that can be applied when designing a solution. Choices made during the design and implementation of a solution become an important element in determining the overall performance of the solution, and when troubleshooting the solution is required later on.

The intent of this tool is to provide a mechanism whereby:

  • Developers can see how messages are flowing, or have flowed, based on their solution's design.
  • Average performance metrics for each step in a message flow can help to identify potential bottlenecks in a process.
  • Provide BizTalk administrators with a concise way to understand what is happening in BizTalk, and where errors are occurring.
  • Provide BizTalk developers and administrators tasked with working on an existing solution with a means to easily gain insight into how the components of the BizTalk solution are linked to each other.

NOTE: The solution is currently based on queries run against the BizTalk tracking database (BizTalkDTADb), and will therefore only work for those pipelines and orchestrations that have tracking turned on.


Getting Started

To see the solution working, with demo data:

  1. Extract the released download.
  2. Open the index.html file in the BizTalkFlowVisualizerSite directory in your browser.
  3. Click the settings icon at the top and check the "Use demo data" option.
  4. Click Save and review the visualization.

To get the solution working with your BizTalk data:

  1. Extract the released download.
  2. Setup the BizTalkFlowVisualizer database, by running the included SQL script "BizTalkFlowVisualizerDB.sql" on the same SQL Server as your BizTalkDTADb database.
  3. You can setup the Site and Services web sites on the same server or on separate servers, as long as the Services web site can be setup to use an application pool whose identity has access to the BizTalkDTADb database tables.
  4. To setup the Services web site:
    1. Copy the "Services" folder to a folder, such as c:\inetpub\wwwroot\BizTalkFlowVisualizer, on an IIS server that has access to the BizTalkDTADb database.  This is normally the same server where you would host your BizTalk HTTP or WCF receive locations.
    2. Open the web.config file in this folder and change the connection string to point to the SQL Server containing the BizTalkDTADb database.
    3. In IIS create a new Application giving it an alias, such as BizTalkFlowVisualizerServices, select an application pool whose identity has access to the BizTalkDTADb directory (this would be the same application pool that you would use for a WCF-WSHttp receive location), and set the physical path to the directory to the above Services folder directory, e.g. c:\inetpub\wwwroot\BizTalkFlowVisualizer\Services.
    4. Click on the newly created Application, switch to content view, right-click on FlowData.svc and Browse to the service.
    5. This should open the WCF service in IIS - copy the URL to this service from the browser address bar.
  5. To setup the Site web site:
    1. Copy the "Site" folder to a folder, such as c:\inetpub\wwwroot\BizTalkFlowVisualizer an any IIS server that can access the above Services site.  This could be the same server as used for the "Services" site above or a different server.
    2. Open the web.config file in this folder and change the value for the flowDataUrl setting to the URL for the above services.  Where both Site and Services are on the same server, this would be something like http://localhost/BizTalkFlowVisualizerServices/FlowData.svc.  If the Services are on a separate server you would need to ensure that "localhost" is changed to the name of the applicable server on which the Services site was setup.
    3. In IIS create a new Application giving it an alias, such as BizTalkFlowVisualizerSite, select an application pool which uses .Net Framework 4 in Integrated pipeline mode, and set the physical path to the directory to the above Site folder directory, e.g. c:\inetpub\wwwroot\BizTalkFlowVisualizer\Site.
    4. Click on the newly created Application, switch to content view, right-click on Index.html and Browse to the site.
    5. This should open the BizTalkFlowVisualizer site.  To use the site, click the gear icon, select an appropriate time period, ensure that "Use demo data" is not checked, and click Save to have the page query the BizTalkDTADb for data to display.
    6. Depending on the amount of data to be retrieved, the query process can take some time before the data is analyzed and rendered.

Feature Plans

The following are ideas around further features that could be added to this solution. If you have any other ideas, please log them in the CodePlex discussions page.

  • MSI executable to automate the install process.
  • Include all orchestration steps - this may need to be done as a seperate dialog that opens up when clicking an orchestration box, due to space limitations.
  • Display errors better - Errors that occur are currently logged just to the javascript console
  • Split ports based on message type and URI - currently all messages going through a send or receive port are lumped together, but for more dynamic environments (such as those making use of the ESB Toolkit) there may be a need to split this info out based on message type and/or URI of the port.
    • For example, if a dynamic send port sends messages to SQL in some cases and to FTP in others, these could be shown seperately.
  • Continue to test different solution architectures and adapt this tool appropriately. Scenarios that have not explicitly been catered for, meaning they may not render as expected, or may not render at all:
    • Two-way receive ports show the receive and send ports as seperate ports, but conceptually the send phase should link to the receive port
    • Message de-batching and batching.
    • Errors within an orchestration that are not related to receiving or sending messages.
    • Called orchestrations may not shown as seperate orchestrations
    • Any others you have come across that are not properly catered for? Let me know on the CodePlex discussions page.
  • Animation on connectors - implement an animation that will show the rate of flow of messages on the different connectors
  • Automatic refresh of the visualisation, thus enabling the view to be used as a dashboard as well
  • Apply a filter to what is displayed, e.g. only show messages in Application X
  • As the solution is based on tracking, provide a mechanism to check that tracking is configured correctly
  • Provide an alternative solution that makes use of BAM to collect the data used for the visualization

Last edited Jun 16, 2014 at 8:15 PM by nabeelp, version 10