As Cloud computing enjoys increased adoption, it is very common for companies to seek to connect their on-premise applications to Cloud-based systems. In this article, I will demonstrate the high-level architecture for implementing such an integration using MuleSoft Cloudhub. In this particular scenario, we are retrieving data from an internal application and synching to Salesforce.com (SFDC) after a specified interval.

The architecture is illustrated in the graphic below:

  1. Create an OData WCF Service to fetch data from the Internal System, e.g., a SQL Database.
  2. Security can be implemented on the OData Service, i.e., create a Secure Token Service (STS) to generate a security token. Use the token in the application integration and pass it to the OData service while fetching data. The OData service first checks the validity of the token from the STS before sending back a response.
  3. The Integration Layer, i.e., CloudHub uses the OData service to fetch a time-stamp for batches and data.
  4. The CloudHub application passes results/data to the External System, i.e., SFDC.
  5. The Integration Layer checks for a response from SFDC and writes errors back to SFDC in an error log object.
  6. The Retry process can be written for all errors recorded in the error log.
  7. The CloudHub application logs all processing details and generates any required Notifications.
  8. For unexpected application errors, the system will log and send details through a Notification.
MuleSoftCloudHub

Diagram depicting a simple way to integrate on-premise and Cloud applications using MuleSoft Cloudhub