A quick look at Azure Logic Apps Enterprise Integration Tools
Moving XML EDI and Integration into the cloud
This is how it looks at a high level:
The example is trivial but meets the requirement and gives a good idea of what the Logic Apps and Enterprise Integration Tools are capable of and where it may go in the future. Support for EDI and EAI via file and XML using standard industry protocols is available. I won't delve into the specifics of message formats but the flow below should be suitable as a starting point for implementing more advanced message handling.
Using these Enterprise Integration Tools allows you to define BizTalk schema which can be used for transforming data once that data is received via a trigger. It is really impressive to see how quickly you can define the Http Request as a trigger, validate and transform the data using the Logic Apps designer as well as the Enterprise Integration Tools in Visual Studio 2015. Let us take a quick look at getting started.
Getting started
The follow-up posts will help to break this into more detail but for now you will also need
- An Azure function container and Azure function to run the transform. This is the serverless infrastructure, a hot topic at the moment. Imaging running just a function in the cloud, without worrying about a full API to support it, nor having to worry about the deployment and management of the infrastructure.
- An Azure Integration account configured and linked to the Logic App
- Specific agreements, partners, schema and maps to transform the XML
- Postman or curl to POST the requests to trigger the Logic App
The first action is the HTTP Request, the trigger which will start this workflow when an HTTP endpoint receives a message.
HTTP Request
The Request Action mentions JSON which may through you off, but it will work perfectly fine with XML. As soon as you save the Logic App the URL should be provided. We'll use this to post our first message.
XML Validation
I've set up some schema which we will look at later, for now it is sufficient to know that the Body comes from the trigger (the HTTP Request Body) and I want to validate it against a purchase order schema (.xsd) file. If that fails the response will return immediately with an error.
XML Transformation
In the next post I'll show more detail on how I set this up. The goal here is to run the transform via an Azure function using a specified schema and Map to transform my demo purchase order to a response.
HTTP Response
Let's try it out by making a POST via postman
The response is possibly not the best message, and it may actually need to be XML so we'll solve that another time.
Let us take a look at the Logic App and see if we can figure out where it went wrong. Go to the Logic App Overview blade, and look at the most recent error in All Runs. Here it is quite clear I couldn't pass my XML schema validation check, so I can check that off successfully.
Of course as the workflow becomes richer we can take decisions and actions based on these outputs.
If we sent a proper message what would happen then?
The response indicates a 200, that's perfect for getting started, so how did the run look?
So all actions passed and the response returned 200 OK, the response body actually contains data which came out of the Transform step:
Summary
This four step workflow is a quick proof of concept on how we could move our XML messaging capability to Azure Logic Apps and use various other Azure Services to build sophisticated solutions to Enterprise Integration.
I will follow up with more posts on the specifics of setting this up and seeing how the Logic Apps Enterprise Integration Tools can be used to define the transform. Hopefully this helps in starting to think about Enterprise Integration challenges and their solutions in the cloud.
Update - Part 2 here
Update - Part 3 here
@quintes
No comments:
New comments are not allowed.