Cloud to Cloud Integration · report on Form 10-Q for the fiscal year ended October ... Your One...

30
Sandeep Bhanot Developer Evangelist @cloudysan Cloud to Cloud Integrations with Force.com

Transcript of Cloud to Cloud Integration · report on Form 10-Q for the fiscal year ended October ... Your One...

Page 1: Cloud to Cloud Integration · report on Form 10-Q for the fiscal year ended October ... Your One Stop Shop for Summer ‘11 Demos Webinar Replay ... Cloud-to-Cloud integrations are

Sandeep Bhanot Developer Evangelist @cloudysan

Cloud to Cloud Integrations with Force.com

Page 2: Cloud to Cloud Integration · report on Form 10-Q for the fiscal year ended October ... Your One Stop Shop for Summer ‘11 Demos Webinar Replay ... Cloud-to-Cloud integrations are

Follow us: @forcedotcom #forcedotcom

Safe Harbor – Salesforce.com

Safe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services.

The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our quarterly report on Form 10-Q for the fiscal year ended October 31, 2009 and our other filings. These documents are available on the SEC Filings section of the Investor Information section of our Web site.

Any unreleased services or features referenced in this or other press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.

Page 3: Cloud to Cloud Integration · report on Form 10-Q for the fiscal year ended October ... Your One Stop Shop for Summer ‘11 Demos Webinar Replay ... Cloud-to-Cloud integrations are

Follow us: @forcedotcom #forcedotcom

Your One Stop Shop for Summer ‘11

Demos

Webinar Replay

Release Notes

Documentation

Training

Highlights

Discussion

http://developer.force.com/releases

Join the conversation using #summer11 http://boards.developerforce.com/sforce/

Got Twitter? @forcedotcom / #forcewebinar

LinkedIn? Developer Force Group

Facebook? facebook.com/forcedotcom

Page 4: Cloud to Cloud Integration · report on Form 10-Q for the fiscal year ended October ... Your One Stop Shop for Summer ‘11 Demos Webinar Replay ... Cloud-to-Cloud integrations are

Follow us: @forcedotcom #forcedotcom

Today’s Agenda

  Cloud to Cloud integration with Force.com

  Cloud to Cloud Integration patterns –  Outbound

•  Demo - Integrating with LinkedIn

–  Inbound

–  Hybrid •  Demo - Integrating with Google App Engine

–  UI Integration

  Q & A

Page 5: Cloud to Cloud Integration · report on Form 10-Q for the fiscal year ended October ... Your One Stop Shop for Summer ‘11 Demos Webinar Replay ... Cloud-to-Cloud integrations are

Follow us: @forcedotcom #forcedotcom

Today’s Agenda

  Cloud to Cloud integration with Force.com

  Cloud to Cloud Integration patterns –  Outbound

•  Demo - Integrating with LinkedIn

–  Inbound

–  Hybrid •  Demo - Integrating with Google App Engine

–  UI Integration

  Q & A

Page 6: Cloud to Cloud Integration · report on Form 10-Q for the fiscal year ended October ... Your One Stop Shop for Summer ‘11 Demos Webinar Replay ... Cloud-to-Cloud integrations are

Follow us: @forcedotcom #forcedotcom

Force.com - common integration scenarios

Page 7: Cloud to Cloud Integration · report on Form 10-Q for the fiscal year ended October ... Your One Stop Shop for Summer ‘11 Demos Webinar Replay ... Cloud-to-Cloud integrations are

Follow us: @forcedotcom #forcedotcom

Force.com integration options

Force.com Platform

Mobile External Apps

Apex Data Loader

Data ETL Callouts

•  REST API •  Chatter REST API (Pilot) •  Toolkits

•  SOAP API •  Bulk API •  Apex Email Svcs (Inbound) •  Apex Web Svcs •  Toolkits

•  Apex Callouts •  Outbound Msgs •  Apex Email (Outbound) •  Sites RSS Feeds

•  SOAP & Bulk API

Page 8: Cloud to Cloud Integration · report on Form 10-Q for the fiscal year ended October ... Your One Stop Shop for Summer ‘11 Demos Webinar Replay ... Cloud-to-Cloud integrations are

