Integration of Mule ESB with Microsoft Azure

13.05.2015

Overview

MuleSoft provides the most widely used integration platform to connect any application, data service or an API, across the cloud and on-premise continuum. Microsoft Azure is a cloud-based data-storage infrastructure that is accessible to the user programmatically via a MuleSoft ‘Microsoft Service Bus’ connector. The Microsoft Service Bus Mule connector allows developers to access any amount of data, at any time and from anywhere on the web. With connectivity to the Microsoft Azure API, users can interface Azure to store objects, download and use data with other Azure services.  Applications can also be built for which internet storage is required - all from within MuleSoft Anypoint Platform.

Instant access to the Microsoft Azure API enables businesses to create seamless integration between Azure and other databases, CMS applications such as Drupal, and CRM applications such as Salesforce.

Mule Integration Azure

Prerequisites

  1. Microsoft Azure Account
  2. Microsoft Azure Namespace, Shared Access Key Name and Shared Access Key
  3. Mule Anypoint Microsoft Service Bus Connector

Microsoft Azure Account

To complete this sample, we need an Azure account. We can activate the MSDN subscriber benefits or sign up for a free trial.

 Azure Home

Creating Microsoft Azure Namespace

To begin using Service Bus topics and subscriptions in Azure, firstly we must create a service namespace. A service namespace provides a scoping container for addressing Service Bus resources within the application.

To create a service namespace:

  • Log on to the Azure Management Portal
  • In the left navigation pane of the Management Portal, click Service Bus
  • In the lower pane of the Management Portal, click Create
  • In the Add a new namespacedialog, enter a namespace name. The system immediately checks to see if the name is available.

Azure Create Namespace

Microsoft Azure Shared Access Name & Key

Click Connection Information. In the Access connection information dialog, find the connection string that contains the SAS key and key name. Make a note of these values, as we will use this information later to perform operations with the namespace

Azure Namaspace Details

Mule Anypoint Microsoft Service Bus Connector

Send to Queues, Topics and Event Hubs with support of AMQP message properties and header, including custom properties.

  • Receive from Queues and Topics asynchronously
  • Rest Management API
    • CRUD for Queues
    • CRUD for Topics
    • CRUD for Subscriptions
    • CRUD for Rules

The connector supports the following Service Bus versions:

  • Microsoft Azure Service Bus (Cloud)
  • Microsoft Windows Service Bus (on-premises)

Configure Mule Anypoint Microsoft Service Bus connector with the following settings -

  • Configuration:(Azure connector configured using the config element) This element must be placed out of flow and at the root of the Mule application. We can create as many configurations deemed necessary as long as each carries its own name.
  • Connection Pool: Azure connector offers automatic connection management via the use of a connection pool. This pool will act a storage mechanism for all the connections that are in-use by the user of this connector.

Prior to the execution of a processor, the connector will attempt to lookup for an already established connection and if one doesn't exist, it will create one. This lookup mechanism is done in the connection pool via the use of connection variables declared as keys.

Microsoft Service Bus Connector

Reconnection Strategy: Reconnection Strategies specify on how a connector behaves when the connection fails. We can control the attempts by Mule to reconnect using several criteria -

  • Type of exception
  • Number and frequency of reconnection attempts
  • Notifications generated

With a reconnection strategy, the behaviour of a failed connection can be controlled in a much better way by configuring it, for example, to re-attempt the connection only once every 15 minutes, and to give up after 30 attempts. An automatic notification can be sent to the IT administrator whenever this reconnection strategy goes into effect. A strategy can also be defined which attempts to reconnect only during business hours. Such a setting can prove useful if the server is frequently shut down for maintenance.

Mule ESB – The best way to Integrate Microsoft Azure

The below Mule application is used to get the list of queues created under Azure cloud using Mule Anypoint Microsoft Service Bus connector.

azure sample

Steps to be followed for integrating 'Microsoft Azure' with MuleSoft Applications:

  1. Install the Microsoft Service Bus Connector in Anypoint Studio (3.5 and above) http://repository.mulesoft.org/connectors/releases/3.5
  2. Create a new Anypoint Studio Project and Flow.
  3. Before using the Microsoft Service Bus Connector in the Mule Flows, create a global element for ‘Microsoft Service Bus: Azure Service Bus’ configuration which can be reused in all other flows across the Mule project - wherever the objects are created & deleted to and from Microsoft Azure cloud server.
  4. Configure the ‘Microsoft Service Bus: Azure Service Bus’ connector by providing the following information for the global element
    • Service Namespace
    • Shared Access Key Name
    • Shared Access Key
  5. Use HTTP inbound endpoint to hit the service and to pull the list of queues from the Microsoft Azure storage server.
  6. Configure the Microsoft Service Bus endpoint by providing the following to fetch the list of queues from the Azure server -
    • Link to the ‘global Connector Configuration’
    • Operation name

Azure Flow XML

Running the Application

We are now ready to run the project! First, let us  test run the application from Studio:

  1. Right-click on the application in the Package Explorer pane.
  2. Select Run As > Mule Application:
  3. Start a browser and go to http://localhost:8081/GetQueueList
  4. The list of existing queues should be returned in JSON format (results will vary according to the Service Bus instance).

Queue list under Azure

 

Azure Queue Details

Queue list from Mule output

 

Azure GetQueue Result

 Benefits

  • No point-to-point integration required
  • Seamless integration running in the background
  • Quick data synchronization between Microsoft Azure with an on-premise and cloud based applications
  • Facilitate applications with Microsoft Azure capacities for large volume data storage
  • Store applications data and can be rolled back during disaster recovery
  • Bi-directional data communication between applications and Microsoft Azure
  • Highly scalable, it secures a solution for backing up and archiving your critical data
  • Send event notifications when objects are uploaded to Microsoft Azure
  • Access any amount of data, at any time, from anywhere on the web

Author: Mr. Sanjeet Pandey is a Masters of Computer Application (MCA) graduate having 4+ years of experience as a Technical Specialist with WHISHWORKS. He has varied experience in ESB’s like Mule, JCaps.  Sanjeet loves dreaming up new ideas, movies & music, photography & travelling and developing web projects. To know more about Sanjeet log on to www.sanjeetpandey.com\

If you would like to find out more about how Systems Integration could help you make the most out of your current infrastructure while enabling you to open your digital horizons, do give us a call at +44 (0)203 475 7980 or email us at marketing@whishworks.com

Other useful links:

Integration with Twitter using Mule ESB

Integration with LinkedIn using Mule ESB

Integration with Dropbox using Mule ESB

Recent Posts