2. Safe Harbor Statement
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 product or service availability, 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, new products and services, 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
outcome of intellectual property and other litigation, risks associated with possible mergers and acquisitions, 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 annual report on Form 10-Q for the most recent fiscal
quarter ended. This documents and others containing important disclosures 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 presentations, 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.
3. @forcedotcom , #forcewebinar, @Heroku,
@anand_bn, @_JamesWard
Developer Force Group
facebook.com/forcedotcom
facebook.com/heroku
Developer Force – Force.com Community
4. Anand B Narasimhan
Senior Product Manager, Heroku
anand@heroku.com
@anand_bn
James L Ward
Principal Developer Evangelist, Heroku
jw@heroku.com
@_JamesWard
6. In this webinar…
What is a “Social Enterprise App”
Heroku – a short intro
Hands on with Java on Heroku
Building a Social Enterprise Heroku app
Coming soon to an IDE near you
Q&A
7. The Social Enterprise
Customer
Social Network
Social
Profile
Collaborate Market
Work Service
Extend Sell
8. Market = Engage = Heroku
5 Years Ago Today
Static, Passive Marketing Relevant, Active Marketing
9. What are the
building blocks
of a
Social Enterprise App ?
10.
11. Enterprise Apps
Failover, Clusteri App Server
ng, Load Availability Admins, Network
Balancers, SSL Admins
Domains
YOUR APP
App crashes,
Alerts, Logs mining Servers: Web Servers, App
Servers, Database servers
Visibility etc
Infrastructure
Ops,
System Admins, App server
Production support
Admins, DBAs
DR,Rollback,
Replication
Redundancy DBAs, Admins
System
13. Heroku User
• Web browser Acces
Architecture • API access
http(s)
Elastic Load Balancing
Developer
Control Surface APIs
Code
•Java
•…
Deploy REST
•GIT
Manage
•Heroku CLI
•Scaling
•Monitoring
14. Social Enterprise App Architecture
Polyglot & Process Real time Addons
Open Model Visibiility
Social API Data API Metadata API
Access Management
Identity Profiles Permissions Record-Level Filtering
Data
Business Data Metadata Files
15. Getting started
with
Spring MVC app
on Heroku
( http://java.heroku.com )
18. Integrating with Salesforce.com
1.Setup OAuth
2.Update dependencies
3.Switch Entity to JSON
4.Switch DAO to Force REST API
5.Switch Spring Config to Force REST +
OAuth
6.Add Servlet Filter for Oauth
7.Add Oauth Keys to the environment
19. Dyno
1. Build
2. Slug Compile
3. Deploy to Dyno
Embedded Container
WAR
$ git push heroku
Dependencies
pom.xml
$ mvn install
Your code
Under the
20.
21. Spring MVC app
With Heroku &
Salesforce.com
And
Chatter APIs
22. What’s possible…
Social
Feeds, Recommendatio Real time/ Push
ns Notifications
Social
Enterpris
e App
Streaming Analytics
Data
24. Heroku Labs
• WAR deployment (http://bit.ly/war-deploy )
• Jenkins plugin for Heroku(http://bit.ly/heroku-ci
)
• Heroku.jar- Java Wrapper (http://bit.ly/heroku-
jar )
• Atlassian Bamboo plugin for Heroku (Email
anand@heroku.com for more details)
you can try these out now.
We would love your feedback
34. 3. Switch Entity to JSON
@JsonIgnoreProperties(ignoreUnknown=true)
public class Person {
@JsonProperty(value="Id")
private String id;
@JsonProperty(value="FirstName")
private String firstName;
@JsonProperty(value="LastName")
private String lastName;
35. 4. Switch DAO to Force REST
API
private ForceApi getForceApi() {
SecurityContext sc = ForceSecurityContextHolder.get();
ApiSession s = new ApiSession();
s.setAccessToken(sc.getSessionId());
s.setApiEndpoint(sc.getEndPointHost());
return new ForceApi(s);
}
// Add Contact
getForceApi().createSObject("contact", person);
// Query Contacts
getForceApi().query("SELECT Id FROM contact", Person.class);
// Delete Contact
getForceApi().deleteSObject("contact", id);
it is a little paradoxical, but there is more to the idea of a social app than just the overtly social stuffif you think about the canonical social apps in the consumer space, apps like Facebook, Twitter, 4Square, today’s hot darling Pinterest, and othersAnd you look across them to see what they have in common, you’ll see there is more going on than easily fits within the dictionary definition of “social”it’s broader than thatAnd when you think about social enterprise apps, you need to layer in the needs of business, and you need to think even a bit more broadlyI break it down into these six characteristicsCollaboration, mobility, social UX, Interoperability, Rea ltime, and AgilityIf you really want to build a great social enterprise app, you need to think about all of them, though they will not all apply equally to every appLet me talk a little bit about each
Heroku can complement your force.com/db.com apps to extend your cloud applicationsWhat are my use cases for Heroku and force.com/db.com?
This is how you’re the same Java application looks in Heroku. As you can see not much changes i.e. your application is very much portable to another environment if you choose to do so.