Follow us: @forcedotcom #forcedotcom

Cloud to Cloud integrations

In many ways, Cloud-to-Cloud integrations are no different than other integrations.

But, they have some unique characteristics.

Cloud-to-Cloud Other SOAP/WSDL

Username/pwd

XML

Network/Infrastructure reqs

RESTful

OAuth authentication

JSON

No network/infrastructure reqs

No Middleware

Social data

Middleware (often)

Business /transactional data

Page 9: Cloud to Cloud Integration · report on Form 10-Q for the fiscal year ended October ... Your One Stop Shop for Summer ‘11 Demos Webinar Replay ... Cloud-to-Cloud integrations are

Follow us: @forcedotcom #forcedotcom

Today’s Agenda

  Cloud to Cloud integration with Force.com

  Cloud to Cloud Integration patterns –  Outbound

•  Demo - Integrating with LinkedIn

–  Inbound

–  Hybrid •  Demo - Integrating with Google App Engine

–  UI Integration

  Q & A

Page 10: Cloud to Cloud Integration · report on Form 10-Q for the fiscal year ended October ... Your One Stop Shop for Summer ‘11 Demos Webinar Replay ... Cloud-to-Cloud integrations are

Follow us: @forcedotcom #forcedotcom

Outbound integrations

•  Apex Callouts

•  Force.com toolkits

•  Outbound Messaging

•  Apex Email (Outbound)

Page 11: Cloud to Cloud Integration · report on Form 10-Q for the fiscal year ended October ... Your One Stop Shop for Summer ‘11 Demos Webinar Replay ... Cloud-to-Cloud integrations are

Follow us: @forcedotcom #forcedotcom

Apex Client

Oracle Web Service

Legacy Web Service

Provider REST API

Google Web Service

Apex Callouts

Apex class or trigger initiates the callout

Legacy Systems

Use Apex to invoke a WSDL/SOAP or REST service

Page 12: Cloud to Cloud Integration · report on Form 10-Q for the fiscal year ended October ... Your One Stop Shop for Summer ‘11 Demos Webinar Replay ... Cloud-to-Cloud integrations are

Follow us: @forcedotcom #forcedotcom

1. Use OAuth Apex client to authenticate with LinkedIn

2. Store OAuth token in Salesforce

3. User updates their Chatter status with ‘#linkedin’ hashtag

4. Invoke LinkedIn REST API to update User’s LinkedIn Status

Demo – Apex callout to LinkedIn

Apex HTTP callout

Page 13: Cloud to Cloud Integration · report on Form 10-Q for the fiscal year ended October ... Your One Stop Shop for Summer ‘11 Demos Webinar Replay ... Cloud-to-Cloud integrations are

Follow us: @forcedotcom #forcedotcom

Apex Callouts – Important Considerations

•  Apex can invoke a WSDL/SOAP or REST service

•  Remember Governor Limits •  Payload size limit – 3MB

•  # of Callouts in a transaction – 10

•  Maximum timeout for all callouts – 120 sec

•  Callouts from Triggers have to be made asynchronously (using @future)

•  Any DML operations have to be performed after the callout •  Writing test classes for external callouts requires special considerations

•  Use JSON Code Share project to parse JSON data •  Native JSON support in Apex actively being worked on (Safe Harbor applies)

•  Remember to add service URL to ‘Remote Site Settings’

Page 14: Cloud to Cloud Integration · report on Form 10-Q for the fiscal year ended October ... Your One Stop Shop for Summer ‘11 Demos Webinar Replay ... Cloud-to-Cloud integrations are

Follow us: @forcedotcom #forcedotcom

Apex Callouts and security

•  Apex Callouts supports two-way SSL (aka client side certificates)

•  Can also set custom HTTP security headers

•  Use the OAuth Playground Code Share project for client side OAuth 1.0a

Page 15: Cloud to Cloud Integration · report on Form 10-Q for the fiscal year ended October ... Your One Stop Shop for Summer ‘11 Demos Webinar Replay ... Cloud-to-Cloud integrations are

