TUGAIT 2017: Integration and Logic Apps

TUGAIT 2017: Integration and Logic Apps

Two more weeks and I will, once again, return to Lisbon for the TUGAIT event. Last year during the 2016 edition Azure MVP’s Sandro, Nino and myself (the three integration animals, see picture below) did a workshop and several sessions on integration i.e. BizTalk, Open Source connectivity (GrabCaster), and Hybrid  And this was no doubt a successful event and the debut of the integration track. Hence this year the track will active again!

TUGAIT 2017

The May 18th until the 20th, a variety of speakers will present on a myriad set of technologies like Xamarin, Angular, DataScience, Agile, Scrum, DevOps, Integration, DotNet, SQL Server, SharePoint, Office365, Azure and IoT.

The integration track on Saturday the 2oth will be packed with session by Azure MVP’s Sandro, Nino, Eldert, Riccardo, Tomasso and myself.

Integration in 2017: Logic Apps

Microsoft has made a leap forward with several of there Azure Services including Logic Apps. A Service that went GA end of July 2016 and evolved rapidly to maturity. Already we see a steady growing adoption of this service within enterprises. Logic Apps is not the replacement of BizTalk, its Microsoft answer to solve integration challenges in the Cloud. The Logic App connectors provide connectivity to other Azure Services and several SaaS solutions like MailChip, SalesForce and CRM online. At TUGAIT 2017 in the Integration Track you will learn more about Logic Apps.

Why attend?

“Nice there’s an integration track, but what if I like to learn about other technologies (too)?

Well you are at the right place as on the 18th there’s a full day of workshops you can choose from. On Friday there are 5 parallel tracks from which you can pick and choose. The same accounts for Saturday, including the integration track!

The event is located in one of the most beautiful, cultural cities of Portugal. It’s three days packed with content, stellar speakers and community leaders you can listen to and grab to ask questions.

Registration

Registration is a few euro’s or even free if you do require lunch (the fee is there to reduce waste and prevent having an abundance of food).

You can register here and I will see you there in Lisbon!

Cheers,

Steef-Jan

Author: Steef-Jan Wiggers

Steef-Jan Wiggers is all in on Microsoft Azure, Integration, and Data Science. He has over 15 years’ experience in a wide variety of scenarios such as custom .NET solution development, overseeing large enterprise integrations, building web services, managing projects, designing web services, experimenting with data, SQL Server database administration, and consulting. Steef-Jan loves challenges in the Microsoft playing field combining it with his domain knowledge in energy, utility, banking, insurance, health care, agriculture, (local) government, bio-sciences, retail, travel and logistics. He is very active in the community as a blogger, TechNet Wiki author, book author, and global public speaker. For these efforts, Microsoft has recognized him a Microsoft MVP for the past 6 years. View all posts by Steef-Jan Wiggers

TUGAIT 2017: Integration and Logic Apps

TUGAIT 2017: Integration and Logic Apps

Two more weeks and I will, once again, return to Lisbon for the TUGAIT event. Last year during the 2016 edition Azure MVP’s Sandro, Nino and myself (the three integration animals, see picture below) did a workshop and several sessions on integration i.e. BizTalk, Open Source connectivity (GrabCaster), and Hybrid  And this was no doubt a successful event and the debut of the integration track. Hence this year the track will active again!

TUGAIT 2017

The May 18th until the 20th, a variety of speakers will present on a myriad set of technologies like Xamarin, Angular, DataScience, Agile, Scrum, DevOps, Integration, DotNet, SQL Server, SharePoint, Office365, Azure and IoT.

The integration track on Saturday the 2oth will be packed with session by Azure MVP’s Sandro, Nino, Eldert, Riccardo, Tomasso and myself.

Integration in 2017: Logic Apps

Microsoft has made a leap forward with several of there Azure Services including Logic Apps. A Service that went GA end of July 2016 and evolved rapidly to maturity. Already we see a steady growing adoption of this service within enterprises. Logic Apps is not the replacement of BizTalk, its Microsoft answer to solve integration challenges in the Cloud. The Logic App connectors provide connectivity to other Azure Services and several SaaS solutions like MailChip, SalesForce and CRM online. At TUGAIT 2017 in the Integration Track you will learn more about Logic Apps.

Why attend?

“Nice there’s an integration track, but what if I like to learn about other technologies (too)?

Well you are at the right place as on the 18th there’s a full day of workshops you can choose from. On Friday there are 5 parallel tracks from which you can pick and choose. The same accounts for Saturday, including the integration track!

The event is located in one of the most beautiful, cultural cities of Portugal. It’s three days packed with content, stellar speakers and community leaders you can listen to and grab to ask questions.

Registration

Registration is a few euro’s or even free if you do require lunch (the fee is there to reduce waste and prevent having an abundance of food).

You can register here and I will see you there in Lisbon!

Cheers,

Steef-Jan

Author: Steef-Jan Wiggers

Steef-Jan Wiggers is all in on Microsoft Azure, Integration, and Data Science. He has over 15 years’ experience in a wide variety of scenarios such as custom .NET solution development, overseeing large enterprise integrations, building web services, managing projects, designing web services, experimenting with data, SQL Server database administration, and consulting. Steef-Jan loves challenges in the Microsoft playing field combining it with his domain knowledge in energy, utility, banking, insurance, health care, agriculture, (local) government, bio-sciences, retail, travel and logistics. He is very active in the community as a blogger, TechNet Wiki author, book author, and global public speaker. For these efforts, Microsoft has recognized him a Microsoft MVP for the past 6 years. View all posts by Steef-Jan Wiggers

Stef’s Monthly Update – April 2017

Stef’s Monthly Update – April 2017

The first three months of 2017 was a rollecoster ride, like the trip to Australia and New-Zealand, the very succesful Global Integration Bootcamp, the publication of the labs, the guest blogs I wrote for BizTalk360 blog, and the collobaration with Kent on Middleware Friday. And the Month April was not different in experience.

Month April

The month kicked of with a marathon run in Rotterdam. If there was any marathon in the Netherlands I wanted to do it was Rotterdam. The 9th of April was a very sunny beautiful day, however for running 42K it was a challenge. Yet I made it after 5:05:45.

