Integrate a Cloud-based Application to another Cloud-based or on-premises application.

Pattern Definition
Problem | How do I integrate a Cloud-based application with another Cloud-based or on-premises application which makes use of an Application Integration Platform in two Clouds? |
Context | This pattern is applicable when there is a desire to integrate a Cloud-based application with another Cloud-based application hosted in another Cloud or with an on-premises application. The Cloud-based application may be SaaS or hosted on PaaS or on IaaS. The integration may include multiple applications, and the applications may be deployed to multiple clouds. There is an Application Integration Platform in each Cloud. |
Forces |
|
Solution | The pattern employs one Application Integration Platform in each Cloud that has applications that need to be integrated. |
Consequences | Pros:
|
Interaction Views
- Synchronous Communication
- Asynchronous Communication
- Long Running Orchestration
- Synchronous Communication for On-Premise
- Synchronous Communication for On-Premise with Agent
Synchronous Communication
A Cloud-based application requires integration to another Cloud-based application in another Cloud.

Interactions
Interaction initiated by the left side Cloud-based application:
- The Cloud-based application initiates the integration via an adapter configured in the application integration platform. The Cloud-based application could be SaaS, or an application running on PaaS or IaaS
- The application integration platform communicates with the application integration platform in another Cloud.
- The application integration platform communicates with the Cloud-based application. The Cloud-based application could be SaaS or an application running on PaaS or IaaS.
Interaction initiated by the right side Cloud-based application:
- The integration could also be initiated by the other Cloud-based application.
- The application integration platform calls the
application integration platform. - The application integration platform uses an adapter to connect to the Cloud-based application.
Notes
- This interaction shows only two Cloud-based applications, but it could be any number of applications being integrated
- The application integration platform tend to support:
- REST with HTTP Basic or OAuth security, or
- SOAP with WS Security using username and timestamp.
Asynchronous Communication
A Cloud-based application requires integration to another Cloud-based application in another Cloud. The integration communication needs to be asynchronous request-response.

Interactions
Interaction initiated by the left side Cloud-based application:
- The Cloud-based application initiates the integration via an adapter configured in the application integration platform. The Cloud-based application could be SaaS, or an application running on PaaS or IaaS.
- The application integration platform Service Bus posts the message to a messaging request queue.
- The Service Bus receives the queued message from the messaging request queue.
- The application integration platform communicates with the other application integration platform.
- The application integration platform communicates with the other Cloud-based application. The Cloud-based application could be SaaS or an application running on PaaS or IaaS.
- The application integration platform sends the response message to the application integration platform.
- The response from the request is posted to a messaging response queue.
- The Service Bus receives the queued message from the messaging response queue.
- The application integration platform sends the response message to the initiating Cloud-based application via an adapter.
Notes
- The Cloud-based applications could be in one Cloud or in multiple Clouds.
- One-way asynchronous communication follows this same interaction but uses only interactions 1 through 4.
Long Running Orchestration
A Cloud-based application requires integration to another Cloud-based application in another Cloud. The integration communication needs to be asynchronous request-response.

Interactions
Interaction initiated by the left side Cloud-based application:
- The Cloud-based application initiates the integration via an adapter configured in the application integration platform. The Cloud-based application could be SaaS, or an application running on PaaS or IaaS.
- The application integration platform communicates with application integration platform in another Cloud.
- The orchestration engine stores the long running orchestration in the Dehydration Store.
- The application integration platform communicates with the Cloud-based application. The Cloud-based application could be SaaS or an application running on PaaS or IaaS.
- The application integration platform in the other Cloud sends the response to the application integration platform.
- The application integration platform retrieves the long running orchestration from the Dehydration Store and continues the orchestration.
- The application integration platform sends the response message to the Cloud-based application.
Notes
- Some application integration platforms can also use BPEL to provide long running orchestrations for integrations originating with the Cloud-based application running in another Cloud.
Synchronous Communication for On-Premise
A Cloud-based application requires integration to an on-premises application.

Interactions
Interaction initiated by the left side Cloud-based application:
- The Cloud-based application initiates the integration via an adapter configured in the application integration platform. The Cloud-based application could be SaaS, or an application running on PaaS or IaaS
- The application integration platform communicates with the application integration platform in another Cloud.
- The application integration platform communicates with the on-premises application.
Interaction initiated by the right side Cloud-based application:
- The Cloud-based application initiates the integration with the other application integration platform.
- The application integration platform calls the other application integration platform.
- The application integration platform uses an adapter to connect to the on-premises application.
Notes
- This interaction shows only two Cloud-based/on-premises applications, but it could be any number of applications being integrated.
- With no integration agent on premises it will be necessary to open a port in the on-premises firewall to allow the application integration platform to make a call into the on-premises application.
- The integration could also be initiated by an on-premises application.
Synchronous Communication for On-Premise with Agent
A Cloud-based application requires integration to an on-premises application.

Interactions
Interaction initiated by the left side Cloud-based application:
- The Cloud-based application initiates the integration via an adapter configured in the application integration platform. The Cloud-based application could be SaaS, or an application running on PaaS or IaaS
- The application integration platform communicates with the application integration platform in another Cloud.
- The application integration platform communicates with the on-premises application.
Interaction initiated by the right side Cloud-based application:
- The Cloud-based application initiates the integration with the application integration platform.
- The application integration platform calls the other
application integration platform. - The application integration platform communicates with the integration agent on premises.
- The integration agent uses an adapter to connect to the on-premises application.
Notes
- This interaction shows only two Cloud-based/on-premises applications, but it could be any number of applications being integrated.
- The integration could also be initiated by an on-premises application.
- The application integration platform tend to support:
- REST with HTTP Basic or OAuth security, or
- SOAP with WS Security using username and timestamp