Follow us: @forcedotcom #forcedotcom

Toolkits for Outbound Integrations

  Google Data APIs

  Amazon Web Services

  Facebook (Beta)

  Twitter

Native Force.com (Apex/Visualforce) wrappers for…

And…. Salesforce for Twitter and Facebook (and other AppExchange packages)

Page 16: Cloud to Cloud Integration · report on Form 10-Q for the fiscal year ended October ... Your One Stop Shop for Summer ‘11 Demos Webinar Replay ... Cloud-to-Cloud integrations are

Follow us: @forcedotcom #forcedotcom

Today’s Agenda

  Cloud to Cloud integration with Force.com

  Cloud to Cloud Integration patterns –  Outbound

•  Demo - Integrating with LinkedIn

–  Inbound

–  Hybrid •  Demo - Integrating with Google App Engine

–  UI Integration

  Q & A

Page 17: Cloud to Cloud Integration · report on Form 10-Q for the fiscal year ended October ... Your One Stop Shop for Summer ‘11 Demos Webinar Replay ... Cloud-to-Cloud integrations are

Follow us: @forcedotcom #forcedotcom

Inbound integrations

•  Force.com APIs •  SOAP, REST, Chatter REST (Pilot), Bulk

•  Apex Web Services •  SOAP, REST (Pilot)

•  Force.com toolkits

Page 18: Cloud to Cloud Integration · report on Form 10-Q for the fiscal year ended October ... Your One Stop Shop for Summer ‘11 Demos Webinar Replay ... Cloud-to-Cloud integrations are

Follow us: @forcedotcom #forcedotcom

There is an API for that…

Most commonly used for Cloud-2-

Cloud integrations

Scenario API •  Thousands to millions of records •  Synchronous processing required

SOAP API

•  REST/JSON preferred •  Lightweight client library preferred/required

REST API

•  Process Chatter data Chatter REST API (Pilot)

•  Hundreds of millions of records •  Async. processing ok

Bulk API

Page 19: Cloud to Cloud Integration · report on Form 10-Q for the fiscal year ended October ... Your One Stop Shop for Summer ‘11 Demos Webinar Replay ... Cloud-to-Cloud integrations are

Follow us: @forcedotcom #forcedotcom

Apex Web Services

•  Expose custom Apex logic as SOAP and/or RESTful (Pilot in Summer’ 11) services

•  Use Apex Web Services to implement custom business logic (e.g. transactions) or expose a customized service interface

Page 20: Cloud to Cloud Integration · report on Form 10-Q for the fiscal year ended October ... Your One Stop Shop for Summer ‘11 Demos Webinar Replay ... Cloud-to-Cloud integrations are

Follow us: @forcedotcom #forcedotcom

Toolkits for Inbound Integrations

  Ruby (Heroku)

  PHP (AWS, PHP Fog etc.)

  Windows Azure

  Google App Engine

Platform/Language native wrappers of the SOAP API for…

Page 21: Cloud to Cloud Integration · report on Form 10-Q for the fiscal year ended October ... Your One Stop Shop for Summer ‘11 Demos Webinar Replay ... Cloud-to-Cloud integrations are

Follow us: @forcedotcom #forcedotcom

Inbound Integration sample

Facebook PHP App querying

Jobs data from Force.com

Page 22: Cloud to Cloud Integration · report on Form 10-Q for the fiscal year ended October ... Your One Stop Shop for Summer ‘11 Demos Webinar Replay ... Cloud-to-Cloud integrations are

Follow us: @forcedotcom #forcedotcom

Today’s Agenda

  Cloud to Cloud integration with Force.com

  Cloud to Cloud Integration patterns –  Outbound

•  Demo - Integrating with LinkedIn

–  Inbound

–  Hybrid •  Demo - Integrating with Google App Engine

–  UI Integration

  Q & A

Page 23: Cloud to Cloud Integration · report on Form 10-Q for the fiscal year ended October ... Your One Stop Shop for Summer ‘11 Demos Webinar Replay ... Cloud-to-Cloud integrations are

