As you’re probably aware, Windows Azure IaaS went general availability recently. There are three BizTalk images in the gallery that you use to create a new BizTalk virtual machine.
This was too much for me to resist, I wanted to do something cool and distributed as a proof-of-concept. The result is this blog post, and the accompanying video that shows the demo running.
To get to the bottom line, I used 2 BizTalk VMs on Azure, and 1 running “on prem” (in a Hyper-V VM). The roles of the servers are as follows:
Server 1 (“Spoke”, Western Europe):
- receives a batch of orders
- disassembles the batch into individual orders
- uses the WCF-WebHttp adapter to send each order to the hub via a REST POST
Server 2 (“Hub”, Southeast Asia)
- receives each order via the WCF-WebHttp adapter
- sends each order on the the Azure Service Bus using the WCF-NetTcpRelay adapter
Server 3 (“On-prem”, San Diego USA)
- establishes an endpoint on the Windows Azure Service Bus using the WCF-NetTcpRelay adapter
- receives order messages sent to that endpoint
- persists them to file
As this is the ultimate “watch a file disappear here and another show up there” canonical BizTalk demo, I put a video together showing it working. All BizTalk people have done one of these demos before, but this is as far as I know the first one to circle the planet, leveraging Windows Azure.
I created this demo by first getting everything running locally in a single Hyper-V VM. Then, after deploying, all I needed to do was re-configure thee Spoke machine send port to that it would send to the Hub machine. For the BizTalk Servers running in Windows Azure, I used the Evaluation image, which has SQL Server installed (the Standard and Enterprise images do not).
The Spoke machine uses the default settings (it seems the default behavior of a WCF-WebHttp adapter in a send port is to do a POST, which makes sense).
The Hub machine receive location also uses the default settings:
The Hub machine send port (sending to the Windows Azure Service Bus) looks like this:
The credentials used above are the credentials for the Service Bus namespace.
Remember to watch the video!