Hybrid Application Integration

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

Pattern Definition

ProblemHow do I integrate Cloud-based and on-premises applications with maximum flexibility?
ContextThis 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 Cloud-based applications and multiple on-premises applications.
Forces
  • Need a strategic and comprehensive platform.
  • Want to balance quick delivery projects with a systematic approach to integration
  • Need to handle combinations of cloud to cloud, cloud to on premise, on premise to on premise
  • Want to extend an established on-premises Application Integration Platform
  • Quickly attach to existing on-premises integration flows while leveraging Cloud-based integration
SolutionThe Hybrid Integration pattern employs an Application Integration Platform both in the Cloud and on premises. While this increases the cost and complexity of the overall solution it also provides the greatest flexibility. On-premises applications can be integrated using the on-premises Application Integration Platform while SaaS to SaaS integration can be done using the Cloud-based Integration Platform. Both Application Integration Platforms come into play when the integration is between Cloud-based applications and on-premises applications. For performance reasons it may be desirable to have communications use only the on-premises Application Integration Platform or only the Cloud-based Application Integration Platform. When this is the case, it is an application of one of the other Cloud to on-premises application patterns (See below)
ConsequencesPros:
  • Provides the greatest flexibility
  • Encapsulates on-premises integrations and Cloud-based integrations. Cloud to on-premises communication only required when integrating on premises to Cloud.
Cons:
  • Increased complexity compared to having only one Integration Platform.
  • Potential performance impact due to integration going through two Integration Platforms.
  • May require different skill sets for on-premises and Cloud-based Integration Platforms

Interaction Views


Synchronous Communication

A Cloud-based application requires integration to on-premises application. The integration communication is synchronous request-response to the on-premises application.

Interactions

Interaction initiated by the Cloud-based application:

  1. The Cloud-based application initiates the integration via the application integration platform adapter. 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 integration platform. The on-premises application integration platform could be a existing application integration platform or an integration agent.
  3. The on-premises application integration platform communicates with the on-premises application.

Interaction initiated by the on-premises application:

  1. The integration could also be initiated by the on-premises application.
  2. The on-premises application integration platform calls the application integration platform.
  3. The application integration platform uses an adapter to connect to the Cloud-based application.

Notes

  1. The integration agent provides secure communication between on-premise and the public cloud. The Integration Agent establishes an encrypted connection to the application integration platform in the public cloud
  2. When there is 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 integration platform.
  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 to the on-premises application.

Interactions

Interaction initiated by the Cloud-based application:

  1. 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.
  2. The application integration platform 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 on-premises application integration platform. The on-premises application integration platform could be an existing application integration platform or an integration agent.
  5. The on-premises application integration platform communicates with the on-premises application
  6. The response from the request is posted to a messaging response queue.
  7. The Service Bus receives the queued message from the messaging response queue.
  8. The Service Bus sends the response message to the Cloud-based application.

Notes

  1. When there is no 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 integration platform.
  2. The application integration platform can also use messaging to provide asynchronous communication for integrations originating with the on-premises application
  3. One-way asynchronous communication follows this same interaction but uses only interactions 1 through 5.
  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:

  1. 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.
  2. The application integration platform communicates with the on-premises application integration platform. The on-premises application integration platform could be an existing application integration platform or an integration agent..
  3. The orchestration engine stores the long running orchestration in the Dehydration Store.
  4. The on-premises application integration platform communicates with the on-premises application.
  5. The on-premises application integration platform sends the response to the application integration platform.
  6. The application integration platform retrieves the long running orchestration from the Dehydration Store and continues the orchestration.
  7. The application integration platform sends the response message to the Cloud-based application.

Notes

  1. When there is no 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 integration platform.
  2. The application integration platforms can also use BPEL to provide long running orchestrations for integrations originating with the on-premises application.
  3. The communication to the applications could use native APIs or adapters.