Cloud Application Integration

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

Pattern Definition

ProblemHow do I integrate a Cloud-based application with an on-premises or Cloud-based application with minimal on-premises impacts?
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 applications, but the key consideration is the integration between a Cloud-based application and an on-premises or Cloud-based application.
Forces
  • Most integrations include a Cloud-based applications.
  • Little or no need for integration between on-premises applications.
  • Integrations are less complex.
  • In-house integration skills are limited.
  • Focus is on rapid integration.
SolutionThis 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.
ConsequencesPros:
  • Provides the quickest integration approach.
  • Only one Application Integration Platform to manage.
Cons:
  • Probably not a good solution for on-premises to on-premises integration.
  • Limits the options for connecting to the on-premises applications.

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

A SaaS application or Cloud-based application (IaaS, PaaS) requires integration to an 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 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:

  1. The on-premises application initiates the integration by calling the application integration platform.
  2. The application integration platform uses an adapter to communicate with the Cloud-based application.

Mapping

Notes

  1. 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.
  2. 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:

  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 Integration Agent.
  3. The on-premises Integration Agent uses and adapter to communicate with the on-premises application.

Interaction initiated by the on-premises application:

  1. The on-premises application initiates the integration by calling the application integration platform.
  2. The application integration platform uses an adapter to communicate to the Cloud-based application.

Notes

  1. 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.
  2. 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.
  3. 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:

  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 request queue.
  4. 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
  5. The response from the request is posted 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 Cloud-based application.

Notes

  1. 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.
  2. The application integration platform can also use messaging to provide asynchronous communication for integrations originating with the on-premises application.
  3. 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:

  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. The on-premises application must expose an appropriate API (e.g. REST/SOAP) accessible from the public cloud.
  3. The application integration platform stores the orchestration state in the Dehydration Store.
  4. The on-premises application sends the response to the
    application integration platform.
  5. The application integration platform retrieves the orchestration state from the Dehydration Store.
  6. The application integration platform delivers the response to the Cloud-based application via an adapter.

Notes

  1. 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.
  2. The application integration platform can also use BPEL to provide long running orchestrations for integrations originating with the on-premises application.
  3. 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:

  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 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:

  1. and
  2. Reverses the calling order for the two Cloud-based applications being integrated.

Notes

  1. This interaction shows only two Cloud-based applications, but it could be any number of applications being integrated.
  2. The Cloud-based applications could be in one Cloud or in multiple Clouds.
  3. 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:

  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 other Cloud-based application via an adapter. The Cloud-based application could be SaaS, an application running on PaaS or IaaS.
  5. The response from the request is posted to a messaging response queue.
  6. The Service Bus receives the queued message from the messaging response queue.
  7. The Service Bus sends the response message to the initiating Cloud-based application.

Notes

  1. The Cloud-based applications could be in one Cloud or in multiple Clouds.
  2. 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:

  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 other Cloud-based application via an adapter. The Cloud-based application could be SaaS, or an application running on PaaS or IaaS.
  3. The application integration platform stores the orchestration state in the Dehydration Store.
  4. The Cloud-based application responds to the request at some later time.
  5. The application integration platform retrieves the orchestration state from the Dehydration Store.
  6. The application integration platform sends the response message to the initiating Cloud-based application.

Notes

  1. The Cloud-based applications could be in one Cloud or in multiple Clouds.
  2. The communication to the Cloud-based application could use native APIs instead of adapters.