SlideShare a Scribd company logo
1 of 17
Download to read offline
Building a Java Play! App on Heroku
using Database.com
The subtitle goes here
Cory McIlroy, Appirio, Community Architect
@coryio
Safe Harbor
 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 July 31, 2012. 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.
Appirio Helps Enterprises Power Their Business with
Public Cloud Solutions

                        Helping Enterprises Become:
                    Efficient      Effective     Agile
                            Social          Mobile



                      Technology-enabled professional services,
                          supported by 500 cloud experts and
                        a 50,000+ cloud developer community
                5 years, 300 enterprises, 1.5M users moved to the cloud
Agenda
   Introductions
   Describe the sample app
   Quick intro to Heroku and Play
   Walkthrough: Heroku/Play
   Walkthrough: Force.com
   Q&A break
   Scala in Play teaser
Introductions
   Who I am
     • Cory McIlroy (yes, like the golfer, but with a 'C')
     • Live in St. Louis, MO
     • Work at Appirio (Force.com, Heroku, CloudSpokes)
   Who You are
     • Java and/or Force.com developers?
     • Admins, Architects, Managers interested in the platform?
Consider this example....

Softball League Manager- an Existing Force.com Application.
    Comes with all the great things about force.com...
       • Security and Sharing
       • Reporting
                                                 Roster Management
       • Simple but powerful data management
       • Extensibility                           Stats Tracker



                                                 League Fees


                                                 League Rankings
Extending the App with Heroku

We want some new features...
    Public “Leaderboard”
      • High Volume, especially during playoff season
      • Need elastic platform, heavy caching
    Manager “Sub Finder" app
      • Fast filter tool
      • Mobile-friendly
      • Fetch contact info from force.com
How They Fit Together

Two touchpoints between the Heroku app and the force.com
REST API, slightly different flavors.
    Fetch Free-Agents List
      • Standard "query" REST call
      • "Index" into Redis for filtering
    Fetch Standings
      • custom apex REST Service
      • "pass through" JSON
Heroku at a Glance

A scalable polyglot platform in the cloud
    Scalable & Flexible
       • Datastore options, right tool for the job
       • Other Heroku addons
       • Polyglot support
    Better cost model for this application
       • Scale up/down seasonally
    Utilize our java expertise
Why the Play Framework?
                                                  Play 2.0 is a high-productivity Java and Scala web application
A web framework for the asynchronous age          framework that integrates the components and APIs you need for
                                                  modern web application development.
    Light, Fast, Scalable
                                                  Play is based on a lightweight, stateless, web-friendly architecture
    Easy to work with => Dev Productivity        and features predictable and minimal resource consumption
                                                  (CPU, memory, threads) for highly-scalable applications thanks
    Designed towards fully Async HTTP model      to its reactive model, based on Iteratee IO.
                                                             -- http://www.playframework.org/documentation/2.0.3/Home


    Type checking, even in routes & view templates
    Comprehensive, extensible build system
    Powerful, Scala-based templating engine
Leaderboard overview
Sub Finder overview
Heroku Code Walkthrough
   Directory Structure
   Routes File
   Build.scala (deps)
   OAuth helper
   Controller(s)
   Model/Managers
   Force.com REST helper (“Jesper”)
   demo: play compile / git push
Force.com Code Walkthrough
   REST service (composition)
   OAuth config
Resources
   https://github.com/mcilroyc/play20_force_league_manager
   https://github.com/jesperfj/force-rest-api
Building a Java Play! App on Heroku using Database.com
Building a Java Play! App on Heroku using Database.com

More Related Content

What's hot

Visbility at the Edge - Deep Insights from Your API
 Visbility at the Edge - Deep Insights from Your API Visbility at the Edge - Deep Insights from Your API
Visbility at the Edge - Deep Insights from Your APIApigee | Google Cloud
 
WSO2 & eBay Case Study
WSO2 & eBay Case StudyWSO2 & eBay Case Study
WSO2 & eBay Case StudyWSO2
 
Maintainable Sitecore Solutions
Maintainable Sitecore SolutionsMaintainable Sitecore Solutions
Maintainable Sitecore SolutionsThomas Eldblom
 
Rest api webinar(3)
Rest api webinar(3)Rest api webinar(3)
Rest api webinar(3)WSO2
 
