In this example the customer is implementing a new web based registration process where new customers can sign up via a website. The customer already has an existing process in BizTalk for managing the business of registering a customer and making updates to a range of on premise applications including SAP and legacy applications. When BizTalk receives a register customer command it starts an orchestration which makes sure all of the appropriate updates happen to each system in order.
As part of the new website development the customer has chosen to host the website in Azure Websites hosting platform. This means the website is outside of the organisation. When the new user registers then the customers information will be sent to an Azure Service Bus queue. BizTalk has been modified to include a new receive port which will pull messages from an Azure Service Bus queue and these messages are correlated to initiate the registration orchestration which implements the existing process.
The role played by the Azure Service Bus in this architecture is to provide a safe, reliable queue in the cloud where the website can send messages to. The queue in the cloud also acts as a load leveller where a big spike in demand will be held on the queue and processed at a rate the on premise systems can deal with.
BizTalk is a great tool to use in this scenario because we are reusing large parts of the existing implementation and simply putting a new on ramp to receive messages from the Azure Service Bus queue. BizTalk is also capable of managing the load of any spikes in demand through throttling but we can be sure any really big spike is going to his the cloud and BizTalk will pull messages at the rate we want it to and then process them asynchronously. BizTalk also has all of the application integration capabilities to map data to application specific formats and to connect to other systems using a push model.
BizTalk finally has the durable orchestration feature which is able to manage asynchronous and potentially longer running work flows which in this case will coordinate the updates to each system and if there are any errors part way through the process then compensation steps can be implemented and the management and monitoring capabilities from BizTalk are all there out of the box.