Today Scott Guthrie announced a number of great enhancements to Windows Azure. One of these is of interest to us integration professionals: BizTalk Services. A new service in the Windows Azure Platform that enables EDI and EAI integration in the cloud. Now many of you might know or is familiar with previous Windows Azure EAI/EDI labs, which can be considered as a Beta or preview of this new service.
In this post and a follow up I like to walk you through the creation of a BizTalk Service (Set up) and use case scenario that leverages the BizTalk Services. I was inspired and guided by the post of Sam VanHoutte, Codit Belgium.
In case you have an azure account then you can go to the preview features: https://account.windowsazure.com/PreviewFeatures and try it out.
The scenario or use case I am going to use is about providing secure access to a database that contains running data. Let’s say 30.000 people run a half marathon race. Every 5K there is a mark that registers the runner's time. So there’s a mark at 5, 10, 15, 20K and the finish. Each registered time is sent as a message to a topic called race that has subscriptions for each mark. A BizTalk application will pull of the messages from each subscription in a controlled manner and store the data in a database. The BizTalk Service I will create will provide secure access to the data.
The BizTalk Service can be created in the Windows Azure Portal. When you click Create a New BizTalk Service a Window will pop up. This pop-up windows is a kind of a wizard that will guide you through the creation of the service.
In the first tab (Specify Your BizTalk Service settings) you can specify the name of the service, and domain URL will be generated for you. You can specify the edition. If you are in the testing/development phase, choose Developer. If you are in the production phase, use the matrix to determine if Enterprise, Standard, or Basic is the correct choice for your business scenario.
Based on the region you live you can choose the closest data center, yet you can select any geographic region to host your BizTalk Service. You also specify for tracking purposes a SQL Database (to store the tables used by your BizTalk Service). You choose between using an existing SQL Database instance or to create a new SQL Database instance. Finally you choose between the Azure subscription accounts you might have.
The second tab is for specification of the database settings. Some of the fields depend on the option you selected in the SQL database choice in the first tab. A new SQL Database instance results in screen as seen below. The database name is provisioned for you, a server (SQL Azure) can be selected and Server Login Name is displayed (one you use for your SQL Azure database server). In case you check configure advanced settings an extra tab will appear enabling you to specify so more characteristic of your database.
The third tab you can specify the Access Control and Monitor settings. You can specify the access control namespace. In case you create one or more namespace you can choose between them. Beside namespace you specify the issuer name and key belonging to the chosen namespace. It is important that the namespace is created through Active Directory tab. I used a namespace (BTUGNLD) from my Service Bus service first and that failed. What you below is wrong!
To get the user and password settings, you need to click on the Manage button in the Access Control Namespace section of the Active Directory module in the Azure portal. This will direct you to the ‘old’ ACS management portal (Silverlight) where you can get your user. This can be done by selecting the ‘Management Service’ link on the left. Then subsequently either use the existing Management Client service account or create a new one. Next click the service account you want to use and then click the Password link. To get the password, you can click the Show Password button.
With user name ManagementClient and correct password I configured the service. Finally you specify your storage account.
In the final tab you have to enter a SSL certificate. So browse to your private SSL certificate (CertificateName.pfx) that includes your BizTalk Service name, enter the password and click the complete check mark. For purposes of this post I create a self-signed certificate in my BizTalk Server 2013 VM by use of makecert.exe.
Makecert -pe -r -n "CN=<yourservicename>.biztalk.windows.net" -e "01/01/2015" -ss my
In my case:
Makecert -pe -r -n "CN=btugnld.biztalk.windows.net" -e "01/01/2015" -ss my
After performing makecert action with the given parameters you can export your PFX from your certificate store and upload it.
The Certificate Store can be accessed by mmc, see How to: View Certificates with the MMC Snap-in and Export a Certificate.
Update: The CN name has to service name e.g. name of you BizTalk Service in case you provide a different name you may run into some trust issues, when you try to deploy your bridge for instance! So btugnld namespace in MakeCert should have been runningtimes:
Makecert -pe -r -n "CN=runningtimes.biztalk.windows.net" -e "01/01/2015" -ss my
Now you have to wait for service to provisioned for you.
Now you are almost there. You need to
register your service in the BizTalk management portal, which is a
Silverlight portal that will be there during the preview. By clicking on the Manage button you will be taken to the Silverlight portal.
On this portal, you have will have to specify three settings:
- BizTalk Service: the name of the BizTalk Service you specified in the first step
- Issuer name: the name of an ACS user that belongs to your ACS namepsace
- Issuer secret: the shared secret key of that user
Now you are all set.
For development of your Windows Azure BizTalk Service you will need to download the SDK:
- BizTalk Adapter Service x64
- BizTalk Adapter Service x86
- BTMMigrationTool (this is to migrate BizTalk mappings to the new mapper)
- MicrosoftEdiXsdTemplates (all X12/EDI schemas)
- WindowsAzureBizTalkServices SDK
In case you to start creating BizTalk Services applications, install BizTalk Services SDK (See Installing the Windows Azure BizTalk Services SDK - June 2013 Preview)
In my scenario I also like to extend the reach of my BizTalk Services applications to on-premises LOB applications like SQL Server, SAP, etc, so I had to also install BizTalk Adapter Service (again see Installing the Windows Azure BizTalk Services SDK - June 2013 Preview).
Note: The Windows Server AppFabric has to be installed!
In next post (part II) I will discuss the BizTalk Service solution I have created to extend the reach of the database containing the runner data (registered times).
Also do not miss out any of the TechEd US BizTalk topics (streamed through channel 9 soon):
Labels: BizTalk, BizTalk Server 2013, BizTalk Services, Windows Azure, Windows Server Appfabric