Introduction to Salesforcedotcom
Introduction to SalesforcedotcomIntroduction to Salesforcedotcom
Introduction to SalesforcedotcomEdureka!
 
WSO2Con Asia 2014 - Reinventing Enterprise Integration for Connected Business
WSO2Con Asia 2014 - Reinventing Enterprise Integration for Connected BusinessWSO2Con Asia 2014 - Reinventing Enterprise Integration for Connected Business
WSO2Con Asia 2014 - Reinventing Enterprise Integration for Connected BusinessWSO2
 
Trendspot ANZ 2014 - Federated Experience Manager - Thomas Eldblom
Trendspot ANZ 2014 - Federated Experience Manager - Thomas EldblomTrendspot ANZ 2014 - Federated Experience Manager - Thomas Eldblom
Trendspot ANZ 2014 - Federated Experience Manager - Thomas EldblomThomas Eldblom
 
Blue mix overview
Blue mix overviewBlue mix overview
Blue mix overviewLeon Henry
 
Microservices on Anypoint Platform
Microservices on Anypoint PlatformMicroservices on Anypoint Platform
Microservices on Anypoint PlatformMuleSoft
 
What’s behind a high quality web API? Ensure your APIs are more than just a ...
What’s behind a high quality web API? Ensure your APIs are more than just a ...What’s behind a high quality web API? Ensure your APIs are more than just a ...
What’s behind a high quality web API? Ensure your APIs are more than just a ...Kim Clark
 
API, Integration, and SOA Convergence
API, Integration, and SOA ConvergenceAPI, Integration, and SOA Convergence
API, Integration, and SOA ConvergenceKasun Indrasiri
 
2014 q3-platform-update-v1.06.johnmathon
2014 q3-platform-update-v1.06.johnmathon2014 q3-platform-update-v1.06.johnmathon
2014 q3-platform-update-v1.06.johnmathonaaronwso2
 
Spoilt for Choice: How to Choose the Right Enterprise Service Bus (ESB)?
Spoilt for Choice: How to Choose the Right Enterprise Service Bus (ESB)?Spoilt for Choice: How to Choose the Right Enterprise Service Bus (ESB)?
Spoilt for Choice: How to Choose the Right Enterprise Service Bus (ESB)?Kai Wähner
 
Key challenges in flex based performance testing
Key challenges in flex based performance testingKey challenges in flex based performance testing
Key challenges in flex based performance testingPhanindra Kishore
 
Mulesoft Basics and Connector Details
Mulesoft Basics and Connector DetailsMulesoft Basics and Connector Details
Mulesoft Basics and Connector DetailsArun Yaligar
 
MuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureMuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureKim Clark
 
Exceptional Digital Experience (Gartner PCC 2014)
Exceptional Digital Experience (Gartner PCC 2014)Exceptional Digital Experience (Gartner PCC 2014)
Exceptional Digital Experience (Gartner PCC 2014)Edmund Johnson
 
Coders Jar Services Offerings
Coders Jar Services OfferingsCoders Jar Services Offerings
Coders Jar Services OfferingsKumar Raj
 

What's hot (20)

Visbility at the Edge - Deep Insights from Your API
 Visbility at the Edge - Deep Insights from Your API Visbility at the Edge - Deep Insights from Your API
Visbility at the Edge - Deep Insights from Your API
 
WSO2 & eBay Case Study
WSO2 & eBay Case StudyWSO2 & eBay Case Study
WSO2 & eBay Case Study
 
Maintainable Sitecore Solutions
Maintainable Sitecore SolutionsMaintainable Sitecore Solutions
Maintainable Sitecore Solutions
 
JavaOne 2015 Keynote Presentation
JavaOne 2015 Keynote PresentationJavaOne 2015 Keynote Presentation
JavaOne 2015 Keynote Presentation
 
Rest api webinar(3)
Rest api webinar(3)Rest api webinar(3)
Rest api webinar(3)
 
Introduction to Salesforcedotcom
Introduction to SalesforcedotcomIntroduction to Salesforcedotcom
Introduction to Salesforcedotcom
 
WSO2Con Asia 2014 - Reinventing Enterprise Integration for Connected Business
WSO2Con Asia 2014 - Reinventing Enterprise Integration for Connected BusinessWSO2Con Asia 2014 - Reinventing Enterprise Integration for Connected Business
WSO2Con Asia 2014 - Reinventing Enterprise Integration for Connected Business
 
