On-Premise Application Integration

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

Pattern Definition

ProblemHow do I integrate Cloud-based and on-premises applications with minimal Cloud footprint?
ContextThis 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
  • Need to handle on premises to on premises as well as on premises to Cloud.
  • Limited need for Cloud to Cloud application integration.
  • Want to extend an established on-premises Application Integration Platform to Cloud-based applications.
  • Quickly attach to existing on-premises integration flows.
SolutionThe 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.
ConsequencesPros:
  • Leverages existing investment in on-premises Application Integration Platform.
  • Easiest way to add Cloud-based applications to exiting integrations.
  • Best support for on-premises to on-premises integrations.
Cons:
  • Sub-optimal approach for SaaS to SaaS integrations.
  • Does not take advantage of what public Cloud has to offer with respect to integration.

Interaction Views


Synchronous Communication

A SaaS application requires integration to on-premises application. 

Interactions

Interaction initiated by the Cloud-based application:

  1. 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.
  2. The Application Integration Platform communicates with the on-premises application via an adapter.

Interaction initiated by the on-premises application:

  1. The on-premises application initiates the integration via an adapter in the on-premises Application Integration Platform.
  2. The on-premises Application Integration Platform calls the Cloud-based application via a REST/SOAP interface.

Notes

  1. Because there is no adapter for the SaaS application, the Cloud-based application must be able to initiate a REST/SOAP call. 
  2. It is preferable for the on-premises application integration platform to expose a REST/SOAP interface accessible from the public Cloud.
  3. 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:

  1. The on-premises application initiates the integration via an adapter configured in the application integration platform.
  2. The Service Bus posts the message to a messaging request queue.
  3. The Service Bus receives the queued message from the messaging request queue.
  4. 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.
  5. The Service Bus posts the response to a messaging response queue.
  6. The Service Bus receives the queued message from the response queue.
  7. The Service Bus sends the response message to the on-premises application.

Notes

  1. One-way asynchronous communication follows this same interaction but uses only interactions 1 through 4.
  2. 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:

  1. 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.
  2. The application integration platform sends a message to the Cloud-based application.
  3. The orchestration engine stores the orchestration state in the Dehydration Store.
  4. The Cloud-based application sends a message to the on-premises
    application integration platform.
  5. The application integration platform retrieves the orchestration state from the Dehydration Store.
  6. 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:

  1. 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.
  2. 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:
  3. The Cloud-based application initiates the integration via REST/SOAP call to the on-premises Application Integration Platform.
  4. 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.