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

Pattern Definition
Problem | How do I integrate Cloud-based and on-premises applications with minimal Cloud footprint? |
Context | This pattern is applicable when there is a desire to integrate a Cloud-based application and an on-premises application or other Cloud-based application. There may be multiple Cloud-based applications and multiple on-premises applications. |
Forces |
|
Solution | The on-premises Integration pattern employs an Application Integration Platform only on premises. This is likely the current situation in most IT environments. On-premises applications are integrated using the on-premises Application Integration Platform and there is a desire to add Cloud-based applications to this existing integration approach. As SaaS to SaaS integration needs arise, this pattern could likely evolve into the Hybrid Integration pattern. |
Consequences | Pros:
|
Interaction Views
- Synchronous Communication
- Asynchronous Request-Response
- Long Running Orchestration
- Synchronous Communication Cloud to Cloud
Synchronous Communication
A SaaS application requires integration to on-premises application.

Interactions
Interaction initiated by the Cloud-based application:
- The Cloud-based application initiates the integration via a REST/SOAP call to the on-premises 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 via an adapter.
Interaction initiated by the on-premises application:
- The on-premises application initiates the integration via an adapter in the on-premises Application Integration Platform.
- The on-premises Application Integration Platform calls the Cloud-based application via a REST/SOAP interface.
Notes
- Because there is no adapter for the SaaS application, the Cloud-based application must be able to initiate a REST/SOAP call.
- It is preferable for the on-premises application integration platform to expose a REST/SOAP interface accessible from the public Cloud.
- The communication to the applications could use native APIs or adapters
Asynchronous Request-Response
A Cloud-based application requires integration to on-premises application. The integration communication needs to be asynchronous request-response from the on-premises application.

Interactions
Interaction initiated by the Cloud-based application:
- The on-premises application initiates the integration via an adapter configured in the application integration platform.
- The 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 Cloud-based application using REST/SOAP. The Cloud-based application could be SaaS, or an application running on PaaS or IaaS.
- The Service Bus posts the response 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 on-premises application.
Notes
- One-way asynchronous communication follows this same interaction but uses only interactions 1 through 4.
- The communication to the applications could use native APIs or adapters.
Long Running Orchestration
A Cloud-based application requires integration to on-premises application. The integration communication needs to be a long lived orchestration.

Interactions
Interaction initiated by the Cloud-based application:
- The on-premises 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 sends a message to the Cloud-based application.
- The orchestration engine stores the orchestration state in the Dehydration Store.
- The Cloud-based application sends a message to the on-premises
application integration platform. - The application integration platform retrieves the orchestration state from the Dehydration Store.
- The application integration platform sends the response message to the on-premises application.
Notes
- The communication to the applications could use native APIs or adapters.
Synchronous Communication Cloud to Cloud
Cloud-based applications require integration.

Interactions
Interaction initiated by the Cloud-based application on the left:
- The Cloud-based application initiates the integration via a REST/SOAP call to the on-premises Application Integration Platform. The Cloud-based application could be SaaS, or an application running on PaaS or IaaS.
- The on-premises Application Integration Platform communicates with Cloud-based application via a REST/SOAP interface.
Interaction initiated by Cloud-based application on the right: - The Cloud-based application initiates the integration via REST/SOAP call to the on-premises Application Integration Platform.
- The on-premises Application Integration Platform calls the Cloud-based application via a REST/SOAP interface.
Notes
- The Cloud-based application must be able to initiate a REST/SOAP call.
- The on-premises Application Integration Platform must expose a REST/SOAP interface accessible from the public Cloud.
- The communication to the applications could use native APIs or adapters.