Trendspot ANZ 2014 - Federated Experience Manager - Thomas Eldblom
Trendspot ANZ 2014 - Federated Experience Manager - Thomas EldblomTrendspot ANZ 2014 - Federated Experience Manager - Thomas Eldblom
Trendspot ANZ 2014 - Federated Experience Manager - Thomas Eldblom
 
Blue mix overview
Blue mix overviewBlue mix overview
Blue mix overview
 
Microservices on Anypoint Platform
Microservices on Anypoint PlatformMicroservices on Anypoint Platform
Microservices on Anypoint Platform
 
What’s behind a high quality web API? Ensure your APIs are more than just a ...
What’s behind a high quality web API? Ensure your APIs are more than just a ...What’s behind a high quality web API? Ensure your APIs are more than just a ...
What’s behind a high quality web API? Ensure your APIs are more than just a ...
 
API, Integration, and SOA Convergence
API, Integration, and SOA ConvergenceAPI, Integration, and SOA Convergence
API, Integration, and SOA Convergence
 
2014 q3-platform-update-v1.06.johnmathon
2014 q3-platform-update-v1.06.johnmathon2014 q3-platform-update-v1.06.johnmathon
2014 q3-platform-update-v1.06.johnmathon
 
Spoilt for Choice: How to Choose the Right Enterprise Service Bus (ESB)?
Spoilt for Choice: How to Choose the Right Enterprise Service Bus (ESB)?Spoilt for Choice: How to Choose the Right Enterprise Service Bus (ESB)?
Spoilt for Choice: How to Choose the Right Enterprise Service Bus (ESB)?
 
Key challenges in flex based performance testing
Key challenges in flex based performance testingKey challenges in flex based performance testing
Key challenges in flex based performance testing
 
Mulesoft Basics and Connector Details
Mulesoft Basics and Connector DetailsMulesoft Basics and Connector Details
Mulesoft Basics and Connector Details
 
MuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureMuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration Architecture
 
Exceptional Digital Experience (Gartner PCC 2014)
Exceptional Digital Experience (Gartner PCC 2014)Exceptional Digital Experience (Gartner PCC 2014)
Exceptional Digital Experience (Gartner PCC 2014)
 
CF, J2EE and G3
CF, J2EE and G3CF, J2EE and G3
CF, J2EE and G3
 
Coders Jar Services Offerings
Coders Jar Services OfferingsCoders Jar Services Offerings
Coders Jar Services Offerings
 

Similar to Building a Java Play! App on Heroku using Database.com

Build your API with Force.com and Heroku
Build your API with Force.com and HerokuBuild your API with Force.com and Heroku
Build your API with Force.com and HerokuJeff Douglas
 
Emerging Technologies: Heroku for ISVs (October 13, 2014)
Emerging Technologies: Heroku for ISVs (October 13, 2014)Emerging Technologies: Heroku for ISVs (October 13, 2014)
Emerging Technologies: Heroku for ISVs (October 13, 2014)Salesforce Partners
 
CloudOps evening presentation from Salesforce.com
CloudOps evening presentation from Salesforce.comCloudOps evening presentation from Salesforce.com
CloudOps evening presentation from Salesforce.comAlistair Croll
 
Cloud Integration with Database.com and Heroku
Cloud Integration with Database.com and HerokuCloud Integration with Database.com and Heroku
Cloud Integration with Database.com and HerokuSalesforce Developers
 
Developing Offline-Capable Apps with the Salesforce Mobile SDK and SmartStore
Developing Offline-Capable Apps with the Salesforce Mobile SDK and SmartStoreDeveloping Offline-Capable Apps with the Salesforce Mobile SDK and SmartStore
Developing Offline-Capable Apps with the Salesforce Mobile SDK and SmartStoreSalesforce Developers
 
TrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsTrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsSalesforce Developers
 
Heroku - developer playground
Heroku - developer playground Heroku - developer playground
Heroku - developer playground Troy Sellers
 
Salesforce Design System for Native Apps
Salesforce Design System for Native AppsSalesforce Design System for Native Apps
Salesforce Design System for Native AppsSalesforce Developers
 
