enterprise integration combining the salesforce platform with your architecture
DESCRIPTION
Enterprise Integration Combining the Salesforce Platform with Your Architecture. Markus Spohn Director Product Management, Integration & Desktop Clients. Agenda. Your Architecture Salesforce.com Integration Capabilities Force.com API S-Controls / Mashups Outbound Messaging - PowerPoint PPT PresentationTRANSCRIPT
Enterprise IntegrationCombining the Salesforce Platform with Your Architecture
Markus SpohnDirector Product Management, Integration & Desktop Clients
Your Architecture
Salesforce.com Integration Capabilities
– Force.com API
– S-Controls / Mashups
– Outbound Messaging
Next Generation Integration Services
– Apex Web Services
– Force.com SOA Callouts
Additional Resources
Q&A
Agenda
Manufacturing HR
Data EnrichmentSFA Service & Support ChannelManagement
Middleware/Enterprise
Service Bus
Financials
Internet
Data Warehouse
Your Architecture
Manufacturing HR
SFA Service & Support ChannelManagement
Middleware/Enterprise
Service Bus
? ? ?
InternetInternet Internet
Financials
Data Enrichment
Internet
Data Warehouse
Your ArchitectureIntegration to Salesforce.com?
Salesforce provides
programmatic access to
your organization’s
information using a
simple, powerful, and
secure application
programming interface,
the Force.com Web
Services API. Force.com API
Force.com DB
Force.com OS
Force.com Builder
Force.com Mobile
Force.com Connect Apex Code
The Force.com APIOverview
1. Login call
– Log in to the login server
and receive authentication
information to be used for
subsequent calls
1
Username/PasswordUsername/Password
URL/Session ID TokenURL/Session ID Token
Internethttp/s
The Force.com APIHow does it work?
Force.com API
Force.com DB
Force.com OS
Force.com Builder
Force.com Mobile
Force.com Connect Apex Code
1. Salesforce Objects (sObjects)
– are representations of your
organization’s Salesforce data
– e.g. accounts are represented
by an Account object
– The Account object has fields
that represent the account
name, phone number, shipping
address, and so on
2
The Force.com APIHow does it work?
Force.com API
Force.com DB
Force.com OS
Force.com Builder
Force.com Mobile
Force.com Connect Apex Code
1. Operations
– Create, update, and delete data
(create, merge, update, upsert,
delete calls)
– Replicate data locally (getDeleted and
getUpdated calls)
– Perform administrative tasks (e.g.
getUserInfo , setPassword calls)
– Obtain and navigate metadata (e.g.
describeSObject call)
– Work with workflow and approvals
(process call)
3
The Force.com APIHow does it work?
Force.com API
Force.com DB
Force.com OS
Force.com Builder
Force.com Mobile
Force.com Connect Apex Code
1. Operations
– Query your organization’s
information (query, queryAll,
queryMore, and retrieve
calls)
– Use the Salesforce Object
Query Language (SOQL) to
construct simple powerful
query strings
3
The Force.com APIHow does it work?
Force.com API
Force.com DB
Force.com OS
Force.com Builder
Force.com Mobile
Force.com Connect Apex Code
Similar to SQL syntax
Allows you to specify – Source object (such as
Account),
– A list of fields to retrieve
– Conditions for selecting rows in the source object.
Sample SOQL statement:
SELECT Name FROM Account WHERE Name like 'A%'
Supports Relationships
The Force.com APISalesforce Object Query Language (SOQL)
Force.com API
Force.com DB
Force.com OS
Force.com Builder
Force.com Mobile
Force.com Connect Apex Code
1. API call– After logging in, defining and
populating the sObject and
choosing the operation
4
InternetURL (http/s)
Request Message
Session Header
Message Body
sObject
Session ID Token
Operation = Create
Account
Response Message
Response
ReturnData
Fault
The Force.com APIHow does it work?
Force.com API
Force.com DB
Force.com OS
Force.com Builder
Force.com Mobile
Force.com Connect Apex Code
The Force.com API exposes
– all standard Salesforce Objects.
– all custom Salesforce Objects and
custom fields on standard
Salesforce objects
The Force.com API is secure
– Supports Secure Sockets Layer
(SSL) protocol SSLv3
– Username/Password Credential
Authentication
– Optional Support for SAML and
other token mechanisms
The Force.com APIFacts
Force.com API
Force.com DB
Force.com OS
Force.com Builder
Force.com Mobile
Force.com Connect Apex Code
The Force.com API is fast and reliable– 4.3 Billion Transactions in
Q4FY07
– > 55% Web Services API
transactions
0
500,000,000
1,000,000,000
1,500,000,000
2,000,000,000
2,500,000,000
3,000,000,000
3,500,000,000
4,000,000,000
4,500,000,000
FY05Q1
FY05Q2
FY05Q3
FY05Q4
FY06Q1
FY06Q2
FY06Q3
FY06Q4
FY07Q1
FY07Q2
FY07Q3
FY07Q4
0
200
400
600
800
1,000
1,200
1,400
Total TransactionsPer Quarter
Average PageResponse
The Force.com APIFacts
Force.com API
Force.com DB
Force.com OS
Force.com Builder
Force.com Mobile
Force.com Connect Apex Code
The Force.com API is standards-
based
– Simple Object Access Protocol
(SOAP) 1.1 compliant
– Web Service Description
Language (WSDL) 1.1 compliant
– WS-I Basic Profile 1.1 compliant
The Force.com APIFacts
Force.com API
Force.com DB
Force.com OS
Force.com Builder
Force.com Mobile
Force.com Connect Apex Code
S-Controls let you build and
host your own custom web
pages inside Salesforce.com
S-Controls enable you to
build Mash-ups*
Mash-up (web application hybrid),
a website or web application that
combines content from more than
one source (Source: Wikipedia.com)
/ Mash-up
*
S-Controls/Mash-upsOverview
S-Controls enable you to
build Business Mash-ups,
e.g. exposing back office data
like
– Order History
– Pending Invoices
– Payment History
– Credit Limit/Exposure
– etc.
along with Account Data in
Salesforce.com
/ Account/Open Orders Mash-up
Account,Opportunity data
Order Management data
S-Controls/Mash-upsOverview
Create a new S-Control
– HTML
– URL
– Snipped
Embed the S-Control in
Salesforce.com as a
– Custom Web Tab
– Custom Button or Link
– Detail Page
– Dashboard Component
– Standard Button Override
1
2
1
2
S-Controls/Mash-upsHow does it work?
S-Control are executed locally in your
browser, not on the Salesforce.com
server
S-Control can display data in the
Salesforce.com user Interface that is
not physically stored in Salesforce
– Please note that you can not report on
data that is not stored in
Salesforce.com
S-Controls/Mash-upsFacts
Outbound Messaging
enables real-time
integration by sending
Outbound Messages from
Salesforce.com to any
Web Service endpoint
exposed on the Internet
based on triggered
Workflow Rules.
Internet
Outbound Messaging
Account
Contact
Opportunity
NativeSalesforce Object
Web Service
Endpoint
SOAP
Outbound MessagingOverview
Outbound Messaging
– is asynchronous
– but allows easy callbacks
into Salesforce.com using
the Force.com API
(all Outbound Messages
contain Enterprise/Partner
URL and a Session ID
Token for easy backs)
Internet
Outbound Messaging
Account
Contact
Opportunity
NativeSalesforce Object
Web Service
Endpoint
SOAP
api
Call back using Partner/Enterprise URL,
Session ID Token contained in the original Outbound
Message
Outbound MessagingOverview
Create a Workflow Rule / Approval Process
– Define Workflow Rules / Approval Processes that trigger Outbound Messages
Create an Outbound Message Workflow Action
– Manage Outbound Message content and Endpoint URL
– Download Outbound Message WSDL file
1
2
Outbound MessagingHow does it work?
1
2
Implement a Web Service Listener that consumes the Outbound Message– Find .NET and Java
examples on the Apex Developer Network (ADN) at:
3
Internet
Outbound Messaging
Account
Contact
Opportunity
NativeSalesforce Object
Web Service
Endpoint
SOAP
www.salesforce.com/developer
Outbound MessagingHow does it work?
api
Outbound Messaging is
– Reliable• 24 hours retry for failed
Outbound Messages
– Secure• Supports HTTP/S
• Supports X.509 Client
Certificates
• Outbound Messages sent
from salesforce.com IP
Addresses
• Outbound Messages contain
Salesforce.com
OrganizationId
Internet
Outbound Messaging
Account
Contact
Opportunity
NativeSalesforce Object
Web Service
Endpoint
SOAP
Outbound MessagingFacts
api
Next Generation Integration Services
Enterprise IntegrationCombining the Salesforce Platform with your Architecture
Apex Code is the new on demand, multi-tenant
programming language that extends the
capabilities of the Apex platform by introducing
the ability to write code that runs on
salesforce.com servers.
Apex Code can be organized in Classes
Apex CodeClass
Apex Web ServicesOverview
Force.com API
Force.com DB
Force.com OS
Force.com Builder
Force.com Mobile
Force.com Connect Apex Code
An Apex Code Class can be exposed as a Web
Service by declaring the Package as a
“webService”
The webService Apex Code Class becomes an
Apex Web Service that can be invoked by any
external or internal application
Apex Code Class
Apex Web ServicesOverview
Web
Ser
vice
Force.com API
Force.com DB
Force.com OS
Force.com Builder
Force.com Mobile
Force.com Connect Apex Code
Write your Apex Code Class
Use the webService annotation to expose a Method of the Class as Web Service
Download the WSDL file– Go to Setup | Build | Code
– Click the name of a package that contains webService methods
– Click Generate WSDL
1
2
3
class myPackage { webService Id makeContact(String lastName ,Account a) { Contact c = new Contact(lastName = 'Spohn', AccountId = a.Id); insert c; commit; return c.id; }}
Apex Web ServicesHow does it work?
Apex Code is
– Hosted
– Multi-Tenant aware
– Automatically upgradeable
– Easy to test
With Apex Code and Apex Web
Services you can build Custom Web
Services APIs
Apex Web ServicesFacts
Force.com API
Force.com DB
Force.com OS
Force.com Builder
Force.com Mobile
Force.com Connect Apex Code
SOA
Force.com SOA Callouts is a powerful new
capability of the Apex programming language.
With Force.com SOA Callouts, developers can
leverage Web services from anywhere, and
build them into their on-demand applications.
Apex Web Service
Client
Apex Web Service
Client
OracleWeb
Service
OracleWeb
Service
SAPWeb
Service
SAPWeb
Service
GoogleWeb
Service
GoogleWeb
Service
HooversWeb
Service
HooversWeb
Service
Force.com SOA CalloutsOverview
Force.com API
Force.com DB
Force.com OS
Force.com Builder
Force.com Mobile
Force.com Connect Apex Code
SOA
Force SOA Callouts
– allows synchronous callout to any Web
Service from within Apex Code
– creates Apex Code stubs based on your
Web Service’s WSDL file (think of it like
WSDL2Apex)
Apex Web Service
Client
Apex Web Service
Client
OracleWeb
Service
OracleWeb
Service
SAPWeb
Service
SAPWeb
Service
GoogleWeb
Service
GoogleWeb
Service
HooversWeb
Service
HooversWeb
Service
Force.com SOA CalloutsOverview
Force.com API
Force.com DB
Force.com OS
Force.com Builder
Force.com Mobile
Force.com Connect Apex Code
Choose any Web Service and upload your Web
Service’s WSDL file
Generate Apex Code stubs from uploaded
WSDL
1
2
Force.com SOA CalloutsHow does it work?
SOA
Call the Web Service
– Use the generated Apex Code stubs in
your Apex Code to call the Web Service,
e.g. Oracle Financials, SAP R/3, Hoovers
or Google
Apex Web Service
Client
Apex Web Service
Client
OracleWeb
Service
OracleWeb
Service
SAPWeb
Service
SAPWeb
Service
GoogleWeb
Service
GoogleWeb
Service
HooversWeb
Service
HooversWeb
Service
3
Force.com SOA CalloutsHow does it work?
Force.com API
Force.com DB
Force.com OS
Force.com Builder
Force.com Mobile
Force.com Connect Apex Code
Build and run your next generation Mash-up with absolutely
no software
4
Salesforce Objects
Billing History
Current Address
Latest Company News
Force.com SOA CalloutsHow does it work?
Additional Resources For Salesforce Integration… Apex Developer Network
Developer community
Discussion Boards
Blogs
Documentation/Downloads/FAQs
Code samples and more…
Get more info at www.salesforce.com/developer
Additional Resources For Salesforce Integration Success…Salesforce Professional Services
Integration Services That
Meet Your Needs– Integration Strategy
– Solution Design
– Design Review
– Complete Solution Delivery
Best in Class Partnerships
The Latest Technology Expertise
The Most Integration Experience
More info at salesforce.com/services-training/
AAQQ &&