Besides running a marathon I prepared myself for a trip to Sweden to talk to the Swedisch BizTalk Usergroup in Gothenburg and Stockholm. Thanks to Johan Hedberg we (Eldert and myself) were able to travel to these nice cities in Sweden and do our talks (see Elderts post on the recap of that trip). Moreover, in Stockholm Eldert and myself joined an very interactive architecture session organised my Mikael Sand together with Mikael Hakansson, Johan Hedberg, Robin Hultman, Mattias Logdberg, and Joakim Schütt at Enfo.

We talked about hybrid scenario’s, connectivity, workload driven design, Logic Apps/Functions and exchanged ideas, experiences and thoughts. It was a very useful sessions for all of us.

During the Usergroup sessions I did four new interviews for my YouTube series “Talking with Integration Pros”. And this time I interviewed:

Finally I also wrote an article on LinkedIn about Logic Apps and Functions:

Bet on Serverless: Azure Functions and Logic Apps

Music

My favorite albums that were released in April were:

  • Aryeon – The Source
  • Life Of Agony – A Place Where There’s No More Pain
  • Ghost Bath – Starmourner
  • Novembers Doom – Hamartia
  • Royal Thunder – WICK
  • Deep Purple – Infinite

Afbeeldingsresultaat voor Ayreon - The Source

Prague

After my trip to Sweden I went with my family to Prague, the capital of the Czech Republic. We spend a couple of days here to visit some remarkable areas of this beautiful city. The food, city and vibe was great.

There you have it Stef’s fourth Monthly Update and I can look back again with great satisfaction. The marathon was a challenge, however I am happy I finished and completed my third marathon. I’m looking forward to my trip to Portugal, where I will be speaking at TUGA IT.

Cheers,

Steef-Jan

Author: Steef-Jan Wiggers

Steef-Jan Wiggers is all in on Microsoft Azure, Integration, and Data Science. He has over 15 years’ experience in a wide variety of scenarios such as custom .NET solution development, overseeing large enterprise integrations, building web services, managing projects, designing web services, experimenting with data, SQL Server database administration, and consulting. Steef-Jan loves challenges in the Microsoft playing field combining it with his domain knowledge in energy, utility, banking, insurance, health care, agriculture, (local) government, bio-sciences, retail, travel and logistics. He is very active in the community as a blogger, TechNet Wiki author, book author, and global public speaker. For these efforts, Microsoft has recognized him a Microsoft MVP for the past 6 years. View all posts by Steef-Jan Wiggers

Stef’s Monthly Update – March 2017

Stef’s Monthly Update – March 2017

March, the last month of Q1 in 2017, a month filled with exciting integration focussed events. After my trip down under I continued my talks at the Integration Monday, SDN Event, my colleagues at Macaw, and the long awaited Global Integration Bootcamp. The latter was a result of months of preparations, and work on labs, meetings and conversations on slack.

Month March

In this month, I wrote a few guest blogs for BizTalk360 blog, which will be published in the next months along with an eBook containing all the labs, we (Eldert, Rob, Tomasso and myself) have created for the Global Integration Bootcamp. The eBook contains the hands on labs for API Management, On premise data gateway, Service Bus, Logic Apps, IoT Hub, Stream Analytics and Event Hub. Basically with this labs, you will touch all the services and products that deal with integration.

Books

Any reading this month, to be frank not so much. I read a lot of new papers, magazines and blogs. However, I do like to mention a new book that has been released on the market about integration that is worth to buy and read: Robust Cloud Integration with Azure.

Music

My favorite albums that were released in March were:

  • Obituary –  Obituary
  • Memoriam – For the Fallen
  • Pallbearer – Heartless
  • Junius – Eternal Rituals for The Accretion Of Light
  • Sleepmakeswaves – Made of Breath Only
  • Moonloop – Devocean
  • Mastodon – Emperor of Sand

Running

In March I did a couple of runs, including a few half marathons, one being the CPC in The Hague wearing a BizTalk360 running shirt.

There you have it Stef’s third Monthly Update and I can look back again with great satisfaction. The Global Integration Bootcamp was a success, which you can read in my previous blog post of this month. I’m looking forward to my trip to Sweden in April and running the full Marathon in Rotterdam on the 9th of April.

Cheers,

Steef-Jan

Author: Steef-Jan Wiggers

Steef-Jan Wiggers is all in on Microsoft Azure, Integration, and Data Science. He has over 15 years’ experience in a wide variety of scenarios such as custom .NET solution development, overseeing large enterprise integrations, building web services, managing projects, designing web services, experimenting with data, SQL Server database administration, and consulting. Steef-Jan loves challenges in the Microsoft playing field combining it with his domain knowledge in energy, utility, banking, insurance, health care, agriculture, (local) government, bio-sciences, retail, travel and logistics. He is very active in the community as a blogger, TechNet Wiki author, book author, and global public speaker. For these efforts, Microsoft has recognized him a Microsoft MVP for the past 6 years. View all posts by Steef-Jan Wiggers

The Global Integration Bootcamp 2017 – A successful event!

The Global Integration Bootcamp 2017 – A successful event!

Success has many fathers and with the Global Integration Bootcamp that is a fact. Organizers, speakers, companies hosting the event, the Microsoft Pro-Integration Team, and above all the attendees. This global event showed how passionate, strong and active this integration community is!

The Event

During the Global Integration Bootcamp at the Dutch location at motion10 in Rotterdam I did a few interviews with fellow organizers of this amazing event:

The motion10 has an amazing view over Rotterdam, which you can see in two of the video interviews.

In case you like to learn more about the history and how this great event came its tremedous success do read these two excellent posts:

Start of the day

In holland we kicked of at motion10 HQ at the same time as some of the other locations in Europe. Our friends in New Zealand, Australia and India just completed there day.

Sessions

At motion10 Gijs kick off the day followed by Tomasso presenting on API Management.

After Tomasso session the attendees dive into the first lab. The requirements to do the labs yourself can be found here and the labs will be published soon in an eBook by BizTalk360.

The second session was done by Rob Fox on Hybrid Integration including working with the on-premise gateway.

During the lunch people continued with their labs, followed by the third talk by Eldert, who continued with the hybrid integration story. This story included the connectivity through Logic Apps with on-premise BizTalk Server.

My session, number four, was to showcase some great Azure services like Logic Apps and Azure Functions. It was fun to do as I was able to show my trumpizer demo again.

