Successfully reported this slideshow.

We don’t need no stinkin app server! Building a Two-Tier Mobile App

0

Share

Upcoming SlideShare
Hybrid mobile apps
Hybrid mobile apps
Loading in …3
×
1 of 28
1 of 28

More Related Content

Similar to We don’t need no stinkin app server! Building a Two-Tier Mobile App

Related Books

Free with a 14 day trial from Scribd

See all

Related Audiobooks

Free with a 14 day trial from Scribd

See all

We don’t need no stinkin app server! Building a Two-Tier Mobile App

  1. 1. We Don’t Need No Stinkin’ App Server! Building a Two-Tier Mobile App Pat Patterson @metadaddy Principal Developer Evangelist salesforce.com
  2. 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 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, 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 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, 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-K filed on March 9, 2012 and in other filings with the Securities and Exchange Commission. These documents 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 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. 3. Agenda • Database-as-a-Service • Hybrid Mobile App Frameworks • Combining the two approaches for rapid mobile app development
  4. 4. Agenda • Database-as-a-Service • Hybrid Mobile App Frameworks • Combining the two approaches for rapid mobile app development
  5. 5. 3-Tier Architecture
  6. 6. 3-Tier Architecture
  7. 7. 3-Tier Architecture
  8. 8. 3-Tier Architecture
  9. 9. 3-Tier Architecture
  10. 10. 3-Tier Architecture
  11. 11. 3-Tier Architecture
  12. 12. 2-Tier Architecture
  13. 13. 2-Tier Architecture iOS Android
  14. 14. 2-Tier Architecture database.com iOS SimpleDB/DynamoDB Android GAE Datastore CouchDB MongoDB …
  15. 15. RESTful Database API Resource Name URI Description Versions / List of supported API versions Resources by /vXX.X/ Available resources for this version Version Describe Global /vXX.X/sobjects/ Available objects and metadata SObject Basic Info /vXX.X/sobjects/SObject/ Metadata for object SObject Describe /vXX.X/sobjects/SObject/describe/ Metadata for object fields etc SObject Rows /vXX.X/sobjects/SObject/id/ Access record by native ID SObject Rows by /vXX.X/sobjects/SObject/fieldName/fieldValue Access record by external ID External ID User Password /vXX.X/sobjects/User/userId/password Set/reset user password Query /vXX.X/query/?q=soql SOQL query Search /vXX.X/search/?s=sosl SOSL query http://www.salesforce.com/us/developer/docs/dbcom_api_rest/index.htm
  16. 16. Agenda • Database-as-a-Service • Hybrid Mobile App Frameworks • Combining the two approaches for rapid mobile app development
  17. 17. Agenda • Database-as-a-Service • Hybrid Mobile App Frameworks • Combining the two approaches for rapid mobile app development
  18. 18. Mobile App Spectrum Native Hybrid Web HTML5 + HTML5 + Objective C / CSS + CSS + Java JavaScript JavaScript
  19. 19. Atwood’s Law “Any application that can be written in JavaScript, will eventually be written in JavaScript.” http://www.codinghorror.com/blog/2007/07/the-principle-of-least-power.html
  20. 20. Proof Point: LinkedIn iPad App “Yes, only one screen in the entire LinkedIn iPad app is actually native. The rest is good ol’ HTML5-based mobile web technology, running in the browser.” http://venturebeat.com/2012/05/02/linkedin-ipad-app-engineering/
  21. 21. Hybrid Mobile App Platforms • Apache Cordova (aka [Adobe] PhoneGap) • Trigger.io • Appcelerator Titanium • Ansca Corona • Many, many, more – http://en.wikipedia.org/wiki/Mobile_application_development
  22. 22. Salesforce Mobile SDK • Hybrid support built on PhoneGap 1.2 + OAuth 2.0 built in + JavaScript binding to database.com REST API • Current Version 1.1 – Added Secure Offline API, more flexible OAuth 2.0 and more • Version 1.2 coming soon – Adds PIN protection, session timeout and more 2012 1.0 1.1 1.2 Dec 2011 Mar 2012 Soon! • And…
  23. 23. It’s 100% open source
  24. 24. Agenda • Database-as-a-Service • Hybrid Mobile App Frameworks • Combining the two approaches for rapid mobile app development
  25. 25. Agenda • Database-as-a-Service • Hybrid Mobile App Frameworks • Combining the two approaches for rapid mobile app development
  26. 26. Code Time… http://bit.ly/gc12-mobile-demo
  27. 27. Conclusion • Database-as-a-Service can dramatically simplify your web app’s back end • Frameworks such as Apache Cordova accelerate mobile app development • Combine the two for rapid mobile app development
  28. 28. Thank You! Pat Patterson @metadaddy Principal Developer Evangelist salesforce.com

Editor's Notes

  • The traditional 3-tier architecture – web server, app server, database.
  • Back in the days of Web 1.0, we served up web pages to browsers…
  • …this required lots of code on the app server to retrieve data from the database and render it into those web pages, but very little code in the browser.
  • Web 2.0 brought Ajax, so the amount of code in the browser increased as JavaScript retrieved data from the app server. Code on the app server shrank, since it was easier to return data than render a page.
  • Now, websites such as Twitter use the page as a vehicle for a complete JavaScript web app that does all the retrieval and rendering of data. The back end shrinks again.
  • Mobile enters the mix, and mobile apps running on the device do away with web pages altogether…
  • …so you no longer need the web tier. The app server is reduced to marshalling data in and out of the database. What if the database itself spoke JSON over HTTP?
  • This is the basis of the 2-tier architecture – app executing on the device interacting directly with a Database-as-a-Service. Still some code in the back-end for data validation, actions on triggers etc.
  • Technology on the device is iOS or Android. I’ve heard there are other alternatives, but I rarely see them!
  • A plethora of choices for the back end. These are all online services that talk JSON-over-HTTP.
  • Every element of data and metadata in database.com is accessible by an HTTP operation on a URL.
  • Native apps look great, perform well, but are more difficult to write than web apps. Web apps, on the other hand, can’t access device functionality such as the camera. Hybrid mobile app platforms such as PhoneGap offer a middle way – write your app in HTML/CSS/JS, but get access to device features, and package the app for distribution via the AppStore.
  • https://github.com/forcedotcom/SalesforceMobileSDK-iOShttps://github.com/forcedotcom/SalesforceMobileSDK-Androidhttps://github.com/forcedotcom/SalesforceMobileSDK-Samples
  • ×