One of the standard and most commonly used suites of protocols for B2B data transfer is Electronic Data Interchange or EDI. Electronic Data Interchange (EDI) is the computer-to-computer exchange of business documents in a standard electronic format between business partners.
The EDI standards are designed in such a way that it helps to create documents with most of the details along with the Interchange details (envelope details like To, From, Timestamp etc.), and are released for use as a specific version e.g., 4010, 5020, 6010 etc.
A typical supply chain order processing scenario consisting of various messaging transactions would look like as shown below.
Before the cloud, the traditional way of integrating systems and applications together with partners’ systems happened on-premise, with middleware like Microsoft BizTalk Server. Microsoft’s integration solution BizTalk Server has been around since 2000. It is a very mature platform with excellent enterprise EDI integration capabilities. There are two important components of BizTalk server architecture – messaging engine and orchestration engine.
The messaging engine works to move the business documents as messages throughout the applications with an integrated path. Orchestration engine ensures that the processed business documents through the messaging engine followed defined business rules.
In the simple most basic scenario, we receive a message through a receive adapter.
The message is then processed through a receive pipeline where the message is converted into XML
The message is then delivered into a database called the MessageBox
The logic that drives a business process is implemented as one or more orchestrations, each of which consists of executable code.
Each orchestration creates subscriptions to indicate the kinds of messages it wants to receive.
When an appropriate message arrives in the MessageBox, that message is dispatched to its target orchestration, which takes whatever action the business process requires. The message is then sent out using a send adapter, which uses an appropriate mechanism to communicate with the application for which this message is destined. The Hybrid environment is a group of adapters allow BizTalk easier to connect to Azure iPaaS and utilize its cloud integration capabilities.Integration Platform as a Service (iPaaS) is a suite of cloud services that helps users develop integration workflows which connect applications residing in the cloud or on-premises and deploy them without installing or managing any hardware or middleware. The main components of Microsoft iPaaS solution are:
#Function Apps are custom code deployed into Azure and executed via triggers
#Service Bus is a highly reliable cloud messaging service that facilitates messages between applications and services.
#The API Management platform is designed to help organizations and developers to organization APIs used in the integration
#Event Grid is the built-in support for events coming from Azure services, like storage blobs and resource groups and allows easily build applications with event-based architectures
#Event Hub is a highly scalable data streaming platform and event ingestion service capable of receiving and processing millions of events per second
#Logic Apps, is the Microsoft’s core iPaaS product. It’s a browser-based workflow engine that provides a way to connect applications and data using a rich set of connectors. They are composed of two key components:
#Trigger. An event such as a file being created on a share.
#Action. A subsequent action in response to the trigger
For building integration solutions with Azure Logic Apps, we can choose from hundreds of ready-to-use connectors. These connectors provide Triggers and Actions for creating workflows to access these services and process data in real-time.
The Logic App workflow starts with a trigger, which fires when a specific event happens or when new data that meets specific criteria is available through a connector to external services.
Each time a trigger fires, the Logic Apps engine creates a logic app instance, that runs the actions defined in the workflow. Usually, the Logic App executes its actions on some external services using a connector to connect with them. This makes it an excellent tool for integrating our app with external services and orchestrating them.
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 the Enterprise Integration Pack.
Both Biztalk and Logic apps offerings address the same area, but BizTalk focuses mainly on on-premise and hybrid integration where the Logic Apps addresses integration needs via Software as a Service (SaaS), although it can be customized with connectors for on-premise applications, LOB, etc.
Below is a short comparison matrix between BizTalk and Logic Apps:
|Scalability||Requires Enterprise edition of BizTalk||Can Scale up or down using the pricing tier|
|Deployment Process||Can be complex if third party components are involved||Easy and quick|
|High Availability||Supported using windows and SQL clustering||Can be achieved using Azure geo-redundancy|
|Enterprise Message Type Support||Supports multiple message formats e.g., X12, EDIFACT, HL7||All formats supported by BizTalk are supported here.|
|Processing speed||BizTalk is substantially quicker in processing data.||For small files, it isn’t noticeable, but when dealing with large record sets the difference can be minutes vs. hours.|
|Development||Visual Studio is used for creating Orchestration Workflows. Visual Studio debugging experience is available during development and at run time by attaching process||Azure Portal or Visual Studio is used for creating workflows. Debugging through steps on Azure Portal Logic App Blade is available|
|Adapters||Large number of standard adapters are available along with B2B adapters. Custom adapters can also be built.||Lot of standard adapters are available and there are still more going to be added. Custom API’s can be built.|
|Map||Mapper GUI available on Visual Studio.||Makes use of XSLT generated using Map in visual studio.|
Additionally, Azure Logic app solution provides some advantages such as:
-Requires zero upfront setup costs, and like other Azure services, don’t have to pay for infrastructure maintenance because it’s fully managed by Microsoft. Enterprises can develop its B2B integration flows, wire the required systems together and publish the artefacts in quick time.
-The initial investment for a small EDI project in Logic app wouldn’t be that high compared to a Biztalk as a traditional integration platform that needs investment in licensing, support and infrastructure.
-With serverless compute, the Logic app easy scales out and workflow runs with the resources it needs without need of provision extra VMs. This saves a lot of time and money, which often need to be invested in specialized skills as mentioned above.
-In a traditional integration platform, hardening of the platform requires a managed services team. No more worrying about the system going down due to whatever reason in case of an Azure IPaaS solution approach
– Connectors reduce and eliminate potential integration challenges in connecting apps, data, devices and services together because it’s easy to use
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.
- Create Integration Account
- Add the artefacts which we would be needing in the Integration account i.e., Schemas, Maps, Agreement etc.
- Create a Logic App
- Link the Integration Account to Logic App
- Use the artefacts and design the process/workflow
In the next posts, we will demonstrate EDI message processing using logic apps. It will include the creation of Integration account, the creation of partners and agreements and the creation of logic appears to send and receive AS2 messages from one partner to the other. Please follow us on LinkedIn to keep up with all the latest blog contente