With the growing need to connect heterogeneous endpoints in various locations, a Hybrid Integration Platform is crucial. Leading-edge enterprises are starting to leverage a hybrid integration platform to take advantage of the best cloud-based and on-premises integration approaches.
Companies that adopt cloud applications view application integration as the critical component to harmonize business processes across their hybrid application landscape.
Scenarios of hybrid cloud integration include the following examples:

    – Viewing customer information between cloud customer relationship management (CRM) and on-premise enterprise resource planning (ERP) applications.
    – Employee data integration between cloud based human capital management system and back-office applications.

IBM® Cloud Integration for Bluemix enables you to integrate cloud and on-premises data. The Cloud Integration service provides a faster and simpler way to quickly integrate cloud services with enterprise systems of record. These systems of record are typically exposed as REST APIs to be used by the Applications. The integration with on-premise systems is achieved through IBM Integration Bus.

IBM® Integration Bus v10.0 provides a specialized application container (REST API project), that can be used to expose integrations as a RESTful web service that can be called by HTTP clients.

There are 2 stages involved in setting the Hybrid Integration scenario:

    – Developing IBM Integration Bus v10 solutions by using REST APIs.
    – Connecting securely from Bluemix Application to on-premise system.

A. Developing IBM Integration Bus v10 solutions by using REST APIs:

To build a REST API in IBM® Integration Bus, you must provide a Swagger document. A Swagger document is the REST API equivalent of a WSDL document for a SOAP-based web service. The Swagger document specifies the list of resources that are available in the REST API and the operations that can be called on those resources. The Swagger document also specifies the list of parameters to an operation, including the name and type of the parameters, whether the parameters are required or optional, and information about acceptable values for those parameters. IBM Integration Bus supports version 2.0 of the Swagger specification.

    In the Integration Bus Toolkit, Create a new REST API project

one

    Provide a name for your REST API project

two

    Select the path to the Swagger document that describes the resources and operations that you want in the REST API. You can import the Swagger document from the file system or from an existing project in the workspace.

three

After importing the .json file, The dialog box displays the API description, operations and method type.

four

Click on ‘Finish’ to complete the import operation of the swagger API document. The REST API description for the new REST API opens automatically.
five

Implementing an operation in a REST API :
six

For every operation and its method type that has been imported from the swagger document, there is an ‘implement the operation’ link . Upon clicking this link, a new subflow is automatically created and opened.

Implement the operation by adding any of the standard message flow nodes that are available with IBM Integration Bus to the subflow.

seven

eight

Information about the current operation is automatically placed into the local environment tree. You can use this information in your implementation if you want to determine which operation in the REST API was called, which HTTP method was used, the request path, or the request URI.

nine

When these operations are implemented and saved, it gets automatically added to the main flow.
ten

The node properties on HTTPInput node is automatically populated with the relative path as defined in swagger document.

eleven

twelve

Package and Deploy the REST API project to Integration Server .
The REST API project does not work with broker level http listener (which is a default setting for a newly created broker), so the deployment may fail.

Hence, modify the broker to use EG level embedded listener and then deploy the bar file.

mqsichangeproperties BRK -e EG -o ExecutionGroup -n httpNodesUseEmbeddedListener -v true

thirteen

Do a quick test for your message flow API by invoking it via a web browser.
http://localhost:7800/customerdb/v1/customers

fourteen

This completes your message flow setup as REST API.

B. Connecting securely from Bluemix Application to on-premise system :

There are primarily 3 ways you can connect securely from Bluemix Application to on-premise system.

Basic Connector

The Basic (Software) Secure Connection is a simple software-based connection that establishes a tunnel between Bluemix applications and the network on which it is installed, leveraging a secure (SSH) access that eliminates the need for a firewall port.

DataPower Connector

The DataPower Secure Connector leverages an on-premises DataPower deployment as a secure gateway connection between backend resources (behind the enterprise firewall) and Bluemix applications.

Standard Connector

The Standard Connector is a Cast Iron based Secure Connector that establishes a tunnel between Bluemix applications and the network on which it is installed, leveraging a secure (HTTPS) access that eliminates the need for a firewall port.

In this article we show how to create a secure connection using Basic Connector. The Basic type of connection establishes a tunnel between Bluemix applications and the private network (on-premise) leveraging a secure (SSH) access that eliminates the need for a firewall port.

The first step is to establish one or more tunnels to your on-premise endpoints.
Detailed instructions for installing and setting up the connector on your on-premise system are available at Bluemix documentation:
CloudIntegration-Basic Connector

After following the above steps the connection would appear as below in your Cloud Integration connection page.

fifteen

Creating an on-premises endpoint provides a host name and port by which an on-premises system can be accessed. When you create an endpoint for the basic connector, you have two options. You can choose to create an endpoint from an API, or if an API is not available then you can define your own endpoint by choosing the ‘user defined’ option. The ‘user defined’ option is useful when the on-premises application uses something else besides an API, for instance, a protocol that only the Bluemix app and the on-premises application understand.

In section (A), we saw how to expose the message flow operations via REST API. Now we will look at creating the endpoints from REST API.

1. Find the basic connection that you created previously and click the arrow icon in the ‘Detail’ column.
2. Click ‘Add an Endpoint’ to start the wizard. The ‘Connect to an Endpoint’ dialog box opens.
sixteen
3. Choose the option API and complete the fields that are associated with your choice as indicated.

4. Specify how you want to secure access to the endpoint. For demonstration in this article we chose ‘publicly’. Endpoints that are created with this access type encrypt data between the application client and the on-premises connection, but do not authenticate clients.

5. Click ‘Create’. Your endpoint is created and is displayed in the list of endpoints that you can connect to.

Click the ‘information’ icon to reveal the endpoint connection information for each endpoint. This information is used by your Bluemix application to access your on-premises resources using the basic connector and endpoint that you created.

seventeen

Now you can use the public address created by Bluemix Secure connector in your cloud applications as shown below.

eighteen

This will return you the same response that we saw in unit testing via the web browser.

nineteen

1 comment on"Hybrid Integration: Connect your Cloud Applications with backend systems using IBM Integration Bus"

  1. Marimuthu Udayakumar October 16, 2015

    Its excellent and very helpful. Swagger document import and creating default message flow as wsdl document import is impressive.

Join The Discussion

Your email address will not be published. Required fields are marked *