Architecting in the Cloud: Choosing the Right Technologies for your Solution
Architecting in the Cloud: Choosing the
Right Technologies for your Solution
Jeff Douglas - Appirio
Richard Cummings - IdeaArc
Safe Harbor Statement
“Safe harbor” statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain forward-
looking statements including but not limited to statements concerning the potential market for our existing service offerings
and future offerings. All of our forward looking statements involve risks, uncertainties and assumptions. If any such risks or
uncertainties materialize or if any of the assumptions proves incorrect, our results could differ materially from the results
expressed or implied by the forward-looking statements we make.
The risks and uncertainties referred to above include - but are not limited to - risks associated with possible fluctuations in
our operating results and cash flows, rate of growth and anticipated revenue run rate, errors, interruptions or delays in our
service or our Web hosting, our new business model, our history of operating losses, the possibility that we will not remain
profitable, breach of our security measures, the emerging market in which we operate, our relatively limited operating
history, our ability to hire, retain and motivate our employees and manage our growth, competition, our ability to continue to
release and gain customer acceptance of new and improved versions of our service, customer and partner acceptance of
the AppExchange, successful customer deployment and utilization of our services, unanticipated changes in our effective
tax rate, fluctuations in the number of shares outstanding, the price of such shares, foreign currency exchange rates and
interest rates.
Further information on these and other factors that could affect our financial results is included in the reports on Forms 10-
K, 10-Q and 8-K and in other filings we make with the Securities and Exchange Commission from time to time. These
documents are available on the SEC Filings section of the Investor Information section of our website at
www.salesforce.com/investor. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-
looking statements, except as required by law.
Appirio Cloud Solutions: Products & Services
for Acceleration of Cloud Adoption
2500+ Enterprises… …have turned to Appirio… ...to build solutions on
cloud platforms
• 150+ services customers • 300%+ revenue growth in past year • Strategic partner of salesforce.com
• 2500 product customers • Funded by Sequoia, GGV and Google
“The speed and agility has really helped us automate more and
processes within our enterprise”
- NavinGaneshan, Network Solutions
Informa plc Case Study
InformaOverview
Worked on this Project while an Informa Employee
Taylor & Francis Inspection Copy Application
Overview
Force.com Sites Pilot
Force.com Toolkit for Google App Engine Java
Thanks to our friends at Informa for letting us use this
case study
3
DeVry University Case Study
DeVry University Overview
Application Overview
– Orchestrate long-running transactions that initiate
and complete on the Force.com platform
– Pushing the Force.com platform to its limits
– Running into Governor issues
– Understand transactions and @future methods
Fire an event from outside of Salesforce (aka
“heartbeat”)
6
Apex Transactions
Transaction begins when Apex is invoked
Commits automatically when Apex code successfully
finishes running
– All state changes, including all subsequent triggers and all
declarative processing like validations, workflows, emails, are
in this transaction.
Long running Apex can result in HTTP 503 errors.
The empirical rule of thumb: Apex processes should
execute under 10 seconds.
7
Using Future Methods
Salesforce concept of a "micro-batch" job.
Have their own Governor limits associated with callouts.
When any @future transaction fails, only resort is to save data.
Since @future cannot fire trigger that starts @future, Apex code
must stop before current transaction commits.
Recursive @future method calls
8