The evolution happening in the Integration space can be overwhelming for a BizTalk consultant who so far has been focusing on delivering robust on-premise integration solutions and overlooked the developments happening in Azure.
Just to give a bit of history, in April 2012 Azure Service Bus EAI and EDI Labs went live as a Platform as a Service (PaaS) offering for addressing integration scenarios. This product evolved and took shape as Microsoft Azure BizTalk services (MABS). After a successful June 2013 preview, MABS went live in November 2013.
Later Azure introduced a new App service offering in which all BizTalk service capabilities such as connectors and API’s are moved into Logic Apps, giving birth to Microsoft’s Integration Platform-as-a-Service (iPaaS) offering.
In June 2016, a public preview of Enterprise Integration pack was announced and Azure Logic Apps also became generally available in July 2016. In August 2016, the Logic app connector for BizTalk 2016 was announced.
All recent events clearly indicate that Microsoft has got tons of focus in Azure Logic Apps as it is an iPaaS offering. Additionally, Logic Apps could potentially be a successor to on-premise application integration solutions. In this article, let’s take a look at the Logic Apps Enterprise Integration pack and tooling revolving around it. We will cover the following topics at very high level to give you an idea.
- Basics of Azure Logic Apps
- Azure Enterprise Integration Pack
- Azure Integration Account
- Azure Logic Apps Integration templates
- Azure Logic Apps/Integration Account Visual Studio Plugins
- BizTalk 2016 Logic Apps Connector
- BizTalk360 Support for Logic Apps
Basics of Logic Apps
Logic Apps is an Integration-Platform-as-a-Service (iPaaS) offering which provides a way to implement scalable integration solutions and workflows in the cloud. With Logic Apps, workflows can be modeled and implemented in a visual designer using different connectors across the cloud and on-premise. Below is the snapshot of a simple Logic App which takes a file from Dropbox and moves it to Google Drive.
Refer the article “What are Logic Apps” to know more about Logic Apps in detail.
Enterprise Integration Pack
Enterprise integration pack is a solution for enabling B2B and EAI scenarios in a Logic App. Most of the capabilities of BizTalk server or Microsoft Azure BizTalk services are covered in Enterprise Integration Pack. Following are the features present in Enterprise integration pack as of today.
Integration account is a logical container which stores the various artifacts needed in EAI and B2B scenarios. Integration account currently contains following artifacts.
- XSLT-based maps
- XML schemas
- Trading Partners
- Trading Partner Agreements
It is essential to create an integration account for a Logic App to utilize EAI and B2B capabilities. Below is an overview of the steps to be taken in order to create a Logic App using EAI and B2B features.
Following are the B2B APIs/Connectors available in Logic Apps at the moment.
|AS2 – Decode AS2 Message||Preview|
|AS2 – Encode to AS2 Message||Preview|
|X12 – Decode X12 message||Preview|
|X12 – Encode to X12 message by agreement name||Preview|
|X12 – Encode to X12 message by identities||Preview|
|EDIFACT – Decode EDIFACT message||Preview|
|EDIFACT – Encode to EDIFACT message by agreement name||Preview|
|EDIFACT – Encode to EDIFACT message by identities||Preview|
Following are the EAI APIs available in Logic Apps at the moment.
|Flat File Encoding||Preview|
|Flat File Decoding||Preview|
|BizTalk Server – Prepare message from XML||Preview|
|BizTalk Server – Prepare message from JSON||Preview|
|BizTalk Server – Send message||Preview|
Logic Apps Integration Template
While creating Logic Apps, you will be prompted with an option to choose from an existing Integration template or start from a blank Logic App as shown in the below image.
For example, if you want to create a Logic App which moves the file from Dropbox to One Drive, you can choose a corresponding template.
Your Logic App will be up and running as soon as you configure the account and folder locations.
However, if you want to create enterprise integration scenarios such as B2B and EAI, there are separate templates which require an integration account. Following are few enterprise integration templates available in Logic Apps at the moment. And this list is bound to grow day by day. For these enterprise templates, you will also need to create a storage account.
Below is the Logic App which is created using “Receive an X12 over As2 and transform template”.
The Logic Apps designer is evolving day by day. The team is monitoring the feedback portal and addressing issues very quickly. The feedback I left about having the horizontal scroll bar in the designer already been implemented.
Quick Start Templates
Logic Apps Enterprise integration team has placed some quick start templates in GitHub that helps the developers to get started quickly with EAI and B2B scenarios. Below is the list of few useful quick start templates.
|Quick Start template||Description|
|201-logic-app-veter-pipeline||This template creates a VETER pipeline using Logic Apps. It creates an integration account, adds schema/map into it, creates a Logic App and associates it with the integration account. The Logic App implements a VETER pipeline using XML Validation, XPath Extract and Transform XML operations.|
|201-logic-app-as2-send-receive||This template demonstrates AS2 Send Receive using Logic Apps. It creates Integration Accounts for two partners (Contoso and Fabrikam) and adds Partners and Agreements into them. It creates Logic Apps between Fabrikam Sales and Contoso which demonstrate Sync AS2 Send Receive. It also creates Logic Apps between Fabrikam Finance and Contoso which demonstrate Async AS2 Send Receive.|
|201-logic-app-transform-function||Creates a webhook based C# Azure function with transform capabilites to use in Logic Apps integration scenario|
|logic-app-custom-api||Logic App calls into a Custom API hosted on App Service and protected by AAD|
Enterprise Integration Tools for Visual Studio 2015
Logic Apps enterprise integration tools for Visual Studio 2015 provides a schema editor, flat file schema generator and XSLT mapper to easily create Integration Account artifacts from Visual Studio. This can be downloaded from here.
This tool adds an “integration” project type to Visual Studio, and lets us create XML schemas, flat file schemas and maps into a project.
Note: Various versions of the EDIFACT and X12 schemas are shipped with BizTalk server. It is not yet clear how these schemas will be made accessible to Logic App Enterprise Integration pack customers.
Logic App Designer for Visual Studio 2015
Logic App designer is an add-on to Visual Studio 2015 which allows us to design and deploy Logic Apps from Visual Studio. Using Visual Studio for designing Logic Apps has an added advantage of using source control to manage the Logic App definition files (JSON) as well as deployment and automation templates. Following are the prerequisites for Logic Apps.
- Visual Studio 2015
- Latest Azure SDK (2.9.1 or greater)
Note: The Logic App designer requires an internet connection in order to query the connectors for available properties and data (for example, if using the Dynamics CRM Online connector, the designer will query your CRM instance to list available custom and default properties)
Installing Visual Studio tools for Logic Apps
Follow the below steps to install Visual Studio tools for Logic Apps:
- Open Visual Studio 2015. In the Tools menu, select Extensions and Updates
- Select the Online category to search online
- Search for Logic Apps to display the Azure Logic Apps Tools for Visual Studio
- Click the Download button to download and install the extension
- Restart Visual Studio after installation
Creating a Logic App project is very straight forward. Please refer article from Jeff Hollan here.
BizTalk 2016 Logic App connector
BizTalk team announced the BizTalk Server 2016 connector for Logic Apps which connects the Logic App with BizTalk server via On-Premise Data Gateway. The gateway creates an outbound connection to Azure Service Bus. It communicates on outbound ports: TCP 443 (default), 5671, 5672, 9350 thru 9354. You have to ensure that firewall is not blocking these outbound ports. The gateway doesn’t require inbound ports.
Following are the prerequisites for connecting On-Premise BizTalk server with Logic Apps
- Install the On-Premise Data Gateway on BizTalk Server
- Create Gateway Resource in Azure Subscription
- Install BizTalk Server 2016 Logic App Adapter
- Create a Logic App that connects to BizTalk Server.
Please refer the article “Announcing the new BizTalk connector for Logic Apps” for detailed information.
BizTalk360 Logic App monitoring
As the integration landscape is changing, it is evident that hybrid integration is the way forward where both Logic Apps and BizTalk interfaces co-exist in an integration solution. Keeping this in mind, BizTalk360 team has brought Logic App monitoring capabilities into its latest release BizTalk360 8.1.
To know more about Logic App monitoring in BizTalk360, please refer this article In depth look at Logic App monitoring.
End to End scenario
I wanted to start with creating a Logic App using Enterprise Integration Pack. I followed the steps in the article “Learn about receiving data using the B2B features of the Enterprise Integration Pack”. This article will help you to create a Logic App to receive X12 message over AS2 and transform it into XML message.
Note: As improvements are happening in Logic Apps constantly, there might be small changes in above mentioned Microsoft article. For example, I faced the below issue while creating AS2/X12 logic app.
It is an exciting time to be a BizTalk developer as we stretch our wings towards ‘cloud’ and BizTalk 2016 release is around the corner. Hopefully BizTalk360 team will try to follow up with few detailed level articles on Logic Apps.