Follow us: @forcedotcom #forcedotcom

Hybrid integrations

•  Integration typically initiated by an outbound call from Force.com

•  External cloud application then makes a callback to retrieve/update Force.com data

Page 24: Cloud to Cloud Integration · report on Form 10-Q for the fiscal year ended October ... Your One Stop Shop for Summer ‘11 Demos Webinar Replay ... Cloud-to-Cloud integrations are

Follow us: @forcedotcom #forcedotcom

1. Invoke GAE service with Record Ids to merge

2. Authenticate with Force.com using OAuth

4. Perform PDF Merge

5. Insert merged PDF as Attachment record

( Force.com REST API)

Demo – PDF merge in Google App Engine

3. Retrieve PDF Attachments (Force.com REST API)

Page 25: Cloud to Cloud Integration · report on Form 10-Q for the fiscal year ended October ... Your One Stop Shop for Summer ‘11 Demos Webinar Replay ... Cloud-to-Cloud integrations are

Follow us: @forcedotcom #forcedotcom

Today’s Agenda

  Cloud to Cloud integrations with Force.com

  Cloud to Cloud Integration patterns –  Outbound

•  Demo - Integrating with LinkedIn

–  Inbound

–  Hybrid •  Demo - Integrating with Google App Engine

–  UI Integration

  Q & A

Page 26: Cloud to Cloud Integration · report on Form 10-Q for the fiscal year ended October ... Your One Stop Shop for Summer ‘11 Demos Webinar Replay ... Cloud-to-Cloud integrations are

Follow us: @forcedotcom #forcedotcom

UI Integration

LinkedIn widget embedded in Visualforce.

A public Force.com Sites page shown in Facebook.

Page 27: Cloud to Cloud Integration · report on Form 10-Q for the fiscal year ended October ... Your One Stop Shop for Summer ‘11 Demos Webinar Replay ... Cloud-to-Cloud integrations are

Follow us: @forcedotcom #forcedotcom

Today’s Agenda

  Cloud to Cloud integration with Force.com

  Cloud to Cloud Integration patterns –  Outbound

•  Demo - Integrating with LinkedIn

–  Inbound

–  Hybrid •  Demo - Integrating with Google App Engine

–  UI Integration

  Q & A

Page 28: Cloud to Cloud Integration · report on Form 10-Q for the fiscal year ended October ... Your One Stop Shop for Summer ‘11 Demos Webinar Replay ... Cloud-to-Cloud integrations are

Follow us: @forcedotcom #forcedotcom

Upcoming webinar

Do not forget! Sign up for the live webinar for the Database.com Sneak

Preview

http://bit.ly/databasedotcom_webinar

Page 29: Cloud to Cloud Integration · report on Form 10-Q for the fiscal year ended October ... Your One Stop Shop for Summer ‘11 Demos Webinar Replay ... Cloud-to-Cloud integrations are

Follow us: @forcedotcom #forcedotcom

http://bit.ly/Cloud2CloudIntegrations10AM

Please Complete Survey

Page 30: Cloud to Cloud Integration · report on Form 10-Q for the fiscal year ended October ... Your One Stop Shop for Summer ‘11 Demos Webinar Replay ... Cloud-to-Cloud integrations are

Follow us: @forcedotcom #forcedotcom

  Integration resources: –  http://wiki.developerforce.com/index.php/Integration

  Integration Recipes –  http://developer.force.com/cookbook/category/integration/recent

  Force.com Toolkits: –  http://wiki.developerforce.com/index.php/Tools

  Force.com API documentation –  http://wiki.developerforce.com/index.php/Documentation#API

  Apex testing webinar recording (testing Apex callouts) –  http://wiki.developerforce.com/index.php/Webinar:_Apex_Code:_Testing_and_Code_Coverage

  JSON Code Share library –  http://developer.force.com/codeshare/projectpage?id=a0630000002ahp4AAA

  OAuth 1.0 Apex client Code Share library –  http://developer.force.com/codeshare/projectpage?id=a0630000008MQYMAA4

Additional Resources