Introduction
With more and more companies moving to the cloud, there is increased demand for integration of SaaS offerings using cloud integration platforms. We call this IPaaS, Integration Platform as a Service. Software AGs offering for IPaaS is webmethods.io Integration. But most companies do not start in the cloud by scratch, they still have systems running on-premises, in a container environment, or in a cloud platform service (PaaS - Platform as a Service). Usually, the systems running there are not exposed as a Service or even shall not, because of security reasons. You still need to integrate those systems with your new world, and this is where hybrid integration comes into place.
In this article, I will show you how to expose a service running in an on-premise webMethods Integration Server (the Server in the demo will actually be running in a container) to webMethods.io Integration and use it in a cloud-hosted flow.
I will break down the process into 4 parts:
- Create a user for the local Integration Server
- Expose the local service to webMethods.io
- Create an IO Project
- Create a Hybrid Integration Flow
All of the pictures are clicked to enlarge, so if you want to read the details in the screenshots, just click the thumbnails. There is also a video on our youtube channel showing the complete procedure: Hybrid Integration: Expose a local service to webMethods.io integration - YouTube
If you want to create this part of the demo yourself, you need a webMethods.io tenant with Integration enabled, an Integration Server or Microservice Runtime with a JDBC adapter and a demo database connected to it.
Create a user for the local Integration Server
In order to connect our local integration server to webMethods.io Integration, we need a user in webMethods.io.
In the app switche go to My Cloud and then select Administration.
Click Add user.
Enter name and a valid e-mail
Enter a unique username and make sure to have at least webMethods.io Integration User selected.
Click Save.
You will receive an e-mail to update your password.
Set a secure password.
Expose the local service to webMethods.io
We are now switching to our local installation. Where local can mean
- A classical installation of webMethods Integration Server or Microservice Runtime in your datacenter
- An instance of webMethods Integration Server or Microservice Runtime in your own container platform.
- An instance of webMethods Integration Server or Microservice Runtime in a cloud hosted container platform.
In this example, we have a service on our integration server which accepts a “Payment Advise” and just stores it in a local database (Here shown in the Service Development Perspective of Designer).
Open the Admin UI of the Integration Server in a browser. Go to webMethods Cloud - Settings. Enter the username and password of the user you just created. Also, enter the web Address of your webMethods.io tenant (that’s the same URL you use to connect to webMethods.io itself). Save your changes
Go to Accounts. Click Create On-Premise Account. Enter an Alias Name and make sure to set Enable. As this is just a demo, we use Stage Development. Also in this demo, we choose Run As User as Administrator. In a real live environment, you may want to use dedicated users for running your local services.
Save your changes and click Return to On-Premise Accounts.
Click the Upload Button.
Go to Applications. Click Define webMethods Cloud Application.
Enter a name for the application. The page displays all custome packages on the local Integration Server. Expand the package with the service you want to expose. Select the service you want to use in webMethods.io Integration. Make sure to only expose well defined services meant for exposure! Click Save Changes and Return to webMethods Cloud Applications.
Click the Upload button. The service is now available in webMethods.io Integration.
Create a webMethods.io Project
We first need to create a project to hold our created services. Go to webMethods.io Integration (USe the app switcher in the upper right corner if you are in another cloud product).
Click the big + to create a new project.
Give it a proper name.
You will get an empty project.
Click the connectors tab and select On-premises. This will show the services exposed by on-premise Integration Servers or Microservice Runtimes to his tenant. The service we exposed in the last step is displayed here. It is not yet used in any project.
Use it in a flow
N.B.: For integrating on premise services we use flow servies, not workflow. If you do not see the tab for creating flow servies, please have a look at the documentation, how to enable it: FlowServices - webMethods.io Integration
In any flow service in webMethods.io Integration just insert a new step, select CONNECTORS from the dropdown and scroll down to the On-Premise Connectors. The exposed service is there to use:
Please have a look at the other related articles and videos to see how we get a complete hybrid B2B integration.
Related articles & Videos
B2B as a Service: Connect a Partner via webMethods.io B2B
Article: B2B as a Service: Connect a Partner via webMethods.io B2B
Video: B2B as a Service: Connect a Partner via webMethods.io B2B - YouTube
Hybrid Integration: Expose a local service to webMethods.io Integration:
Article: This one!
Video: Hybrid Integration: Expose a local service to webMethods.io integration - YouTube
Hybrid B2B Bring the pieces together - integrate webMethods.io B2B with webMethods.io Integration
Article: Hybrid B2B: Integrate webMethods.io B2B with webMethods.io Integration
Video: Hybrid B2B - integrate webMethods.io B2B with webMethods.io Integration - YouTube