Federated Application Integration

Integrate a Cloud-based Application to another Cloud-based or on-premises application.

Pattern Definition

ProblemHow do I integrate a Cloud-based application with another Cloud-based or on-premises application which makes use of an Application Integration Platform in two Clouds?
ContextThis pattern is applicable when there is a desire to integrate a Cloud-based application with another Cloud-based application hosted in another Cloud or with an on-premises application. The Cloud-based application may be SaaS or hosted on PaaS or on IaaS. The integration may include multiple applications, and the applications may be deployed to multiple clouds. There is an Application Integration Platform in each Cloud.
Forces
  • Most integrations are between Cloud-based applications.
  • Little need for integration to on-premises applications.
  • Applications may be SaaS or can be applications hosted on PaaS or IaaS.
  • Nexus of integrations is intra-Cloud but integrations between Clouds are also required.
  • Other Cloud Application Integration Platform may provide access to the other SaaS or Cloud-based application that is not available otherwise.
SolutionThe pattern employs one Application Integration Platform in each Cloud that has applications that need to be integrated.
ConsequencesPros:
  • Provides the greatest flexibility for connecting to applications.
  • Encapsulates intra-Cloud integrations reducing Cloud-to-Cloud network traffic
Cons:
  • Increased complexity compared to having only one Application Integration Platform
  • Multiple Application Integration Platforms to manage.
  • Different skill sets for different Appliaction Integration Platforms are required
  • Potential performance impact due to integration going through two Application Integration Platforms.

Interaction Views


Synchronous Communication

A Cloud-based application requires integration to another Cloud-based application in another Cloud. 

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  application integration platform in another Cloud.
  3. The application integration platform communicates with the Cloud-based application. 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. The integration could also be initiated by the other Cloud-based application.
  2. The 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. This interaction shows only two Cloud-based applications, but it could be any number of applications being integrated
  2. The application integration platform tend to support:
    • REST with HTTP Basic or OAuth security, or
    • SOAP with WS Security using username and timestamp.

Asynchronous Communication

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

Notes

  1. The Cloud-based applications could be in one Cloud or in multiple Clouds.
  2. One-way asynchronous communication follows this same interaction but uses only interactions 1 through 4.

Long Running Orchestration

A Cloud-based application requires integration to another Cloud-based application in another Cloud. 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 communicates with application integration platform in another Cloud.
  3. The orchestration engine stores the long running orchestration in the Dehydration Store.
  4. The application integration platform communicates with the Cloud-based application. The Cloud-based application could be SaaS or an application running on PaaS or IaaS.
  5. The application integration platform in the other Cloud 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. Some application integration platforms can also use BPEL to provide long running orchestrations for integrations originating with the Cloud-based application running in another Cloud.

Synchronous Communication for On-Premise

A Cloud-based application requires integration to an on-premises 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  application integration platform in another Cloud.
  3. The application integration platform communicates with the on-premises application.

Interaction initiated by the right side Cloud-based application:

  1. The Cloud-based application initiates the integration with the other application integration platform.
  2. The application integration platform calls the other application integration platform.
  3. The application integration platform uses an adapter to connect to the on-premises application.

Notes

  1. This interaction shows only two Cloud-based/on-premises applications, but it could be any number of applications being integrated.
  2. 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 application.
  3. The integration could also be initiated by an on-premises application.

Synchronous Communication for On-Premise with Agent

A Cloud-based application requires integration to an on-premises 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 application integration platform in another Cloud.
  3. The application integration platform communicates with the on-premises application.

Interaction initiated by the right side Cloud-based application:

  1. The Cloud-based application initiates the integration with the application integration platform.
  2. The application integration platform calls the other
    application integration platform.
  3. The application integration platform communicates with the integration agent on premises.
  4. The integration agent uses an adapter to connect to the on-premises application.

Notes

  1. This interaction shows only two Cloud-based/on-premises applications, but it could be any number of applications being integrated.
  2. The integration could also be initiated by an on-premises application.
  3. The application integration platform tend to support:
    • REST with HTTP Basic or OAuth security, or
    • SOAP with WS Security using username and timestamp