The final session of the day was about IoT and done by Eldert again.

Acknowledgements

I am proud to be able to be part of this great event and journey to it. Loved the close collaboration with Eldert, who has been a key factor in organizing this event. His passion and drive is amazing and his recent MVP award is well deserved as it is a crown of his dedicated work for the community. And this something that I like to point out as his mentor. Well done buddy!

Thanks from the Dutch speakers #gib2017 and see you next year at #gib2018!

Cheers,

Steef-Jan

Author: Steef-Jan Wiggers

Steef-Jan Wiggers is all in on Microsoft Azure, Integration, and Data Science. He has over 15 years’ experience in a wide variety of scenarios such as custom .NET solution development, overseeing large enterprise integrations, building web services, managing projects, designing web services, experimenting with data, SQL Server database administration, and consulting. Steef-Jan loves challenges in the Microsoft playing field combining it with his domain knowledge in energy, utility, banking, insurance, health care, agriculture, (local) government, bio-sciences, retail, travel and logistics. He is very active in the community as a blogger, TechNet Wiki author, book author, and global public speaker. For these efforts, Microsoft has recognized him a Microsoft MVP for the past 6 years. View all posts by Steef-Jan Wiggers

Here it is my revamped blog, Thanks BizTalk360

Here it is my revamped blog, Thanks BizTalk360

Thanks team BizTalk360. Welcome to my new blog. Yes I have a new blog or better yet it has been styled and created for me. Just before I embarked on my trip down under Saravana gave me an offer to revamp my blog. Happily, I accepted his kind offer to create a new blog for me. And to migrate my content from my old blog to this new amazing blog.

Hard working team

The BizTalk360 team took over my blog and started working hard to get this blog up and running. They migrated the content, build the about me page and resources. Great work guys!!!

The old blog

The Azure Thoughts, EAI Challenges blog, I have is over 10 years old. I started this on the blogger.com and the style changed a few times in the past until it reached its current state. Saravana gave me the offer to have a complete new type of blog similar to BizTalk360 blog, Sandro’s and Nino’s new blogs. They all look amazing to me and that’s what I wanted too. A professional looking blog!

Not an UI/UX guy

My expertise is as many of you know Microsoft Integration, Azure and Data Science and I am not a UI/UX guy nor a designer. To have a cool looking blog has been a long time wish and now it was handed to me.

Thank you all!

Thanks, Saravana and the BizTalk360 team for this tremendous effort and work. The blog at WordPress.com is a new experience for me and I love the extra capabilities of this platform that exceeds the previous one I worked on. I hope that you my readers will enjoy this new and more professional layout, which I hope will more appealing you and that it will provide a great user experience. Looking forward to create some new content on this blog.

Cheers,

Steef-Jan

Author: Steef-Jan Wiggers

Steef-Jan Wiggers is all in on Microsoft Azure, Integration, and Data Science. He has over 15 years’ experience in a wide variety of scenarios such as custom .NET solution development, overseeing large enterprise integrations, building web services, managing projects, designing web services, experimenting with data, SQL Server database administration, and consulting. Steef-Jan loves challenges in the Microsoft playing field combining it with his domain knowledge in energy, utility, banking, insurance, health care, agriculture, (local) government, bio-sciences, retail, travel and logistics. He is very active in the community as a blogger, TechNet Wiki author, book author, and global public speaker. For these efforts, Microsoft has recognized him a Microsoft MVP for the past 6 years. View all posts by Steef-Jan Wiggers

Stef’s Monthly Update – February 2017

Stef’s Monthly Update – February 2017

Last month was a busy month and in February most of my time I spend on the road or plane. Anyways, what has Stef been up to in February?

In this month, I have also written a few guest blogs for BizTalk360 blog and did a demo for the Middleware Friday Show. The blog posts are:

The show can be found in Middleware Friday show 5th episode about Serverless Integration.
During my trip in Australia and New-Zealand I did a few short interviews, which you can find on YouTube:

·       Mick Badran
·       Wagner Silveira
·       Martin Abbott
·       Daniel Toomey
·       Bill Chesnut
·       Rene Brauwers

Besides the interviews a few Meetups took place, one in Auckland, another one in Sydney and a live webinar with Bill Chesnut in Melbourne. In Auckland I talked about the integration options we have today. An integration professional in the Microsoft domain had/has WCF and BizTalk Server. With Azure the capabilities grow to Service Bus, Storage, BizTalk Services (Hybrid Connections), Enterprise Integration Pack, On Premise Data Gateway, Functions, Logic Apps, API Management and Integration Account.

After my talk in Auckland I headed out to the Gold Coast to meet up with the Pro Integration Team (Jim,Jon, Jeff and Kevin) and Dan Rosanova. They were all at the Gold Coast because of Ignite Australia, and here’s a list of their talks:

During my stay, we went for a couple of drinks and had a few good discussions. One night Dean Robertsoncame over and we all had dinner. After the Gold Coast Dan Toomey, took me, Eldert and his wife to Brisbane for a day sightseeing.

The next week after Auckland, Gold Coast and Brisbane I returned to Sydney for the Meet up organized bySimon and Rene. My topic was “Severless Integration”, which dealt with the fact that we integration professional will start building more and more integration solutions in Azure using Logic Apps, API Management and Service Bus. All these services are provisioned, management and monitored in Azure. In the talk I used a demo, which I also described in Serverless Integration with Logic Apps, Functions and Cognitive Services.

In Sydney I was joined on stage with Jon, Kevin and Eldert. We had about 45 people in the room and we went for drinks after the event.

The next day Eldert and me went to Melbourne to meetup with Bill, Jim and Jeff who were there to do a Meet up. The PG had split up to do meetups in both Sydney and Melbourne. In Melbourne, we did two things, we visited Nethra, who survived the Melbourne car rampage 25th of January and did a live Webinarat Bill house in Beaconsfield.

Overall the trip to Australia and New Zealand was worthwhile. The meet ups, the PG interaction in Australia, the community and hospitality were amazing. Thanks Rene, Miranda, Mick, Nicki, Simon, Craig,Abhishek, James, Morten, Jim, Jon, Jeff, Kevin, MartinDan Rosanova, Bill, Mark, Margaret, Johann,Wagner and many others I met during this trip. It was amazing!!!

