150 likes | 232 Views
Explore integration needs, REST vs SOAP, request and reply, fire and forget, batch data sync, remote call-in, UI data updates, security considerations, patterns selection, system ecosystems, business processes, record synchronization, SOAP details, REST features, problem statements and solutions for seamless Salesforce integration.
E N D
Agenda – Integration Design Patterns • Integration Needs • REST Vs SOAP • Request and Reply • Fire and Forget • Batch Data Synchronization • Remote Call-In • UI Data update based on Data Changes • Security Considerations • Pattern Selection Guide
Integration Needs • Multiple Systems in the Organization eco system • Business process distributed across applications. • State of relevant Records to be tracked across systems and keep them in Sync.
SOAP • Simple Object Access Protocol, XML Data over http • Contract Based(WSDL), describes methods and data types • Most Programming languages natively support • Supports Secure data transfer via SSL/TLS • Encryption of portion of message using WS Security(though Salesforce doesn’t support).
REST • Representational State Transfer • REST exposes resources(entities/Objects) as URIs and uses HTTP Verbs to define CRUD operations on these resources • Requires no Pre-defined contract • Response in XML or JSON • Lightweight simple integration • Best for bulk data operations • OAuth for authorization
Request and Reply • Problem Statement: Initiate a process in Remote system on occurrence of an event in Salesforce, receive the response and use the response data for updates in Salesforce. • Considerations: • Does the Remote system require Salesforce to wait for a response before continuing processing? • If the Call to remote system is Synchronous, does the response need to be processed by salesforce as part of same transaction as the initial Call? • Size of the message? • Is the event based on User Interface or DML based • Solutions: • Custom VF page or button click that initiates APEX SOAP callout in synchronous manner • Custom VF page or button click that initiates APEX HTTP callout in synchronous manner
Fire and Forget • Problem Statement: Initiate a process in Remote system on occurrence of an event in Salesforce without waiting for a response from the remote system. • Considerations: • Does the call to Remote system require Salesforce to wait for a response before continuing processing? • If the Call to remote system is Synchronous, does the response need to be processed by salesforce as part of same transaction as the initial Call? • Size of the message? • Is the event based on User Interface or DML based • Is guaranteed message delivery a requirement? • Is the remote system able to participate in a contract first integration • Solutions: • Workflow driven outbound messaging • Outbound messaging and callbacks • Custom VF page that initiates and Apex SOAP or Http asynchronous callout
Batch Data Synchronization • Problem Statement: Import or Export large volume of data from Salesforce. • Considerations: • Should the data be stored in Salesforce? • If the Data be stored in Salesforce, should the data be refreshed in response to an event in remote system • Should data be refreshed on a scheduled basis? • Does the data support primary business processes? • Are there analytics requirements on this data? • Solutions: • Middleware ETL tools, using Change Data set
Remote Call-In • Problem Statement: Need Remote system to connect and Update records in Salesforce • Considerations: • Format of the Message(SOAP/REST) • Size of the message • Is Transaction processing required? • Tolerance of Customization in Salesforce • Solutions: • SOAP API • REST API • APEX Web Services • APEX Rest Service • Bulk API
UI Data update based on Data change • Problem Statement: When an Event occurs in Salesforce, how can the user be notified in the Salesforce User Interface without having to refresh their screen? • Considerations: • Does the Data being acted on need to be stored in Salesforce? • Can a custom user interface layer be built for viewing this data? • Will the user have access for invoking the custom user interface? • Solutions: • Salesforce streaming API
Security Considerations • Cloud to Cloud or On-Premise to Cloud • Reverse Proxy Server • Encryption • Two way SSL needs • Whitelisting Salesforce IP Addresses
Thank you ! Questions?