Integration shouldn't be a one-way-only pattern for a SaaS solution. While most mature SaaS offerings provide a set of query services, it is less common to have robust options for retrieving on-premises data from within a cloud application. As it turns out, Salesforce.com provides multiple strategies for integrating with external applications.
First and foremost, Salesforce.com has a feature called Outbound Messaging. Using Outbound Messaging, we can specify what changes to a given entity should result in events being sent to an external URL. This feature is directly related to Salesforce.com workflows. Sending an outbound message is one possible action for a workflow. Outbound Messaging provides queuing and reliable delivery and runs as a background process. Calls to external services aren't asynchronous and require the recipient service to return a Boolean acknowledgement. Messages may be sent more than once, so our services should be...