Introduction to the Azure Service Bus EAI/EDI December 2011 CTP
The Azure team has recently reached a new milestone; delivering on Service Bus enhancements for the December 2011 CTP. More specifically, this CTP provides Enterprise Application Integration (EAI) and Electronic Data Interchange (EDI) functionality. Within the Microsoft stack, both EAI and EDI have historically been tackled by BizTalk. With this CTP we are seeing an early glimpse into how Microsoft envisions these types of integration scenarios being addressed in a Platform as a Service (PaaS) based environment.
What is included in this CTP?
There are 3 core areas to this release:
- Enterprise Application Integration: In Visual Studio, we will now have the ability to create Enterprise Application Integration and Transform projects.
- Connectivity to On-premise LOB applications: Using this feature will allow us to bridge our on-premise world with the other trading partners using the Azure platform. This is of particular interest to me. My organization utilizes systems like SAP, Oracle and 3rd party work order management and GIS systems. In our environment, these applications are not going anywhere near the cloud anytime soon. But, we also do a lot of data exchange with external parties. This creates an opportunity to bridge the gap using existing on-premise systems in conjunction with Azure.
- Electronic Data Interchange: We now have a Trading Partner Management portal that allows us to manage EDI message exchanges with our various business partners. The Trading Partner Management Portal is available here.
What do I need to run the CTP?
- The first thing you will need is the actual SDK (WindowsAzureServiceBusEAI-EDILabsSDK-x64.exe) which you can download here.
- A tool called Service Bus Connect (not to be confused with AppFabric Connect) enables us to bridge on-premise with Azure. The setup msi can also be accessed from the same page as the SDK. Within this setup we have the ability to install the Service Bus Connect SDK(which includes the BizTalk Adapter Pack), Runtime and Management tools. In order for the runtime to be installed, we need to have Windows Server AppFabric 1.0 installed.
- Once we have the SDKs installed, we will have the ability to create ServiceBus projects in Visual Studio.
- Since our applications will require resources from the Azure cloud, we need to create an account in the Azure CTP Labs environment. To create a namespace in this environment, just follow these simple instructions.
- Next, we need to register our account with the Windows Azure EDI Portal.
Digging into the samples
For the purpose of this blog post I will describe some of what is going on in the first Getting Started sample called Order Processing.
When we open up the project and launch the BridgeConfiguration.bcs file we will discover a canvas with a couple shapes on it. I have outlined, in black, a Bridge and I have highlighted, in Green, what is called a Route Destination. So the scenario that has been built for us is one that will receive a typed xml message, transform it and then place it on a Service Bus Queue.
When we dig into the Xml One-Way Bridge shape, we will discover something that looks similar to a BizTalk Pipeline. Within this “shape” we can add the various message types that are going to be involved in the bridge. We can then provide the names of the maps that we want to execute.
Within our BridgeConfiguration.bcs “canvas” we need to provide our service namespace. We can set this by click on the whitespace within the canvas and then populate the Service Namespace property.
We need to set this Service Namespace so that we know where to send the result of Xml One-Way bridge. In this case we are sending it to a Service Bus Queue that resides within our namespace.
With our application configured we can build our application as we normally would. In order to deploy, we simply right mouse click on solution, or project, and select Deploy. We will once again be asked to provide our Service Bus credentials.
The deployment is quick, but then again we aren’t pushing too many artifacts to the Service Bus.
Within the SDK samples, Microsoft has provided us with MessageReceiver and MessageSender tools. With the MessageReceiver tool, we can use it to create our Queue and receive a message. The MessageSender tool is used to send the message to the Queue.
When we test our application we will be asked to provide an instance of our typed Xml message. It will be sent to the Service Bus, transformed (twice) and then the result will be placed on a Queue. We will then pull this message off of the queue and the result will be displayed in our Console.
So far is seems pretty cool and looks like this team is headed in the right direction. Much like the AppFabric Apps CTP, there will be some gaps in the technology, and bugs, that have been delivered as this is still just a technical preview. If you have any feedback for the Service Bus team or want some help troubleshooting a problem, a forum has been set up for this purpose.
I am definitely looking forward to digging into this technology further – especially in the area of connecting to on-premise LOB systems such as SAP. Stay tuned for more posts on these topics.