Integration of a Cloud-based application with an on-premises or Cloud-based application using integration capabilities only in the Cloud.

Pattern Definition
Problem | How do I integrate a Cloud-based application with an on-premises or Cloud-based application with minimal on-premises impacts? |
Context | This pattern is applicable when there is a desire to integrate a Cloud-based application with an on-premises or Cloud-based application. There may be multiple applications, but the key consideration is the integration between a Cloud-based application and an on-premises or Cloud-based application. |
Forces |
|
Solution | This pattern employs an Application Integration Platform only in the Cloud. This provides the quickest way to integrate Cloud-based applications to on-premises and Cloud-based applications. |
Consequences | Pros:
|
Mappings
Amazon Web Services
- Application Integration Platform: N/A
Google Cloud Platform
- Application Integration Platform: N/A
Microsoft Azure
- Application Integration Platform Azure Logic Apps
Open Source
- Application Integration Platform: WS02 Enterprise Integrator, …
Oracle Cloud Infrastructure
- Application Integration Platform: Oracle SOA Cloud Service
- Application Integration Platform: Oracle Integration Cloud Service
Interaction Views
- Synchronous Communication
- Synchronous Communication with On-Premise Agent
- Asynchronous Request Response
- Long Running Orchestration
- Synchronous Communication for Cloud
- Asynchronous Request Response for Cloud
- Long Running Orchestration for Cloud
Synchronous Communication
A SaaS application or Cloud-based application (IaaS, PaaS) requires integration to an on-premises application.

Interactions
Interaction initiated by the 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 on-premises application. The on-premises application must expose an appropriate API (e.g. REST/SOAP) accessible from the public cloud.
Interaction initiated by the on-premises application:
- The on-premises application initiates the integration by calling the application integration platform.
- The application integration platform uses an adapter to communicate with the Cloud-based application.
Mapping
Notes
- 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 network.
- The communication to the Cloud-based application could use native APIs instead of adapters
Synchronous Communication with On-Premise Integration Agent
A SaaS application or Cloud-hosted application on IaaS or PaaS requires integration to an on-premises application.

Interactions
Interaction initiated by the 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 on-premises Integration Agent.
- The on-premises Integration Agent uses and adapter to communicate with the on-premises application.
Interaction initiated by the on-premises application:
- The on-premises application initiates the integration by calling the application integration platform.
- The application integration platform uses an adapter to communicate to the Cloud-based application.
Notes
- The Integration Agent provides secure communication between on-premises and a Public Cloud. The Integration Agent establishes an encrypted connection to the application integration platform by calling into the application Integration platform. There is no need to “punch a hole” in the on premises firewall.
- The application Integration platform communicates asynchronously with the Integration Agent, but the communication is synchronous from the Cloud-based application and the on-premises application.
- The Integration Agent may initiate a communication with the application Integration application if the database or file adapter is used on premises.
Asynchronous Request-Response
A SaaS application or Cloud-based application in IaaS or PaaS requires integration to on-premises application. The integration communication needs to be asynchronous request-response to the on-premises application.

Interactions
Interaction initiated by the 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 request queue.
- The application integration platform communicates with the on-premises application. The on-premises application must expose an appropriate API (e.g. REST/SOAP) accessible from the public cloud
- The response from the request is posted to a messaging response queue.
- The Service Bus receives the queued message from the response queue.
- The Service Bus sends the response message to the Cloud-based application.
Notes
- 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 network.
- The application integration platform can also use messaging to provide asynchronous communication for integrations originating with the on-premises application.
- The communication to the Cloud-based application could use native APIs instead of adapters.
Long Running Orchestration
A SaaS application or Cloud-hosted application requires integration to on-premises application. The integration requires a long lived orchestration.

Interactions
Interaction initiated by the 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 on-premises application. The on-premises application must expose an appropriate API (e.g. REST/SOAP) accessible from the public cloud.
- The application integration platform stores the orchestration state in the Dehydration Store.
- The on-premises application sends the response to the
application integration platform. - The application integration platform retrieves the orchestration state from the Dehydration Store.
- The application integration platform delivers the response to the Cloud-based application via an adapter.
Notes
- 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 network.
- The application integration platform can also use BPEL to provide long running orchestrations for integrations originating with the on-premises application.
- The communication to the Cloud-based application could use native APIs instead of adapters.
Synchronous Communication for Cloud
A Cloud-based application requires integration to another Cloud-based 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 Cloud-based application via an adapter. The Cloud-based application could be SaaS, or an application running on PaaS or IaaS.
Interaction initiated by the right side Cloud-based application:
- and
- Reverses the calling order for the two Cloud-based applications being integrated.
Notes
- This interaction shows only two Cloud-based applications, but it could be any number of applications being integrated.
- The Cloud-based applications could be in one Cloud or in multiple Clouds.
- The communication to the Cloud-based application could use native APIs instead of adapters.
Asynchronous Request-Response for Cloud
A Cloud-based application requires integration to another Cloud-based application. 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 Cloud-based application via an adapter. The Cloud-based application could be SaaS, an application running on PaaS or IaaS.
- 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 Service Bus sends the response message to the initiating Cloud-based application.
Notes
- The Cloud-based applications could be in one Cloud or in multiple Clouds.
- The communication to the Cloud-based application could use native APIs instead of adapters.
Long Running Orchestration for Cloud
A Cloud-based application requires integration to another Cloud-based application. The integration needs to be a long lived orchestration.

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 other Cloud-based application via an adapter. The Cloud-based application could be SaaS, or an application running on PaaS or IaaS.
- The application integration platform stores the orchestration state in the Dehydration Store.
- The Cloud-based application responds to the request at some later time.
- The application integration platform retrieves the orchestration state from the Dehydration Store.
- The application integration platform sends the response message to the initiating Cloud-based application.
Notes
- The Cloud-based applications could be in one Cloud or in multiple Clouds.
- The communication to the Cloud-based application could use native APIs instead of adapters.