Although February was a short month I was able to find a little bit of time to read. I read a few books on the plane to Australia, New Zealand and back:

  • Together is better, a little book of inspiration by Simon Sinek. I read this book as I shared aninterview (Millennials in the Workplace) with him on Facebook. It tells a short story about three young people escaping from a playground that has a playground king to find a better place. The story is about leadership with the message that leaders are students, need to learn and to take care of their people and inspire.
  • Niet de kiezer is gek by Tom van der Meer. On March 15th, we will have a general election for a new upcoming government. And we as voters are more aware of the what each party has to offer than the parties think we know. The access to information, because of digitalization has made voters more informed on the situation in our country, how politicians operate and vocal.

My favorite albums that were released in February were:
·       Soen                                 –            Lykaia
·       Immolation                     –            Atonement
·       Persefone                        –            Aathma
·       Ex Deo                             –            The Immortal Wars
·       Nailed To Obscurity        –            King Delusion

In February I did a couple of runs, including a half just before my trip started. During my busy travel schedule, I ran with the same frequency, but cut the number of miles to prevent to wear myself out.

There you have it Stef’s second Monthly Update and I can look back again with a smile. Accomplished a lot of things and exciting moments are ahead of me in March.

Cheers,

Steef-Jan

Author: Steef-Jan Wiggers

Steef-Jan Wiggers is all in on Microsoft Azure, Integration, and Data Science. He has over 15 years’ experience in a wide variety of scenarios such as custom .NET solution development, overseeing large enterprise integrations, building web services, managing projects, designing web services, experimenting with data, SQL Server database administration, and consulting. Steef-Jan loves challenges in the Microsoft playing field combining it with his domain knowledge in energy, utility, banking, insurance, health care, agriculture, (local) government, bio-sciences, retail, travel and logistics. He is very active in the community as a blogger, TechNet Wiki author, book author, and global public speaker. For these efforts, Microsoft has recognized him a Microsoft MVP for the past 6 years. View all posts by Steef-Jan Wiggers

Building a composite service using Logic Apps

Building a composite service using Logic Apps