Sharing APIs at Scale for a Great Developer Experience
Sharing APIs at Scale for a Great Developer ExperienceSharing APIs at Scale for a Great Developer Experience
Sharing APIs at Scale for a Great Developer ExperiencePostman
 
Creating HTML5 Applications with jQuery Mobile, Ruby and Database.com
Creating HTML5 Applications with jQuery Mobile, Ruby and Database.comCreating HTML5 Applications with jQuery Mobile, Ruby and Database.com
Creating HTML5 Applications with jQuery Mobile, Ruby and Database.comSalesforce Developers
 
Creating HTML5 Applications with jQuery Mobile, Ruby and Database.com
Creating HTML5 Applications with jQuery Mobile, Ruby and Database.comCreating HTML5 Applications with jQuery Mobile, Ruby and Database.com
Creating HTML5 Applications with jQuery Mobile, Ruby and Database.comSalesforce Developers
 
Igor Androsov on Mobilizing Salesforce Data with 12 Factor App on Heroku
Igor Androsov on Mobilizing Salesforce Data with 12 Factor App on HerokuIgor Androsov on Mobilizing Salesforce Data with 12 Factor App on Heroku
Igor Androsov on Mobilizing Salesforce Data with 12 Factor App on HerokuIgor Androsov
 
Enterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsEnterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsSalesforce Developers
 
Our API Evolution: From Metadata to Tooling API for Building Incredible Apps
Our API Evolution: From Metadata to Tooling API for Building Incredible AppsOur API Evolution: From Metadata to Tooling API for Building Incredible Apps
Our API Evolution: From Metadata to Tooling API for Building Incredible AppsDreamforce
 
Social Enterprise Java Apps on Heroku Webinar
Social Enterprise Java Apps on Heroku WebinarSocial Enterprise Java Apps on Heroku Webinar
Social Enterprise Java Apps on Heroku WebinarSalesforce Developers
 
Building Command-line Tools with the Tooling API
Building Command-line Tools with the Tooling APIBuilding Command-line Tools with the Tooling API
Building Command-line Tools with the Tooling APIJeff Douglas
 
Lightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionLightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionSalesforce Developers
 
Connect Your Clouds with Force.com
Connect Your Clouds with Force.comConnect Your Clouds with Force.com
Connect Your Clouds with Force.comJeff Douglas
 

Similar to Building a Java Play! App on Heroku using Database.com (20)

Build your API with Force.com and Heroku
Build your API with Force.com and HerokuBuild your API with Force.com and Heroku
Build your API with Force.com and Heroku
 
Emerging Technologies: Heroku for ISVs (October 13, 2014)
Emerging Technologies: Heroku for ISVs (October 13, 2014)Emerging Technologies: Heroku for ISVs (October 13, 2014)
Emerging Technologies: Heroku for ISVs (October 13, 2014)
 
CloudOps evening presentation from Salesforce.com
CloudOps evening presentation from Salesforce.comCloudOps evening presentation from Salesforce.com
CloudOps evening presentation from Salesforce.com
 
Cloud Integration with Database.com and Heroku
Cloud Integration with Database.com and HerokuCloud Integration with Database.com and Heroku
Cloud Integration with Database.com and Heroku
 
Developing Offline-Capable Apps with the Salesforce Mobile SDK and SmartStore
Developing Offline-Capable Apps with the Salesforce Mobile SDK and SmartStoreDeveloping Offline-Capable Apps with the Salesforce Mobile SDK and SmartStore
Developing Offline-Capable Apps with the Salesforce Mobile SDK and SmartStore
 
Workbench: The API Swiss Army Knife
Workbench: The API Swiss Army KnifeWorkbench: The API Swiss Army Knife
Workbench: The API Swiss Army Knife
 
TrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsTrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer Highlights
 
Heroku - developer playground
Heroku - developer playground Heroku - developer playground
Heroku - developer playground
 
Salesforce Design System for Native Apps
Salesforce Design System for Native AppsSalesforce Design System for Native Apps
Salesforce Design System for Native Apps
 
Salesforce platform session 2
 Salesforce platform session 2 Salesforce platform session 2
Salesforce platform session 2
 
