Social Enterprise Java Apps on Heroku Webinar
Upcoming SlideShare
Loading in...5

Social Enterprise Java Apps on Heroku Webinar



In this webinar you will learn how to build Social Enterprise applications using, Heroku, and Java. Through live coding and demonstrations you will learn how to instantly deploy and ...

In this webinar you will learn how to build Social Enterprise applications using, Heroku, and Java. Through live coding and demonstrations you will learn how to instantly deploy and scale Java apps on the cloud with Heroku. You will also learn how to integrate those applications with and through REST.

The webinar will cover:
:: An overview of Heroku
:: Best practices for integrating with and apps via REST
:: How to build and deploy your Social Enterprise apps using Java on Heroku
:: Your questions about Heroku

More details:



Total Views
Views on SlideShare
Embed Views



4 Embeds 13

http://localhost 6 3 2 2



Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

    Social Enterprise Java Apps on Heroku Webinar Social Enterprise Java Apps on Heroku Webinar Presentation Transcript

    • Social Enterprise JavaApps
    • Safe Harbor StatementSafe 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 suchuncertainties materialize or if any of the assumptions proves incorrect, the results of, inc. could differ materiallyfrom the results expressed or implied by the forward looking-statements we make. All statements other than statements ofhistorical 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 futureoperations, statements of belief, any statements concerning new, planned, or upgraded services or technology developmentsand 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 newfunctionality for our service, new products and services, our new business model, our past operating losses, possible fluctuationsin our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, theoutcome of intellectual property and other litigation, risks associated with possible mergers and acquisitions, the immaturemarket in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employeesand manage our growth, new releases of our service and successful customer deployment, our limited history reselling products, and utilization and selling to larger enterprise customers. Further information on potential factors thatcould affect the financial results of, inc. is included in our annual report on Form 10-Q for the most recent fiscalquarter ended. This documents and others containing important disclosures are available on the SEC Filings section of theInvestor Information section of our Web site.Any unreleased services or features referenced in this or other presentations, press releases or public statements are notcurrently available and may not be delivered on time or at all. Customers who purchase our services should make the purchasedecisions based upon features that are currently available., inc. assumes no obligation and does not intend toupdate these forward-looking statements.
    • @forcedotcom , #forcewebinar, @Heroku,@anand_bn, @_JamesWardDeveloper Force Force – Community
    • Anand B NarasimhanSenior Product Manager, L WardPrincipal Developer Evangelist,
    • - Paul CheesbroughCIO, News International
    • 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
    • The Social Enterprise Customer Social Network Social Profile Collaborate MarketWork Service Extend Sell
    • Market = Engage = Heroku 5 Years Ago Today Static, Passive Marketing Relevant, Active Marketing
    • What are the building blocks of aSocial Enterprise App ?
    • Enterprise Apps Failover, App Server Clustering, 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 serverProduction support Admins, DBAs DR,Rollback, Replication Redundancy DBAs, Admins System
    • Forget Run See Trust & Servers Anything Everything Manage$ heroku create worker: java –jar .. $heroku logs --tail $heroku ps
    • Heroku User • Web browser Acces Architecture • API access http(s) Elastic Load BalancingDeveloper Control Surface APIsCode•Java•…Deploy REST•GITManage•Heroku CLI•Scaling•Monitoring
    • 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
    • Getting started with Spring MVC app on Heroku( )
    • Building a Social Enterprise App WithHeroku and
    • Integrating with Salesforce.com1.Setup OAuth2.Update dependencies3.Switch Entity to JSON4.Switch DAO to Force REST API5.Switch Spring Config to Force REST + OAuth6.Add Servlet Filter for Oauth7.Add Oauth Keys to the environment
    • Dyno 1. Build 2. Slug Compile 3. Deploy to Dyno Embedded Container WAR $ git push herokuDependencies pom.xml $ mvn install Your code Under the
    • Spring MVC app With Heroku & And Chatter APIs
    • What’s possible… Social Feeds, Real time/ PushRecommendations Notifications Social Enterpris e App Streaming Analytics Data
    • is GAJava
    • Heroku Labs• WAR deployment ( )• Jenkins plugin for Heroku( )• Heroku.jar- Java Wrapper ( jar )• Atlassian Bamboo plugin for Heroku (Email for more details) you can try these out now. We would love your feedback
    • Coming Soon+ = like
    • Coming Soon All dayHEROKU ENTERPRISE DEVELOPER WORKSHOP Email if you are interested
    • Resources Getting Started -   Toolbelt ( ) Heroku Dev Center : Heroku Add-ons: Git: Webinar Source code:  Spring MVC - :  Chatter -  Pusher integration -
    • Upcoming Events• June 12 – Visualforce CodeTalk • June 13 – How Uses Hadoop Webinar • June 26 – Mobile CodeTalk 
    • Survey: Heroku Devcenter: James Ward @_JamesWard Anand Narasimhan @anand_bnDeveloper Evangelist at Heroku Sr. Product Manager at Heroku
    • SFDC Integration StepsAPPENDIX
    • 1. Setup OAuthi. > Setup > Develop > Remote Accessii. Add Remote Access for Dev & Prod • Dev Callback URL: http://localhost:8080/_auth • Prod Callback URL:
    • 2. Update dependencies<repositories> <repository> <id>force-rest-api</id> <name>force-rest-api repository on GitHub</name> <url> </url> </repository></repositories>
    • 2. Update dependencies<dependency> <groupId>com.force.api</groupId> <artifactId>force-rest-api</artifactId> <version>0.0.15</version></dependency><dependency> <groupId>com.force.sdk</groupId> <artifactId>force-oauth</artifactId> <version>22.0.8-BETA</version></dependency><dependency> <groupId>com.force.sdk</groupId> <artifactId>force-springsecurity</artifactId> <version>22.0.8-BETA</version></dependency>
    • 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;
    • 4. Switch DAO to Force RESTAPIprivate ForceApi getForceApi() { SecurityContext sc = ForceSecurityContextHolder.get(); ApiSession s = new ApiSession(); s.setAccessToken(sc.getSessionId()); s.setApiEndpoint(sc.getEndPointHost()); return new ForceApi(s);}// Add ContactgetForceApi().createSObject("contact", person);// Query ContactsgetForceApi().query("SELECT Id FROM contact", Person.class);// Delete ContactgetForceApi().deleteSObject("contact", id);
    • 5. Spring Config + OAuth<fss:oauth> <fss:oauthInfo endpoint="" oauth-key="#{systemEnvironment[OAUTH_CLIENT_KEY]}" oauth-secret="#{systemEnvironment[OAUTH_CLIENT_SECRET]}"/></fss:oauth><security:http use-expressions="true"> <security:intercept-url pattern="/people/*" access="isAuthenticated()" /></security:http><!-- https redirect support --><property name="redirectHttp10Compatible" value="false" />
    • 6. Add Servlet Filter for Oauth<filter> <filter-name>springSecurityFilterChain</filter-name> <filter-class> org.springframework.web.filter.DelegatingFilterProxy </filter-class> <init-param> <param-name>contextAttribute</param-name> <param-value> org.springframework.web.servlet.FrameworkServlet.CONTEXT.spring </param-value> </init-param></filter><filter-mapping> <filter-name>springSecurityFilterChain</filter-name> <url-pattern>/*</url-pattern></filter-mapping>
    • 7. Add Oauth Keysexport OAUTH_CLIENT_KEY=CQ3gmEE53MVG99OxTyEMal8ytj1E3NF7...export OAUTH_CLIENT_SECRET=0905539091246761180heroku config:add OAUTH_CLIENT_KEY=CQ3gmEE53MVG99OxTyEMal8yt...heroku config:add OAUTH_CLIENT_SECRET=0905539091246761180