Microsoft has made the Logic Apps General Available (GA) a few months ago (end of July 2016) and this Azure service has evolved ever since. Each month the product group responsible for the service, Jeff Hollan and Kevin Lam together with Jon Fancey, present updates through a YouTube channel. The latest update (26 January 2017) included for instance, browsing enhancements for connectors, switch case condition (similar to C# switch), JSON Parse to tokenize properties, new SaaS connectors, operations and upcoming new features.

Besides the evolution and thus an increase in maturity, the adoption of Logic Apps rises. I myself and a colleague at Macaw have built and deployed a Logic App solution for a customer in production that runs for over a month now without any issues. And we are not the only ones as there are many more customer cases. Businesses start seeing the added value brought by Logic Apps with its connectors, short lead times and no requirements for servers. Logic Apps run in Azure and are Server less, i.e. you can have an enterprise ready integration solution running in the cloud for low cost and maintenance (TCO).

This blog post will provide some additional insight on the power and value of Logic Apps. It can be seen as a game changer concerning integration in the cloud. Logic Apps fall under the moniker integration Platform as a Service (iPaaS), which is what actually is, and I will be quoting Wikipedia here to emphasize this:

“The most common cloud-based integration service model is iPaaS (Integration Platform as a Service), which is a suite of cloud services enabling customers to develop, execute and govern integration flows between disparate applications. Under the cloud-based iPaaS integration model, customers drive the development and deployment of integrations without installing or managing any hardware or middleware.”

You provision a service/host, define the logic and execute in Azure. And iPaaS service is characterized as (according to Wikipedia):

Characteristic Azure
Deployed on a multi-tenant, elastic cloud infrastructure. The Logic App service
Subscription model pricing (OPEX, not CAPEX) Consumption Plan
No software development (required connectors should already be available) Logic App Definition, the available connectors (i.e. managed and/or custom) and actions
Users do not perform deployment or manage the platform itself ARM Template and the Azure Portal for management
Presence of integration management & monitoring features Logic App overview (blades), integration with OMS

Scenario

In this blog post I would like to share another use case or scenario of a Logic App to demonstrate its value and some of the new features. We will build a scenario to demonstrate API integration, where the focus is on connecting different API’s. One common reason for doing this is to automate more of a business process. And Logic Apps can facilitate the integration of one or multiple API’s.

A Logic App will be a composite service that, based on a set of parameters, will provide a result containing weather and event details. The parameters will be city for which you like to know the details about the weather the coming 7 days and events in that time frame. The Logic App will call two API’s hosted in API Management, and combine the result of each call into one single response to the client. The complexity of calling the API’s is abstracted away in API Management, and the composition of the response of both API’s is done in the Logic App.

Building the API

The API’s are generally available API’s, which will be abstracted away from the Logic App by creating a proxy in API Management. In API Management, we will create an API to add operations to them and tie them to the actual API and its operations combined with policies to manage security, and other quality aspects. We provide a name for the API, set the Web service URL (endpoint of the API) and can observe the actual WebAPI URL i.e. API Management instance name with a standard DNS addition .azure-api.net + suffix.

The WebAPI will have an operation daily that connects to the daily forecast operation of the WeatherAPI (api.openweathermap.org) and its parameters.

A policy will be applied to the operation, to add an APPID key in the query parameters.

<policies>
        <inbound>
                <set-query-parameter name="APPID" exists-action="append">
                        <value>67b0fe39a73fdf8c5045f9538270cee4</value>
                        <!-- for multiple parameters with the same name add additional value elements -->
                </set-query-parameter>
                <rewrite-uri template="daily" />
        </inbound>
        <backend>
                <forward-request />
        </backend>
        <outbound />
        <on-error />
</policies>

The policy ensures that the operation can be executed, as the APPID is mandatory in the query parameters. However, the consumer of the Azure API is unaware of this as it is abstracted away through the policy. The same process will be done in the event API (api.eventful.com).

Build the function

A HTTP function will merge the two bodies i.e. JSON strings into one and currently there is no action for it. Hence, we will build a function that will accept a string with two JSON bodies in them.

In general, when it comes to certain operations on your data within a Logic App, you will notice that a function can help facilitate in having that specific capability like merging JSON strings or perhaps date time manipulation. In our scenario, we’ll merge the two JSON responses to one using a function that can be called through HTTP. It is one big string that will be sent to a function, and with a Web Hook type of function it expects a JSON! A HTTP Function can accept a string, manipulate it and return a JSON as shown below.

The two JSON response bodies are concatenated together when calling the function, which means the braces }{ need to be replaced by a comma ‘,’ to form a JSON again.

Building the Logic App Definition

The Logic App itself is a service, i.e. the infrastructure is in Azure and once provisioned you can define your logic. Logic in this context is a definition with a trigger and one or more actions. To define the trigger and action we will have a designer available to add the trigger followed by actions and/or workflow specific actions i.e. for instance a condition, case or scope.
The switch case is one of the new additions.

The Logic App definition of our solution will have a HTTP request trigger followed by an action to consume the weather API and later the event API. It contains a switch to support the possible responses from the API i.e. HTTP status like 200, 400 or other. And based on those types of responses you have a switch in place to control the various outcomes of your Logic App. A 200 will mean proceed to call the next API or create some sort of response to the caller of your Logic App. In status 200 branch, a JSON parse will be used to tokenize the JSON response from the weather API. The JSON parse is another recently added action in Logic Apps as discussed in the introduction. Subsequently, the event API operation search will be called and if the HTTP status is 200, the left branch will call the function through HTTP presenting both response (bodies) to create a JSON response, which will be returned to the client as a response. If the call to search fails, the right branch will return a custom response.

Test the Logic App

To test the Logic App, we will use Postman to send a request (POST) with a payload. This payload will contain a city, start- and end date.

In the Azure Portal we can observe the detail of the Logic App run and drill down into each of the actions. And this is a great feature of Logic Apps, you can see what happens and even resubmit, which is very useful to investigate where failures happen or change the flow in the designer and then resubmit. You do have to use a client like Postman to resubmit!

The Logic App provides monitoring capabilities in its blade like metrics. You can monitor your runs and select metrics to see how your Logic App definition i.e. flow performs.

Metrics are not the only feature within the monitoring section of Logic App. You have diagnostics, and logs you can examine. Thus, its adheres to the characteristic of “Presence of integration management & monitoring features” of iPaaS.

Considerations

Logic App can add value to the business with automating processes, which are agile by the nature of this Azure Service. A process can be created and operational in hours instead of days, can be changed on the fly or replaced by a new process i.e. Logic App. Logic Apps will bring IT closer to the business than ever before. The tremendous number of connectors lowers the connectivity barrier or API’s can be tied together as shown in this blog post as a composite service or to create a business flow/process (orchestration).
However, the power and agility of Logic Apps will also bring the risk of losing grip on the processes if everyone can easily build these flows and run them, i.e. you will need some form of governance to prevent the business completely go wild with this service. With a great deal of flexibility or agility and lower barrier to build integrations some form of governance will necessary to prevent overlap, over consumption, and conflicts.

Logic App can be viewed as a counterpart for BizTalk Server, a server product from Microsoft suitable for application integration. In BizTalk business processes can be automated by connecting two or more applications or services. In this blog post we have seen that two API calls are combined to create one response. However, Logic Apps with its various connectors can do the same thing as we did with BizTalk on premise. With BizTalk, we can create a composite application similar to what we have shown in this post by providing a common front end to a group of existing applications. Hence the value BizTalk provided on premise is now available through Logic Apps. The most important difference is hosting and pricing i.e. cloud versus on premise and license fees versus pay as you go.

Logic Apps can be called directly through HTTP and thus are exposed to world wide web i.e. everyone, which means it will need some sort of security. Out of the box is that a signature (SAS) is bound to the endpoint and is required for clients to provide in the request. Some see this as a form of security by obscurity and to further enhance security you can use API Management. API Management abstracts away the security and you can enforce other means of security to access the endpoint i.e. OpenID or OAuth 2.0.

Supporting the solution such as the one described in this post can be a challenge since you need to monitor or keep an eye out for the API keys at API supplier i.e. the weather API and event API, key(s) for the function and SAS signature in the Logic App endpoint, and the consumption of the Logic App. Each action in Logic App is an Azure consumption and has a price, which can be monitored easily through observing the resource costs in a resource group; it is operational costs of executing Logic Apps. You have to factor in notifications and alerting in your solution, which is easy to set up using alert rules on your resource.

Call to Action

You can learn to work the service yourself, learn more about or express your wishes:

Author: Steef-Jan Wiggers

Steef-Jan Wiggers has over 15 years’ experience as a technical lead developer, application architect and consultant, specializing in custom applications, enterprise application integration (BizTalk), Web services and Windows Azure. Steef-Jan is very active in the BizTalk community as a blogger, Wiki author/editor, forum moderator, writer and public speaker in the Netherlands and Europe. For these efforts, Microsoft has recognized him a Microsoft MVP for the past 5 years. View all posts by Steef-Jan Wiggers

Using API Management to protect on premise exposed endpoints from BizTalk

Using API Management to protect on premise exposed endpoints from BizTalk

BizTalk Server is able to communicate with the outside world, leveraging the Azure Service Bus Relay, Queues and/or Topics/Subscriptions. The latter is indirect one-way messaging (brokered) through listening to a specific subscription, in a topic or service bus queue. Through the relay, you can have direct two-way messaging. This capability can help in scenarios where you do not want to expose your ERP system like SAP or other directly to the cloud connected system. You might also have invested in a BizTalk solution and like to have an easy access to the cloud yet do not want to change the systems. The other benefit of using the relay is that you do not have to move your BizTalk installation into another zone like the DMZ to be closer to the outside world.

Other means of access to BizTalk can be indirect through the Logic App adapter (new with BizTalk Server 2016) or directly by exposing a BizTalk endpoint (WCF-BasicHttp, WsHttp or WebHttp) in IIS, accessible through reverse proxy. The latter is also possible using the BizTalk WCF Service Publishing Wizard that will extend the reach of the service to the Service Bus.

In this blog post, we’ll be discussing on securing a BizTalk endpoint that uses the BasicHttpRelay or NetTcpRelay i.e. a BizTalk endpoint configured with these WCF Bindings. Extending an endpoint using WCF Publishing Wizard doesn’t add extra capability, yet more complexity as the endpoint will be exposed internally through the chosen binding, however, to the Service Bus one of the relay bindings has to be selected (see picture below).

To be able to have an endpoint exposed to Azure Service Bus, you will need a namespace in your subscription. To setup a Service Bus Namespace is straightforward — in the Azure Market Place, select Service Bus and click Create. Specify a name i.e. that’s the namespace, choose a suitable price plan and specify the Resource Group and Location (regional data center).

In the picture above, you can clearly see what each price plan offers in terms of capacity, features and message size. This Azure service and others are very transparent in their costs and capability by vividly showing the options in pricing tiers.

Scenario

Our scenario to explain how to secure a relay configured BizTalk endpoint will be as follows:

  • A receive location will be configured with a given address and security details from the Service Bus Namespace
  • The endpoint will be hosted through BizTalk and registered in the Service Bus Namespace EnterpriseA
  • API Management Instance will have an API that will connect through one of its operations to the relay endpoint
  • A client can call the MyAPI order operation

The Service Bus Namespace credentials are abstracted away in the API management and not known to the MyAPI user. The MyAPI user will have to provide an API Key to be able to call the operation Order. The MyAPI can be further secured by applying OAuth 2.0 or OpenID, which we will not discuss in this blog.

Setting up BizTalk Endpoint with Relay binding

BizTalk Server started providing support to the Azure Service Bus with SB-messaging, WCF-BasicHttpRelay and NetTcpRelay adapters. The relay, as mentioned earlier, supports two-way messaging, and that will be the adapter we will use to build our scenario. The configuration of the relay in BizTalk is straight forward. You create a Receive Port, add a Receive Location, select the appropriate binding i.e. BasicHttpRelay or NetTcpRelay and configure.

The key aspects of the configuration are the address, which is the namespace of your service name to be placed in the standard DNS. servicebus.windows.net followed by the name of your endpoint at the end. And security, where we specify the security mode, client security (authentication type), and connection information i.e. SAS key, which can be obtained through Shared Access Policies tied to our Service Bus namespace.

Once we configured our adapter and enabled the ReceiveLocation, the endpoint will be registered in Service Bus Namespace.

The endpoint is available, however, not visible or discoverable through the Azure Portal. To see if the endpoint is up, we use ServiceBus360 or we could use the Service Bus Explorer.

Provisioning API Management

API Management is an Azure Service, which can be provisioned through the Azure Portal. The service provides an API gateway i.e. you can publish API’s to external and internal consumers. You can also provide a gateway to backend services hosted in your data center like a BizTalk endpoint (hosted in a Receive Location, or actually the Host Instance). The features API Management provides are:

  • API documentation and an interactive console (developer portal)
  • Throttle, rate limit and quota of APIs
  • Monitor API health
  • Support modern formats like JSON and REST to existing APIs
  • Connect to APIs hosted anywhere on the Internet or on-premises and publish globally
  • Gain analytic insights of APIs that are being used
  • Management of your service (API Management instance) via the Azure portal, REST API, PowerShell, or Git repository

In this blog post, I will demonstrate some of the features mentioned above in relation to securing BizTalk endpoints.

To create an API Management Service, you can select API Management in the Azure Portal and click Create. Specify a name i.e. that’s the name of your API Management instance, choose a suitable pricing tier, specify the Resource Group, Organization Name, Administrator Email and Location (regional data center).

Again, in the picture above, you can clearly see what each price plan offers in terms of capacity, features and scale. The provision of your API Management service i.e. instance can take some time (30 minutes or more).

Securing the relay binding with API Management

Our first step is to open up the Publisher Portal by clicking Publisher Portal in our API Management Service. In the Publisher Portal, we can click Add API and specify a Web API name, the Service URL of our relay endpoint, which we like to secure. We place our API in Starter Product, which is an existing default product what limits us in 5 calls/minute up to a maximum of 100 calls/week. For demo purposes, this is sufficient. More on products, read Microsoft docs How to create and publish a product in Azure API Management.

The second step is adding an operation to the just defined API, which will be a REST type of operation i.e. POST on our endpoint i.e. the relay endpoint that is hosted by BizTalk. The endpoint for this operation will be the following https://enterprisea.servicebus.windows.net/myendpoint/order.

The API and its operation have been defined and the final step will be setting a policy on our operation. Policies in API Management are where a lot of the magic happens, like converting JSON to XML or vice versa, applying CORS, or set HTTP headers. The latter is what we need to set a pre-generated SAS token (using Shared Access Signatures, enter the token in a CDATA tag). We could ask the client of our API to set these headers, however we then devalue the strength of API management and enforce the client to provide the SAS-key. In that case the client needs to know the Service Namespace credentials, which is not what we want. With API Management, we can enforce other authentication strategies or just simply let the client use our API and provide only an API-Key. We will discuss this in testing the endpoint through API Management.
In the policy, we will set the Authorization header for accessing our relay endpoint and we will need a SAS-token. Now the SAS-Key needs to be generated by us and put into the set-header name policy as shown below.

<policies>
        <inbound>
                <set-header name="Authorization" exists-action="skip">
                        <value><![CDATA[SharedAccessSignature sr=https%3a%2f%2fenterprisea.servicebus.windows.net&sig=E26706kmlcrFlkdP%2bgcFqalfKRAxzO2Ht%2flz8BhuGaqQ%3d&se=1484788588&skn=RootManageSharedAccessKey]]></value>
                        <!-- for multiple headers with the same name add additional value elements -->
                </set-header>
                <base />
        </inbound>
        <backend>
                <base />
        </backend>
        <outbound>
                <base />
        </outbound>
        <on-error>
                <base />
        </on-error>
</policies>

The SAS-token will have a validity of a certain period of days or months, which at some point need to be refreshed in the policy. Fortunately, you can use a tool from Sandro Dimattia to obtain the token for a certain amount of time i.e. the Time To Live (TTL, see also Protecting your Azure Event Hub using Azure API Managment). We will further discuss this later on the considerations concerning the refreshing of the token.

Our API is now ready to be tested. It is already published and available, because we placed our API in the Starter Product, which is published and protected by default. Note that a custom product is not published by default.

Testing the endpoint through API Management

Testing of an API can easily be done in the Developer Portal of our API Management instance. In the Azure Portal, we click Developer Portal where we click on the API menu item (top bar) and select our API. The API has only one operation, which is Order. We will try it out and add a header to indicate the content type for the payload, and our request body (which the format our BizTalk endpoint is expecting).

When we hit Send we will be sending the following over the wire:

POST https://enterprisea.azure-api.net//Order HTTP/1.1
Host: enterprisea.azure-api.net
Ocp-Apim-Trace: true
Ocp-Apim-Subscription-Key: ••••••••••••••••••••••••••••••••
Content-Type: text/xml

<ns0:Request xmlns:ns0="http://EnterpriseA.Schemas.Orders">
<ID>123</ID>
<Description>My Product Description</Description>
<Quantity>1</Quantity>
<Price>100</Price>
</ns0:Request>

We receive the following response:

<strong>Response status</strong>
202 Accepted
<strong>Response latency</strong>
6033 ms
<strong>Response content</strong>
Transfer-Encoding: chunked
Strict-Transport-Security: max-age=31536000
Ocp-Apim-Trace-Location: https://apimgmtstigjqylbzcvt5mdi.blob.core.windows.net/apiinspectorcontainer/LghnyTlQR3qEhFUmXwPlsQ2-24?sv=2015-07-08&sr=b&sig=ewuBua9VTrXtwrrOmMeCdm5uA54uBtqB9FO2CjSVOl8%3D&se=2017-01-19T17%3A21%3A14Z&sp=r&traceId=1d50bac0dc28414a8cc1d46281e03e41
Date: Wed, 18 Jan 2017 17:21:20 GMT
Content-Type: application/xml; charset=utf-8

<ns0:Response xmlns:ns0="http://EnterpriseA.Schemas.Orders">
        <ID>123</ID>
        <Status>Ok</Status>
        <Error>
                <Code>0</Code>
                <Description>No Error</Description>
        </Error>
</ns0:Response>

We can also click on Trace to investigate deeper what happens behind the scenes i.e. beyond the API endpoint https://enterprisea.azure-api.net//Order. When we hit inbound we can inspect the call to the relay endpoint.

{ "configuration": 
{ "api": 
{ "from": "/", 
"to": 
{ "scheme": "https", 
"host": "enterprisea.servicebus.windows.net", 
"port": 443, 
"path": "/myendpoint", 
"queryString": "", 
"query": {}, 
"isDefaultPort": true } }, 
"operation": 
{ "method": "POST", "uriTemplate": "/Order" }, 
"user": { "id": "1", 
"groups": [ "Administrators", "Developers" ] }, 
"product": { "id": "587f536c0c2a0e0060060001" 
} 
}
 }

As you can see this is interesting detail information. We see the host i.e. endpoint of our relay with port 443 i.e. HTTPS type of port, path (/myendpoint) and uriTemplate (/Order).
We can drill down further by click Backend in Trace and observe the details there. We see the complete URL (address) where the payload will be posted.

{ 
"message": "Request is being forwarded to the backend service.", 
"request": 
{ "method": "POST", 
"url": "https://enterprisea.servicebus.windows.net/myendpoint/Order", 
"headers":
 [ { "name": "Ocp-Apim-Subscription-Key", 
"value": "fd8f172f22bf405283f7796ed90c8eb1" }, 
{ "name": "Content-Length", 
"value": "184" }, 
{ "name": "Content-Type", 
"value": "text/xml" }, 
{ "name": "Authorization", 
"value": "SharedAccessSignature sr=https%3a%2f%2fenterprisea.servicebus.windows.net&amp;amp;amp;amp;amp;sig=E26806kmlcrFydP%2bgcFqalfKRAxzO2Ht%2flz8BhuGaqQ%3d&amp;amp;amp;amp;amp;se=1484788588&amp;amp;amp;amp;amp;skn=RootManageSharedAccessKey" }
, 
{ "name": "X-Forwarded-For", 
"value": "13.94.139.231" 
} 
] 
} 
}

We also can observer the API Key i.e. Ocp-Apim-Subcription-Key, Content-Type, the header with the SAS-Token, and an IP address, which is the Public Virtual IP (VIP) address of our APIM Instance where the request was initiated.

Note that if other developers want to test it, they will be required to subscribe to the Product and use a subscription key to access the APIs included in it. We can access it, since we created the Azure API Management and therefore we are administrator.

Considerations

BizTalk endpoints which are configured with the relay extend their reach or boundaries to Azure and such provide means of access to the outside world in a new way. Through the relay, two-way direct messaging can be facilitated with external parties. To further secure the endpoints, by not sharing the service bus credentials, we used API Management, which brings in a few aspects you have to bear in mind.

The first aspect is the availability of the BizTalk endpoints. They can extend as shown in this blog post, however they depend on the host instance under which the receive location runs. If the host is stopped, then the endpoint will become unavailable. You can mitigate this risk by having two instances of the BizTalk host and a Receive Location with the same address i.e. endpoint registered in the Azure Service Bus. And then there is the availability of the Service Bus and API Management, both are managed by Microsoft and fall under a SLA.

The second aspect is the quality of service, which has moved from BizTalk side to API Management. This means that you can implement security, rate limiting, throttling, and other service quality aspects at the API Management level by configuration using policies. This is a huge time saver, since on the BizTalk level you, for instance will have to build a custom behavior to support OAuth 2.0.

The third aspect I like to discuss, is the contract of the message you sent to the API. The actual contract is abstracted away as only the endpoint is visible as an operation in the API. Therefore, you still need to agree on the contract and format i.e. XML or JSON with your consumers. We have shown XML messages here, yet BizTalk supports JSON natively using the appropriate pipeline components.

The final aspect will be TTL of the token. As you have seen in this blog post you can create a SAS-token that has a validity based on how you set it using a tool. You do have to keep in mind when the token has almost expired you refresh the token. Moreover, you will need to have a certain SLA in place to ensure the service endpoint does not become unavailable.

Conclusion

This blog post has provided an overview on how to secure BizTalk endpoints exposed through WCF-Relay bindings, in particular we chose WCF-BasicHttpRelay. The NetTcp variant would not have been any different, other than on the protocol level. A BizTalk endpoint can be secured leveraging the relay and API Management, i.e. we can apply some quality of service aspects through API Management on our BizTalk hosted endpoint. BizTalk itself can host the actual service itself, which can be any type of service.

Using API Management, you can abstract the relay endpoint away from the consumers (clients), whitelist IP’s, cache response, monitor health, have support for OAuth 2.0, and many other aspects that are hard to accomplish with BizTalk itself when it comes to exposing endpoints to Azure. The other benefit is that you do not have to burden infrastructure guys to move BizTalk to another zone, or open up extra firewall ports, setup reverse proxies, and so on (see also a talk by Kent Weare API Management Part 1 – An Introduction to Azure API Management).

Call to action

If you like to further explore the technology that has been showcased in this blog I, would suggest to explore the following resources:

Author: Steef-Jan Wiggers

Steef-Jan Wiggers has over 15 years’ experience as a technical lead developer, application architect and consultant, specializing in custom applications, enterprise application integration (BizTalk), Web services and Windows Azure. Steef-Jan is very active in the BizTalk community as a blogger, Wiki author/editor, forum moderator, writer and public speaker in the Netherlands and Europe. For these efforts, Microsoft has recognized him a Microsoft MVP for the past 5 years. View all posts by Steef-Jan Wiggers

Stef’s Monthly Update – January 2017

Stef’s Monthly Update – January 2017

Usually like most of my blogger friends I do a write up of what I have done and experienced at the end of the year. I write a year’s review, post a few pictures and publish it. During 2017 I want to do things differently, I’ll write a review post every month and look ahead a bit in the upcoming months.

Why Stef instead of Steef-Jan my real name? Well the explanation is that many of my international buddies call me Stef, rather than my full name. And that’s fine, I do not mind at all. Thus, I have decided I will call or label my monthly updates as Stef’s Monthly Update.

 

What have I been up to in January? I have written a few blog posts for BizTalk360’s blog. Last year at the MVP in November,Saravana asked me if I was interested in writing a biweekly guest blog post with integration in mind. And I said yes let’s do that and I started in December with two posts:

I followed up in January with two more, staying a bit in the integration space with BizTalk and Logic Apps:

Creating these blog posts is fun to do, you explore a new technology or get a bit more insight in building solutions with Logic App as a new cloud integration service. As a matter a fact, one my latest projects with Logic Apps for one of Macawcustomers went live this month. So, I have gained experience in building and deploying Logic Apps to production. Awesome!

 

What I like about BizTalk360 is that besides providing a platform for blogs, it sponsors and supports the Integration Mondays for over two years now. And this has been revamp into the Integration User Group, that is the integration Mondays are part of it together with Middleware Friday. The latter is a weekly update by Kent Weare a recorded session every week, and has 4 episodes so far. As for integration Monday, a set of speakers is line up all to way to the end of April and I will be one of them in March.

 

What else have I been up to? I have written an article for the Dutch SDNMagazine in Dutch, which has been a quite a while (a couple years I believe) since I have done that. Thanks to Marcel Meijer and Lex Hegt, both for reviewing the article. It is ready to be published in the upcoming magazine 131. The article is about Server less Integration using Logic Apps and Functions. As you might realize that means no more VM’s, just a Browser and Azure.

The benefit of writing that article was that I can also will present on the topic at the SDN Event in March. Super! And I’ll be on stage next month too, in New Zealand and Australia. Yes, this cool and this evolved from what happened last year. On the plane, back from Gothenburg, where me and Eldert did some talks we came up with the idea of going down under. A few weeks later we booked the tickets after we spoke with Mick Badran and Rene Brauwers. Rene has set up a Meetupin Sydney and Mark Brimbletogether with Craig Haiden onein Auckland. And we’ll probably have one in Melbourne and Brisbane too. Cool, eh!

During my trip, down under there’s an Ignite going on too in the Gold Coast. Eldert will be going there and meanwhile I’ll be a few days in Auckland, before I join him at the end of the event. We’ll be meeting up with Dan Toomey, Dean Robertson, some other Team Mexia guys/gals, the Microsoft PG (Jeff Holan, Kevin Lam and Jon Fancey), and fellow MVP Martin Abbott. So, will be mixing up work with leisure time while I am down there.

In this month, I read a few books on various topics, entrepreneurial, social media and politics. The first one being a book from Gary Vaynerchuck Ask GaryVee.  Why the entrepreneurial topic, why the interest? Kent Weare my buddy mentioned this guy, as one of the hottest entrepreneurs at the moment, a few times and point to some points he stands for. Hence, I looked at a few YouTube movies of GaryVee, bought one of his books and read it. Besides this one I read another one, which I stumbled on called “Your One Word” by Evan Carmichael. And through GaryVee I also got interested in the “The Social Organism” book and read that one too.

Three books in total in combination of two other books, which I picked up while reading the Correspondent website:

  •  Utopia for realists. This book deals with an ideal world that we all have enough money, and can live happy lives. It discusses experiments with a base income for people. However, all these experiments have been done on a small scale and it yet needs to prove itself on a large scale. Politically is can be a hard sell.

  •  Je hebt wel iets te verbergen (You do have something to hide). A book that discussed our privacy in this day and age being online every day with all your device. Interesting read as everything we do these days is being tracked and used for all kinds of purposes like profiling, ectera.

My favorite albums, which we released in January, are:

Besides writing, preparing content, reading and listening to music have I been doing some workouts? Yes, I have done a few runs to prepare for a half marathon of The Hague in March and a full marathon in April (Rotterdam).

 

There you have it Stef’s first Monthly Update and I can look back with joy. Accomplished quite a few things and exciting moments are ahead of me.

 

Cheers,

 

Steef-Jan

Author: Steef-Jan Wiggers

Steef-Jan Wiggers is all in on Microsoft Azure, Integration, and Data Science. He has over 15 years’ experience in a wide variety of scenarios such as custom .NET solution development, overseeing large enterprise integrations, building web services, managing projects, designing web services, experimenting with data, SQL Server database administration, and consulting. Steef-Jan loves challenges in the Microsoft playing field combining it with his domain knowledge in energy, utility, banking, insurance, health care, agriculture, (local) government, bio-sciences, retail, travel and logistics. He is very active in the community as a blogger, TechNet Wiki author, book author, and global public speaker. For these efforts, Microsoft has recognized him a Microsoft MVP for the past 6 years. View all posts by Steef-Jan Wiggers