Sharing APIs at Scale for a Great Developer Experience
Sharing APIs at Scale for a Great Developer ExperienceSharing APIs at Scale for a Great Developer Experience
Sharing APIs at Scale for a Great Developer Experience
 
Creating HTML5 Applications with jQuery Mobile, Ruby and Database.com
Creating HTML5 Applications with jQuery Mobile, Ruby and Database.comCreating HTML5 Applications with jQuery Mobile, Ruby and Database.com
Creating HTML5 Applications with jQuery Mobile, Ruby and Database.com
 
Creating HTML5 Applications with jQuery Mobile, Ruby and Database.com
Creating HTML5 Applications with jQuery Mobile, Ruby and Database.comCreating HTML5 Applications with jQuery Mobile, Ruby and Database.com
Creating HTML5 Applications with jQuery Mobile, Ruby and Database.com
 
Igor Androsov on Mobilizing Salesforce Data with 12 Factor App on Heroku
Igor Androsov on Mobilizing Salesforce Data with 12 Factor App on HerokuIgor Androsov on Mobilizing Salesforce Data with 12 Factor App on Heroku
Igor Androsov on Mobilizing Salesforce Data with 12 Factor App on Heroku
 
Enterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsEnterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web Components
 
Our API Evolution: From Metadata to Tooling API for Building Incredible Apps
Our API Evolution: From Metadata to Tooling API for Building Incredible AppsOur API Evolution: From Metadata to Tooling API for Building Incredible Apps
Our API Evolution: From Metadata to Tooling API for Building Incredible Apps
 
Social Enterprise Java Apps on Heroku Webinar
Social Enterprise Java Apps on Heroku WebinarSocial Enterprise Java Apps on Heroku Webinar
Social Enterprise Java Apps on Heroku Webinar
 
Building Command-line Tools with the Tooling API
Building Command-line Tools with the Tooling APIBuilding Command-line Tools with the Tooling API
Building Command-line Tools with the Tooling API
 
Lightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionLightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An Introduction
 
Connect Your Clouds with Force.com
Connect Your Clouds with Force.comConnect Your Clouds with Force.com
Connect Your Clouds with Force.com
 

More from Salesforce Developers

Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSalesforce Developers
 
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceMaximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceSalesforce Developers
 
Local development with Open Source Base Components
Local development with Open Source Base ComponentsLocal development with Open Source Base Components
Local development with Open Source Base ComponentsSalesforce Developers
 
TrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsTrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsSalesforce Developers
 
Why developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaWhy developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaSalesforce Developers
 
CodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentCodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentSalesforce Developers
 
CodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsCodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsSalesforce Developers
 
Lightning web components - Episode 4 : Security and Testing
Lightning web components  - Episode 4 : Security and TestingLightning web components  - Episode 4 : Security and Testing
Lightning web components - Episode 4 : Security and TestingSalesforce Developers
 
LWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilityLWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilitySalesforce Developers
 
Lightning web components episode 2- work with salesforce data
Lightning web components   episode 2- work with salesforce dataLightning web components   episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce dataSalesforce Developers
 
Migrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPMigrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPSalesforce Developers
 
Scale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceScale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceSalesforce Developers
 
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureReplicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureSalesforce Developers
 
Modern Development with Salesforce DX
Modern Development with Salesforce DXModern Development with Salesforce DX
Modern Development with Salesforce DXSalesforce Developers
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectIntegrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectSalesforce Developers
 
Modern App Dev: Modular Development Strategies
Modern App Dev: Modular Development StrategiesModern App Dev: Modular Development Strategies
Modern App Dev: Modular Development StrategiesSalesforce Developers
 

More from Salesforce Developers (20)

Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce Developers
 
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceMaximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component Performance
 
Local development with Open Source Base Components
Local development with Open Source Base ComponentsLocal development with Open Source Base Components
Local development with Open Source Base Components
 
TrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsTrailheaDX India : Developer Highlights
TrailheaDX India : Developer Highlights
 
Why developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaWhy developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX India
 
CodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentCodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local Development
 
CodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsCodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web Components
 
Live coding with LWC
Live coding with LWCLive coding with LWC
Live coding with LWC
 
Lightning web components - Episode 4 : Security and Testing
Lightning web components  - Episode 4 : Security and TestingLightning web components  - Episode 4 : Security and Testing
Lightning web components - Episode 4 : Security and Testing
 
LWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilityLWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura Interoperability
 
Lightning web components episode 2- work with salesforce data
Lightning web components   episode 2- work with salesforce dataLightning web components   episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce data
 
Migrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPMigrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCP
 
Scale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceScale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in Salesforce
 
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureReplicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data Capture
 
Modern Development with Salesforce DX
Modern Development with Salesforce DXModern Development with Salesforce DX
Modern Development with Salesforce DX
 
Get Into Lightning Flow Development
Get Into Lightning Flow DevelopmentGet Into Lightning Flow Development
Get Into Lightning Flow Development
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectIntegrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS Connect
 
Introduction to MuleSoft
Introduction to MuleSoftIntroduction to MuleSoft
Introduction to MuleSoft
 
Modern App Dev: Modular Development Strategies
Modern App Dev: Modular Development StrategiesModern App Dev: Modular Development Strategies
Modern App Dev: Modular Development Strategies
 
Dreamforce Developer Recap
Dreamforce Developer RecapDreamforce Developer Recap
Dreamforce Developer Recap
 

Building a Java Play! App on Heroku using Database.com

  • 1. Building a Java Play! App on Heroku using Database.com The subtitle goes here Cory McIlroy, Appirio, Community Architect @coryio
  • 2. Safe Harbor 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 July 31, 2012. 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. Appirio Helps Enterprises Power Their Business with Public Cloud Solutions Helping Enterprises Become: Efficient Effective Agile Social Mobile Technology-enabled professional services, supported by 500 cloud experts and a 50,000+ cloud developer community 5 years, 300 enterprises, 1.5M users moved to the cloud
  • 4. Agenda  Introductions  Describe the sample app  Quick intro to Heroku and Play  Walkthrough: Heroku/Play  Walkthrough: Force.com  Q&A break  Scala in Play teaser
  • 5. Introductions  Who I am • Cory McIlroy (yes, like the golfer, but with a 'C') • Live in St. Louis, MO • Work at Appirio (Force.com, Heroku, CloudSpokes)  Who You are • Java and/or Force.com developers? • Admins, Architects, Managers interested in the platform?
  • 6. Consider this example.... Softball League Manager- an Existing Force.com Application.  Comes with all the great things about force.com... • Security and Sharing • Reporting Roster Management • Simple but powerful data management • Extensibility Stats Tracker League Fees League Rankings
  • 7. Extending the App with Heroku We want some new features...  Public “Leaderboard” • High Volume, especially during playoff season • Need elastic platform, heavy caching  Manager “Sub Finder" app • Fast filter tool • Mobile-friendly • Fetch contact info from force.com
  • 8. How They Fit Together Two touchpoints between the Heroku app and the force.com REST API, slightly different flavors.  Fetch Free-Agents List • Standard "query" REST call • "Index" into Redis for filtering  Fetch Standings • custom apex REST Service • "pass through" JSON
  • 9. Heroku at a Glance A scalable polyglot platform in the cloud  Scalable & Flexible • Datastore options, right tool for the job • Other Heroku addons • Polyglot support  Better cost model for this application • Scale up/down seasonally  Utilize our java expertise
  • 10. Why the Play Framework? Play 2.0 is a high-productivity Java and Scala web application A web framework for the asynchronous age framework that integrates the components and APIs you need for modern web application development.  Light, Fast, Scalable Play is based on a lightweight, stateless, web-friendly architecture  Easy to work with => Dev Productivity and features predictable and minimal resource consumption (CPU, memory, threads) for highly-scalable applications thanks  Designed towards fully Async HTTP model to its reactive model, based on Iteratee IO. -- http://www.playframework.org/documentation/2.0.3/Home  Type checking, even in routes & view templates  Comprehensive, extensible build system  Powerful, Scala-based templating engine
  • 13. Heroku Code Walkthrough  Directory Structure  Routes File  Build.scala (deps)  OAuth helper  Controller(s)  Model/Managers  Force.com REST helper (“Jesper”)  demo: play compile / git push
  • 14. Force.com Code Walkthrough  REST service (composition)  OAuth config
  • 15. Resources  https://github.com/mcilroyc/play20_force_league_manager  https://github.com/jesperfj/force-rest-api